linkml 1.7.5__py3-none-any.whl → 1.7.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- linkml/generators/__init__.py +2 -0
- linkml/generators/docgen/class.md.jinja2 +15 -2
- linkml/generators/docgen/slot.md.jinja2 +18 -4
- linkml/generators/docgen.py +17 -3
- linkml/generators/jsonldcontextgen.py +40 -17
- linkml/generators/jsonldgen.py +3 -1
- linkml/generators/owlgen.py +16 -0
- linkml/generators/prefixmapgen.py +5 -4
- linkml/generators/projectgen.py +14 -2
- linkml/generators/pydanticgen/__init__.py +29 -0
- linkml/generators/pydanticgen/array.py +457 -0
- linkml/generators/pydanticgen/black.py +29 -0
- linkml/generators/pydanticgen/build.py +79 -0
- linkml/generators/{pydanticgen.py → pydanticgen/pydanticgen.py} +252 -304
- linkml/generators/pydanticgen/template.py +577 -0
- linkml/generators/pydanticgen/templates/attribute.py.jinja +10 -0
- linkml/generators/pydanticgen/templates/base_model.py.jinja +29 -0
- linkml/generators/pydanticgen/templates/class.py.jinja +21 -0
- linkml/generators/pydanticgen/templates/conditional_import.py.jinja +9 -0
- linkml/generators/pydanticgen/templates/enum.py.jinja +16 -0
- linkml/generators/pydanticgen/templates/footer.py.jinja +13 -0
- linkml/generators/pydanticgen/templates/imports.py.jinja +31 -0
- linkml/generators/pydanticgen/templates/module.py.jinja +27 -0
- linkml/generators/pydanticgen/templates/validator.py.jinja +15 -0
- linkml/generators/pythongen.py +13 -7
- linkml/generators/shacl/__init__.py +3 -0
- linkml/generators/shacl/ifabsent_processor.py +59 -0
- linkml/generators/shacl/shacl_data_type.py +40 -0
- linkml/generators/shaclgen.py +105 -82
- linkml/generators/shexgen.py +1 -1
- linkml/generators/sqlalchemygen.py +1 -1
- linkml/generators/sqltablegen.py +32 -22
- linkml/generators/terminusdbgen.py +7 -1
- linkml/linter/config/datamodel/config.py +8 -0
- linkml/linter/rules.py +11 -2
- linkml/utils/generator.py +7 -6
- linkml/utils/ifabsent_functions.py +7 -9
- linkml/utils/schemaloader.py +1 -9
- linkml/utils/sqlutils.py +39 -25
- {linkml-1.7.5.dist-info → linkml-1.7.7.dist-info}/METADATA +9 -4
- {linkml-1.7.5.dist-info → linkml-1.7.7.dist-info}/RECORD +44 -27
- {linkml-1.7.5.dist-info → linkml-1.7.7.dist-info}/LICENSE +0 -0
- {linkml-1.7.5.dist-info → linkml-1.7.7.dist-info}/WHEEL +0 -0
- {linkml-1.7.5.dist-info → linkml-1.7.7.dist-info}/entry_points.txt +0 -0
linkml/utils/generator.py
CHANGED
@@ -83,11 +83,11 @@ class Generator(metaclass=abc.ABCMeta):
|
|
83
83
|
For usage `Generator Docs <https://linkml.io/linkml/generators/>`_
|
84
84
|
"""
|
85
85
|
|
86
|
-
# ClassVars
|
87
86
|
schema: Union[str, TextIO, SchemaDefinition, "Generator"]
|
88
87
|
"""metamodel compliant schema. Can be URI, file name, actual schema, another generator, an
|
89
88
|
open file or a pre-parsed schema"""
|
90
89
|
|
90
|
+
# ClassVars
|
91
91
|
generatorname: ClassVar[str] = None
|
92
92
|
""" Name of the generator. Override with os.path.basename(__file__)"""
|
93
93
|
|
@@ -159,7 +159,8 @@ class Generator(metaclass=abc.ABCMeta):
|
|
159
159
|
"""True means output is to a directory, False is to stdout"""
|
160
160
|
|
161
161
|
base_dir: str = None # Base directory of schema
|
162
|
-
"""Working directory or base URL of sources
|
162
|
+
"""Working directory or base URL of sources.
|
163
|
+
Setting this is necessary for correct retrieval of relative imports."""
|
163
164
|
|
164
165
|
metamodel_name_map: Dict[str, str] = None
|
165
166
|
"""Allows mapping of names of metamodel elements such as slot, etc"""
|
@@ -196,8 +197,8 @@ class Generator(metaclass=abc.ABCMeta):
|
|
196
197
|
if self.uses_schemaloader:
|
197
198
|
self._initialize_using_schemaloader(schema)
|
198
199
|
else:
|
199
|
-
logging.info(f"Using SchemaView with im={self.importmap}")
|
200
|
-
self.schemaview = SchemaView(schema, importmap=self.importmap)
|
200
|
+
logging.info(f"Using SchemaView with im={self.importmap} // base_dir={self.base_dir}")
|
201
|
+
self.schemaview = SchemaView(schema, importmap=self.importmap, base_dir=self.base_dir)
|
201
202
|
self.schema = self.schemaview.schema
|
202
203
|
self._init_namespaces()
|
203
204
|
|
@@ -683,7 +684,7 @@ class Generator(metaclass=abc.ABCMeta):
|
|
683
684
|
|
684
685
|
def slot_name(self, name: str) -> str:
|
685
686
|
"""
|
686
|
-
Return the underscored version of the aliased slot name if name is a slot. Prepend
|
687
|
+
Return the underscored version of the aliased slot name if name is a slot. Prepend ``unknown_`` if the name
|
687
688
|
isn't valid.
|
688
689
|
"""
|
689
690
|
slot = self.slot_for(name)
|
@@ -705,7 +706,7 @@ class Generator(metaclass=abc.ABCMeta):
|
|
705
706
|
|
706
707
|
:param el_or_elname: element or name to map
|
707
708
|
:param is_range_name: True means that we're looking for a class or type. False means Slot or Subset. Only
|
708
|
-
|
709
|
+
applies if el_or_elname is an ElementName (otherwise we know what we've got
|
709
710
|
:return: Formatted name if type can be known else None
|
710
711
|
"""
|
711
712
|
if isinstance(el_or_elname, str):
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import re
|
2
|
-
from typing import Callable, List, Match, Optional, Text, Tuple
|
2
|
+
from typing import Callable, List, Match, Optional, Text, Tuple, Union
|
3
3
|
|
4
4
|
from linkml_runtime.linkml_model.meta import ClassDefinition, SlotDefinition
|
5
5
|
from linkml_runtime.utils.formatutils import sfx
|
@@ -77,12 +77,13 @@ default_library: List[
|
|
77
77
|
(
|
78
78
|
r"date\((\d{4})-(\d{2})-(\d{2})\)",
|
79
79
|
False,
|
80
|
-
lambda m, __, ___, ____: f"
|
80
|
+
lambda m, __, ___, ____: f"date({int(m[1])}, {int(m[2])}, {int(m[3])})",
|
81
81
|
),
|
82
82
|
(
|
83
83
|
r"datetime\((\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z\)",
|
84
84
|
False,
|
85
|
-
lambda m, __, ___, ____: f"datetime
|
85
|
+
lambda m, __, ___, ____: f"datetime({int(m[1])}, {int(m[2])}, {int(m[3])}, "
|
86
|
+
f"{int(m[4])}, {int(m[5])}, {int(m[6])})",
|
86
87
|
),
|
87
88
|
# TODO: We have to make the real URI available before any of these can work
|
88
89
|
# ("class_uri", True,
|
@@ -113,12 +114,9 @@ default_library: List[
|
|
113
114
|
|
114
115
|
def isabsent_match(
|
115
116
|
txt: Text,
|
116
|
-
) ->
|
117
|
-
Tuple[
|
118
|
-
|
119
|
-
bool,
|
120
|
-
Callable[[Match[str], SchemaLoader, ClassDefinition, SlotDefinition], str],
|
121
|
-
]
|
117
|
+
) -> Union[
|
118
|
+
Tuple[Match[str], bool, Callable[[Match[str], SchemaLoader, ClassDefinition, SlotDefinition], str]],
|
119
|
+
Tuple[None, None, None],
|
122
120
|
]:
|
123
121
|
txt = str(txt)
|
124
122
|
for pattern, postinit, f in default_library:
|
linkml/utils/schemaloader.py
CHANGED
@@ -118,7 +118,7 @@ class SchemaLoader:
|
|
118
118
|
sname = self.importmap.get(str(sname), sname) # It may also use URI or other forms
|
119
119
|
import_schemadefinition = load_raw_schema(
|
120
120
|
sname + ".yaml",
|
121
|
-
base_dir=os.path.dirname(self.schema.source_file) if self.schema.source_file else
|
121
|
+
base_dir=os.path.dirname(self.schema.source_file) if self.schema.source_file else self.base_dir,
|
122
122
|
merge_modules=self.merge_modules,
|
123
123
|
emit_metadata=self.emit_metadata,
|
124
124
|
)
|
@@ -351,14 +351,6 @@ class SchemaLoader:
|
|
351
351
|
f"slot: {slot.name} - unrecognized domain ({slot.domain})",
|
352
352
|
slot.domain,
|
353
353
|
)
|
354
|
-
if slot.ifabsent:
|
355
|
-
from linkml.utils.ifabsent_functions import isabsent_match
|
356
|
-
|
357
|
-
if isabsent_match(slot.ifabsent) is None:
|
358
|
-
self.raise_value_error(
|
359
|
-
f"Unrecognized ifabsent action for slot '{slot.name}': '{slot.ifabsent}'",
|
360
|
-
slot.ifabsent,
|
361
|
-
)
|
362
354
|
|
363
355
|
# Keys and identifiers must be present
|
364
356
|
if bool(slot.key or slot.identifier):
|
linkml/utils/sqlutils.py
CHANGED
@@ -324,9 +324,15 @@ def main(verbose: int, quiet: bool, csv_field_size_limit: int):
|
|
324
324
|
show_default=True,
|
325
325
|
help="Force creation of a database if it does not exist",
|
326
326
|
)
|
327
|
-
@click.
|
327
|
+
@click.option(
|
328
|
+
"--glob/--no-glob",
|
329
|
+
default=False,
|
330
|
+
show_default=True,
|
331
|
+
help="Treat input as a quoted glob expression, e.g. 'data/*.json'",
|
332
|
+
)
|
333
|
+
@click.argument("inputs", nargs=-1)
|
328
334
|
def dump(
|
329
|
-
|
335
|
+
inputs,
|
330
336
|
module,
|
331
337
|
db,
|
332
338
|
target_class,
|
@@ -334,6 +340,7 @@ def dump(
|
|
334
340
|
schema=None,
|
335
341
|
validate=None,
|
336
342
|
force: bool = None,
|
343
|
+
glob: bool = None,
|
337
344
|
index_slot=None,
|
338
345
|
) -> None:
|
339
346
|
"""
|
@@ -359,34 +366,41 @@ def dump(
|
|
359
366
|
if target_class is None:
|
360
367
|
raise Exception("target class not specified and could not be inferred")
|
361
368
|
py_target_class = python_module.__dict__[target_class]
|
362
|
-
input_format = _get_format(input, input_format)
|
363
|
-
loader = get_loader(input_format)
|
364
|
-
|
365
|
-
inargs = {}
|
366
|
-
if datautils._is_rdf_format(input_format):
|
367
|
-
if sv is None:
|
368
|
-
raise Exception("Must pass schema arg")
|
369
|
-
inargs["schemaview"] = sv
|
370
|
-
inargs["fmt"] = input_format
|
371
|
-
if _is_xsv(input_format):
|
372
|
-
if index_slot is None:
|
373
|
-
index_slot = infer_index_slot(sv, target_class)
|
374
|
-
if index_slot is None:
|
375
|
-
raise Exception("--index-slot is required for CSV input")
|
376
|
-
inargs["index_slot"] = index_slot
|
377
|
-
inargs["schema"] = schema
|
378
|
-
obj = loader.load(source=input, target_class=py_target_class, **inargs)
|
379
|
-
if validate:
|
380
|
-
if schema is None:
|
381
|
-
raise Exception("--schema must be passed in order to validate. Suppress with --no-validate")
|
382
|
-
# TODO: use validator framework
|
383
|
-
validation.validate_object(obj, schema)
|
384
369
|
|
385
370
|
endpoint = SQLStore(schema, database_path=db, include_schema_in_database=False)
|
386
371
|
endpoint.native_module = python_module
|
387
372
|
endpoint.db_exists(force=force)
|
388
373
|
endpoint.compile()
|
389
|
-
|
374
|
+
|
375
|
+
if glob:
|
376
|
+
import glob
|
377
|
+
|
378
|
+
inputs = [item for input in inputs for item in glob.glob(input)]
|
379
|
+
for input in inputs:
|
380
|
+
logging.info(f"Loading: {input}")
|
381
|
+
input_format = _get_format(input, input_format)
|
382
|
+
loader = get_loader(input_format)
|
383
|
+
|
384
|
+
inargs = {}
|
385
|
+
if datautils._is_rdf_format(input_format):
|
386
|
+
if sv is None:
|
387
|
+
raise Exception("Must pass schema arg")
|
388
|
+
inargs["schemaview"] = sv
|
389
|
+
inargs["fmt"] = input_format
|
390
|
+
if _is_xsv(input_format):
|
391
|
+
if index_slot is None:
|
392
|
+
index_slot = infer_index_slot(sv, target_class)
|
393
|
+
if index_slot is None:
|
394
|
+
raise Exception("--index-slot is required for CSV input")
|
395
|
+
inargs["index_slot"] = index_slot
|
396
|
+
inargs["schema"] = schema
|
397
|
+
obj = loader.load(source=input, target_class=py_target_class, **inargs)
|
398
|
+
if validate:
|
399
|
+
if schema is None:
|
400
|
+
raise Exception("--schema must be passed in order to validate. Suppress with --no-validate")
|
401
|
+
# TODO: use validator framework
|
402
|
+
validation.validate_object(obj, schema)
|
403
|
+
endpoint.dump(obj)
|
390
404
|
|
391
405
|
|
392
406
|
@main.command()
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: linkml
|
3
|
-
Version: 1.7.
|
3
|
+
Version: 1.7.7
|
4
4
|
Summary: Linked Open Data Modeling Language
|
5
5
|
Home-page: https://linkml.io/linkml/
|
6
6
|
Keywords: schema,linked data,data modeling,rdf,owl,biolink
|
@@ -19,10 +19,15 @@ Classifier: Programming Language :: Python :: 3.10
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.11
|
20
20
|
Classifier: Programming Language :: Python :: 3.10
|
21
21
|
Classifier: Programming Language :: Python :: 3.11
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
22
23
|
Classifier: Programming Language :: Python :: 3.8
|
23
24
|
Classifier: Programming Language :: Python :: 3.9
|
24
25
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
26
|
+
Provides-Extra: black
|
27
|
+
Provides-Extra: shacl
|
28
|
+
Provides-Extra: tests
|
25
29
|
Requires-Dist: antlr4-python3-runtime (>=4.9.0,<4.10)
|
30
|
+
Requires-Dist: black (>=24.0.0) ; extra == "black" or extra == "tests"
|
26
31
|
Requires-Dist: click (>=7.0)
|
27
32
|
Requires-Dist: graphviz (>=0.10.1)
|
28
33
|
Requires-Dist: hbreader
|
@@ -31,13 +36,14 @@ Requires-Dist: jinja2 (>=3.1.0)
|
|
31
36
|
Requires-Dist: jsonasobj2 (>=1.0.3,<2.0.0)
|
32
37
|
Requires-Dist: jsonschema[format] (>=4.0.0)
|
33
38
|
Requires-Dist: linkml-dataops
|
34
|
-
Requires-Dist: linkml-runtime (>=1.7.
|
39
|
+
Requires-Dist: linkml-runtime (>=1.7.4)
|
35
40
|
Requires-Dist: openpyxl
|
36
41
|
Requires-Dist: parse
|
37
42
|
Requires-Dist: prefixcommons (>=0.1.7)
|
38
|
-
Requires-Dist: prefixmaps (>=0.
|
43
|
+
Requires-Dist: prefixmaps (>=0.2.2)
|
39
44
|
Requires-Dist: pydantic (>=1.0.0,<3.0.0)
|
40
45
|
Requires-Dist: pyjsg (>=0.11.6)
|
46
|
+
Requires-Dist: pyshacl (>=0.25.0,<0.26.0) ; extra == "shacl" or extra == "tests"
|
41
47
|
Requires-Dist: pyshex (>=0.7.20)
|
42
48
|
Requires-Dist: pyshexc (>=0.8.3)
|
43
49
|
Requires-Dist: python-dateutil
|
@@ -45,7 +51,6 @@ Requires-Dist: pyyaml
|
|
45
51
|
Requires-Dist: rdflib (>=6.0.0)
|
46
52
|
Requires-Dist: requests (>=2.22)
|
47
53
|
Requires-Dist: sqlalchemy (>=1.4.31)
|
48
|
-
Requires-Dist: typing-extensions (>=4.5.0,<5.0.0) ; python_version == "3.7"
|
49
54
|
Requires-Dist: watchdog (>=0.9.0)
|
50
55
|
Project-URL: Documentation, https://linkml.io/linkml/
|
51
56
|
Project-URL: Repository, https://github.com/linkml/linkml
|
@@ -2,21 +2,21 @@ linkml/__init__.py,sha256=jwtUdhwmquj-0fCR6VwPH5_RfSpuG94hLWdre_W_FD4,3327
|
|
2
2
|
linkml/_version.py,sha256=udxv6OEqcE89DTVMYPtetXYg8IA8Sgc6yW26-6f8C3M,310
|
3
3
|
linkml/generators/PythonGenNotes.md,sha256=wb9BPLLhF6378OKLbwSBAwmniLpwrcT5_bbfCHfLme8,51006
|
4
4
|
linkml/generators/README.md,sha256=RMzT8EblC_GEdPy5WyfXHDBXlFI6k6mz3Cx2sdpcyWI,4438
|
5
|
-
linkml/generators/__init__.py,sha256=
|
5
|
+
linkml/generators/__init__.py,sha256=dQ2EUKy_MctEVEzbC3XzEJL5YmYwjYfsa44mG2zKn7g,1517
|
6
6
|
linkml/generators/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
7
|
linkml/generators/common/type_designators.py,sha256=lgVcIRJJ-yCvVGeP9U_gQZpm77UmJBQo9Bh3lGJITno,1956
|
8
8
|
linkml/generators/csvgen.py,sha256=X0f4qKXahSDtkzM9Y47rwWqdseP1O6PTZ_WKiOqOrQI,2956
|
9
|
-
linkml/generators/docgen/class.md.jinja2,sha256=
|
9
|
+
linkml/generators/docgen/class.md.jinja2,sha256=bz5A46HOIPkUVbzPGorg64NNhr66zK0hCCekSfRPErY,3787
|
10
10
|
linkml/generators/docgen/class_diagram.md.jinja2,sha256=lLU_0sQZBttOX5Wiup2oZwrxHuiQtbU9ZgLi66aJvOo,2538
|
11
11
|
linkml/generators/docgen/common_metadata.md.jinja2,sha256=zy8Ua3gDtAAq8VA3e3O3ft9W7eJopVZaq5efP8LU_hU,1321
|
12
12
|
linkml/generators/docgen/enum.md.jinja2,sha256=mXnUrRkleY2bOTEyAZ5c4pcUnqhs6BNa8a-4LVve-eo,1014
|
13
13
|
linkml/generators/docgen/index.md.jinja2,sha256=wXUYTmayPLFltC0vbGE_Mf6m3GkkWav7FOEjCvEpHp4,1466
|
14
14
|
linkml/generators/docgen/index.tex.jinja2,sha256=Go_EA-_N4JUpbOYbk3OY11mz5yV70VF2l2sMtgIPWw4,501
|
15
15
|
linkml/generators/docgen/schema.md.jinja2,sha256=xlENfnzNRYgPT_0tdqNFxgklVM4Qf5BuzhFVvSMDuxs,70
|
16
|
-
linkml/generators/docgen/slot.md.jinja2,sha256=
|
16
|
+
linkml/generators/docgen/slot.md.jinja2,sha256=ZGa-kaNvi5LknvFRIjKQyRpSynr1SlkLrpEmWDNPwDA,3226
|
17
17
|
linkml/generators/docgen/subset.md.jinja2,sha256=fTNIpAkml5RKFbbtLore3IAzFN1cISVsyL1ru2-Z4oA,2665
|
18
18
|
linkml/generators/docgen/type.md.jinja2,sha256=QmCMJZrFwP33eHkggBVtypbyrxTb-XZn9vHOYojVaYk,635
|
19
|
-
linkml/generators/docgen.py,sha256=
|
19
|
+
linkml/generators/docgen.py,sha256=dz7OWxclX306EweVIgC765h3NKtJTRg0TPnqmltWygs,34347
|
20
20
|
linkml/generators/dotgen.py,sha256=kzp1EYtF8bBqOuycJokDmsvHVDVkkW-J-6-MiUhwJH0,5013
|
21
21
|
linkml/generators/erdiagramgen.py,sha256=xCnxIldDYZ7xnQ-vLaXlH3FH8MH3cxu-E0j8it-lyJE,10153
|
22
22
|
linkml/generators/excelgen.py,sha256=3ILAeIHeYngNpPf3Ad7CXoHOLQ9KSiYcX5HdwHhQeQE,7696
|
@@ -26,34 +26,51 @@ linkml/generators/graphqlgen.py,sha256=6qZpI0rwg3ypsv_KrLVzXgdsJfR8LNPqgMwaRwzwn
|
|
26
26
|
linkml/generators/javagen/example_template.java.jinja2,sha256=ec4CVTv_0zS7V5Y-1E6H4lRraya10gfX7BEMBlu38X4,444
|
27
27
|
linkml/generators/javagen/java_record_template.jinja2,sha256=OQZffLSy_xR3FIhQMltvrYyVeut7l2Q-tzK7AOiVmWs,1729
|
28
28
|
linkml/generators/javagen.py,sha256=KxwupMztyCRHcSsbtTnOovuj1WamsAny0mxbYWvTiDs,5324
|
29
|
-
linkml/generators/jsonldcontextgen.py,sha256=
|
30
|
-
linkml/generators/jsonldgen.py,sha256=
|
29
|
+
linkml/generators/jsonldcontextgen.py,sha256=N_XWCx_1eS5KcWlzlyl79C-dW0gfe32v886UskD1iTU,8644
|
30
|
+
linkml/generators/jsonldgen.py,sha256=pk8Gmh2gSvXt_o7MTuJ71thNfIJuHUGkNl3yl3RIdsE,7728
|
31
31
|
linkml/generators/jsonschemagen.py,sha256=XOsYIrpA6BwtAcfh8GNGduIjpuPAsF2f_PQ1mghj_WU,27455
|
32
32
|
linkml/generators/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
33
|
linkml/generators/linkmlgen.py,sha256=1_Kt_7rD42WvCTjq0yaq1Of7jEDZR_uusyzAT-qWMHk,3471
|
34
34
|
linkml/generators/markdowngen.py,sha256=dDMyusNXLvM2raIW-_vd2AQBhDHn0P_rMeDq3QFuacs,32926
|
35
35
|
linkml/generators/namespacegen.py,sha256=vVcIyM0zlKd7XRvtdzwTwHjG4Pg49801gy4FUmjJlqQ,6450
|
36
36
|
linkml/generators/oocodegen.py,sha256=r73QI08ajbTZTobc9OIG6BMWZft3zdu76vKVR33pyYg,7774
|
37
|
-
linkml/generators/owlgen.py,sha256=
|
37
|
+
linkml/generators/owlgen.py,sha256=NqEvuJOUh4ZEe5tVeVol3SHy7zpCagEhso7Q1GLyIqY,54458
|
38
38
|
linkml/generators/plantumlgen.py,sha256=tk-_XJtBA5EqYJSUTc3bdMdCwqlC-rc9VYO9A2V_HpM,14895
|
39
|
-
linkml/generators/prefixmapgen.py,sha256
|
40
|
-
linkml/generators/projectgen.py,sha256=
|
39
|
+
linkml/generators/prefixmapgen.py,sha256=L9TccwKNHEguW0ox5qgf_GhIuqauYTI8d4jSjeqdkWo,4720
|
40
|
+
linkml/generators/projectgen.py,sha256=OuT_AneoZFNMCn50GllfZafadUHt50u61JcftM2eed4,9750
|
41
41
|
linkml/generators/protogen.py,sha256=5UxThsFDVyDTzzTDh77Z0anx4-tLgz8kQQ-e7ywIqwI,2290
|
42
|
-
linkml/generators/pydanticgen.py,sha256=
|
43
|
-
linkml/generators/
|
42
|
+
linkml/generators/pydanticgen/__init__.py,sha256=uKGaaQSaeKqinHImXGFE448i-t8Oi0No8suIO76sep8,629
|
43
|
+
linkml/generators/pydanticgen/array.py,sha256=imbHtwgQcz_uloFWDBDojIMydZw9eysQyQl6ppT5eL8,19045
|
44
|
+
linkml/generators/pydanticgen/black.py,sha256=c-Hgaao9hd4nPMU9w0Hmg2j4Wc81IcY0zAfppQPr1cM,721
|
45
|
+
linkml/generators/pydanticgen/build.py,sha256=Ia8qy4C16b-KqO_fw4tGQW_Eo4grCVyX7RsuJ3uRTtk,2681
|
46
|
+
linkml/generators/pydanticgen/pydanticgen.py,sha256=psEdNy_oJqHnTBZkQp4H8pNrFXv_y92j5oEoFcp_AEU,29809
|
47
|
+
linkml/generators/pydanticgen/template.py,sha256=7I-qch_vr1elXwJ1kxRcZEl3j6-WTLYRh8_b2DjxjyE,19911
|
48
|
+
linkml/generators/pydanticgen/templates/attribute.py.jinja,sha256=AlH_QFJJkONpzXQRGqnW4ufmjp9s9E7Q9W5r8ykNGeQ,443
|
49
|
+
linkml/generators/pydanticgen/templates/base_model.py.jinja,sha256=48y64MnC9rjNSV-nKLMeDuHN4gm15UsInhnKxh65zoM,834
|
50
|
+
linkml/generators/pydanticgen/templates/class.py.jinja,sha256=RIdkqdZS9rDILUuVqDIAWK_vATGkirLbPhdHSyHDAbY,565
|
51
|
+
linkml/generators/pydanticgen/templates/conditional_import.py.jinja,sha256=YheknDrxvepiJUzeItSL5aSbAkCdR1k0a6m6aTA4qNM,240
|
52
|
+
linkml/generators/pydanticgen/templates/enum.py.jinja,sha256=572XFQyEMZfL-G_Cj68T-NI_mUnDoFOAVJOGIKu2Hb8,338
|
53
|
+
linkml/generators/pydanticgen/templates/footer.py.jinja,sha256=WuWGJjkWDQcEPL2bGk5fdGuhO0gQRUJzpo4CQHHxQNQ,385
|
54
|
+
linkml/generators/pydanticgen/templates/imports.py.jinja,sha256=d1XFna2eOpkH8cgJML3vXwqGcocczvOcrbg6jjd4kP0,945
|
55
|
+
linkml/generators/pydanticgen/templates/module.py.jinja,sha256=SkmtWtQS7D-xBiZI-sFiYC3WYPKi3VJCj_KtaMVxexM,438
|
56
|
+
linkml/generators/pydanticgen/templates/validator.py.jinja,sha256=Yo4dubQal-HwEoJKztQkLYM5qCz1I8na2oaDlXuEpwU,532
|
57
|
+
linkml/generators/pythongen.py,sha256=AvOQZJ-OT8lMYeaT2bdexHuRPRfTK7wpbmgAdfc2lW4,52805
|
44
58
|
linkml/generators/rdfgen.py,sha256=L6F08iDUqVemXXrRbJmcOxvJTt14hR0oo8WLoqf4npw,2656
|
45
|
-
linkml/generators/
|
46
|
-
linkml/generators/
|
59
|
+
linkml/generators/shacl/__init__.py,sha256=O-M-wndKw8rMW-U8X3QCNHal-ErXP6uXZqxiQSa77l4,108
|
60
|
+
linkml/generators/shacl/ifabsent_processor.py,sha256=kV9BGA2ZPXLRfaFuW0o4jpkATvGggvrqpAo9c1UqWNE,2193
|
61
|
+
linkml/generators/shacl/shacl_data_type.py,sha256=BT3C9tdFyBQnuucPN7YQiFAKEa9yuzy-Q26X6dmOXgo,1827
|
62
|
+
linkml/generators/shaclgen.py,sha256=vCNAX15wg0h86ZplRjo721_58UHUSVHkQULTYV_1HZI,8324
|
63
|
+
linkml/generators/shexgen.py,sha256=KzhaL-A4R4peSdhY6nlDWmS-DPfnZMxMzrXhHGnA_Ag,9874
|
47
64
|
linkml/generators/sparqlgen.py,sha256=c7x8GFChKWprBx4rToSnu9qN8OleWTCenVUdZ8XSTWM,6138
|
48
65
|
linkml/generators/sqlalchemy/__init__.py,sha256=mb9AC1rIFkSiNZhhG0TAk45ol9PjS1XvsrvCjgfVUpQ,249
|
49
66
|
linkml/generators/sqlalchemy/sqlalchemy_declarative_template.py,sha256=X_Ws1NUBikMI5HuNgEhl_PIeWM-B-c2B0W9KUBH4QTg,2542
|
50
67
|
linkml/generators/sqlalchemy/sqlalchemy_imperative_template.py,sha256=u4ZpponG1h6XROrOHGOf_0H2e6xL1_s8twAOA-gx94A,1622
|
51
|
-
linkml/generators/sqlalchemygen.py,sha256=
|
52
|
-
linkml/generators/sqltablegen.py,sha256=
|
68
|
+
linkml/generators/sqlalchemygen.py,sha256=TTc1oLLwG0c1BdvDXvSfGWAJCDlVvq7Y0r0yjXcdiW4,9268
|
69
|
+
linkml/generators/sqltablegen.py,sha256=XorqF6lfZX6tHfi6O2aIjd2GU_JZx5BuERuC3P6utVE,11626
|
53
70
|
linkml/generators/sssomgen.py,sha256=yur3q7so9uwIELWZaZRzkJwNbz_ppBL7IQki9XLIM3k,6879
|
54
71
|
linkml/generators/string_template.md,sha256=kRcfic6entgIaJdpSg6GF3jcjC9wbKsCVM6wVT2qipc,1788
|
55
72
|
linkml/generators/summarygen.py,sha256=crH_Hegd4Z7G7byUtgyXoP2XtG_4iblzZsu_pE4aQrk,2887
|
56
|
-
linkml/generators/terminusdbgen.py,sha256=
|
73
|
+
linkml/generators/terminusdbgen.py,sha256=XX651NgGGoCafA45XomRU0_DhbCyNzFNiigbjcrwXFQ,4627
|
57
74
|
linkml/generators/typescriptgen.py,sha256=80Ph4RfzDoA1TRCkKaLWlh0NsCNvhakJ2RrNfMqcMmY,8577
|
58
75
|
linkml/generators/yamlgen.py,sha256=PKssrY5VHpdbOU54PVwLVLbsRqHwoOgOImlMb6DVcXM,1614
|
59
76
|
linkml/generators/yumlgen.py,sha256=lnHcLY0VwlU_i8QporSmwR62CXSV4aOCXKxRDw5AxUk,12196
|
@@ -61,7 +78,7 @@ linkml/linter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
78
|
linkml/linter/cli.py,sha256=BpQiETcRfQlZsI1-JALyU9wXPgPOm_KE_n11p0iJaC8,4494
|
62
79
|
linkml/linter/config/datamodel/.linkmllint.yaml,sha256=40rNhcL35FXQSjlVBMWnyPgplwEUqFT_sJmeZqUzxMw,292
|
63
80
|
linkml/linter/config/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
64
|
-
linkml/linter/config/datamodel/config.py,sha256=
|
81
|
+
linkml/linter/config/datamodel/config.py,sha256=WyIBA1damYcW0JI6zLxbFwcHOtSdw0prSADlJdz3zG0,17202
|
65
82
|
linkml/linter/config/datamodel/config.yaml,sha256=hh4a8RoHEsEpl-_E50SZjJD8kmHGquBdcrI4ZqNdAME,6980
|
66
83
|
linkml/linter/config/default.yaml,sha256=O3kaiwyvEO3siX2jDzuBjsCQc1b_EMe466OfRz8Gc5Q,540
|
67
84
|
linkml/linter/config/recommended.yaml,sha256=hxrRSlCZzFXr3WndWAxs2RKwuSwQxRjrvRQi-zteiYQ,198
|
@@ -72,7 +89,7 @@ linkml/linter/formatters/markdown_formatter.py,sha256=sumF2MNJYL5oipLwCftCr3AiaC
|
|
72
89
|
linkml/linter/formatters/terminal_formatter.py,sha256=xmNwlRieVCssRt3fpnNP5WWw_YXGmaBsbxFoMWufy5M,2085
|
73
90
|
linkml/linter/formatters/tsv_formatter.py,sha256=1VW-1Tv16mwhIDpHdExYpJJR3z42K5_XK2C-4mmYYdE,871
|
74
91
|
linkml/linter/linter.py,sha256=qfVV-vFT7bUJ2BmmDQteD7Jz8HZ-CNDSvnkyhJ-54H0,5113
|
75
|
-
linkml/linter/rules.py,sha256=
|
92
|
+
linkml/linter/rules.py,sha256=EuZTHtrU9YndAf2vw6QknGZSVFgsbydStsQmrUCwTKk,11502
|
76
93
|
linkml/reporting/__init__.py,sha256=Jo0V_nyEcnWhMukMW-bqW9dlbgCfaRlWm3CO-XzgU84,92
|
77
94
|
linkml/reporting/model.py,sha256=-10yNfk8wuRC48ZI-akrWvtlJ9a6RYWET2TzlZV3XXo,8622
|
78
95
|
linkml/transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -86,17 +103,17 @@ linkml/utils/converter.py,sha256=snAF-pgZBSi4ANiaKXxqtZk5w3qonJjTfI4X5OVLmUE,628
|
|
86
103
|
linkml/utils/datautils.py,sha256=QlbzwXykh5Fphfe5KxPo6_ekXfniLbHiEGJtLWjUrvY,3742
|
87
104
|
linkml/utils/datavalidator.py,sha256=kBdWaVi8IZT1bOwEJgJYx-wZAb_PTBObB9nHpYORfKA,472
|
88
105
|
linkml/utils/execute_tutorial.py,sha256=T4kHTSyz3ItJGEUZxVjR-3yLVKnOr5Ix4NMGE47-IuE,6912
|
89
|
-
linkml/utils/generator.py,sha256=
|
106
|
+
linkml/utils/generator.py,sha256=3q_PpZQxBTwpoN8lHHMkUhHm1gg0qXhiHgLWV9FIVLM,38363
|
90
107
|
linkml/utils/helpers.py,sha256=yR8n4zFA5wPcYC7xzRuNF3wO16vG80v6j7DM3qTNmIc,447
|
91
|
-
linkml/utils/ifabsent_functions.py,sha256=
|
108
|
+
linkml/utils/ifabsent_functions.py,sha256=IkcBcmRYu8sllx7_mTCqu4aHfTxX2AnQoccZ1KOODds,5843
|
92
109
|
linkml/utils/logictools.py,sha256=GSmBiobC49TcQjE08RtXEE3JwJEOV7eEREio25uJiFs,21184
|
93
110
|
linkml/utils/mergeutils.py,sha256=QVm2iQB4v_L2rSvPBsPe9C865R03BgV3TzlPoTTTwWQ,9044
|
94
111
|
linkml/utils/rawloader.py,sha256=QB7Rdvy4o4ZJEWBWa2_2xzz2TOh_6Oe4slvUn8IBVIc,4329
|
95
112
|
linkml/utils/schema_builder.py,sha256=4qhrur8O0xRZnPm7H1h2BZmTkut5R4q-IE_1KKiHy_c,9937
|
96
113
|
linkml/utils/schema_fixer.py,sha256=Uz8M3AOQ_BputJr1f6lbfk1iyvmANUNG80-0B3BQKJ8,16761
|
97
|
-
linkml/utils/schemaloader.py,sha256=
|
114
|
+
linkml/utils/schemaloader.py,sha256=XkH3ARPVcJ3ggnk4qgHJBPepyII4UlSRHzBlTWZbpCo,46062
|
98
115
|
linkml/utils/schemasynopsis.py,sha256=jKf5ZJxpNgSZ5x9oAcdGO3m1IwzcIU2Ni1ugm0SQq1g,18447
|
99
|
-
linkml/utils/sqlutils.py,sha256=
|
116
|
+
linkml/utils/sqlutils.py,sha256=FsOC3Wut6qzzmsnIt9ROsiDt2wXOa1IZUUtJ_T4Nb6M,17071
|
100
117
|
linkml/utils/typereferences.py,sha256=8Yfuz9-HAwOPoJLbIcO_sY9zf32hvPRzGeSOzECfMWA,2232
|
101
118
|
linkml/utils/validation.py,sha256=eLw1-d8x3N1V14bSc6H_mJJXo59ryKvvUIBcOJ1dVMw,1438
|
102
119
|
linkml/validator/__init__.py,sha256=djKc1IyxGKvVYaX5jSxsqjfcEYaw3rFgKbFJxI2wDNk,5002
|
@@ -124,8 +141,8 @@ linkml/workspaces/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
|
|
124
141
|
linkml/workspaces/datamodel/workspaces.py,sha256=4HdkqweGNfMPqnB1_Onc9DcTfkhoagTRcqruh08nRoI,14905
|
125
142
|
linkml/workspaces/datamodel/workspaces.yaml,sha256=EjVrwPpeRZqJRjuGyyDRxxFzuv55SiLIXPBRUG6HStU,4233
|
126
143
|
linkml/workspaces/example_runner.py,sha256=OmC_yZLIb4KXGQrstBVZL0UAQ9ZAaraguQF0RSf-snk,11611
|
127
|
-
linkml-1.7.
|
128
|
-
linkml-1.7.
|
129
|
-
linkml-1.7.
|
130
|
-
linkml-1.7.
|
131
|
-
linkml-1.7.
|
144
|
+
linkml-1.7.7.dist-info/entry_points.txt,sha256=7haDkIbyC7ZLhm5z-e3BhrLJpY2xoW1yuD8Y7QPNtVg,2093
|
145
|
+
linkml-1.7.7.dist-info/METADATA,sha256=f74yR9Byjm8tw_y28edi2dJtVwthbMwMUocjhXiy0TQ,3656
|
146
|
+
linkml-1.7.7.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
|
147
|
+
linkml-1.7.7.dist-info/LICENSE,sha256=kORMoywK6j9_iy0UvLR-a80P1Rvc9AOM4gsKlUNZABg,535
|
148
|
+
linkml-1.7.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|