]>
git.madduck.net Git - etc/taskwarrior.git/commitdiff
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
ba60d88 )
- hydrate_func = getattr(self, 'deserialize_{0}'.format(key),
- lambda x: x)
- return hydrate_func(self._data.get(key))
+ return self._deserialize(key, self._data.get(key))
def __setitem__(self, key, value):
if key in self.read_only_fields:
raise RuntimeError('Field \'%s\' is read-only' % key)
def __setitem__(self, key, value):
if key in self.read_only_fields:
raise RuntimeError('Field \'%s\' is read-only' % key)
+ self._data[key] = self._serialize(key, value)
+
+ def _deserialize(self, key, value):
+ hydrate_func = getattr(self, 'deserialize_{0}'.format(key),
+ lambda x: x)
+ return hydrate_func(value)
+
+ def _serialize(self, key, value):
dehydrate_func = getattr(self, 'serialize_{0}'.format(key),
lambda x: x)
dehydrate_func = getattr(self, 'serialize_{0}'.format(key),
lambda x: x)
- self._data[key] = dehydrate_func(value)
+ return dehydrate_func(value)
def __str__(self):
s = six.text_type(self.__unicode__())
def __str__(self):
s = six.text_type(self.__unicode__())
def __init__(self, warrior, data={}, **kwargs):
self.warrior = warrior
def __init__(self, warrior, data={}, **kwargs):
self.warrior = warrior
- # We keep data for backwards compatibility
- kwargs.update(data)
+ # We serialize the data in kwargs so that users of the library
+ # do not have to pass different data formats via __setitem__ and
+ # __init__ methods, that would be confusing
- self._load_data(kwargs)
+ # Rather unfortunate syntax due to python2.6 comaptiblity
+ self._load_data(dict((key, self._serialize(key, value))
+ for (key, value) in six.iteritems(kwargs)))
+
+ # We keep data for backwards compatibility
+ # TODO: Should we keep this using unserialized access to _data dict?
+ self._data.update(data)
def __unicode__(self):
return self['description']
def __unicode__(self):
return self['description']