Skip to content

Commit ce2b286

Browse files
authored
Update docs (#218)
1 parent b57a4ff commit ce2b286

2 files changed

Lines changed: 49 additions & 31 deletions

File tree

src/curies/api.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,25 @@ class ResourceInfo(BaseModel):
301301
...
302302
},
303303
)
304+
305+
.. warning::
306+
307+
Serialization with YAML with :mod:`yaml` might not work as expected for classes containing
308+
:class:`Prefix` instances, since they are subclasses of strings. Do something like this:
309+
310+
.. code-block:: python
311+
312+
def _reference_representer(
313+
dumper: SafeRepresenter, data: curies.Prefix
314+
) -> yaml.ScalarNode:
315+
return dumper.represent_str(str(data))
316+
317+
318+
# if you're using yaml.safe_dump()
319+
yaml.add_representer(curies.Prefix, _reference_representer, Dumper=yaml.SafeDumper)
320+
321+
# if you're using yaml.dump()
322+
yaml.add_representer(curies.Prefix, _reference_representer, Dumper=yaml.Dumper)
304323
"""
305324

306325
@classmethod

src/curies/triples/filters.py

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ def keep_prefixes_both(
4949
:param prefixes: A set of prefixes to use for filtering the triples
5050
:param progress: Should a progress bar be shown?
5151
52-
:returns: A sub-iterable of triples whose subjects' and objects'
53-
prefixes are in the given prefixes
52+
:returns: A sub-iterable of triples whose subjects' and objects' prefixes are in the
53+
given prefixes
5454
5555
>>> from curies import Triple
5656
>>> from curies.vocabulary import exact_match
@@ -83,8 +83,8 @@ def keep_prefixes_either(
8383
:param prefixes: A set of prefixes to use for filtering the triples
8484
:param progress: Should a progress bar be shown?
8585
86-
:returns: A sub-iterable of triples whose subjects' and objects'
87-
prefixes are in the given prefixes
86+
:returns: A sub-iterable of triples whose subjects' and objects' prefixes are in the
87+
given prefixes
8888
8989
>>> from curies import Triple
9090
>>> from curies.vocabulary import exact_match
@@ -121,16 +121,16 @@ def keep_subject_prefixes(
121121
:param prefixes: A set of prefixes to use for filtering the triples
122122
:param progress: Should a progress bar be shown?
123123
124-
:returns: A sub-iterable of triples whose subjects'
125-
prefixes are in the given prefixes
124+
:returns: A sub-iterable of triples whose subjects' prefixes are in the given
125+
prefixes
126126
127127
>>> from curies import Triple
128-
>>> from curies.vocabulary import exact_match
129-
>>> c1, c2, c3 = "DOID:0050577", "mesh:C562966", "umls:C4551571"
130-
>>> m1 = Triple.from_curies(c1, exact_match.curie, c2)
131-
>>> m2 = Triple.from_curies(c2, exact_match.curie, c3)
132-
>>> m3 = Triple.from_curies(c1, exact_match.curie, c3)
133-
>>> assert list(keep_subject_prefixes([m1, m2, m3], {"DOID"})) == [m1, m3]
128+
>>> from curies.vocabulary import exact_match
129+
>>> c1, c2, c3 = "DOID:0050577", "mesh:C562966", "umls:C4551571"
130+
>>> m1 = Triple.from_curies(c1, exact_match.curie, c2)
131+
>>> m2 = Triple.from_curies(c2, exact_match.curie, c3)
132+
>>> m3 = Triple.from_curies(c1, exact_match.curie, c3)
133+
>>> assert list(keep_subject_prefixes([m1, m2, m3], {"DOID"})) == [m1, m3]
134134
"""
135135
return _filter(_keep_subject_prefixes_filter(prefixes), triples, progress=progress)
136136

@@ -159,9 +159,8 @@ def keep_object_prefixes(
159159
:param prefixes: A set of prefixes to use for filtering the triples
160160
:param progress: Should a progress bar be shown?
161161
162-
:returns: A sub-iterable of triples whose objects'
163-
prefixes are in the given prefixes
164-
162+
:returns: A sub-iterable of triples whose objects' prefixes are in the given
163+
prefixes
165164
166165
>>> from curies import Triple
167166
>>> from curies.vocabulary import exact_match
@@ -197,8 +196,8 @@ def exclude_prefixes_both(
197196
:param prefixes: A set of prefixes to use for filtering the triples
198197
:param progress: Should a progress bar be shown?
199198
200-
:returns: A sub-iterable of triples whose subjects' and objects'
201-
prefixes are not in the given prefixes
199+
:returns: A sub-iterable of triples whose subjects' and objects' prefixes are not in
200+
the given prefixes
202201
203202
>>> from curies import Triple
204203
>>> from curies.vocabulary import exact_match
@@ -237,8 +236,8 @@ def exclude_subject_prefixes(
237236
:param prefixes: A set of prefixes to use for filtering the triples
238237
:param progress: Should a progress bar be shown?
239238
240-
:returns: A sub-iterable of triples whose subjects'
241-
prefixes are not in the given prefixes
239+
:returns: A sub-iterable of triples whose subjects' prefixes are not in the given
240+
prefixes
242241
243242
>>> from curies import Triple
244243
>>> from curies.vocabulary import exact_match
@@ -277,8 +276,8 @@ def exclude_object_prefixes(
277276
:param prefixes: A set of prefixes to use for filtering the triples
278277
:param progress: Should a progress bar be shown?
279278
280-
:returns: A sub-iterable of triples whose objects'
281-
prefixes are not in the given prefixes
279+
:returns: A sub-iterable of triples whose objects' prefixes are not in the given
280+
prefixes
282281
283282
>>> from curies import Triple
284283
>>> from curies.vocabulary import exact_match
@@ -316,8 +315,8 @@ def exclude_same_prefixes(
316315
:param triples: An iterable of triples
317316
:param progress: Should a progress bar be shown?
318317
319-
:returns: A sub-iterable of triples whose subject
320-
and object prefixes are not the same.
318+
:returns: A sub-iterable of triples whose subject and object prefixes are not the
319+
same.
321320
322321
>>> from curies import Triple
323322
>>> from curies.vocabulary import exact_match, subclass_of
@@ -399,8 +398,8 @@ def exclude_triples(
399398
:param exclusion: A triple or collection of triples to exclude
400399
:param progress: Should a progress bar be shown?
401400
402-
:returns: A sub-iterable of triples whose subject
403-
and object prefixes are not the same.
401+
:returns: A sub-iterable of triples whose subject and object prefixes are not the
402+
same.
404403
405404
>>> from curies import Triple
406405
>>> from curies.vocabulary import exact_match, subclass_of
@@ -439,8 +438,8 @@ def keep_references_either(
439438
:param references: A collection of references
440439
:param progress: Should a progress bar be shown?
441440
442-
:returns: A sub-iterable of triples whose subject
443-
and object appear in the given references.
441+
:returns: A sub-iterable of triples whose subject and object appear in the given
442+
references.
444443
445444
>>> from curies import Reference, Triple
446445
>>> from curies.vocabulary import exact_match, subclass_of
@@ -480,8 +479,8 @@ def keep_references_both(
480479
:param references: A collection of references
481480
:param progress: Should a progress bar be shown?
482481
483-
:returns: A sub-iterable of triples whose subject
484-
and object appear in the given references.
482+
:returns: A sub-iterable of triples whose subject and object appear in the given
483+
references.
485484
486485
>>> from curies import Reference, Triple
487486
>>> from curies.vocabulary import exact_match, subclass_of
@@ -518,8 +517,8 @@ def exclude_references_both(
518517
:param references: A collection of references
519518
:param progress: Should a progress bar be shown?
520519
521-
:returns: A sub-iterable of triples whose subject
522-
and object don't appear in the given references.
520+
:returns: A sub-iterable of triples whose subject and object don't appear in the
521+
given references.
523522
524523
>>> from curies import Reference, Triple
525524
>>> from curies.vocabulary import exact_match, subclass_of

0 commit comments

Comments
 (0)