linkml 1.9.4rc2__py3-none-any.whl → 1.9.5__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 +5 -1
- linkml/converter/__init__.py +0 -0
- linkml/generators/__init__.py +2 -0
- linkml/generators/common/build.py +5 -20
- linkml/generators/common/template.py +289 -3
- linkml/generators/docgen.py +55 -10
- linkml/generators/erdiagramgen.py +9 -5
- linkml/generators/graphqlgen.py +32 -6
- linkml/generators/jsonldcontextgen.py +78 -12
- linkml/generators/jsonschemagen.py +29 -12
- linkml/generators/mermaidclassdiagramgen.py +21 -3
- linkml/generators/owlgen.py +13 -2
- linkml/generators/panderagen/dataframe_class.py +13 -0
- linkml/generators/panderagen/dataframe_field.py +50 -0
- linkml/generators/panderagen/linkml_pandera_validator.py +186 -0
- linkml/generators/panderagen/panderagen.py +22 -5
- linkml/generators/panderagen/panderagen_class_based/class.jinja2 +70 -13
- linkml/generators/panderagen/panderagen_class_based/custom_checks.jinja2 +27 -0
- linkml/generators/panderagen/panderagen_class_based/enums.jinja2 +3 -3
- linkml/generators/panderagen/panderagen_class_based/pandera.jinja2 +12 -2
- linkml/generators/panderagen/panderagen_class_based/slots.jinja2 +19 -17
- linkml/generators/panderagen/slot_generator_mixin.py +143 -16
- linkml/generators/panderagen/transforms/__init__.py +19 -0
- linkml/generators/panderagen/transforms/collection_dict_model_transform.py +62 -0
- linkml/generators/panderagen/transforms/list_dict_model_transform.py +66 -0
- linkml/generators/panderagen/transforms/model_transform.py +8 -0
- linkml/generators/panderagen/transforms/nested_struct_model_transform.py +27 -0
- linkml/generators/panderagen/transforms/simple_dict_model_transform.py +86 -0
- linkml/generators/plantumlgen.py +17 -11
- linkml/generators/pydanticgen/pydanticgen.py +53 -2
- linkml/generators/pydanticgen/template.py +45 -233
- linkml/generators/pydanticgen/templates/attribute.py.jinja +1 -0
- linkml/generators/pydanticgen/templates/base_model.py.jinja +16 -2
- linkml/generators/pydanticgen/templates/imports.py.jinja +1 -1
- linkml/generators/rdfgen.py +11 -2
- linkml/generators/rustgen/__init__.py +3 -0
- linkml/generators/rustgen/build.py +97 -0
- linkml/generators/rustgen/cli.py +83 -0
- linkml/generators/rustgen/rustgen.py +1186 -0
- linkml/generators/rustgen/template.py +910 -0
- linkml/generators/rustgen/templates/Cargo.toml.jinja +42 -0
- linkml/generators/rustgen/templates/anything.rs.jinja +149 -0
- linkml/generators/rustgen/templates/as_key_value.rs.jinja +86 -0
- linkml/generators/rustgen/templates/class_module.rs.jinja +8 -0
- linkml/generators/rustgen/templates/enum.rs.jinja +70 -0
- linkml/generators/rustgen/templates/file.rs.jinja +75 -0
- linkml/generators/rustgen/templates/import.rs.jinja +4 -0
- linkml/generators/rustgen/templates/imports.rs.jinja +8 -0
- linkml/generators/rustgen/templates/lib_shim.rs.jinja +52 -0
- linkml/generators/rustgen/templates/poly.rs.jinja +9 -0
- linkml/generators/rustgen/templates/poly_containers.rs.jinja +439 -0
- linkml/generators/rustgen/templates/poly_trait.rs.jinja +15 -0
- linkml/generators/rustgen/templates/poly_trait_impl.rs.jinja +5 -0
- linkml/generators/rustgen/templates/poly_trait_impl_orsubtype.rs.jinja +5 -0
- linkml/generators/rustgen/templates/poly_trait_property.rs.jinja +8 -0
- linkml/generators/rustgen/templates/poly_trait_property_impl.rs.jinja +134 -0
- linkml/generators/rustgen/templates/poly_trait_property_match.rs.jinja +10 -0
- linkml/generators/rustgen/templates/property.rs.jinja +28 -0
- linkml/generators/rustgen/templates/pyproject.toml.jinja +10 -0
- linkml/generators/rustgen/templates/serde_utils.rs.jinja +490 -0
- linkml/generators/rustgen/templates/slot_range_as_union.rs.jinja +64 -0
- linkml/generators/rustgen/templates/struct.rs.jinja +81 -0
- linkml/generators/rustgen/templates/struct_or_subtype_enum.rs.jinja +111 -0
- linkml/generators/rustgen/templates/stub_gen.rs.jinja +71 -0
- linkml/generators/rustgen/templates/stub_utils.rs.jinja +76 -0
- linkml/generators/rustgen/templates/typealias.rs.jinja +13 -0
- linkml/generators/sqltablegen.py +18 -16
- linkml/generators/yarrrmlgen.py +173 -0
- linkml/linter/config/datamodel/config.py +160 -293
- linkml/linter/config/datamodel/config.yaml +34 -26
- linkml/linter/config/default.yaml +4 -0
- linkml/linter/config/recommended.yaml +4 -0
- linkml/linter/linter.py +1 -2
- linkml/linter/rules.py +37 -0
- linkml/utils/schema_builder.py +2 -0
- linkml/utils/schemaloader.py +76 -3
- {linkml-1.9.4rc2.dist-info → linkml-1.9.5.dist-info}/METADATA +1 -1
- {linkml-1.9.4rc2.dist-info → linkml-1.9.5.dist-info}/RECORD +82 -40
- {linkml-1.9.4rc2.dist-info → linkml-1.9.5.dist-info}/entry_points.txt +2 -1
- linkml/generators/panderagen/panderagen_class_based/mixins.jinja2 +0 -26
- /linkml/{utils/converter.py → converter/cli.py} +0 -0
- {linkml-1.9.4rc2.dist-info → linkml-1.9.5.dist-info}/WHEEL +0 -0
- {linkml-1.9.4rc2.dist-info → linkml-1.9.5.dist-info}/licenses/LICENSE +0 -0
|
@@ -37,32 +37,17 @@ classes:
|
|
|
37
37
|
Each attribute of this class represents a rule that can be enabled and possibly
|
|
38
38
|
configured by a configuration file.
|
|
39
39
|
attributes:
|
|
40
|
+
canonical_prefixes:
|
|
41
|
+
range: CanonicalPrefixesConfig
|
|
42
|
+
description: >-
|
|
43
|
+
Enforce canonical prefixes by verifying that the mappings defined in the `prefixes`
|
|
44
|
+
slot agree with those provided by the [prefixmaps](https://github.com/linkml/prefixmaps)
|
|
45
|
+
package. Not auto-fixable.
|
|
40
46
|
no_empty_title:
|
|
41
47
|
range: NoEmptyTitleConfig
|
|
42
48
|
description: >-
|
|
43
49
|
Disallow empty titles on schema elements. Autofix will transform the element's
|
|
44
50
|
name into a title.
|
|
45
|
-
permissible_values_format:
|
|
46
|
-
range: PermissibleValuesFormatRuleConfig
|
|
47
|
-
description: >-
|
|
48
|
-
Enforce consistent formatting of enum permissible values. This rule may conflict
|
|
49
|
-
with the standard_naming rule. Not auto-fixable.
|
|
50
|
-
tree_root_class:
|
|
51
|
-
range: TreeRootClassRuleConfig
|
|
52
|
-
description: >-
|
|
53
|
-
Require a single class with `tree_root: true` and optionally verify that class's
|
|
54
|
-
name. Autofix will create a new class with `tree_root: true`, a name based on
|
|
55
|
-
the rule configuration, and slots for existing classes.
|
|
56
|
-
recommended:
|
|
57
|
-
range: RecommendedRuleConfig
|
|
58
|
-
description: >-
|
|
59
|
-
Require any slot in the metamodel with `recommended: true` (e.g. description)
|
|
60
|
-
to be provided. Not auto-fixable.
|
|
61
|
-
no_xsd_int_type:
|
|
62
|
-
range: RuleConfig
|
|
63
|
-
description: >-
|
|
64
|
-
Disallow use of `uri: xsd:int` in type definitions. Autofix will change the
|
|
65
|
-
uri to xsd:integer.
|
|
66
51
|
no_invalid_slot_usage:
|
|
67
52
|
range: RuleConfig
|
|
68
53
|
description: >-
|
|
@@ -78,6 +63,29 @@ classes:
|
|
|
78
63
|
description: >-
|
|
79
64
|
Disallow the use of ranges in slot specifications if any of the ranges used
|
|
80
65
|
do not refer to an existing type, class, or enum. Not auto-fixable.
|
|
66
|
+
no_xsd_int_type:
|
|
67
|
+
range: RuleConfig
|
|
68
|
+
description: >-
|
|
69
|
+
Disallow use of `uri: xsd:int` in type definitions. Autofix will change the
|
|
70
|
+
uri to xsd:integer.
|
|
71
|
+
one_identifier_per_class:
|
|
72
|
+
range: RuleConfig
|
|
73
|
+
description: >-
|
|
74
|
+
Ensure that there is only one slot with the `identifier` attribute set to True per class.
|
|
75
|
+
one_key_per_class:
|
|
76
|
+
range: RuleConfig
|
|
77
|
+
description: >-
|
|
78
|
+
Ensure that there is only one slot with the `key` attribute set to True per class.
|
|
79
|
+
permissible_values_format:
|
|
80
|
+
range: PermissibleValuesFormatRuleConfig
|
|
81
|
+
description: >-
|
|
82
|
+
Enforce consistent formatting of enum permissible values. This rule may conflict
|
|
83
|
+
with the standard_naming rule. Not auto-fixable.
|
|
84
|
+
recommended:
|
|
85
|
+
range: RecommendedRuleConfig
|
|
86
|
+
description: >-
|
|
87
|
+
Require any slot in the metamodel with `recommended: true` (e.g. description)
|
|
88
|
+
to be provided. Not auto-fixable.
|
|
81
89
|
root_type_checks:
|
|
82
90
|
range: RuleConfig
|
|
83
91
|
description: >-
|
|
@@ -90,12 +98,12 @@ classes:
|
|
|
90
98
|
CamelCase for enums, snake_case (default) or UPPER_SNAKE for permissible_values
|
|
91
99
|
(see permissible_values_upper_case option). This rule may conflict with the
|
|
92
100
|
permissible_values_format rule. Not auto-fixable.
|
|
93
|
-
|
|
94
|
-
range:
|
|
101
|
+
tree_root_class:
|
|
102
|
+
range: TreeRootClassRuleConfig
|
|
95
103
|
description: >-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
104
|
+
Require a single class with `tree_root: true` and optionally verify that class's
|
|
105
|
+
name. Autofix will create a new class with `tree_root: true`, a name based on
|
|
106
|
+
the rule configuration, and slots for existing classes.
|
|
99
107
|
|
|
100
108
|
RuleConfig:
|
|
101
109
|
description: >-
|
linkml/linter/linter.py
CHANGED
|
@@ -45,8 +45,7 @@ def get_metamodel_validator() -> Validator:
|
|
|
45
45
|
meta_json_gen = JsonSchemaGenerator(LOCAL_METAMODEL_YAML_FILE, not_closed=False)
|
|
46
46
|
meta_json_schema = meta_json_gen.generate()
|
|
47
47
|
validator_cls = jsonschema.validators.validator_for(meta_json_schema, default=jsonschema.Draft7Validator)
|
|
48
|
-
|
|
49
|
-
return validator
|
|
48
|
+
return validator_cls(meta_json_schema, format_checker=validator_cls.FORMAT_CHECKER)
|
|
50
49
|
|
|
51
50
|
|
|
52
51
|
def merge_configs(original: dict, other: dict):
|
linkml/linter/rules.py
CHANGED
|
@@ -319,6 +319,43 @@ class RootTypeChecks(LinterRule):
|
|
|
319
319
|
yield LinterProblem(f"Root type '{t}' is missing the required 'uri' attribute")
|
|
320
320
|
|
|
321
321
|
|
|
322
|
+
class OnePerClass(LinterRule):
|
|
323
|
+
"""Ensures that there is only one slot with the specified attribute per class."""
|
|
324
|
+
|
|
325
|
+
id = "one_per_class"
|
|
326
|
+
|
|
327
|
+
def _check(self, schema_view: SchemaView, attr_name: str) -> Iterable[LinterProblem]:
|
|
328
|
+
for cn in schema_view.all_classes():
|
|
329
|
+
slots_with_attr = [
|
|
330
|
+
slot
|
|
331
|
+
for slot in schema_view.class_induced_slots(cn)
|
|
332
|
+
if hasattr(slot, attr_name) and getattr(slot, attr_name)
|
|
333
|
+
]
|
|
334
|
+
if len(slots_with_attr) > 1:
|
|
335
|
+
naughty_slots = ", ".join(sorted([slot.name for slot in slots_with_attr]))
|
|
336
|
+
yield LinterProblem(f"Class '{cn}' has more than one '{attr_name}' slot: {naughty_slots}")
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
class OneIdentifierPerClass(OnePerClass):
|
|
340
|
+
"""Ensure that there is only one slot with the `identifier` attribute set to True per class."""
|
|
341
|
+
|
|
342
|
+
id = "one_identifier_per_class"
|
|
343
|
+
|
|
344
|
+
def check(self, schema_view: SchemaView, fix: bool = False) -> Iterable[LinterProblem]:
|
|
345
|
+
"""Run the one_identifier_per_class check."""
|
|
346
|
+
return self._check(schema_view, "identifier")
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
class OneKeyPerClass(OnePerClass):
|
|
350
|
+
"""Ensure that there is only one slot with the `key` attribute set to True per class."""
|
|
351
|
+
|
|
352
|
+
id = "one_key_per_class"
|
|
353
|
+
|
|
354
|
+
def check(self, schema_view: SchemaView, fix: bool = False) -> Iterable[LinterProblem]:
|
|
355
|
+
"""Run the one_key_per_class check."""
|
|
356
|
+
return self._check(schema_view, "key")
|
|
357
|
+
|
|
358
|
+
|
|
322
359
|
class StandardNamingRule(LinterRule):
|
|
323
360
|
id = "standard_naming"
|
|
324
361
|
|
linkml/utils/schema_builder.py
CHANGED
|
@@ -193,6 +193,8 @@ class SchemaBuilder:
|
|
|
193
193
|
if isinstance(pv, str):
|
|
194
194
|
pv = PermissibleValue(text=pv)
|
|
195
195
|
enum_def.permissible_values[pv.text] = pv
|
|
196
|
+
else:
|
|
197
|
+
enum_def.permissible_values[pv.text] = pv
|
|
196
198
|
return self
|
|
197
199
|
|
|
198
200
|
def add_prefix(self, prefix: str, url: str, replace_if_present=False) -> "SchemaBuilder":
|
linkml/utils/schemaloader.py
CHANGED
|
@@ -401,10 +401,83 @@ class SchemaLoader:
|
|
|
401
401
|
# Inline any class definitions that don't have identifiers. Note that keys ARE inlined
|
|
402
402
|
if slot.range in self.schema.classes:
|
|
403
403
|
range_class = self.schema.classes[cast(ClassDefinitionName, slot.range)]
|
|
404
|
-
|
|
404
|
+
range_has_identifier = any(
|
|
405
405
|
[self.schema.slots[s].identifier or self.schema.slots[s].key for s in range_class.slots]
|
|
406
|
-
)
|
|
407
|
-
|
|
406
|
+
)
|
|
407
|
+
# the inference and validation of class inlining is quite complex
|
|
408
|
+
# slot.inlined and slot.inlined_as_list can have three different values:
|
|
409
|
+
# True, False or None (if nothing specified in the schema)
|
|
410
|
+
# range_has_identifier can only be True or False
|
|
411
|
+
if range_has_identifier is True:
|
|
412
|
+
if slot.inlined is False:
|
|
413
|
+
if slot.inlined_as_list is True:
|
|
414
|
+
slot.inlined = True
|
|
415
|
+
# TODO: do not override a given value, but raise an exception
|
|
416
|
+
self.logger.warning(
|
|
417
|
+
f"Slot '{slot.name}': 'inlining' as list requested. "
|
|
418
|
+
+ "Overriding inconsistent `inlined: False`!!"
|
|
419
|
+
)
|
|
420
|
+
elif slot.inlined_as_list is False:
|
|
421
|
+
self.logger.warning(
|
|
422
|
+
f"Slot '{slot.name}': Specifying a value for 'inlined_as_list' does not "
|
|
423
|
+
+ "make any sense for non-inlined classes."
|
|
424
|
+
)
|
|
425
|
+
elif slot.inlined is None:
|
|
426
|
+
if slot.inlined_as_list is True:
|
|
427
|
+
slot.inlined = True
|
|
428
|
+
self.logger.info(
|
|
429
|
+
f"Slot '{slot.name}': A value for 'inlined_as_list' specified, but no 'inlined' "
|
|
430
|
+
+ "specification. `inlined: True` has been automatically set!"
|
|
431
|
+
)
|
|
432
|
+
elif slot.inlined_as_list is False:
|
|
433
|
+
# TODO: decide if `inlined` should be set or not and implement accordingly
|
|
434
|
+
self.logger.warning(
|
|
435
|
+
f"Slot '{slot.name}': A value for 'inlined_as_list' specified, but no "
|
|
436
|
+
+ "'inlined' specification."
|
|
437
|
+
)
|
|
438
|
+
elif slot.inlined is True:
|
|
439
|
+
if slot.inlined_as_list is None:
|
|
440
|
+
slot.inlined_as_list = False
|
|
441
|
+
self.logger.info(
|
|
442
|
+
f"Slot '{slot.name}': A class with identifiers ({range_class.name}) will be "
|
|
443
|
+
+ "'inlined' as a dictionary. `inlined_as_list: False` has been set!"
|
|
444
|
+
)
|
|
445
|
+
else:
|
|
446
|
+
if slot.inlined is True:
|
|
447
|
+
if slot.inlined_as_list is False:
|
|
448
|
+
self.logger.warning(
|
|
449
|
+
f"Slot '{slot.name}': A class without identifiers ({range_class.name}) cannot be "
|
|
450
|
+
+ "'inlined' as a dictionary."
|
|
451
|
+
)
|
|
452
|
+
elif slot.inlined_as_list is None:
|
|
453
|
+
slot.inlined_as_list = True
|
|
454
|
+
self.logger.info(
|
|
455
|
+
f"Slot '{slot.name}': A class without identifiers ({range_class.name}) will not be "
|
|
456
|
+
+ "typically 'inlined' as a dictionary. `inlined_as_list: True` has been set!"
|
|
457
|
+
)
|
|
458
|
+
elif slot.inlined is False:
|
|
459
|
+
slot.inlined = True
|
|
460
|
+
self.logger.info(
|
|
461
|
+
f"Slot '{slot.name}': A class without identifiers ({range_class.name}) MUST be "
|
|
462
|
+
+ "'inlined', but non-inlined specified. `inlined: True` has been automatically set!"
|
|
463
|
+
)
|
|
464
|
+
else:
|
|
465
|
+
slot.inlined = True
|
|
466
|
+
self.logger.info(
|
|
467
|
+
f"Slot '{slot.name}': A class without identifiers ({range_class.name}) MUST be "
|
|
468
|
+
+ "inlined, but nothing specified. `inlined: True` has been automatically set!"
|
|
469
|
+
)
|
|
470
|
+
if slot.inlined_as_list is False:
|
|
471
|
+
self.logger.warning(
|
|
472
|
+
f"Slot '{slot.name}': A class without identifiers ({range_class.name}) cannot be "
|
|
473
|
+
+ "'inlined' as a dictionary."
|
|
474
|
+
)
|
|
475
|
+
elif slot.inlined_as_list is None:
|
|
476
|
+
slot.inlined_as_list = True
|
|
477
|
+
self.logger.info(
|
|
478
|
+
f"Slot '{slot.name}': A class without identifiers ({range_class.name}) will not be "
|
|
479
|
+
+ "typically 'inlined' as a dictionary. `inlined_as_list: True` has been set!"
|
|
480
|
+
)
|
|
408
481
|
|
|
409
482
|
if slot.slot_uri is not None:
|
|
410
483
|
slot.mappings.insert(0, slot.slot_uri)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: linkml
|
|
3
|
-
Version: 1.9.
|
|
3
|
+
Version: 1.9.5
|
|
4
4
|
Summary: Linked Open Data Modeling Language
|
|
5
5
|
Author: Deepak Unni
|
|
6
6
|
Author-email: Chris Mungall <cjmungall@lbl.gov>, Sierra Moxon <smoxon@lbl.gov>, Harold Solbrig <solbrig@jhu.edu>, Sujay Patil <spatil@lbl.gov>, Harshad Hegde <hhegde@lbl.gov>, Mark Andrew Miller <MAM@lbl.gov>, Gaurav Vaidya <gaurav@renci.org>, Kevin Schaper <kevin@tislab.org>
|
|
@@ -3,53 +3,56 @@ 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
5
|
linkml/cli/logging.py,sha256=MdVbox1qr6kDUHUCWAmFhV-D6ebs_nn8vVwB8KDQfew,742
|
|
6
|
-
linkml/cli/main.py,sha256=
|
|
6
|
+
linkml/cli/main.py,sha256=IyLP0yZV4J51rhmw9wdX_4XNKehYlk3L3sBvwv02pXk,5804
|
|
7
|
+
linkml/converter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
+
linkml/converter/cli.py,sha256=0xcUXdVPUXZvVuHivUibfVMoCd24oPsjYU1M17H173U,7121
|
|
7
9
|
linkml/generators/PythonGenNotes.md,sha256=SOzZhIBP_O8g46uBTnYy6A7nuP--hh-f_QXEERZRxdk,50822
|
|
8
10
|
linkml/generators/README.md,sha256=fnkmT98lspv8a8FyBLOQsHoBKQaapFGb8H_Stg56dco,4436
|
|
9
|
-
linkml/generators/__init__.py,sha256=
|
|
11
|
+
linkml/generators/__init__.py,sha256=DGSaQ3JOAjI1VwjZQXmU6IPZdAfoBC2ma-N4aRgvGKY,1742
|
|
10
12
|
linkml/generators/csvgen.py,sha256=gPwX5GuwToD2KQF7SrINatqwMYY-54ZsgDTgYH1EM1Y,3242
|
|
11
13
|
linkml/generators/dbmlgen.py,sha256=6TvpdvTEPoprdBHuJpbfIb1Ejwpp20kGNUvW5Av7cpo,5465
|
|
12
|
-
linkml/generators/docgen.py,sha256=
|
|
14
|
+
linkml/generators/docgen.py,sha256=oB-oN1HFCpVOxBBG__Baka7qOZLR4w_s3vcN5m70xs4,45384
|
|
13
15
|
linkml/generators/dotgen.py,sha256=DR1tC-vZ7Vj-NxEkE-zOPGrwPUIk5Bo2LISsJpS0rUk,5022
|
|
14
|
-
linkml/generators/erdiagramgen.py,sha256=
|
|
16
|
+
linkml/generators/erdiagramgen.py,sha256=dZ1RfZize7fLEdXSO5DyVAyvC8dIFDCSRrZzyw0hodc,12317
|
|
15
17
|
linkml/generators/excelgen.py,sha256=81x0Ib13ZjLC5WBWsH0aePn8swv_pjZnwV4X-T4q4Jc,7684
|
|
16
18
|
linkml/generators/golanggen.py,sha256=oBXY0gUz2OzI8uKjubUT9WeBJ4TdoOYUqXxNqeEG1gM,5834
|
|
17
19
|
linkml/generators/golrgen.py,sha256=92hswWdusngnGDGD3vpX_iHbIDYRZrRV5xWkpxG7nxw,3448
|
|
18
|
-
linkml/generators/graphqlgen.py,sha256=
|
|
20
|
+
linkml/generators/graphqlgen.py,sha256=I3zWuMOKjZz5KfA-nyJi_RWVfJdDQ8RUccwuXeoTQik,4775
|
|
19
21
|
linkml/generators/javagen.py,sha256=BTAXgvOOvRa3AOfaaiVFyuyaqg4XFR_JbO6_7tT_AnQ,5335
|
|
20
|
-
linkml/generators/jsonldcontextgen.py,sha256=
|
|
22
|
+
linkml/generators/jsonldcontextgen.py,sha256=JBgfOgjeOBoc0fFlPdKqn-zBeKRs5GopZVH0ltlBU1o,11355
|
|
21
23
|
linkml/generators/jsonldgen.py,sha256=pHSCmZ_qKdzVot_J8XFhPAyYOUYap7Vt6NGigM0-SQ0,7842
|
|
22
|
-
linkml/generators/jsonschemagen.py,sha256=
|
|
24
|
+
linkml/generators/jsonschemagen.py,sha256=bGa6nvazlUjCN-G5RbdLaUHoyxEDPfnfuCJ85jrRqfw,31758
|
|
23
25
|
linkml/generators/linkmlgen.py,sha256=j8T7O-_i7JAa87EnHgSqmdeD4RsXOD66MqZU7P-tX2c,4221
|
|
24
26
|
linkml/generators/markdowngen.py,sha256=_4RfmuMNR-m90QdmbG26iFQC_ZSaUBDUWPX_hsqZPLY,35530
|
|
25
|
-
linkml/generators/mermaidclassdiagramgen.py,sha256=
|
|
27
|
+
linkml/generators/mermaidclassdiagramgen.py,sha256=Zr926xS1K2MqD3K3x9zb9w_ot1T0wyj9U_1ZHZTN2n4,5984
|
|
26
28
|
linkml/generators/namespacegen.py,sha256=C4p9LSwsnDqf6sv-wG5l0VQniWFJ1HA1hRXJBDOg3pM,6467
|
|
27
29
|
linkml/generators/oocodegen.py,sha256=dgcHhpO81qC2Tx-kG_VhZVaoRjOwrcrulIXV8gEU1bY,7808
|
|
28
|
-
linkml/generators/owlgen.py,sha256
|
|
29
|
-
linkml/generators/plantumlgen.py,sha256=
|
|
30
|
+
linkml/generators/owlgen.py,sha256=-eCqd0QF_3k0sT6Qjl-uSVGpEGOYtip8wQEfZeovUNo,58581
|
|
31
|
+
linkml/generators/plantumlgen.py,sha256=KUmx25wCcUJrnaOqXJ3EyCx12f9YK2wlrWGOFifKcJc,16053
|
|
30
32
|
linkml/generators/prefixmapgen.py,sha256=X-3K1q5WcSS8TL7rHBOL4qBGBk2Szr7l1_UzRQVvFGA,4246
|
|
31
33
|
linkml/generators/projectgen.py,sha256=qvXIWDfrPYKZT38JCyItQjW1AZofJ4ZyPZeUkscZxOo,9586
|
|
32
34
|
linkml/generators/protogen.py,sha256=a4KUyKj525tuE2YenEJQ_IkbNKnnhVH_N-qTEmMBVY4,2524
|
|
33
35
|
linkml/generators/pythongen.py,sha256=soc3EgUpp1dYwRWx--aVGWo9emCNhj9TvcJsUNunlwE,55847
|
|
34
|
-
linkml/generators/rdfgen.py,sha256=
|
|
36
|
+
linkml/generators/rdfgen.py,sha256=X_N_x-EWvcFimsRi7tKnEAKmzOCTM7Z-O5BQgFzYRcY,3458
|
|
35
37
|
linkml/generators/shaclgen.py,sha256=qas_rqhwx7IpnIKAKOtxUTPB7EdhiCcTOLVJQbLOOsk,15277
|
|
36
38
|
linkml/generators/shexgen.py,sha256=fVwrYRifsojiPu6vM1oNwnkSEp4uX-QognHOExJs0cY,9933
|
|
37
39
|
linkml/generators/sparqlgen.py,sha256=1WjZQFNk3QXMaJhVeztJ1uWg8qojLyGGBdAKSjpVQaI,6176
|
|
38
40
|
linkml/generators/sqlalchemygen.py,sha256=b8vrigGOso66qQrZKlvawRDz-1oDu5LyL-X4F-mkTdc,9053
|
|
39
|
-
linkml/generators/sqltablegen.py,sha256=
|
|
41
|
+
linkml/generators/sqltablegen.py,sha256=BpqE8rTCDrN89usf2-4iijdVOXyWDSNyZlv-DA4KD24,18279
|
|
40
42
|
linkml/generators/sssomgen.py,sha256=zrZy0WL9fF5bk-XAcB-MZYZkhHhqVRHt2rGBUtfqnLY,6891
|
|
41
43
|
linkml/generators/string_template.md,sha256=UMEgU5-JLBEoSpoZ0SKuzcZV6El3vcApm-cvsegsE1c,1780
|
|
42
44
|
linkml/generators/summarygen.py,sha256=abNd39Z-Kn3FX2fjXLeCqvXvFunpqM7UFPimtiCB2p0,3081
|
|
43
45
|
linkml/generators/terminusdbgen.py,sha256=Zizvh_GLBO9LK_X11gUvB_Ip1ttkkfiD4OZBtxjgAG4,4669
|
|
44
46
|
linkml/generators/typescriptgen.py,sha256=wRnZpZ3LEepJRFYHVNP06PX5rPFzIDPglDRxi0Z6Zro,8870
|
|
45
47
|
linkml/generators/yamlgen.py,sha256=PWexYoR3wHRoAUk6zK67fRYjBF6sAmX_iGlOAT0PJq0,1623
|
|
48
|
+
linkml/generators/yarrrmlgen.py,sha256=jEQo6k_w_S3HeYoMm0C5lDDqrXaB_ZMADSJ1i35KCww,5865
|
|
46
49
|
linkml/generators/yumlgen.py,sha256=ZK42N3hJPvvOdztOWCwysARrGVWjg5V4Qx2XcS2Vvgc,13277
|
|
47
50
|
linkml/generators/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
|
-
linkml/generators/common/build.py,sha256=
|
|
51
|
+
linkml/generators/common/build.py,sha256=3SxiwOp9bzrt9XVQqgegstGEuiibnG0-4gdlIAiRBtE,2394
|
|
49
52
|
linkml/generators/common/ifabsent_processor.py,sha256=qefNF_rd24DxF4IGAynR9J7zWGH-oMfDULNbFMvZalA,13527
|
|
50
53
|
linkml/generators/common/lifecycle.py,sha256=Rx9q8shhS_e-4Hx_06wOVR1ZW7I3rqNS8_bOM-r9eCw,5541
|
|
51
54
|
linkml/generators/common/naming.py,sha256=KkY3KCTX3DM30VbPjfIS6icEc-IxUNF9hE8GXreDAv4,5081
|
|
52
|
-
linkml/generators/common/template.py,sha256
|
|
55
|
+
linkml/generators/common/template.py,sha256=-ZuokNyzB8hnHt9t3hJ69ezeRCGiFE7Iy3ufZlmMF4o,15117
|
|
53
56
|
linkml/generators/common/type_designators.py,sha256=ORA9siVxHUXqn3TMuun81m_whqZcX3Zrnn1FDf6dK7c,1931
|
|
54
57
|
linkml/generators/docgen/class.md.jinja2,sha256=2QI-9DpqZ9XJc-g2RwiBa2EkWeDeg4j4HH5cxgE_A3w,4336
|
|
55
58
|
linkml/generators/docgen/class_diagram.md.jinja2,sha256=UCpMYgzbcRsXpb7TnUsCUqIu0yWCEOvPB6o7IOvZFuA,3728
|
|
@@ -66,33 +69,73 @@ linkml/generators/javagen/java_record_template.jinja2,sha256=OQZffLSy_xR3FIhQMlt
|
|
|
66
69
|
linkml/generators/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
70
|
linkml/generators/panderagen/__init__.py,sha256=Bcthn0rKU6xzQoBU--hfTUJwyOvKjASGICYamEglzcQ,109
|
|
68
71
|
linkml/generators/panderagen/class_generator_mixin.py,sha256=LKdpKb1_pyBN3iyhzsQE_Q9A3S9CnXj0RQUDQw0_Ly4,826
|
|
72
|
+
linkml/generators/panderagen/dataframe_class.py,sha256=doTlpoXXNJ0unMtFOQHDyDsmfMYot2dfOpXVh4fBCuU,431
|
|
73
|
+
linkml/generators/panderagen/dataframe_field.py,sha256=TscZrXJS_pjckKiXD3aIsi8lU2Gvy5Yw9fPHCZfp71U,1461
|
|
69
74
|
linkml/generators/panderagen/enum_generator_mixin.py,sha256=CMILBMjP35L8HHdp7WuO0dAHe9zEVBvN5CBSQlq41_g,708
|
|
70
|
-
linkml/generators/panderagen/
|
|
71
|
-
linkml/generators/panderagen/
|
|
72
|
-
linkml/generators/panderagen/
|
|
73
|
-
linkml/generators/panderagen/panderagen_class_based/
|
|
75
|
+
linkml/generators/panderagen/linkml_pandera_validator.py,sha256=lGzngQVtq2QAVhCVBaQhunZBWq-CqHAQMT6_bVwwXmE,7554
|
|
76
|
+
linkml/generators/panderagen/panderagen.py,sha256=U7AJpEIxy_NcyVqAgxWAqlmaYa3jCFD5lxD6qJ4nEtI,7031
|
|
77
|
+
linkml/generators/panderagen/slot_generator_mixin.py,sha256=Y8z8HEyWxy4tGIDv9gr3T-RfupyrzsPinws3Ey7diUc,8202
|
|
78
|
+
linkml/generators/panderagen/panderagen_class_based/class.jinja2,sha256=NlLz2plxCpcNXBi0Mm7IiLbRJiwCb7ty82i1gqVdy94,2311
|
|
79
|
+
linkml/generators/panderagen/panderagen_class_based/custom_checks.jinja2,sha256=HwtAHT2cxsne8ACyYlhUUCkAt8cJyE5YUon1jJb0bhE,897
|
|
80
|
+
linkml/generators/panderagen/panderagen_class_based/enums.jinja2,sha256=wgrDEc_rU4GGZkc2e0Fqpt264ftH-jB8kdZ386zc7G4,272
|
|
74
81
|
linkml/generators/panderagen/panderagen_class_based/header.jinja2,sha256=shLPwNAjIPMgR7uoqZWUxo4a_OtV15ywSjYh0m9dIKo,396
|
|
75
|
-
linkml/generators/panderagen/panderagen_class_based/
|
|
76
|
-
linkml/generators/panderagen/panderagen_class_based/
|
|
77
|
-
linkml/generators/panderagen/
|
|
82
|
+
linkml/generators/panderagen/panderagen_class_based/pandera.jinja2,sha256=gkON1BzEyIaMl47ZZDqtAYUXErJDNyTY9nSrz-p-Lis,769
|
|
83
|
+
linkml/generators/panderagen/panderagen_class_based/slots.jinja2,sha256=u_pzArB7QFxpfQCro55l22F1c4qwJL0DcBgKbPBs9Mc,1582
|
|
84
|
+
linkml/generators/panderagen/transforms/__init__.py,sha256=lWhHmiw1H5DAaHwEcNIOMCx4F3wG_NM7cIlwJAtfdt8,690
|
|
85
|
+
linkml/generators/panderagen/transforms/collection_dict_model_transform.py,sha256=o1K1JqzIrOKtLfokHYOZ0SZ9dkPpqMVwyzq6jEP8SAw,2580
|
|
86
|
+
linkml/generators/panderagen/transforms/list_dict_model_transform.py,sha256=-Dhb7_rSupAsaitMw0KOo8dK3yo_ZLKlnqXO7HCe_GM,2443
|
|
87
|
+
linkml/generators/panderagen/transforms/model_transform.py,sha256=ZAD7jW1xqe6UU7bWOQ8dV2qs8MrfIR6bQ0GYXLVwlt0,225
|
|
88
|
+
linkml/generators/panderagen/transforms/nested_struct_model_transform.py,sha256=eeJwywRsCVPX9o9ZAor_PPx-yTM0CNE1nX02BmOw9W8,1050
|
|
89
|
+
linkml/generators/panderagen/transforms/simple_dict_model_transform.py,sha256=O2hF4MSCN9i89hzIkDxvkbAJf1zOKPnRQlzjo4ZCjUc,3549
|
|
78
90
|
linkml/generators/pydanticgen/__init__.py,sha256=5SUFNcrh-6MLfMqptR6wPsR2v1Gyrl3wii-yu6kdnQM,700
|
|
79
91
|
linkml/generators/pydanticgen/array.py,sha256=TD3_LStHfGGY1TI7jn_9DeyvLMBmgM4kc0JeOWGzSbs,25803
|
|
80
92
|
linkml/generators/pydanticgen/black.py,sha256=BaJ7b-kMUbIN_cKRT3yCaMEbFwxzj1_U7w4fKQnkL44,723
|
|
81
93
|
linkml/generators/pydanticgen/build.py,sha256=KVRiaJ-o1OuRGyeli8PYDOJPqeSVoKfoibsjffoXeFU,4064
|
|
82
94
|
linkml/generators/pydanticgen/includes.py,sha256=qwC8Lj2enFMLLNbaOlZINra0WSQuI4WS9Bd_ZvgQe1c,476
|
|
83
|
-
linkml/generators/pydanticgen/pydanticgen.py,sha256=
|
|
84
|
-
linkml/generators/pydanticgen/template.py,sha256=
|
|
85
|
-
linkml/generators/pydanticgen/templates/attribute.py.jinja,sha256=
|
|
86
|
-
linkml/generators/pydanticgen/templates/base_model.py.jinja,sha256=
|
|
95
|
+
linkml/generators/pydanticgen/pydanticgen.py,sha256=6HtWLGVjZsSO_AvBDFI0xt1Xbq03aSerM5ILMwpNgzg,51515
|
|
96
|
+
linkml/generators/pydanticgen/template.py,sha256=fnA8jDTE53h05zA8Rrl6KvHmu3PLYDgqgoeF0HZBPRE,16272
|
|
97
|
+
linkml/generators/pydanticgen/templates/attribute.py.jinja,sha256=A44qNvlszD1FtPGYhh1yHkziBQbw85HP7yiTy486Ca8,928
|
|
98
|
+
linkml/generators/pydanticgen/templates/base_model.py.jinja,sha256=lKxLLCPSvEXQN6nXivBO9T1Vv8AR0YPVcxM1Q4L3PCw,1050
|
|
87
99
|
linkml/generators/pydanticgen/templates/class.py.jinja,sha256=PCkbfRcONxk4ScVHKiGK-6KPjzS94QCKCn262LZ6O_8,691
|
|
88
100
|
linkml/generators/pydanticgen/templates/conditional_import.py.jinja,sha256=r2kb-AOJgqUgU98_tqk2aB4BG1bJFcfV1Ts7TaHTGds,241
|
|
89
101
|
linkml/generators/pydanticgen/templates/enum.py.jinja,sha256=d2j0FbQ4HT-TjspaUkfSHWaHJ50didUBTE8RV9Cj7bo,372
|
|
90
102
|
linkml/generators/pydanticgen/templates/footer.py.jinja,sha256=k764ffh6q-qDJYpTtiUGePOrcw6i81Osrm8mRWs_c2c,156
|
|
91
|
-
linkml/generators/pydanticgen/templates/imports.py.jinja,sha256=
|
|
103
|
+
linkml/generators/pydanticgen/templates/imports.py.jinja,sha256=bk21V9ofXAfhT4fFSPodGtzl8OjtewAcHgdMYX-Yvyo,1248
|
|
92
104
|
linkml/generators/pydanticgen/templates/module.py.jinja,sha256=hqZKsJ72yUioBkZAunscVgLSe58OFHf0z6-so_b43U4,526
|
|
93
105
|
linkml/generators/pydanticgen/templates/validator.py.jinja,sha256=oz8XWh4Mt7DRHH0KObKGZWl_WUoR0KzoGMkLOh-NXFU,525
|
|
94
106
|
linkml/generators/python/__init__.py,sha256=NS9fPEuAo0punDplD91F9mcViXMJJv04Q5NkFcKPNvY,40
|
|
95
107
|
linkml/generators/python/python_ifabsent_processor.py,sha256=AqFabuyHCBpPTLO2-XO1uWNh3YcIpc-Na_649o_VmLc,3834
|
|
108
|
+
linkml/generators/rustgen/__init__.py,sha256=2ihCJiuI3AxYo55Sqt4r2wVxn-3Kp6RNgQVQ-SNvaQU,115
|
|
109
|
+
linkml/generators/rustgen/build.py,sha256=vBMcCsDjDM56BzSHFGy0S0Ugv5PusSVBfIWa3chTlbI,1879
|
|
110
|
+
linkml/generators/rustgen/cli.py,sha256=GEQmwxx_yZNcVRA0eUao7Qxgdp8o8NU5GhHq59SQhjQ,2349
|
|
111
|
+
linkml/generators/rustgen/rustgen.py,sha256=OyURn_vvk7OXkG5ivNSBzpMiKJKTIZgGoVdI5bwOEgo,45751
|
|
112
|
+
linkml/generators/rustgen/template.py,sha256=D412jQwfLQy79Z-_jSUUBh6_erTNh95eW4-v7-ed25E,29482
|
|
113
|
+
linkml/generators/rustgen/templates/Cargo.toml.jinja,sha256=CqHM6DkVLpk9YUD4FJmt4LJLwkEjzGsyUTd1TIAkFqw,1061
|
|
114
|
+
linkml/generators/rustgen/templates/anything.rs.jinja,sha256=WWAO9QkS0kKWkPcW5M6-58X8lyuDpuMpsz_1TEid5ss,5246
|
|
115
|
+
linkml/generators/rustgen/templates/as_key_value.rs.jinja,sha256=dOAWwUy4Ce6jZ-6Uj3cwCGo1-hBdSBsU1eEhUoIHfd8,3181
|
|
116
|
+
linkml/generators/rustgen/templates/class_module.rs.jinja,sha256=HKRA6L74rGLynfvxdLhzuVQK-5s7tWlcpUmUr1NSw5Q,153
|
|
117
|
+
linkml/generators/rustgen/templates/enum.rs.jinja,sha256=YiBvQvjkIKGNv-mtAMCENf7gdM78-d2qOV5uBJXA7Rs,2395
|
|
118
|
+
linkml/generators/rustgen/templates/file.rs.jinja,sha256=UCrDJuZu3q8IX8TW7qhBVmmillJ04iFdQ5XzCSjVGI0,1297
|
|
119
|
+
linkml/generators/rustgen/templates/import.rs.jinja,sha256=fYEG5YYVszjBVp6Gs-pJdgcAoaiHghUQxUg2BA4yyx8,397
|
|
120
|
+
linkml/generators/rustgen/templates/imports.rs.jinja,sha256=2u0cVLBrluxldVnEUJ1ipMJWQGrWidmDP6KbJVyQxi8,158
|
|
121
|
+
linkml/generators/rustgen/templates/lib_shim.rs.jinja,sha256=zY7Cje4tOs7hEPuur5U5BMo8Jc2z4BPDYG2JgFpv__k,1681
|
|
122
|
+
linkml/generators/rustgen/templates/poly.rs.jinja,sha256=CXFmKfNwZMSI2cYXy14vKzv80QGtO86vjTdTf7NZi0U,123
|
|
123
|
+
linkml/generators/rustgen/templates/poly_containers.rs.jinja,sha256=xDZevupLBm0bLjltXc1VzE1tVyAligeOtRZmN6-_puw,12347
|
|
124
|
+
linkml/generators/rustgen/templates/poly_trait.rs.jinja,sha256=Smje9PjD2LZsZ27XVbCcHJeWDU5e1PyNg-zJOAVhf9U,308
|
|
125
|
+
linkml/generators/rustgen/templates/poly_trait_impl.rs.jinja,sha256=u1_DSCB-7vX05_xL34gmIQHKelnexGCQZp_lAXhShyw,95
|
|
126
|
+
linkml/generators/rustgen/templates/poly_trait_impl_orsubtype.rs.jinja,sha256=4GTCjV_1MlUG5O-gN_SD-4UY3RaLvthIYW24sLhXGBs,93
|
|
127
|
+
linkml/generators/rustgen/templates/poly_trait_property.rs.jinja,sha256=tLge1ghiR6lHPUsHDhXIQHPshK7hGkJtXm8hXSiL4-g,428
|
|
128
|
+
linkml/generators/rustgen/templates/poly_trait_property_impl.rs.jinja,sha256=IwJB6vy0ShZgyNvdMo4WUcPmns7qh9gKbDbHfB6KqmU,5196
|
|
129
|
+
linkml/generators/rustgen/templates/poly_trait_property_match.rs.jinja,sha256=qEeKXt1AcEoIpDrbaNkOgyfGs1zgxGtn8SyHo6mgCWA,478
|
|
130
|
+
linkml/generators/rustgen/templates/property.rs.jinja,sha256=7GRXNwEPi1jLttOI27jldcK3H3-tPUVLqvpFr4O_ST4,1350
|
|
131
|
+
linkml/generators/rustgen/templates/pyproject.toml.jinja,sha256=4ViLLeTcLt9wzqe8i80HEypHiU5lGwfzU6IHqzzc1cw,184
|
|
132
|
+
linkml/generators/rustgen/templates/serde_utils.rs.jinja,sha256=PDx0VLooA0sjKGBf_XNxHmiEobGdQMmgW7ew6-Gf5Po,13884
|
|
133
|
+
linkml/generators/rustgen/templates/slot_range_as_union.rs.jinja,sha256=qYeOvojeoPUkUPiRhnX-nurwBfjkIMIeHkIUzEYHu3E,2235
|
|
134
|
+
linkml/generators/rustgen/templates/struct.rs.jinja,sha256=45vGkG8R5OgUVyUWnF40D0sym0FjP46XIDnyzpUItqc,2377
|
|
135
|
+
linkml/generators/rustgen/templates/struct_or_subtype_enum.rs.jinja,sha256=Jpix-C9Hcycg8gyuF_ghHyZAQBH_yKJjpB6P74Yh1mM,3559
|
|
136
|
+
linkml/generators/rustgen/templates/stub_gen.rs.jinja,sha256=3xiRepFCr1vrDUne_4if3Tzil9B4l5lV0x9RRRZeOkU,2093
|
|
137
|
+
linkml/generators/rustgen/templates/stub_utils.rs.jinja,sha256=_FAVspupgJwpdbiSLjvZG0MY6PK5pf-1HibUrTiEf4w,2818
|
|
138
|
+
linkml/generators/rustgen/templates/typealias.rs.jinja,sha256=HQtLzULc-7YaqfVfecYUJBqX7k3PCMEyU9Q8h5-a5vc,413
|
|
96
139
|
linkml/generators/shacl/__init__.py,sha256=KgMOyESGTdKk2Vhx9uuUYgEJPuJQ-iT1vDQVIMoiXCM,58
|
|
97
140
|
linkml/generators/shacl/shacl_data_type.py,sha256=gX3Y2KyTVPwMyef0cJMTEpU9h0oH-H0ThVDORdNW170,1828
|
|
98
141
|
linkml/generators/shacl/shacl_ifabsent_processor.py,sha256=rjxD5OSa7s66ALSj_8CqAqU8oj2NiE4nfOQJ6xCSpjA,4363
|
|
@@ -101,14 +144,14 @@ linkml/generators/sqlalchemy/sqlalchemy_declarative_template.py,sha256=X_Ws1NUBi
|
|
|
101
144
|
linkml/generators/sqlalchemy/sqlalchemy_imperative_template.py,sha256=u4ZpponG1h6XROrOHGOf_0H2e6xL1_s8twAOA-gx94A,1622
|
|
102
145
|
linkml/linter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
103
146
|
linkml/linter/cli.py,sha256=0Bt7-A1zUTJK3rzFj1O-uvLXc0JsO5vkxODvkWOPgT4,4552
|
|
104
|
-
linkml/linter/linter.py,sha256=
|
|
105
|
-
linkml/linter/rules.py,sha256=
|
|
106
|
-
linkml/linter/config/default.yaml,sha256=
|
|
107
|
-
linkml/linter/config/recommended.yaml,sha256=
|
|
147
|
+
linkml/linter/linter.py,sha256=wxAopbGgpT19m-FR4vslgCwoVJv9yDS8-zImtWSIwm4,5161
|
|
148
|
+
linkml/linter/rules.py,sha256=bVRY3wUIJSTuefd_gVnF2HR7EQRudFWaFnbrAwf4nic,18795
|
|
149
|
+
linkml/linter/config/default.yaml,sha256=B2hyc9xIz0IoncJ4lDMkJ8BmipIzkPWLZHz6xKyREnA,819
|
|
150
|
+
linkml/linter/config/recommended.yaml,sha256=wRY3-gYzfVj7yn4lFOOWFTW3Y3EoLiEFBdX0aWO7Zos,399
|
|
108
151
|
linkml/linter/config/datamodel/.linkmllint.yaml,sha256=40rNhcL35FXQSjlVBMWnyPgplwEUqFT_sJmeZqUzxMw,292
|
|
109
152
|
linkml/linter/config/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
|
-
linkml/linter/config/datamodel/config.py,sha256=
|
|
111
|
-
linkml/linter/config/datamodel/config.yaml,sha256=
|
|
153
|
+
linkml/linter/config/datamodel/config.py,sha256=4Gr1uY8XXYRU3meAi8D6qlgc3uPlfWwyJMJBOnYTHnw,24772
|
|
154
|
+
linkml/linter/config/datamodel/config.yaml,sha256=jVJJjW_avpGePxu6lEcTO_NNyPYzAG36Ldez8WxZHK0,10368
|
|
112
155
|
linkml/linter/formatters/__init__.py,sha256=lKTbA20yL_TuimKZIBI1DGXgDO7D4QSrJ3zZFCJRwu0,269
|
|
113
156
|
linkml/linter/formatters/formatter.py,sha256=u2DNowT7Nx1rexCMJmghlXklTYb98_Glj5qhnhjTkBc,518
|
|
114
157
|
linkml/linter/formatters/json_formatter.py,sha256=rrOELuETUCFTl1Ewnrus9Rx9hl2g4uucrMfN6yw33iI,767
|
|
@@ -124,7 +167,6 @@ linkml/transformers/relmodel_transformer.py,sha256=g3WhT3FyNlxP36lFaJzSh9v9eZweN
|
|
|
124
167
|
linkml/transformers/rollup_transformer.py,sha256=YP3RyYa0TzfkTrPZ4LnTIedmQWCnneFk3wAT77E1Amc,4549
|
|
125
168
|
linkml/transformers/schema_renamer.py,sha256=DvXsAsxAb8p8RAxR_c74zbn_VRFN1JHCLHcjH9z7qr0,5263
|
|
126
169
|
linkml/utils/__init__.py,sha256=Pkyv-Gfb8QoJdInRdJuuUz1Igfe0sT9t8Gv3V_fyTXc,92
|
|
127
|
-
linkml/utils/converter.py,sha256=0xcUXdVPUXZvVuHivUibfVMoCd24oPsjYU1M17H173U,7121
|
|
128
170
|
linkml/utils/datautils.py,sha256=QlbzwXykh5Fphfe5KxPo6_ekXfniLbHiEGJtLWjUrvY,3742
|
|
129
171
|
linkml/utils/datavalidator.py,sha256=kBdWaVi8IZT1bOwEJgJYx-wZAb_PTBObB9nHpYORfKA,472
|
|
130
172
|
linkml/utils/deprecation.py,sha256=fFd_rUmTJInovuhuHVZf_44fQRve6FyJ43DY2-0XLmA,9781
|
|
@@ -135,9 +177,9 @@ linkml/utils/helpers.py,sha256=MomYM4Oof-c1SgyMpjoG0Aob-eaVeF8kXvuzdJiKo_g,3351
|
|
|
135
177
|
linkml/utils/logictools.py,sha256=dvwuX6DU0PZyxhVr9kphyQFttqZNSbbIRZ7vtTh2gU8,23649
|
|
136
178
|
linkml/utils/mergeutils.py,sha256=uXHuyc13MhATMPaDToSsJlMTXeqQ9AGVEj7uOlcGGLE,10505
|
|
137
179
|
linkml/utils/rawloader.py,sha256=nUB8Gfn8yEVwyo6bx0TtB2mBGkilC-fybi0xvQ73Gks,4417
|
|
138
|
-
linkml/utils/schema_builder.py,sha256=
|
|
180
|
+
linkml/utils/schema_builder.py,sha256=dowMWyuo00yjfh0BHCmPiEw12o0tEmj3lXiKVp_VpBU,10055
|
|
139
181
|
linkml/utils/schema_fixer.py,sha256=j9MoPlAd6j8fLC1Mnj_MSojnPlfR_Ml87jQkknjPYjE,16754
|
|
140
|
-
linkml/utils/schemaloader.py,sha256=
|
|
182
|
+
linkml/utils/schemaloader.py,sha256=0tn6opcJH3njNV6Bkba-8Xsx6fSETyditaAM4v5t2Rg,52070
|
|
141
183
|
linkml/utils/schemasynopsis.py,sha256=0cJZHTIrXTUS6EPvK2YKo7IuvbRQCkWKeRBsyz_zjSo,18441
|
|
142
184
|
linkml/utils/sqlutils.py,sha256=qOnoZvZepo2BcKa3J0Wufhxe4z4ek7SOeHR4O86nlE0,17108
|
|
143
185
|
linkml/utils/typereferences.py,sha256=CcL8ieqFgLq13pvVtYxcJmVy5BzmRpK7VsC0ZVH7mco,2209
|
|
@@ -167,8 +209,8 @@ linkml/workspaces/example_runner.py,sha256=EjaAn6vaAKZnFcW5hRopkYBguiaR05aqKbuaM
|
|
|
167
209
|
linkml/workspaces/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
168
210
|
linkml/workspaces/datamodel/workspaces.py,sha256=YIGzErECZuMER03h3DcuY3psMb0lDF1Pia_8hreKoTE,14667
|
|
169
211
|
linkml/workspaces/datamodel/workspaces.yaml,sha256=LU0lMJ4W6Tk66r5ECD7OkaVm9kCRfu93yoik1b4gkzQ,4228
|
|
170
|
-
linkml-1.9.
|
|
171
|
-
linkml-1.9.
|
|
172
|
-
linkml-1.9.
|
|
173
|
-
linkml-1.9.
|
|
174
|
-
linkml-1.9.
|
|
212
|
+
linkml-1.9.5.dist-info/METADATA,sha256=eqIaQRCUkqztBU5PVMnm3mhle6_bscQzt7v777M9yRI,3341
|
|
213
|
+
linkml-1.9.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
214
|
+
linkml-1.9.5.dist-info/entry_points.txt,sha256=pxiXrMMc21vHnzIgIUCLNJPySyKeD8rLocgPc2lFOWs,2379
|
|
215
|
+
linkml-1.9.5.dist-info/licenses/LICENSE,sha256=zsURghk1UIVsx0jaDvEy5QU2UAqecv1vtJozTV8Hwvw,536
|
|
216
|
+
linkml-1.9.5.dist-info/RECORD,,
|
|
@@ -26,6 +26,7 @@ gen-py-classes = linkml.generators.pythongen:cli
|
|
|
26
26
|
gen-pydantic = linkml.generators.pydanticgen:cli
|
|
27
27
|
gen-python = linkml.generators.pythongen:cli
|
|
28
28
|
gen-rdf = linkml.generators.rdfgen:cli
|
|
29
|
+
gen-rust = linkml.generators.rustgen.cli:cli
|
|
29
30
|
gen-shacl = linkml.generators.shaclgen:cli
|
|
30
31
|
gen-shex = linkml.generators.shexgen:cli
|
|
31
32
|
gen-sparql = linkml.generators.sparqlgen:cli
|
|
@@ -39,7 +40,7 @@ gen-typescript = linkml.generators.typescriptgen:cli
|
|
|
39
40
|
gen-yaml = linkml.generators.yamlgen:cli
|
|
40
41
|
gen-yuml = linkml.generators.yumlgen:cli
|
|
41
42
|
linkml = linkml.cli.main:linkml
|
|
42
|
-
linkml-convert = linkml.
|
|
43
|
+
linkml-convert = linkml.converter.cli:cli
|
|
43
44
|
linkml-jsonschema-validate = linkml.validators.jsonschemavalidator:cli
|
|
44
45
|
linkml-lint = linkml.linter.cli:main
|
|
45
46
|
linkml-run-examples = linkml.workspaces.example_runner:cli
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{#-
|
|
2
|
-
Jinja2 Template for a mixin class used by the Linkml/Pandera class-based model
|
|
3
|
-
Inline generation avoids dependencies on LinkML in the generated code.
|
|
4
|
-
|
|
5
|
-
-#}
|
|
6
|
-
class _LinkmlPanderaValidator:
|
|
7
|
-
|
|
8
|
-
@classmethod
|
|
9
|
-
def generate_polars_schema(cls, object_to_validate) -> dict:
|
|
10
|
-
"""Creates a nested PolaRS schema suitable for loading the object_to_validate.
|
|
11
|
-
Optional columns that are not present in the data are omitted.
|
|
12
|
-
This approach is only suitable to enable the test fixtures.
|
|
13
|
-
"""
|
|
14
|
-
polars_schema = {}
|
|
15
|
-
|
|
16
|
-
for column_name, column in cls.to_schema().columns.items():
|
|
17
|
-
dtype = column.properties["dtype"]
|
|
18
|
-
required = column.properties["required"]
|
|
19
|
-
|
|
20
|
-
if required or column_name in object_to_validate:
|
|
21
|
-
if dtype.type == pl.Struct:
|
|
22
|
-
pass
|
|
23
|
-
else:
|
|
24
|
-
polars_schema[column_name] = dtype.type
|
|
25
|
-
|
|
26
|
-
return polars_schema
|
|
File without changes
|
|
File without changes
|
|
File without changes
|