Error on refresh with UTCAttribute in python 2.7 #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A model that has a UTCDatetime attribute, if you do a model.refresh() you get the following error.
The problem is the attribute is a unicode object after being read and the function expects a datetime object. I doubt this is the right way to fix this bug, but it should give a place to start.
My setup
Python 2.7.3
delorean and six I believe were installed when Pynamodb was.
You have any trouble reproducing this, let me know.
something like
oughta reproduce it.
self._model.refresh()
File "/usr/local/lib/python2.7/dist-packages/pynamodb/models.py", line 360, in refresh
args, kwargs = self._get_save_args(attributes=False)
File "/usr/local/lib/python2.7/dist-packages/pynamodb/models.py", line 346, in _get_save_args
serialized = self.serialize(null_check=null_check)
File "/usr/local/lib/python2.7/dist-packages/pynamodb/models.py", line 391, in serialize
serialized = attr.serialize(value)
File "/usr/local/lib/python2.7/dist-packages/pynamodb/attributes.py", line 258, in serialize
fmt = Delorean(value, timezone=UTC).datetime.strftime(DATETIME_FORMAT)
File "/usr/local/lib/python2.7/dist-packages/delorean/dates.py", line 175, in init
if not is_datetime_naive(datetime):
File "/usr/local/lib/python2.7/dist-packages/delorean/dates.py", line 30, in is_datetime_naive
if dt.tzinfo is None:
AttributeError: 'unicode' object has no attribute 'tzinfo'
BTW, thanks for writing this. Been looking for something like this for a while now.