Source code for taskw.fields.commaseparateduuid

from __future__ import absolute_import

from distutils.version import LooseVersion

import uuid

from .base import DirtyableList, Field


[docs]class CommaSeparatedUUIDField(Field): version = LooseVersion('2.4')
[docs] def deserialize(self, value): if not value: return DirtyableList([]) # In task-2.5, this moved from a comma-separated string to a real list. # here we allow a migration path where old splitable strings are # handled as well as newschool lists. if hasattr(value, 'split'): value = value.split(',') return DirtyableList([uuid.UUID(v) for v in value])
[docs] def serialize(self, value): if not value: value = [] if not hasattr(value, '__iter__'): raise ValueError("Value must be list or tuple, not %r." % value) if self.version < LooseVersion('2.5'): return ','.join([str(v) for v in value]) else: # We never hit this second code branch now. taskwarrior changed # API slightly in version 2.5, but we're just going to go with # backwards compatibility for now. # Some day we should switch wholesale to the new path. return [str(v) for v in value]