Skip to content

Commit be74a4e

Browse files
committed
Update
1 parent 957ca5f commit be74a4e

3 files changed

Lines changed: 40 additions & 11 deletions

File tree

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,29 @@
11
Converter with Preprocessing
22
============================
33

4-
When simple expansion and contraction aren't enough, and you want to
5-
inject global or context-specific rewrite rules, you can wrap a :class:`curies.Converter`
6-
and preprocessing rules encoded in an instance of :class:`curies.PreprocessingRules` inside
4+
When simple expansion and contraction aren't enough, and you want to inject global or
5+
context-specific rewrite rules, you can wrap a :class:`curies.Converter` and
6+
preprocessing rules encoded in an instance of :class:`curies.PreprocessingRules` inside
77
a :class:`curies.PreprocessingConverter`.
88

9+
For example, you always want to fix legacy references to the ``OBO_REL`` namespace:
10+
11+
.. code-block:: python
12+
13+
import curies
14+
from curies import PreprocessingRules, PreprocessingConverter
15+
from curies.wrapped import Rewrites
16+
17+
rules = PreprocessingRules(
18+
rewrites=Rewrites(
19+
full={"OBO_REL:is_a": "rdfs:subClassOf"}
20+
)
21+
)
22+
23+
converter = curies.get_obo_converter()
24+
converter = PreprocessingConverter.from_converter(
25+
converter, rules=rules
26+
)
27+
28+
>>> converter.parse_curie("OBO_REL:is_a")
29+
ReferenceTuple('rdfs', 'subClassOf')

src/curies/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,12 @@
3535
)
3636
from .triples import Triple
3737
from .version import get_version
38-
from .wrapped import PreprocessingConverter, PreprocessingRules
38+
from .preprocessing import (
39+
PreprocessingConverter,
40+
PreprocessingRules,
41+
PreprocessingRewrites,
42+
PreprocessingBlacklist,
43+
)
3944

4045
__all__ = [
4146
"Converter",
@@ -48,6 +53,8 @@
4853
"PrefixMap",
4954
"PreprocessingConverter",
5055
"PreprocessingRules",
56+
"PreprocessingRewrites",
57+
"PreprocessingBlacklist",
5158
"Record",
5259
"Records",
5360
"Reference",
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@
1212
from .api import Converter, Reference, ReferenceTuple
1313

1414
__all__ = [
15-
"Blacklist",
15+
"PreprocessingBlacklist",
1616
"BlacklistError",
1717
"PreprocessingConverter",
1818
"PreprocessingRules",
19-
"Rewrites",
19+
"PreprocessingRewrites",
2020
]
2121

2222
X = TypeVar("X", bound=Reference)
2323

2424

25-
class Blacklist(BaseModel):
25+
class PreprocessingBlacklist(BaseModel):
2626
"""A model for prefix and full blacklists."""
2727

2828
full: list[str] = Field(default_factory=list)
@@ -75,7 +75,7 @@ def str_is_blacklisted(
7575
)
7676

7777

78-
class Rewrites(BaseModel):
78+
class PreprocessingRewrites(BaseModel):
7979
"""A model for prefix and full rewrites."""
8080

8181
full: dict[str, str] = Field(
@@ -124,8 +124,8 @@ def remap_prefix(self, str_or_curie_or_uri: str, ontology_prefix: str | None = N
124124
class PreprocessingRules(BaseModel):
125125
"""A model for blacklists and rewrites."""
126126

127-
blacklists: Blacklist
128-
rewrites: Rewrites
127+
blacklists: PreprocessingBlacklist
128+
rewrites: PreprocessingRewrites
129129

130130
@classmethod
131131
def lint_file(cls, path: str | Path) -> None:
@@ -191,7 +191,8 @@ def __init__(
191191
192192
:param args: Positional arguments passed to :func:`Converter.__init__`
193193
:param rules: A set of rules
194-
:param reference_cls: The reference class to use. Defaults to :class:`curies.Reference`.
194+
:param reference_cls: The reference class to use. Defaults to
195+
:class:`curies.Reference`.
195196
:param kwargs: Keyword arguments passed to :func:`Converter.__init__`
196197
"""
197198
super().__init__(*args, **kwargs)

0 commit comments

Comments
 (0)