diff --git a/README.rst b/README.rst index cc36c3f..7a8e471 100644 --- a/README.rst +++ b/README.rst @@ -36,7 +36,7 @@ tasklib has a similar API to that of Django's ORM:: >>> tasks = tw.tasks.pending() >>> tasks ['Tidy the house', 'Learn German'] - >>> tasks.filter(tags__contain='chores') + >>> tasks.filter(tags__contains='chores') ['Tidy the house'] >>> type(tasks[0]) diff --git a/tasklib/serializing.py b/tasklib/serializing.py index 7b7a46e..4f7d7d2 100644 --- a/tasklib/serializing.py +++ b/tasklib/serializing.py @@ -174,7 +174,13 @@ def deserialize_annotations(self, data): return [TaskAnnotation(self, d) for d in data] if data else [] def serialize_tags(self, tags): - return ','.join(tags) if tags else '' + if isinstance(tags, list): + tags = set(tags) + if isinstance(tags, set): + return ','.join(tags) if tags else '' + if isinstance(tags, str): + return tags + raise ValueError("serialize_tags only supports list, set or string") def deserialize_tags(self, tags): if isinstance(tags, str):