linkml 1.8.2__py3-none-any.whl → 1.8.4__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/cli/main.py +4 -0
- linkml/generators/__init__.py +2 -0
- linkml/generators/common/ifabsent_processor.py +286 -0
- linkml/generators/docgen/index.md.jinja2 +6 -6
- linkml/generators/docgen.py +64 -14
- linkml/generators/golanggen.py +3 -1
- linkml/generators/jsonldcontextgen.py +0 -1
- linkml/generators/jsonschemagen.py +4 -2
- linkml/generators/owlgen.py +36 -17
- linkml/generators/projectgen.py +13 -11
- linkml/generators/pydanticgen/array.py +340 -56
- linkml/generators/pydanticgen/build.py +4 -2
- linkml/generators/pydanticgen/pydanticgen.py +46 -24
- linkml/generators/pydanticgen/template.py +108 -3
- linkml/generators/pydanticgen/templates/imports.py.jinja +11 -3
- linkml/generators/pydanticgen/templates/module.py.jinja +1 -3
- linkml/generators/pydanticgen/templates/validator.py.jinja +2 -2
- linkml/generators/python/__init__.py +1 -0
- linkml/generators/python/python_ifabsent_processor.py +92 -0
- linkml/generators/pythongen.py +19 -31
- linkml/generators/shacl/__init__.py +1 -3
- linkml/generators/shacl/shacl_data_type.py +1 -1
- linkml/generators/shacl/shacl_ifabsent_processor.py +89 -0
- linkml/generators/shaclgen.py +39 -13
- linkml/generators/sparqlgen.py +3 -1
- linkml/generators/sqlalchemygen.py +5 -3
- linkml/generators/sqltablegen.py +4 -2
- linkml/generators/typescriptgen.py +13 -6
- linkml/linter/linter.py +2 -1
- linkml/transformers/logical_model_transformer.py +3 -3
- linkml/transformers/relmodel_transformer.py +18 -4
- linkml/utils/converter.py +3 -1
- linkml/utils/exceptions.py +11 -0
- linkml/utils/execute_tutorial.py +22 -20
- linkml/utils/generator.py +6 -4
- linkml/utils/mergeutils.py +4 -2
- linkml/utils/schema_fixer.py +5 -5
- linkml/utils/schemaloader.py +5 -3
- linkml/utils/sqlutils.py +3 -1
- linkml/validator/plugins/pydantic_validation_plugin.py +1 -1
- linkml/validators/jsonschemavalidator.py +3 -1
- linkml/validators/sparqlvalidator.py +5 -3
- linkml/workspaces/example_runner.py +3 -1
- {linkml-1.8.2.dist-info → linkml-1.8.4.dist-info}/METADATA +3 -1
- {linkml-1.8.2.dist-info → linkml-1.8.4.dist-info}/RECORD +48 -45
- linkml/generators/shacl/ifabsent_processor.py +0 -59
- linkml/utils/ifabsent_functions.py +0 -138
- {linkml-1.8.2.dist-info → linkml-1.8.4.dist-info}/LICENSE +0 -0
- {linkml-1.8.2.dist-info → linkml-1.8.4.dist-info}/WHEEL +0 -0
- {linkml-1.8.2.dist-info → linkml-1.8.4.dist-info}/entry_points.txt +0 -0
linkml/utils/execute_tutorial.py
CHANGED
@@ -10,6 +10,8 @@ import click
|
|
10
10
|
|
11
11
|
from linkml._version import __version__
|
12
12
|
|
13
|
+
logger = logging.getLogger(__name__)
|
14
|
+
|
13
15
|
re_decl = re.compile(r"^(\S+):$")
|
14
16
|
re_start_yaml = re.compile(r"^```(\w+)$")
|
15
17
|
re_end_yaml = re.compile(r"^```$")
|
@@ -46,17 +48,17 @@ def execute_blocks(directory: str, blocks: List[Block]) -> List[str]:
|
|
46
48
|
:return: errors
|
47
49
|
"""
|
48
50
|
Path(directory).mkdir(parents=True, exist_ok=True)
|
49
|
-
|
51
|
+
logger.info(f"Executing in: {directory}")
|
50
52
|
last_block = None
|
51
53
|
errs = []
|
52
54
|
|
53
55
|
def err(e):
|
54
56
|
errs.append(e)
|
55
|
-
|
57
|
+
logger.error(e)
|
56
58
|
|
57
59
|
for block in blocks:
|
58
60
|
write_lines(block.prior_lines)
|
59
|
-
|
61
|
+
logger.info(f"# Block: {block.category} {block.title}")
|
60
62
|
if block.is_file_block():
|
61
63
|
path = PurePath(directory, block.title)
|
62
64
|
with open(path, "w", encoding="UTF-8") as stream:
|
@@ -73,44 +75,44 @@ def execute_blocks(directory: str, blocks: List[Block]) -> List[str]:
|
|
73
75
|
if len(outpath) > 1:
|
74
76
|
raise Exception(f"Maximum 1 token after > in {block.content}. Got: {outpath}")
|
75
77
|
outpath = str(Path(directory, *outpath))
|
76
|
-
|
78
|
+
logger.info(f"OUTPATH = {outpath}")
|
77
79
|
else:
|
78
80
|
outpath = None
|
79
|
-
|
81
|
+
logger.info(f"Executing: {cmd}")
|
80
82
|
r = subprocess.run(cmd, cwd=directory, capture_output=True)
|
81
83
|
block.output = r.stdout.decode("utf-8")
|
82
84
|
if outpath:
|
83
85
|
with open(outpath, "w", encoding="UTF-8") as stream:
|
84
|
-
|
86
|
+
logger.info(f"WRITING {len(block.output)} TO = {outpath}")
|
85
87
|
stream.write(block.output)
|
86
88
|
block.error = r.stderr.decode("utf-8")
|
87
|
-
|
89
|
+
logger.info(f"OUT [sample] = {block.output[0:30]}")
|
88
90
|
if block.expected_fail:
|
89
91
|
if r.returncode == 0:
|
90
92
|
err(f"Command unexpectedly succeeded: {cmd}")
|
91
93
|
else:
|
92
|
-
|
94
|
+
logger.info("Failed as expected")
|
93
95
|
if block.error:
|
94
|
-
|
96
|
+
logger.info(f"ERR [sample] = ...{block.error[-200:]}")
|
95
97
|
else:
|
96
98
|
if block.error:
|
97
|
-
|
99
|
+
logger.info(f"ERR = {block.error}")
|
98
100
|
if r.returncode != 0:
|
99
101
|
err(f"Command failed: {cmd}")
|
100
102
|
else:
|
101
|
-
|
103
|
+
logger.info("Success!")
|
102
104
|
elif block.is_stdout():
|
103
105
|
if "compare_rdf" in block.annotations:
|
104
|
-
|
106
|
+
logger.warning("SKIPPING RDF COMPARISON. TODO: https://github.com/linkml/linkml/issues/427")
|
105
107
|
elif last_block.output:
|
106
108
|
if last_block.output.strip() != block.content.strip():
|
107
109
|
err(f"Mismatch: {str(last_block.output)} != {block.content}")
|
108
110
|
else:
|
109
|
-
|
111
|
+
logger.info("Hurray! Contents match!")
|
110
112
|
else:
|
111
|
-
|
113
|
+
logger.info("No comparison performed")
|
112
114
|
else:
|
113
|
-
|
115
|
+
logger.warning(f"Ignoring block: {block}")
|
114
116
|
last_block = block
|
115
117
|
return errs
|
116
118
|
|
@@ -201,20 +203,20 @@ def cli(inputs, directory):
|
|
201
203
|
logging.basicConfig(level=logging.INFO)
|
202
204
|
errs = []
|
203
205
|
for input in inputs:
|
204
|
-
|
206
|
+
logger.info(f"INPUT={input}")
|
205
207
|
blocks = parse_file_to_blocks(input)
|
206
208
|
print(f"## {len(blocks)} Blocks")
|
207
209
|
localdir = Path(input).stem
|
208
210
|
subdir = PurePath(directory, localdir)
|
209
211
|
input_errs = execute_blocks(str(subdir), blocks)
|
210
212
|
if len(input_errs) > 0:
|
211
|
-
|
213
|
+
logger.error(f"TUTORIAL {input} FAILURES: {len(input_errs)}")
|
212
214
|
errs += input_errs
|
213
|
-
|
215
|
+
logger.info(f"Errors = {len(errs)}")
|
214
216
|
if len(errs) > 0:
|
215
|
-
|
217
|
+
logger.error(f"Encountered {len(errs)} Errors")
|
216
218
|
for err in errs:
|
217
|
-
|
219
|
+
logger.error(f"Error: {err}")
|
218
220
|
sys.exit(1)
|
219
221
|
|
220
222
|
|
linkml/utils/generator.py
CHANGED
@@ -54,6 +54,8 @@ from linkml.utils.mergeutils import alias_root
|
|
54
54
|
from linkml.utils.schemaloader import SchemaLoader
|
55
55
|
from linkml.utils.typereferences import References
|
56
56
|
|
57
|
+
logger = logging.getLogger(__name__)
|
58
|
+
|
57
59
|
|
58
60
|
@lru_cache
|
59
61
|
def _resolved_metamodel(mergeimports):
|
@@ -61,7 +63,7 @@ def _resolved_metamodel(mergeimports):
|
|
61
63
|
raise AssertionError(f"{LOCAL_METAMODEL_YAML_FILE} not found")
|
62
64
|
|
63
65
|
base_dir = str(Path(str(LOCAL_METAMODEL_YAML_FILE)).parent)
|
64
|
-
|
66
|
+
logger.debug(f"BASE={base_dir}")
|
65
67
|
metamodel = SchemaLoader(
|
66
68
|
LOCAL_METAMODEL_YAML_FILE,
|
67
69
|
importmap={"linkml": base_dir},
|
@@ -179,7 +181,7 @@ class Generator(metaclass=abc.ABCMeta):
|
|
179
181
|
|
180
182
|
def __post_init__(self) -> None:
|
181
183
|
if not self.logger:
|
182
|
-
self.logger =
|
184
|
+
self.logger = logger
|
183
185
|
if self.log_level is not None:
|
184
186
|
self.logger.setLevel(self.log_level)
|
185
187
|
if self.format is None:
|
@@ -203,7 +205,7 @@ class Generator(metaclass=abc.ABCMeta):
|
|
203
205
|
if self.uses_schemaloader:
|
204
206
|
self._initialize_using_schemaloader(schema)
|
205
207
|
else:
|
206
|
-
|
208
|
+
self.logger.info(f"Using SchemaView with im={self.importmap} // base_dir={self.base_dir}")
|
207
209
|
self.schemaview = SchemaView(schema, importmap=self.importmap, base_dir=self.base_dir)
|
208
210
|
if self.include:
|
209
211
|
if isinstance(self.include, (str, Path)):
|
@@ -840,7 +842,7 @@ class Generator(metaclass=abc.ABCMeta):
|
|
840
842
|
if ":" not in mapping or len(mapping.split(":")) != 2:
|
841
843
|
raise ValueError(f"Definition {defn.name} - unrecognized mapping: {mapping}")
|
842
844
|
ns = mapping.split(":")[0]
|
843
|
-
|
845
|
+
self.logger.debug(f"Adding {ns} from {mapping} // {defn}")
|
844
846
|
if ns:
|
845
847
|
self.add_prefix(ns)
|
846
848
|
|
linkml/utils/mergeutils.py
CHANGED
@@ -18,6 +18,8 @@ from linkml_runtime.utils.namespaces import Namespaces
|
|
18
18
|
from linkml_runtime.utils.yamlutils import extended_str
|
19
19
|
from rdflib import URIRef
|
20
20
|
|
21
|
+
logger = logging.getLogger(__name__)
|
22
|
+
|
21
23
|
|
22
24
|
def merge_schemas(
|
23
25
|
target: SchemaDefinition,
|
@@ -72,7 +74,7 @@ def merge_namespaces(target: SchemaDefinition, mergee: SchemaDefinition, namespa
|
|
72
74
|
# We cannot resolve this to an absolute path, so we have to assume that
|
73
75
|
# this prefix is already defined correctly in the target
|
74
76
|
if prefix.prefix_prefix not in namespaces:
|
75
|
-
|
77
|
+
logger.info(
|
76
78
|
"Adding an unadjusted relative prefix for %s from %s, "
|
77
79
|
+ "as the prefix is not yet defined, even as we cannot adjust it relative to the final file. "
|
78
80
|
+ "If it cannot be resolved, add the prefix definition to the input schema!",
|
@@ -85,7 +87,7 @@ def merge_namespaces(target: SchemaDefinition, mergee: SchemaDefinition, namespa
|
|
85
87
|
prefix.prefix_prefix in target.prefixes
|
86
88
|
and target.prefixes[prefix.prefix_prefix].prefix_reference != prefix.prefix_reference
|
87
89
|
):
|
88
|
-
|
90
|
+
logger.info(
|
89
91
|
"Ignoring different relative prefix for %s from %s, "
|
90
92
|
+ "as we cannot adjust it relative to the final file. "
|
91
93
|
+ "Assuming the first found location is correct: %s!",
|
linkml/utils/schema_fixer.py
CHANGED
@@ -94,7 +94,7 @@ class SchemaFixer:
|
|
94
94
|
tree_roots = [c for c in sv.all_classes().values() if c.tree_root]
|
95
95
|
if len(tree_roots) > 0:
|
96
96
|
if force:
|
97
|
-
|
97
|
+
logger.info("Forcing addition of containers")
|
98
98
|
else:
|
99
99
|
raise ValueError(f"Schema already has containers: {tree_roots}")
|
100
100
|
container = ClassDefinition(class_name, tree_root=True)
|
@@ -228,7 +228,7 @@ class SchemaFixer:
|
|
228
228
|
# slots within that are redundant
|
229
229
|
slot_usage_keys = list(cls.slot_usage.keys())
|
230
230
|
for slot_usage_key in slot_usage_keys:
|
231
|
-
|
231
|
+
logger.debug(f"TESTING: {class_name}.{slot_usage_key}")
|
232
232
|
slot_usage_value = cls.slot_usage[slot_usage_key]
|
233
233
|
# perform a deletion test: what can be retrieved by inference
|
234
234
|
del cls.slot_usage[slot_usage_key]
|
@@ -236,7 +236,7 @@ class SchemaFixer:
|
|
236
236
|
try:
|
237
237
|
induced_slot = sv.induced_slot(slot_usage_key, class_name)
|
238
238
|
except ValueError:
|
239
|
-
|
239
|
+
logger.warning(f"slot_usage with no slot: {slot_usage_key}")
|
240
240
|
continue
|
241
241
|
# restore value
|
242
242
|
cls.slot_usage[slot_usage_key] = slot_usage_value
|
@@ -258,7 +258,7 @@ class SchemaFixer:
|
|
258
258
|
continue
|
259
259
|
induced_v = getattr(induced_slot, metaslot_name, None)
|
260
260
|
if v is not None and v != [] and v != {} and v == induced_v:
|
261
|
-
|
261
|
+
logger.info(f"REDUNDANT: {class_name}.{slot_usage_key}[{metaslot_name}] = {v}")
|
262
262
|
to_delete.append(metaslot_name)
|
263
263
|
for metaslot_name in to_delete:
|
264
264
|
del slot_usage_value[metaslot_name]
|
@@ -302,7 +302,7 @@ class SchemaFixer:
|
|
302
302
|
if len(vals_strs) == 1:
|
303
303
|
harmonized_slot[k] = vals.pop()
|
304
304
|
elif len(vals_strs) > 1:
|
305
|
-
|
305
|
+
logger.info(f"Variable values in {slot_name}.{k}: {vals_strs}")
|
306
306
|
new_slots[str(slot_name)] = harmonized_slot
|
307
307
|
return new_slots
|
308
308
|
|
linkml/utils/schemaloader.py
CHANGED
@@ -29,6 +29,8 @@ from linkml.utils.mergeutils import merge_classes, merge_schemas, merge_slots, s
|
|
29
29
|
from linkml.utils.rawloader import load_raw_schema
|
30
30
|
from linkml.utils.schemasynopsis import SchemaSynopsis
|
31
31
|
|
32
|
+
lgr = logging.getLogger(__name__)
|
33
|
+
|
32
34
|
|
33
35
|
class SchemaLoader:
|
34
36
|
def __init__(
|
@@ -57,7 +59,7 @@ class SchemaLoader:
|
|
57
59
|
:param source_file_date: modification of source file
|
58
60
|
:param source_file_size: size of source file
|
59
61
|
"""
|
60
|
-
self.logger = logger if logger is not None else
|
62
|
+
self.logger = logger if logger is not None else lgr
|
61
63
|
if isinstance(data, SchemaDefinition):
|
62
64
|
self.schema = data
|
63
65
|
else:
|
@@ -176,7 +178,7 @@ class SchemaLoader:
|
|
176
178
|
# mangled names are overwritten if a schema with attributes is passed in
|
177
179
|
# TODO: handle this in a more graceful way
|
178
180
|
# see https://github.com/linkml/linkml/issues/872
|
179
|
-
|
181
|
+
self.logger.warning(
|
180
182
|
f'Class: "{cls.name}" attribute "{attribute.name}" - '
|
181
183
|
f"mangled name: {mangled_slot_name} already exists",
|
182
184
|
)
|
@@ -770,7 +772,7 @@ class SchemaLoader:
|
|
770
772
|
if slotname in self.schema.slots:
|
771
773
|
base_slot = self.schema.slots[slotname]
|
772
774
|
else:
|
773
|
-
|
775
|
+
self.logger.error(f"slot_usage for undefined slot: {slotname}")
|
774
776
|
base_slot = None
|
775
777
|
parent_slot = self.schema.slots.get(slot_usage.is_a)
|
776
778
|
# Follow the ancestry of the class to get the most proximal parent
|
linkml/utils/sqlutils.py
CHANGED
@@ -40,6 +40,8 @@ from linkml.utils.datautils import (
|
|
40
40
|
infer_root_class,
|
41
41
|
)
|
42
42
|
|
43
|
+
logger = logging.getLogger(__name__)
|
44
|
+
|
43
45
|
|
44
46
|
@dataclass
|
45
47
|
class SQLStore:
|
@@ -376,7 +378,7 @@ def dump(
|
|
376
378
|
|
377
379
|
inputs = [item for input in inputs for item in glob.glob(input)]
|
378
380
|
for input in inputs:
|
379
|
-
|
381
|
+
logger.info(f"Loading: {input}")
|
380
382
|
input_format = _get_format(input, input_format)
|
381
383
|
loader = get_loader(input_format)
|
382
384
|
|
@@ -37,7 +37,7 @@ class PydanticValidationPlugin(ValidationPlugin):
|
|
37
37
|
"""
|
38
38
|
pydantic_model = context.pydantic_model(closed=self.closed)
|
39
39
|
try:
|
40
|
-
instance = pydantic_model.
|
40
|
+
instance = pydantic_model.model_validate(instance)
|
41
41
|
except Exception as e:
|
42
42
|
yield ValidationResult(
|
43
43
|
type="Pydantic validation",
|
@@ -19,6 +19,8 @@ from linkml.generators.pythongen import PythonGenerator
|
|
19
19
|
from linkml.utils import datautils
|
20
20
|
from linkml.utils.datavalidator import DataValidator
|
21
21
|
|
22
|
+
logger = logging.getLogger(__name__)
|
23
|
+
|
22
24
|
|
23
25
|
class HashableSchemaDefinition(SchemaDefinition):
|
24
26
|
def __hash__(self) -> int:
|
@@ -27,7 +29,7 @@ class HashableSchemaDefinition(SchemaDefinition):
|
|
27
29
|
|
28
30
|
@lru_cache(maxsize=None)
|
29
31
|
def _generate_jsonschema(schema, top_class, closed, include_range_class_descendants):
|
30
|
-
|
32
|
+
logger.debug("Generating JSON Schema")
|
31
33
|
not_closed = not closed
|
32
34
|
return JsonSchemaGenerator(
|
33
35
|
schema=schema,
|
@@ -15,6 +15,8 @@ from linkml.reporting import CheckResult, Report
|
|
15
15
|
from linkml.utils.datautils import _get_format, dumpers_loaders, get_dumper
|
16
16
|
from linkml.utils.datavalidator import DataValidator
|
17
17
|
|
18
|
+
logger = logging.getLogger(__name__)
|
19
|
+
|
18
20
|
|
19
21
|
def sparqljson2dict(row: dict):
|
20
22
|
return {k: v["value"] for k, v in row.items()}
|
@@ -55,7 +57,7 @@ class SparqlDataValidator(DataValidator):
|
|
55
57
|
for row in qres:
|
56
58
|
invalid += row
|
57
59
|
except Exception:
|
58
|
-
|
60
|
+
logger.error(f"FAILED: {qn}")
|
59
61
|
return invalid
|
60
62
|
|
61
63
|
def validate_endpoint(self, url: str, **kwargs):
|
@@ -65,8 +67,8 @@ class SparqlDataValidator(DataValidator):
|
|
65
67
|
report = Report()
|
66
68
|
for qn, q in self.queries.items():
|
67
69
|
q += " LIMIT 20"
|
68
|
-
|
69
|
-
|
70
|
+
logger.debug(f"QUERY: {qn}")
|
71
|
+
logger.debug(f"{q}")
|
70
72
|
sw = SPARQLWrapper(url)
|
71
73
|
sw.setQuery(q)
|
72
74
|
sw.setReturnFormat(JSON)
|
@@ -24,6 +24,8 @@ from linkml._version import __version__
|
|
24
24
|
from linkml.generators.pythongen import PythonGenerator
|
25
25
|
from linkml.validator import Validator, _get_default_validator
|
26
26
|
|
27
|
+
logger = logging.getLogger(__name__)
|
28
|
+
|
27
29
|
|
28
30
|
@dataclass
|
29
31
|
class SummaryDocument:
|
@@ -134,7 +136,7 @@ class ExampleRunner:
|
|
134
136
|
input_examples = glob.glob(os.path.join(str(input_dir), f"*.{fmt}"))
|
135
137
|
input_counter_examples = glob.glob(os.path.join(str(counter_example_dir), f"*.{fmt}"))
|
136
138
|
if not input_counter_examples:
|
137
|
-
|
139
|
+
logger.warning(f"No counter examples found in {self.counter_example_input_directory}")
|
138
140
|
self.process_examples_from_list(input_examples, fmt, False)
|
139
141
|
self.process_examples_from_list(input_counter_examples, fmt, True)
|
140
142
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: linkml
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.4
|
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
|
@@ -24,6 +24,7 @@ Classifier: Programming Language :: Python :: 3.8
|
|
24
24
|
Classifier: Programming Language :: Python :: 3.9
|
25
25
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
26
26
|
Provides-Extra: black
|
27
|
+
Provides-Extra: numpydantic
|
27
28
|
Provides-Extra: shacl
|
28
29
|
Provides-Extra: tests
|
29
30
|
Requires-Dist: antlr4-python3-runtime (>=4.9.0,<4.10)
|
@@ -37,6 +38,7 @@ Requires-Dist: jsonasobj2 (>=1.0.3,<2.0.0)
|
|
37
38
|
Requires-Dist: jsonschema[format] (>=4.0.0)
|
38
39
|
Requires-Dist: linkml-dataops
|
39
40
|
Requires-Dist: linkml-runtime (>=1.8.1,<2.0.0)
|
41
|
+
Requires-Dist: numpydantic (>=1.6.1) ; (python_version >= "3.9") and (extra == "numpydantic" or extra == "tests")
|
40
42
|
Requires-Dist: openpyxl
|
41
43
|
Requires-Dist: parse
|
42
44
|
Requires-Dist: prefixcommons (>=0.1.7)
|
@@ -2,12 +2,13 @@ linkml/__init__.py,sha256=0REu65rXiOk3F1CYLzq60HiSZ2DfFySfGS6QFljZ01s,3663
|
|
2
2
|
linkml/_version.py,sha256=udxv6OEqcE89DTVMYPtetXYg8IA8Sgc6yW26-6f8C3M,310
|
3
3
|
linkml/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
linkml/cli/__main__.py,sha256=oPa7Fl2DQP40UivpIWNRr1CgwT2SQM0rhE478155zBY,80
|
5
|
-
linkml/cli/main.py,sha256
|
5
|
+
linkml/cli/main.py,sha256=83lyx36tcy95StDRtN7BmwNFCPt4As1wb0wbC3YwHKg,5386
|
6
6
|
linkml/generators/PythonGenNotes.md,sha256=wb9BPLLhF6378OKLbwSBAwmniLpwrcT5_bbfCHfLme8,51006
|
7
7
|
linkml/generators/README.md,sha256=RMzT8EblC_GEdPy5WyfXHDBXlFI6k6mz3Cx2sdpcyWI,4438
|
8
|
-
linkml/generators/__init__.py,sha256=
|
8
|
+
linkml/generators/__init__.py,sha256=2qSOnibL6KtzBW3KNqVX1gx1LQttrXlOPbbVDLLV2go,1587
|
9
9
|
linkml/generators/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
linkml/generators/common/build.py,sha256=hXf2gf1ox2hiR-D6N-qXt5w5QkISLlo1A-_GurY3yHo,2897
|
11
|
+
linkml/generators/common/ifabsent_processor.py,sha256=D8vKZLa15mc_SUyvFsE3NZfWi-c4kawYW6WdGozJLRQ,11275
|
11
12
|
linkml/generators/common/lifecycle.py,sha256=UOJXlIyWQkvsn0Dao9_ZDzlamJtiINyVJQ6SRj66L9s,4910
|
12
13
|
linkml/generators/common/template.py,sha256=bjcSNiC85MYl9oGhk0ZpqwZpRxxy_NqxG8XBV-TXXDY,3338
|
13
14
|
linkml/generators/common/type_designators.py,sha256=lgVcIRJJ-yCvVGeP9U_gQZpm77UmJBQo9Bh3lGJITno,1956
|
@@ -16,69 +17,71 @@ linkml/generators/docgen/class.md.jinja2,sha256=-JmjYHgYOaaBYd5r-Tr5dkk0CLM_lX0k
|
|
16
17
|
linkml/generators/docgen/class_diagram.md.jinja2,sha256=gzskx4hOpU_s6BqOXdYZ9DwKxuClnsEgDzPurm30PeY,3469
|
17
18
|
linkml/generators/docgen/common_metadata.md.jinja2,sha256=gy9J8rghBfKDKimwtHj_XuHY4PJRRYHLXVlBHqWrUzU,1604
|
18
19
|
linkml/generators/docgen/enum.md.jinja2,sha256=mXnUrRkleY2bOTEyAZ5c4pcUnqhs6BNa8a-4LVve-eo,1014
|
19
|
-
linkml/generators/docgen/index.md.jinja2,sha256=
|
20
|
+
linkml/generators/docgen/index.md.jinja2,sha256=suXRgJydHrxcMm3quXukaKkThtdzYA9i7BTuMAVKOP0,1502
|
20
21
|
linkml/generators/docgen/index.tex.jinja2,sha256=Go_EA-_N4JUpbOYbk3OY11mz5yV70VF2l2sMtgIPWw4,501
|
21
22
|
linkml/generators/docgen/schema.md.jinja2,sha256=xlENfnzNRYgPT_0tdqNFxgklVM4Qf5BuzhFVvSMDuxs,70
|
22
23
|
linkml/generators/docgen/slot.md.jinja2,sha256=dJHugIv9OPTi3FIn8Iez7CzjQizdXrcn0hcmCmXSgV4,3339
|
23
24
|
linkml/generators/docgen/subset.md.jinja2,sha256=EPln_fjlhlkmwEGEp2iPX-9Xm2vVodPZLlRBlYCB_sA,2705
|
24
25
|
linkml/generators/docgen/type.md.jinja2,sha256=QmCMJZrFwP33eHkggBVtypbyrxTb-XZn9vHOYojVaYk,635
|
25
|
-
linkml/generators/docgen.py,sha256=
|
26
|
+
linkml/generators/docgen.py,sha256=SAkqAZxbzHqzKrX3JQpRJr51bdr2gQKs6Bs1h-aVrmI,38711
|
26
27
|
linkml/generators/dotgen.py,sha256=vjHveFtKBItHRkowi1I4FHffcn4u4wLpBydYgVxB-vE,5028
|
27
28
|
linkml/generators/erdiagramgen.py,sha256=5_VEPvRL0I819wCjk7T5hWffdBPc_qw3XpQdOYpO7uE,11357
|
28
29
|
linkml/generators/excelgen.py,sha256=MQRRm1wDbg7auUQH9tGb5aRyrp-e4gjXsY10aoLb9LI,7708
|
29
|
-
linkml/generators/golanggen.py,sha256=
|
30
|
+
linkml/generators/golanggen.py,sha256=Qx1GZRIrKn8jNoO-8fJMjkrwV9ZLwR4NwYBW5kGGp9c,5840
|
30
31
|
linkml/generators/golrgen.py,sha256=JB92VDhTuwyaOyxHxB4goIsjZbq4NMf36ESprC3GeBs,3454
|
31
32
|
linkml/generators/graphqlgen.py,sha256=-BS-UHPyHqauUgtgcFCO4xSxxogk7BPAQFSXHIrKJT0,2163
|
32
33
|
linkml/generators/javagen/example_template.java.jinja2,sha256=ec4CVTv_0zS7V5Y-1E6H4lRraya10gfX7BEMBlu38X4,444
|
33
34
|
linkml/generators/javagen/java_record_template.jinja2,sha256=OQZffLSy_xR3FIhQMltvrYyVeut7l2Q-tzK7AOiVmWs,1729
|
34
35
|
linkml/generators/javagen.py,sha256=BTAXgvOOvRa3AOfaaiVFyuyaqg4XFR_JbO6_7tT_AnQ,5335
|
35
|
-
linkml/generators/jsonldcontextgen.py,sha256=
|
36
|
+
linkml/generators/jsonldcontextgen.py,sha256=J-9QF7doco3-hYReiik67PjiaF_UudrFEiVsbnJFCJg,8666
|
36
37
|
linkml/generators/jsonldgen.py,sha256=9ru1rb4_u7t_Rp8ILQSmDIsk_evrDL_OeilnQUsu338,7770
|
37
|
-
linkml/generators/jsonschemagen.py,sha256=
|
38
|
+
linkml/generators/jsonschemagen.py,sha256=1k00W4I4paKHKZnmcWcMEoAel1VZRHa2rVgcOZW3kZU,30424
|
38
39
|
linkml/generators/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
39
40
|
linkml/generators/linkmlgen.py,sha256=g1D8B6MBxcG6b9aYCUESp7nDZPmjedCs8rmGm_0GLnE,3484
|
40
41
|
linkml/generators/markdowngen.py,sha256=0gjMPJ0Ycm9se4Y4cyqjbTntGYqRRZu4RL-9Qf5n4lk,34464
|
41
42
|
linkml/generators/namespacegen.py,sha256=C4p9LSwsnDqf6sv-wG5l0VQniWFJ1HA1hRXJBDOg3pM,6467
|
42
43
|
linkml/generators/oocodegen.py,sha256=aBJgy-S-8FL5cW9p4hf986iSTxXwvkM7ZajKlari4us,7820
|
43
|
-
linkml/generators/owlgen.py,sha256=
|
44
|
+
linkml/generators/owlgen.py,sha256=X00YGlx8scBftKY422l6uwnvqiQpNd2DI4cDC-G0kW8,58204
|
44
45
|
linkml/generators/plantumlgen.py,sha256=ScTpXZe2Vjs2O6DeRJo-nr-p13lWSAtMZl6gu9jQYTk,15478
|
45
46
|
linkml/generators/prefixmapgen.py,sha256=oISFtSt_s5OWx65tYasWk0bUJIDIU1MjnsWqfBE7ZQA,4257
|
46
|
-
linkml/generators/projectgen.py,sha256=
|
47
|
+
linkml/generators/projectgen.py,sha256=XQdOjAJroroT2JNNPbrUauv2DTJ3tfJoFNYGSLKky24,9791
|
47
48
|
linkml/generators/protogen.py,sha256=a4KUyKj525tuE2YenEJQ_IkbNKnnhVH_N-qTEmMBVY4,2524
|
48
49
|
linkml/generators/pydanticgen/__init__.py,sha256=5SUFNcrh-6MLfMqptR6wPsR2v1Gyrl3wii-yu6kdnQM,700
|
49
|
-
linkml/generators/pydanticgen/array.py,sha256=
|
50
|
+
linkml/generators/pydanticgen/array.py,sha256=eV5zWd4dJl7Uj-xQyijibACily4IgWSEQRH8Wmga9gc,27876
|
50
51
|
linkml/generators/pydanticgen/black.py,sha256=BaJ7b-kMUbIN_cKRT3yCaMEbFwxzj1_U7w4fKQnkL44,723
|
51
|
-
linkml/generators/pydanticgen/build.py,sha256=
|
52
|
+
linkml/generators/pydanticgen/build.py,sha256=xWNnxaNz0LqfNpgUuaUeVdvmXyFASwv5QED3bEaUVaM,4093
|
52
53
|
linkml/generators/pydanticgen/includes.py,sha256=kDAwonKbhTFzrFa2TrmTYuOSHXuzDy5WHgBaI5nVY6c,504
|
53
|
-
linkml/generators/pydanticgen/pydanticgen.py,sha256=
|
54
|
-
linkml/generators/pydanticgen/template.py,sha256=
|
54
|
+
linkml/generators/pydanticgen/pydanticgen.py,sha256=IEmSPr9zu1dkgIMFvVKDswokhQvM_weXdmVNQ3l3eNQ,49938
|
55
|
+
linkml/generators/pydanticgen/template.py,sha256=7EZD_niU9bnkmtNG7zTBjLtQ5kUbKkBsidQP0X8UxFI,24828
|
55
56
|
linkml/generators/pydanticgen/templates/attribute.py.jinja,sha256=uMyVKpO5uQkAFlIvIBwA6FFZl_BSIotfwCorrSwMA3Q,873
|
56
57
|
linkml/generators/pydanticgen/templates/base_model.py.jinja,sha256=6KRQ1ZVHh1uwZnYL3qxBnyit8_DNE7D-4l2-1wsRsG0,406
|
57
58
|
linkml/generators/pydanticgen/templates/class.py.jinja,sha256=GqR2t5y0vLmvUpT2vyP5VX42PO9AkAnGE-U2RZPa9AI,690
|
58
59
|
linkml/generators/pydanticgen/templates/conditional_import.py.jinja,sha256=YheknDrxvepiJUzeItSL5aSbAkCdR1k0a6m6aTA4qNM,240
|
59
60
|
linkml/generators/pydanticgen/templates/enum.py.jinja,sha256=572XFQyEMZfL-G_Cj68T-NI_mUnDoFOAVJOGIKu2Hb8,338
|
60
61
|
linkml/generators/pydanticgen/templates/footer.py.jinja,sha256=t_24p1xmqdbfxGqz_XCXSTvkkWt26_2w_RcQjGIAWlY,155
|
61
|
-
linkml/generators/pydanticgen/templates/imports.py.jinja,sha256=
|
62
|
-
linkml/generators/pydanticgen/templates/module.py.jinja,sha256=
|
63
|
-
linkml/generators/pydanticgen/templates/validator.py.jinja,sha256=
|
64
|
-
linkml/generators/
|
62
|
+
linkml/generators/pydanticgen/templates/imports.py.jinja,sha256=vwAOWV98rM4reAUXUYQXihukTPoVDcs8D9HWsVZmTiQ,1249
|
63
|
+
linkml/generators/pydanticgen/templates/module.py.jinja,sha256=hqZKsJ72yUioBkZAunscVgLSe58OFHf0z6-so_b43U4,526
|
64
|
+
linkml/generators/pydanticgen/templates/validator.py.jinja,sha256=5vDpqdfxLpie4BzcyjE82agO6NsThIZjNlcz6gq_kFg,465
|
65
|
+
linkml/generators/python/__init__.py,sha256=NS9fPEuAo0punDplD91F9mcViXMJJv04Q5NkFcKPNvY,40
|
66
|
+
linkml/generators/python/python_ifabsent_processor.py,sha256=a98JCbMsR_Fsdaw8s299-0jFhE0V6F4zLl326ITA7lQ,3848
|
67
|
+
linkml/generators/pythongen.py,sha256=pOGoLvF-MxshwS-UJbIvqogWSwr4-sqhhpW5LMzRhbQ,52634
|
65
68
|
linkml/generators/rdfgen.py,sha256=OT8oS8MPUVf5UK3OKvRWgAh9iQiWwdyWJSA69PncOw4,2969
|
66
|
-
linkml/generators/shacl/__init__.py,sha256=
|
67
|
-
linkml/generators/shacl/
|
68
|
-
linkml/generators/shacl/
|
69
|
-
linkml/generators/shaclgen.py,sha256=
|
69
|
+
linkml/generators/shacl/__init__.py,sha256=KgMOyESGTdKk2Vhx9uuUYgEJPuJQ-iT1vDQVIMoiXCM,58
|
70
|
+
linkml/generators/shacl/shacl_data_type.py,sha256=gX3Y2KyTVPwMyef0cJMTEpU9h0oH-H0ThVDORdNW170,1828
|
71
|
+
linkml/generators/shacl/shacl_ifabsent_processor.py,sha256=hbgt5UtVHo_z_JOLkg6ltGRdVuiv65b2PA3x1Oy4ssQ,4269
|
72
|
+
linkml/generators/shaclgen.py,sha256=6MKUgvsQ8GGG9j8w8EUqwhMB4VhV2nVURYRRcg2FBfw,14330
|
70
73
|
linkml/generators/shexgen.py,sha256=-GFdapDEAUXAjsXdTI7ZlS39YfuvaxfzPkdqUNM19qI,9941
|
71
|
-
linkml/generators/sparqlgen.py,sha256=
|
74
|
+
linkml/generators/sparqlgen.py,sha256=2DaFrFIeMI7QQfiPn79J8ERILlkJALrabDnKK7usDJQ,6188
|
72
75
|
linkml/generators/sqlalchemy/__init__.py,sha256=mb9AC1rIFkSiNZhhG0TAk45ol9PjS1XvsrvCjgfVUpQ,249
|
73
76
|
linkml/generators/sqlalchemy/sqlalchemy_declarative_template.py,sha256=X_Ws1NUBikMI5HuNgEhl_PIeWM-B-c2B0W9KUBH4QTg,2542
|
74
77
|
linkml/generators/sqlalchemy/sqlalchemy_imperative_template.py,sha256=u4ZpponG1h6XROrOHGOf_0H2e6xL1_s8twAOA-gx94A,1622
|
75
|
-
linkml/generators/sqlalchemygen.py,sha256=
|
76
|
-
linkml/generators/sqltablegen.py,sha256=
|
78
|
+
linkml/generators/sqlalchemygen.py,sha256=MYzEkg8BAgFChiRNqOZK9aMqH-aNGa6-CnpZdbhFX_c,9332
|
79
|
+
linkml/generators/sqltablegen.py,sha256=BaWAuvwVHsXVt85GYxzH5_UL3ZeqRI9SojlvMmh4KkE,12395
|
77
80
|
linkml/generators/sssomgen.py,sha256=zrZy0WL9fF5bk-XAcB-MZYZkhHhqVRHt2rGBUtfqnLY,6891
|
78
81
|
linkml/generators/string_template.md,sha256=kRcfic6entgIaJdpSg6GF3jcjC9wbKsCVM6wVT2qipc,1788
|
79
82
|
linkml/generators/summarygen.py,sha256=C9r34928QtVMaXTbdch-mRPB5L0jDTGmTnVmtrKrR-0,3083
|
80
83
|
linkml/generators/terminusdbgen.py,sha256=ItJ-HTMkkX22Ex1-UjJZmtEtE2fn6UdjAxDtn20RXV8,4713
|
81
|
-
linkml/generators/typescriptgen.py,sha256=
|
84
|
+
linkml/generators/typescriptgen.py,sha256=3738AygrfEnyp0eDzpwbO4x4udLHDXX1Ev4MVM2zBwY,8814
|
82
85
|
linkml/generators/yamlgen.py,sha256=38zdh5T4tObFhCHgbUbKbc0UuFh1TmmsWBkWM9gcvsI,1625
|
83
86
|
linkml/generators/yumlgen.py,sha256=Bg1MGlhCCQoswB19mFKh8xB0UcL9MQGHlUrAVGZSWkc,12208
|
84
87
|
linkml/linter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -95,33 +98,33 @@ linkml/linter/formatters/json_formatter.py,sha256=rrOELuETUCFTl1Ewnrus9Rx9hl2g4u
|
|
95
98
|
linkml/linter/formatters/markdown_formatter.py,sha256=sumF2MNJYL5oipLwCftCr3AiaCmVhd9V6di9aYpJ29I,2605
|
96
99
|
linkml/linter/formatters/terminal_formatter.py,sha256=xmNwlRieVCssRt3fpnNP5WWw_YXGmaBsbxFoMWufy5M,2085
|
97
100
|
linkml/linter/formatters/tsv_formatter.py,sha256=1VW-1Tv16mwhIDpHdExYpJJR3z42K5_XK2C-4mmYYdE,871
|
98
|
-
linkml/linter/linter.py,sha256=
|
101
|
+
linkml/linter/linter.py,sha256=ETx1C8IbXnrCDWwpBxAz0ahY4ROYcl-pQhwp5RFjzJ8,5145
|
99
102
|
linkml/linter/rules.py,sha256=Eg_-lIX1KPsCp3PHdPcBiHmSS5qAVZkHbw5LURfkfXk,11481
|
100
103
|
linkml/reporting/__init__.py,sha256=Jo0V_nyEcnWhMukMW-bqW9dlbgCfaRlWm3CO-XzgU84,92
|
101
104
|
linkml/reporting/model.py,sha256=-10yNfk8wuRC48ZI-akrWvtlJ9a6RYWET2TzlZV3XXo,8622
|
102
105
|
linkml/transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
103
|
-
linkml/transformers/logical_model_transformer.py,sha256=
|
106
|
+
linkml/transformers/logical_model_transformer.py,sha256=hWc5uF1TYU9_qVZAKm2UtQ6ICoeWLaRCI5OUWmEy94k,29835
|
104
107
|
linkml/transformers/model_transformer.py,sha256=tK_MpRDI-q2qfe8KHT6qJHP8ZruKjYx1FcM-Fnjse-E,678
|
105
|
-
linkml/transformers/relmodel_transformer.py,sha256=
|
108
|
+
linkml/transformers/relmodel_transformer.py,sha256=2AwLVqto1to_9IaTjicweFVIPa8dcNPKK0EJWdHfWMo,19675
|
106
109
|
linkml/transformers/schema_renamer.py,sha256=DYRbgL9j41M9FdbHYLY3u4YIdDM98laD3cv_lHcgWHQ,5275
|
107
110
|
linkml/utils/__init__.py,sha256=Pkyv-Gfb8QoJdInRdJuuUz1Igfe0sT9t8Gv3V_fyTXc,92
|
108
111
|
linkml/utils/cli_utils.py,sha256=MdVbox1qr6kDUHUCWAmFhV-D6ebs_nn8vVwB8KDQfew,742
|
109
|
-
linkml/utils/converter.py,sha256=
|
112
|
+
linkml/utils/converter.py,sha256=ZGRZXsPezhMmQaF-BiBsQON--TVQLi64tEdtrN9q2PA,6334
|
110
113
|
linkml/utils/datautils.py,sha256=QlbzwXykh5Fphfe5KxPo6_ekXfniLbHiEGJtLWjUrvY,3742
|
111
114
|
linkml/utils/datavalidator.py,sha256=kBdWaVi8IZT1bOwEJgJYx-wZAb_PTBObB9nHpYORfKA,472
|
112
115
|
linkml/utils/deprecation.py,sha256=onhB82qjIkKzyUOTO9WDqN6QF3I2cJoyBrbm66vHmgM,8088
|
113
|
-
linkml/utils/
|
114
|
-
linkml/utils/
|
116
|
+
linkml/utils/exceptions.py,sha256=3S6lf5WAUgVvjPRaES597_YjUjbbJ5KqjKjpjcaRLoU,217
|
117
|
+
linkml/utils/execute_tutorial.py,sha256=X2sdb4fBBnBmNKg9k5_fhWeY9DXCbYEb4NXUCPv4TJ0,7057
|
118
|
+
linkml/utils/generator.py,sha256=04GLUdwxz5Q4K_5ICBWOlhRapCf9yOan2H5C3zUrOE4,39132
|
115
119
|
linkml/utils/helpers.py,sha256=yR8n4zFA5wPcYC7xzRuNF3wO16vG80v6j7DM3qTNmIc,447
|
116
|
-
linkml/utils/ifabsent_functions.py,sha256=IkcBcmRYu8sllx7_mTCqu4aHfTxX2AnQoccZ1KOODds,5843
|
117
120
|
linkml/utils/logictools.py,sha256=BGtcoqr_Rsu08Ywa6lNiL881uZzQmNWk1p4FEIVKYe0,23641
|
118
|
-
linkml/utils/mergeutils.py,sha256=
|
121
|
+
linkml/utils/mergeutils.py,sha256=FdcSiYUmPkxxwnEv_43SR3BN6lCUeEkNndRpxJQWE2c,9080
|
119
122
|
linkml/utils/rawloader.py,sha256=nUB8Gfn8yEVwyo6bx0TtB2mBGkilC-fybi0xvQ73Gks,4417
|
120
123
|
linkml/utils/schema_builder.py,sha256=LwaLeo65IQBHcmRD1kIxnjI1idFZyZsgfPACPow1_JY,9983
|
121
|
-
linkml/utils/schema_fixer.py,sha256=
|
122
|
-
linkml/utils/schemaloader.py,sha256=
|
124
|
+
linkml/utils/schema_fixer.py,sha256=Z_4XnyvwDDiGxtihq-U3vUTMZvbfCzAAun6cH0Elsss,16766
|
125
|
+
linkml/utils/schemaloader.py,sha256=wiqKHc28ga_qLuIDGS9BQhwhXYu1ZSUqhOebmUF1NGs,47392
|
123
126
|
linkml/utils/schemasynopsis.py,sha256=j7sNt6j-E3rmf-1qEo351Kth2kltt6crQV-dxJAGCUE,18414
|
124
|
-
linkml/utils/sqlutils.py,sha256=
|
127
|
+
linkml/utils/sqlutils.py,sha256=DkeNyVlHcFlKSHgnOmpO47JSQssqRhA9ys_0ZXkYGz4,17120
|
125
128
|
linkml/utils/typereferences.py,sha256=8Yfuz9-HAwOPoJLbIcO_sY9zf32hvPRzGeSOzECfMWA,2232
|
126
129
|
linkml/utils/validation.py,sha256=eLw1-d8x3N1V14bSc6H_mJJXo59ryKvvUIBcOJ1dVMw,1438
|
127
130
|
linkml/validator/__init__.py,sha256=u0CeorIw50Qqwa60-lIFsJXg-sOdfo90hqvLpyvvwo4,4993
|
@@ -134,7 +137,7 @@ linkml/validator/loaders/passthrough_loader.py,sha256=fQvBZqzGnpdwpZio4Mbehmsb6e
|
|
134
137
|
linkml/validator/loaders/yaml_loader.py,sha256=ZsMz-oGDkX9oPEOVcKnFRGhU9q0fKoHcL6BLOkCeB4c,914
|
135
138
|
linkml/validator/plugins/__init__.py,sha256=0ifiDqpcXVy4X7OJFm7FMYi1-6E06avNIIk9R0c6nD8,693
|
136
139
|
linkml/validator/plugins/jsonschema_validation_plugin.py,sha256=c3OjvLR5m83vppsDfkrS9nMXma_ogUxXpZuM_JIUVM4,2634
|
137
|
-
linkml/validator/plugins/pydantic_validation_plugin.py,sha256=
|
140
|
+
linkml/validator/plugins/pydantic_validation_plugin.py,sha256=gVjdJiGcZ1EuOTcCMWOUS35W3IpMJQHUgjj6lQ3-41E,1990
|
138
141
|
linkml/validator/plugins/recommended_slots_plugin.py,sha256=kOdoYQyye47nLA7BjorVmydS84nGpiVy3MoCbPq1Ymo,2308
|
139
142
|
linkml/validator/plugins/shacl_validation_plugin.py,sha256=X6h1O54m9P5USvqCvNqELD0YpzXkE6UrmxnV0ukU6E4,3888
|
140
143
|
linkml/validator/plugins/validation_plugin.py,sha256=9SMHF8b2bgG9-8351e8bY676e0A4aEBJSXvMjMF5kXg,1548
|
@@ -142,15 +145,15 @@ linkml/validator/report.py,sha256=LwFpmJ74Cvsi2CuEDhm1a8nn9x1VI3Z98DbkUZVhKMA,89
|
|
142
145
|
linkml/validator/validation_context.py,sha256=Pmccq-LQ9iEeLyZhamp3mKjjtwp4ji1hIe5TT05AUT4,2732
|
143
146
|
linkml/validator/validator.py,sha256=BFgfKdu9Nad2dc9XTpmz9daQTj_FTcvo6mBq3e8fhJs,5649
|
144
147
|
linkml/validators/__init__.py,sha256=43W3J5NPKhwa3ZFHLRYsJMocwQKWGYCF9Ki9r0ccGbc,202
|
145
|
-
linkml/validators/jsonschemavalidator.py,sha256=
|
146
|
-
linkml/validators/sparqlvalidator.py,sha256=
|
148
|
+
linkml/validators/jsonschemavalidator.py,sha256=zGDPKjr13hXHSH8g1KOzo4PXrfM_TTvpwq_jD03aVUw,8005
|
149
|
+
linkml/validators/sparqlvalidator.py,sha256=0iq-oFFLV0Juu6pJskpLOlB7AMZwU3VFvoflzW4ohH8,4660
|
147
150
|
linkml/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
148
151
|
linkml/workspaces/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
149
152
|
linkml/workspaces/datamodel/workspaces.py,sha256=4HdkqweGNfMPqnB1_Onc9DcTfkhoagTRcqruh08nRoI,14905
|
150
153
|
linkml/workspaces/datamodel/workspaces.yaml,sha256=EjVrwPpeRZqJRjuGyyDRxxFzuv55SiLIXPBRUG6HStU,4233
|
151
|
-
linkml/workspaces/example_runner.py,sha256=
|
152
|
-
linkml-1.8.
|
153
|
-
linkml-1.8.
|
154
|
-
linkml-1.8.
|
155
|
-
linkml-1.8.
|
156
|
-
linkml-1.8.
|
154
|
+
linkml/workspaces/example_runner.py,sha256=T7sHQetV6a-dG5Kjuh2L4rHQ6-SPG3Kj1J1nPB_1uoQ,11757
|
155
|
+
linkml-1.8.4.dist-info/LICENSE,sha256=kORMoywK6j9_iy0UvLR-a80P1Rvc9AOM4gsKlUNZABg,535
|
156
|
+
linkml-1.8.4.dist-info/METADATA,sha256=G7CFrUedBRAKCg2p1-QuO9aA7KgVCh0n48KlZ1RjuZc,3873
|
157
|
+
linkml-1.8.4.dist-info/entry_points.txt,sha256=jvnPJ8UTca4_L-Dh8OdUm5td8I3ZFlKRhMPjqRLtaSg,2084
|
158
|
+
linkml-1.8.4.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
|
159
|
+
linkml-1.8.4.dist-info/RECORD,,
|