linkml 1.9.3rc3__py3-none-any.whl → 1.9.4rc2__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.
@@ -101,8 +101,12 @@ class ERDiagram(pydantic.BaseModel):
101
101
  relationships: list[Relationship] = []
102
102
 
103
103
  def __str__(self):
104
- ents = "\n".join([str(e) for e in self.entities])
105
- rels = "\n".join([str(r) for r in self.relationships])
104
+ # Sort entities and relationships for stable output
105
+ sorted_entities = sorted(self.entities, key=lambda e: e.name)
106
+ sorted_relationships = sorted(self.relationships, key=lambda r: str(r))
107
+
108
+ ents = "\n".join([str(e) for e in sorted_entities])
109
+ rels = "\n".join([str(r) for r in sorted_relationships])
106
110
  return f"erDiagram\n{ents}\n\n{rels}\n"
107
111
 
108
112
 
@@ -129,6 +133,9 @@ class ERDiagramGenerator(Generator):
129
133
  exclude_attributes: bool = False
130
134
  """If True, do not include attributes in entities"""
131
135
 
136
+ exclude_abstract_classes: bool = False
137
+ """If True, do not include abstract classes in the diagram"""
138
+
132
139
  genmeta: bool = False
133
140
  gen_classvars: bool = True
134
141
  gen_slots: bool = True
@@ -223,6 +230,8 @@ class ERDiagramGenerator(Generator):
223
230
  def add_upstream_class(self, class_name: ClassDefinitionName, targets: set[str], diagram: ERDiagram) -> None:
224
231
  sv = self.schemaview
225
232
  cls = sv.get_class(class_name)
233
+ if self.exclude_abstract_classes and cls.abstract:
234
+ return
226
235
  entity = Entity(name=camelcase(cls.name))
227
236
  diagram.entities.append(entity)
228
237
  for slot in sv.class_induced_slots(class_name):
@@ -239,6 +248,8 @@ class ERDiagramGenerator(Generator):
239
248
  """
240
249
  sv = self.schemaview
241
250
  cls = sv.get_class(class_name)
251
+ if self.exclude_abstract_classes and cls.abstract:
252
+ return
242
253
  entity = Entity(name=camelcase(cls.name))
243
254
  diagram.entities.append(entity)
244
255
  for slot in sv.class_induced_slots(class_name):
@@ -303,6 +314,11 @@ class ERDiagramGenerator(Generator):
303
314
  default=False,
304
315
  help="If True, do not include attributes in entities",
305
316
  )
317
+ @click.option(
318
+ "--exclude-abstract-classes/--no-exclude-abstract-classes",
319
+ default=False,
320
+ help="If True, do not include abstract classes in the diagram",
321
+ )
306
322
  @click.option(
307
323
  "--follow-references/--no-follow-references",
308
324
  default=False,
@@ -9,6 +9,7 @@ import click
9
9
  import yaml
10
10
 
11
11
  from linkml._version import __version__
12
+ from linkml.cli.logging import log_level_option
12
13
  from linkml.generators.excelgen import ExcelGenerator
13
14
  from linkml.generators.graphqlgen import GraphqlGenerator
14
15
  from linkml.generators.jsonldcontextgen import ContextGenerator
@@ -22,7 +23,6 @@ from linkml.generators.pythongen import PythonGenerator
22
23
  from linkml.generators.shaclgen import ShaclGenerator
23
24
  from linkml.generators.shexgen import ShExGenerator
24
25
  from linkml.generators.sqltablegen import SQLTableGenerator
25
- from linkml.utils.cli_utils import log_level_option
26
26
  from linkml.utils.generator import Generator
27
27
 
28
28
  logger = logging.getLogger(__name__)
@@ -1,23 +1,28 @@
1
1
  # Auto generated from config.yaml by pythongen.py version: 0.0.1
2
- # Generation date: 2025-07-01T09:27:27
2
+ # Generation date: 2025-07-28T09:29:10
3
3
  # Schema: linter-config
4
4
  #
5
5
  # id: https://w3id.org/linkml/linter/config
6
6
  # description: A datamodel describing the configuration file accepted by the linkml-lint command
7
7
  # license: https://creativecommons.org/publicdomain/zero/1.0/
8
8
 
9
+ import dataclasses
10
+ import re
9
11
  from dataclasses import dataclass
10
- from typing import Any, ClassVar, Optional, Union
12
+ from datetime import date, datetime, time
13
+ from typing import Any, ClassVar, Dict, List, Optional, Union
11
14
 
12
- from jsonasobj2 import as_dict
13
- from linkml_runtime.linkml_model.meta import EnumDefinition, PermissibleValue
15
+ from jsonasobj2 import JsonObj, as_dict
16
+ from linkml_runtime.linkml_model.meta import EnumDefinition, PermissibleValue, PvFormulaOptions
14
17
  from linkml_runtime.utils.curienamespace import CurieNamespace
15
18
  from linkml_runtime.utils.enumerations import EnumDefinitionImpl
16
- from linkml_runtime.utils.metamodelcore import empty_list
19
+ from linkml_runtime.utils.formatutils import camelcase, sfx, underscore
20
+ from linkml_runtime.utils.metamodelcore import bnode, empty_dict, empty_list
17
21
  from linkml_runtime.utils.slot import Slot
18
- from linkml_runtime.utils.yamlutils import YAMLRoot
19
- from rdflib import URIRef
22
+ from linkml_runtime.utils.yamlutils import YAMLRoot, extended_float, extended_int, extended_str
23
+ from rdflib import Namespace, URIRef
20
24
 
25
+ from linkml_runtime.linkml_model.types import Boolean, String
21
26
  from linkml_runtime.utils.metamodelcore import Bool
22
27
 
23
28
  metamodel_version = "1.7.0"
@@ -257,6 +262,7 @@ class StandardNamingConfig(RuleConfig):
257
262
  exclude_type: Optional[
258
263
  Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]
259
264
  ] = empty_list()
265
+ exclude: Optional[Union[str, list[str]]] = empty_list()
260
266
  class_pattern: Optional[str] = None
261
267
  slot_pattern: Optional[str] = None
262
268
 
@@ -270,6 +276,10 @@ class StandardNamingConfig(RuleConfig):
270
276
  v if isinstance(v, MetamodelElementTypeEnum) else MetamodelElementTypeEnum(v) for v in self.exclude_type
271
277
  ]
272
278
 
279
+ if not isinstance(self.exclude, list):
280
+ self.exclude = [self.exclude] if self.exclude is not None else []
281
+ self.exclude = [v if isinstance(v, str) else str(v) for v in self.exclude]
282
+
273
283
  if self.class_pattern is not None and not isinstance(self.class_pattern, str):
274
284
  self.class_pattern = str(self.class_pattern)
275
285
 
@@ -583,6 +593,15 @@ slots.standardNamingConfig__exclude_type = Slot(
583
593
  range=Optional[Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]],
584
594
  )
585
595
 
596
+ slots.standardNamingConfig__exclude = Slot(
597
+ uri=LINTCFG.exclude,
598
+ name="standardNamingConfig__exclude",
599
+ curie=LINTCFG.curie("exclude"),
600
+ model_uri=LINTCFG.standardNamingConfig__exclude,
601
+ domain=None,
602
+ range=Optional[Union[str, list[str]]],
603
+ )
604
+
586
605
  slots.standardNamingConfig__class_pattern = Slot(
587
606
  uri=LINTCFG.class_pattern,
588
607
  name="standardNamingConfig__class_pattern",
@@ -180,6 +180,13 @@ classes:
180
180
  description: >-
181
181
  Default: []
182
182
  Elements of all types (ClassDefinition, SlotDefinition, EnumDefinition, PermissibleValue, etc.) except the types specified in this list will be checked
183
+ exclude:
184
+ range: string
185
+ multivalued: true
186
+ description: >-
187
+ Default: []
188
+ Named schema elements in this list will be skipped by the checker.
189
+ For example: ["legacy_class", "badSlot", "bad_enum", "LEGACY_PERMISSIBLE_VALUE"]
183
190
  class_pattern:
184
191
  range: string
185
192
  required: false
linkml/linter/rules.py CHANGED
@@ -6,6 +6,7 @@ import re
6
6
  from abc import ABC, abstractmethod
7
7
  from collections.abc import Callable, Iterable
8
8
  from functools import cache
9
+ from itertools import chain
9
10
 
10
11
  from linkml_runtime.linkml_model import (
11
12
  ClassDefinition,
@@ -326,43 +327,58 @@ class StandardNamingRule(LinterRule):
326
327
 
327
328
  def check(self, schema_view: SchemaView, fix: bool = False) -> Iterable[LinterProblem]:
328
329
  excluded_types = [t.text if hasattr(t, "text") else str(t) for t in getattr(self.config, "exclude_type", [])]
329
- class_pattern = (
330
- self.PATTERNS["uppercamel"]
331
- if not self.config.class_pattern
332
- else self.PATTERNS.get(self.config.class_pattern, re.compile(self.config.class_pattern))
330
+ excluded_names = set(getattr(self.config, "exclude", []))
331
+
332
+ # element naming patterns indexed by element type
333
+ pattern = {
334
+ "class": (
335
+ self.PATTERNS["uppercamel"]
336
+ if not self.config.class_pattern
337
+ else self.PATTERNS.get(self.config.class_pattern, re.compile(self.config.class_pattern))
338
+ ),
339
+ "slot": (
340
+ self.PATTERNS["snake"]
341
+ if not self.config.slot_pattern
342
+ else self.PATTERNS.get(self.config.slot_pattern, re.compile(self.config.slot_pattern))
343
+ ),
344
+ "enum": self.PATTERNS["uppercamel"],
345
+ "permissible_value": self.PATTERNS["uppersnake"]
346
+ if self.config.permissible_values_upper_case
347
+ else self.PATTERNS["snake"],
348
+ }
349
+
350
+ # explicit method mapping for better readability and maintainability
351
+ element_extractors = {
352
+ "class": schema_view.all_classes,
353
+ "slot": schema_view.all_slots,
354
+ "enum": schema_view.all_enums,
355
+ }
356
+
357
+ # cache the results to avoid repeated method calls
358
+ cached_elements = {el_type: element_extractors[el_type]() for el_type in element_extractors}
359
+
360
+ # generate LinterProblems for classes, slots, and enums incrementally
361
+ problems = (
362
+ LinterProblem(f"{el_type.capitalize()} has name '{el_name}'")
363
+ for el_type, elements in cached_elements.items()
364
+ for el_name in elements
365
+ if f"{el_type}_definition" not in excluded_types
366
+ and el_name not in excluded_names
367
+ and pattern[el_type].fullmatch(el_name) is None
333
368
  )
334
- slot_pattern = (
335
- self.PATTERNS["snake"]
336
- if not self.config.slot_pattern
337
- else self.PATTERNS.get(self.config.slot_pattern, re.compile(self.config.slot_pattern))
338
- )
339
-
340
- enum_pattern = self.PATTERNS["uppercamel"]
341
- permissible_value_pattern = (
342
- self.PATTERNS["uppersnake"] if self.config.permissible_values_upper_case else self.PATTERNS["snake"]
343
- )
344
-
345
- if "class_definition" not in excluded_types:
346
- for class_name in schema_view.all_classes(imports=False):
347
- if class_pattern.fullmatch(class_name) is None:
348
- yield LinterProblem(f"Class has name '{class_name}'")
349
369
 
350
- if "slot_definition" not in excluded_types:
351
- for slot_name in schema_view.all_slots(imports=False):
352
- if slot_pattern.fullmatch(slot_name) is None:
353
- yield LinterProblem(f"Slot has name '{slot_name}'")
354
-
355
- for enum_name, enum_definition in schema_view.all_enums(imports=False).items():
356
- if "enum_definition" not in excluded_types and enum_pattern.fullmatch(enum_name) is None:
357
- yield LinterProblem(f"Enum has name '{enum_name}'")
370
+ if "permissible_value" not in excluded_types:
371
+ # add issues from the permissible values, if appropriate
372
+ pv_problems = (
373
+ LinterProblem(f"Permissible value of Enum '{en}' has name '{pv}'")
374
+ for en, en_def in schema_view.all_enums(imports=False).items()
375
+ for pv in en_def.permissible_values
376
+ if pv not in excluded_names and pattern["permissible_value"].fullmatch(pv) is None
377
+ )
378
+ # chain the generators together
379
+ return chain(problems, pv_problems)
358
380
 
359
- if "permissible_value" not in excluded_types:
360
- for permissible_value_name in enum_definition.permissible_values:
361
- if permissible_value_pattern.fullmatch(permissible_value_name) is None:
362
- yield LinterProblem(
363
- f"Permissible value of {self.format_element(enum_definition)} "
364
- f"has name '{permissible_value_name}'"
365
- )
381
+ return iter(problems)
366
382
 
367
383
 
368
384
  class CanonicalPrefixesRule(LinterRule):
linkml/utils/generator.py CHANGED
@@ -51,7 +51,7 @@ from linkml_runtime.utils.formatutils import camelcase, underscore
51
51
  from linkml_runtime.utils.namespaces import Namespaces
52
52
 
53
53
  from linkml import LOCAL_METAMODEL_YAML_FILE
54
- from linkml.utils.cli_utils import DEFAULT_LOG_LEVEL_INT, log_level_option
54
+ from linkml.cli.logging import DEFAULT_LOG_LEVEL_INT, log_level_option
55
55
  from linkml.utils.mergeutils import alias_root
56
56
  from linkml.utils.schemaloader import SchemaLoader
57
57
  from linkml.utils.typereferences import References
@@ -1,62 +1,49 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: linkml
3
- Version: 1.9.3rc3
3
+ Version: 1.9.4rc2
4
4
  Summary: Linked Open Data Modeling Language
5
- License: Apache-2.0
6
- Keywords: schema,linked data,data modeling,rdf,owl,biolink
7
- Author: Chris Mungall
8
- Author-email: cjmungall@lbl.gov
9
- Requires-Python: >=3.9
5
+ Author: Deepak Unni
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>
7
+ License-Expression: Apache-2.0
8
+ License-File: LICENSE
9
+ Keywords: biolink,data modeling,linked data,owl,rdf,schema
10
10
  Classifier: Development Status :: 5 - Production/Stable
11
11
  Classifier: Environment :: Console
12
12
  Classifier: Intended Audience :: Developers
13
- Classifier: Intended Audience :: Science/Research
14
13
  Classifier: Intended Audience :: Healthcare Industry
15
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
14
+ Classifier: Intended Audience :: Science/Research
16
15
  Classifier: Programming Language :: Python :: 3.9
17
16
  Classifier: Programming Language :: Python :: 3.10
18
17
  Classifier: Programming Language :: Python :: 3.11
19
18
  Classifier: Programming Language :: Python :: 3.12
20
19
  Classifier: Programming Language :: Python :: 3.13
21
- Provides-Extra: black
22
- Provides-Extra: numpydantic
23
- Provides-Extra: pandera
24
- Provides-Extra: polars-lts-cpu
25
- Provides-Extra: shacl
26
- Provides-Extra: tests
27
- Requires-Dist: antlr4-python3-runtime (>=4.9.0,<4.10)
28
- Requires-Dist: black (>=24.0.0) ; extra == "black"
29
- Requires-Dist: black (>=24.0.0) ; extra == "tests"
30
- Requires-Dist: click (>=7.0)
31
- Requires-Dist: graphviz (>=0.10.1)
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Requires-Python: >=3.9
22
+ Requires-Dist: antlr4-python3-runtime<4.10,>=4.9.0
23
+ Requires-Dist: click<8.2,>=8.0
24
+ Requires-Dist: graphviz>=0.10.1
32
25
  Requires-Dist: hbreader
33
- Requires-Dist: isodate (>=0.6.0)
34
- Requires-Dist: jinja2 (>=3.1.0)
35
- Requires-Dist: jsonasobj2 (>=1.0.3,<2.0.0)
36
- Requires-Dist: jsonschema[format] (>=4.0.0)
37
- Requires-Dist: linkml-runtime (>=1.9.4,<2.0.0)
38
- Requires-Dist: numpydantic (>=1.6.1) ; extra == "numpydantic"
39
- Requires-Dist: numpydantic (>=1.6.1) ; extra == "tests"
26
+ Requires-Dist: isodate>=0.6.0
27
+ Requires-Dist: jinja2>=3.1.0
28
+ Requires-Dist: jsonasobj2<2.0.0,>=1.0.3
29
+ Requires-Dist: jsonschema[format]>=4.0.0
30
+ Requires-Dist: linkml-runtime<2.0.0,>=1.9.5
40
31
  Requires-Dist: openpyxl
41
- Requires-Dist: pandera (>=0.19.0) ; extra == "pandera"
42
32
  Requires-Dist: parse
43
- Requires-Dist: polars-lts-cpu (>=1.0.0) ; extra == "polars-lts-cpu"
44
- Requires-Dist: prefixcommons (>=0.1.7)
45
- Requires-Dist: prefixmaps (>=0.2.2)
46
- Requires-Dist: pydantic (>=1.0.0,<3.0.0)
47
- Requires-Dist: pyjsg (>=0.11.6)
48
- Requires-Dist: pyshacl (>=0.25.0) ; extra == "shacl"
49
- Requires-Dist: pyshacl (>=0.25.0) ; extra == "tests"
50
- Requires-Dist: pyshex (>=0.7.20)
51
- Requires-Dist: pyshexc (>=0.8.3)
33
+ Requires-Dist: prefixcommons>=0.1.7
34
+ Requires-Dist: prefixmaps>=0.2.2
35
+ Requires-Dist: pydantic<3.0.0,>=1.0.0
36
+ Requires-Dist: pyjsg>=0.11.6
37
+ Requires-Dist: pyshex>=0.7.20
38
+ Requires-Dist: pyshexc>=0.8.3
52
39
  Requires-Dist: python-dateutil
53
40
  Requires-Dist: pyyaml
54
- Requires-Dist: rdflib (>=6.0.0)
55
- Requires-Dist: requests (>=2.22)
56
- Requires-Dist: sphinx-click (>=6.0.0)
57
- Requires-Dist: sqlalchemy (>=1.4.31)
58
- Requires-Dist: typing-extensions (>=4.6.0) ; python_version < "3.12"
59
- Requires-Dist: watchdog (>=0.9.0)
41
+ Requires-Dist: rdflib>=6.0.0
42
+ Requires-Dist: requests>=2.22
43
+ Requires-Dist: sphinx-click>=6.0.0
44
+ Requires-Dist: sqlalchemy>=1.4.31
45
+ Requires-Dist: typing-extensions>=4.6.0; python_version < '3.12'
46
+ Requires-Dist: watchdog>=0.9.0
60
47
  Description-Content-Type: text/markdown
61
48
 
62
49
  [![Pyversions](https://img.shields.io/pypi/pyversions/linkml.svg)](https://pypi.python.org/pypi/linkml)
@@ -78,4 +65,3 @@ This repo holds the tools for generating and working with LinkML. For the LinkML
78
65
  The complete documentation for LinkML can be found here:
79
66
 
80
67
  - [linkml.io/linkml](https://linkml.io/linkml)
81
-
@@ -2,10 +2,48 @@ 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/logging.py,sha256=MdVbox1qr6kDUHUCWAmFhV-D6ebs_nn8vVwB8KDQfew,742
5
6
  linkml/cli/main.py,sha256=EncEEYMqaSlXj3pOEi8_xqZe12BYPW9IdEMJilGqIkI,5594
6
7
  linkml/generators/PythonGenNotes.md,sha256=SOzZhIBP_O8g46uBTnYy6A7nuP--hh-f_QXEERZRxdk,50822
7
8
  linkml/generators/README.md,sha256=fnkmT98lspv8a8FyBLOQsHoBKQaapFGb8H_Stg56dco,4436
8
9
  linkml/generators/__init__.py,sha256=AxTltouJeNayg3sJmVM7h4JkCx8NxGa4AV-_awtvfmo,1669
10
+ linkml/generators/csvgen.py,sha256=gPwX5GuwToD2KQF7SrINatqwMYY-54ZsgDTgYH1EM1Y,3242
11
+ linkml/generators/dbmlgen.py,sha256=6TvpdvTEPoprdBHuJpbfIb1Ejwpp20kGNUvW5Av7cpo,5465
12
+ linkml/generators/docgen.py,sha256=Xw1Urg6y6UgYl7jYQWUufC3sV1AgVfUtM6kUUFpC9UU,43316
13
+ linkml/generators/dotgen.py,sha256=DR1tC-vZ7Vj-NxEkE-zOPGrwPUIk5Bo2LISsJpS0rUk,5022
14
+ linkml/generators/erdiagramgen.py,sha256=lUHFkiOHiOLvymnKoJ2Erl0SZzXvSnqJzKGfl5K-MyI,12100
15
+ linkml/generators/excelgen.py,sha256=81x0Ib13ZjLC5WBWsH0aePn8swv_pjZnwV4X-T4q4Jc,7684
16
+ linkml/generators/golanggen.py,sha256=oBXY0gUz2OzI8uKjubUT9WeBJ4TdoOYUqXxNqeEG1gM,5834
17
+ linkml/generators/golrgen.py,sha256=92hswWdusngnGDGD3vpX_iHbIDYRZrRV5xWkpxG7nxw,3448
18
+ linkml/generators/graphqlgen.py,sha256=34qGKjNqz6jJg4b6ClGAA1ffOscSPpeemM3IkifDuRg,3485
19
+ linkml/generators/javagen.py,sha256=BTAXgvOOvRa3AOfaaiVFyuyaqg4XFR_JbO6_7tT_AnQ,5335
20
+ linkml/generators/jsonldcontextgen.py,sha256=opDZ0q_rc-E8yKeieWZbrMk-np8fheyMVB5jnxmMOz4,8946
21
+ linkml/generators/jsonldgen.py,sha256=pHSCmZ_qKdzVot_J8XFhPAyYOUYap7Vt6NGigM0-SQ0,7842
22
+ linkml/generators/jsonschemagen.py,sha256=gVfeEzz9izxI231oA48pDc4vTP7rvUUkySmw2T8PNoo,30887
23
+ linkml/generators/linkmlgen.py,sha256=j8T7O-_i7JAa87EnHgSqmdeD4RsXOD66MqZU7P-tX2c,4221
24
+ linkml/generators/markdowngen.py,sha256=_4RfmuMNR-m90QdmbG26iFQC_ZSaUBDUWPX_hsqZPLY,35530
25
+ linkml/generators/mermaidclassdiagramgen.py,sha256=9HEcXntK0lL4T2wYpKzeFyTg6rRUt1ZiOVdZgA_l4eg,5145
26
+ linkml/generators/namespacegen.py,sha256=C4p9LSwsnDqf6sv-wG5l0VQniWFJ1HA1hRXJBDOg3pM,6467
27
+ linkml/generators/oocodegen.py,sha256=dgcHhpO81qC2Tx-kG_VhZVaoRjOwrcrulIXV8gEU1bY,7808
28
+ linkml/generators/owlgen.py,sha256=HcW5EIohi9YMd6pXH62bAesZrrbBt5H8-4eQ3Eab6ow,58095
29
+ linkml/generators/plantumlgen.py,sha256=S05S13kxDLeKJihZ7BZesuj_8-tQUzsWjL6S478dzQg,15603
30
+ linkml/generators/prefixmapgen.py,sha256=X-3K1q5WcSS8TL7rHBOL4qBGBk2Szr7l1_UzRQVvFGA,4246
31
+ linkml/generators/projectgen.py,sha256=qvXIWDfrPYKZT38JCyItQjW1AZofJ4ZyPZeUkscZxOo,9586
32
+ linkml/generators/protogen.py,sha256=a4KUyKj525tuE2YenEJQ_IkbNKnnhVH_N-qTEmMBVY4,2524
33
+ linkml/generators/pythongen.py,sha256=soc3EgUpp1dYwRWx--aVGWo9emCNhj9TvcJsUNunlwE,55847
34
+ linkml/generators/rdfgen.py,sha256=33m01NKAF-AfOLwq_g6I9itle43_u4Ek10mLT8mmuYs,2963
35
+ linkml/generators/shaclgen.py,sha256=qas_rqhwx7IpnIKAKOtxUTPB7EdhiCcTOLVJQbLOOsk,15277
36
+ linkml/generators/shexgen.py,sha256=fVwrYRifsojiPu6vM1oNwnkSEp4uX-QognHOExJs0cY,9933
37
+ linkml/generators/sparqlgen.py,sha256=1WjZQFNk3QXMaJhVeztJ1uWg8qojLyGGBdAKSjpVQaI,6176
38
+ linkml/generators/sqlalchemygen.py,sha256=b8vrigGOso66qQrZKlvawRDz-1oDu5LyL-X4F-mkTdc,9053
39
+ linkml/generators/sqltablegen.py,sha256=83j-4ImIZIwz1WTy1fHMGYbP7WjWpN6K0AuNQnXPeXw,18178
40
+ linkml/generators/sssomgen.py,sha256=zrZy0WL9fF5bk-XAcB-MZYZkhHhqVRHt2rGBUtfqnLY,6891
41
+ linkml/generators/string_template.md,sha256=UMEgU5-JLBEoSpoZ0SKuzcZV6El3vcApm-cvsegsE1c,1780
42
+ linkml/generators/summarygen.py,sha256=abNd39Z-Kn3FX2fjXLeCqvXvFunpqM7UFPimtiCB2p0,3081
43
+ linkml/generators/terminusdbgen.py,sha256=Zizvh_GLBO9LK_X11gUvB_Ip1ttkkfiD4OZBtxjgAG4,4669
44
+ linkml/generators/typescriptgen.py,sha256=wRnZpZ3LEepJRFYHVNP06PX5rPFzIDPglDRxi0Z6Zro,8870
45
+ linkml/generators/yamlgen.py,sha256=PWexYoR3wHRoAUk6zK67fRYjBF6sAmX_iGlOAT0PJq0,1623
46
+ linkml/generators/yumlgen.py,sha256=ZK42N3hJPvvOdztOWCwysARrGVWjg5V4Qx2XcS2Vvgc,13277
9
47
  linkml/generators/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
48
  linkml/generators/common/build.py,sha256=X2QDnybdr5GwDIaXWfwAzIqduqk7_rDReU-7CvcJ2OI,2835
11
49
  linkml/generators/common/ifabsent_processor.py,sha256=qefNF_rd24DxF4IGAynR9J7zWGH-oMfDULNbFMvZalA,13527
@@ -13,8 +51,6 @@ linkml/generators/common/lifecycle.py,sha256=Rx9q8shhS_e-4Hx_06wOVR1ZW7I3rqNS8_b
13
51
  linkml/generators/common/naming.py,sha256=KkY3KCTX3DM30VbPjfIS6icEc-IxUNF9hE8GXreDAv4,5081
14
52
  linkml/generators/common/template.py,sha256=AmHcTlPnN23H4IvuX70AiTRzd-V16zNFBb7d3cCntFU,3326
15
53
  linkml/generators/common/type_designators.py,sha256=ORA9siVxHUXqn3TMuun81m_whqZcX3Zrnn1FDf6dK7c,1931
16
- linkml/generators/csvgen.py,sha256=gPwX5GuwToD2KQF7SrINatqwMYY-54ZsgDTgYH1EM1Y,3242
17
- linkml/generators/dbmlgen.py,sha256=6TvpdvTEPoprdBHuJpbfIb1Ejwpp20kGNUvW5Av7cpo,5465
18
54
  linkml/generators/docgen/class.md.jinja2,sha256=2QI-9DpqZ9XJc-g2RwiBa2EkWeDeg4j4HH5cxgE_A3w,4336
19
55
  linkml/generators/docgen/class_diagram.md.jinja2,sha256=UCpMYgzbcRsXpb7TnUsCUqIu0yWCEOvPB6o7IOvZFuA,3728
20
56
  linkml/generators/docgen/common_metadata.md.jinja2,sha256=SojKaesnnpnyIIc4uK5NWZJ-IOgHVSHY4q8ybowF5rE,1607
@@ -25,41 +61,20 @@ linkml/generators/docgen/schema.md.jinja2,sha256=3hbrhdv2oDqekPBP4I4xz3vS4igsqOV
25
61
  linkml/generators/docgen/slot.md.jinja2,sha256=ZJZrofpPy6U0CltTHIW6MffV48CJVyQqHkfjLdTtZl0,3516
26
62
  linkml/generators/docgen/subset.md.jinja2,sha256=KrLBUyFA_m3G9EHGy1CUFkglaL0EwgURlKQCu0CkVJM,2817
27
63
  linkml/generators/docgen/type.md.jinja2,sha256=126SvOOXG4sYLKZvgIPNdHRPsM3fePpbMgfNICpvpKk,741
28
- linkml/generators/docgen.py,sha256=Xw1Urg6y6UgYl7jYQWUufC3sV1AgVfUtM6kUUFpC9UU,43316
29
- linkml/generators/dotgen.py,sha256=DR1tC-vZ7Vj-NxEkE-zOPGrwPUIk5Bo2LISsJpS0rUk,5022
30
- linkml/generators/erdiagramgen.py,sha256=hiF933DGY3GD2A-xu0LtivTH96iolUcZYcEewFyQ08Y,11451
31
- linkml/generators/excelgen.py,sha256=81x0Ib13ZjLC5WBWsH0aePn8swv_pjZnwV4X-T4q4Jc,7684
32
- linkml/generators/golanggen.py,sha256=oBXY0gUz2OzI8uKjubUT9WeBJ4TdoOYUqXxNqeEG1gM,5834
33
- linkml/generators/golrgen.py,sha256=92hswWdusngnGDGD3vpX_iHbIDYRZrRV5xWkpxG7nxw,3448
34
- linkml/generators/graphqlgen.py,sha256=34qGKjNqz6jJg4b6ClGAA1ffOscSPpeemM3IkifDuRg,3485
35
64
  linkml/generators/javagen/example_template.java.jinja2,sha256=r9vyzZxIMRKI55Js790G-sxmbMIaOekp46eEWM9FLDk,443
36
65
  linkml/generators/javagen/java_record_template.jinja2,sha256=OQZffLSy_xR3FIhQMltvrYyVeut7l2Q-tzK7AOiVmWs,1729
37
- linkml/generators/javagen.py,sha256=BTAXgvOOvRa3AOfaaiVFyuyaqg4XFR_JbO6_7tT_AnQ,5335
38
- linkml/generators/jsonldcontextgen.py,sha256=opDZ0q_rc-E8yKeieWZbrMk-np8fheyMVB5jnxmMOz4,8946
39
- linkml/generators/jsonldgen.py,sha256=pHSCmZ_qKdzVot_J8XFhPAyYOUYap7Vt6NGigM0-SQ0,7842
40
- linkml/generators/jsonschemagen.py,sha256=gVfeEzz9izxI231oA48pDc4vTP7rvUUkySmw2T8PNoo,30887
41
66
  linkml/generators/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- linkml/generators/linkmlgen.py,sha256=j8T7O-_i7JAa87EnHgSqmdeD4RsXOD66MqZU7P-tX2c,4221
43
- linkml/generators/markdowngen.py,sha256=_4RfmuMNR-m90QdmbG26iFQC_ZSaUBDUWPX_hsqZPLY,35530
44
- linkml/generators/mermaidclassdiagramgen.py,sha256=9HEcXntK0lL4T2wYpKzeFyTg6rRUt1ZiOVdZgA_l4eg,5145
45
- linkml/generators/namespacegen.py,sha256=C4p9LSwsnDqf6sv-wG5l0VQniWFJ1HA1hRXJBDOg3pM,6467
46
- linkml/generators/oocodegen.py,sha256=dgcHhpO81qC2Tx-kG_VhZVaoRjOwrcrulIXV8gEU1bY,7808
47
- linkml/generators/owlgen.py,sha256=HcW5EIohi9YMd6pXH62bAesZrrbBt5H8-4eQ3Eab6ow,58095
48
67
  linkml/generators/panderagen/__init__.py,sha256=Bcthn0rKU6xzQoBU--hfTUJwyOvKjASGICYamEglzcQ,109
49
68
  linkml/generators/panderagen/class_generator_mixin.py,sha256=LKdpKb1_pyBN3iyhzsQE_Q9A3S9CnXj0RQUDQw0_Ly4,826
50
69
  linkml/generators/panderagen/enum_generator_mixin.py,sha256=CMILBMjP35L8HHdp7WuO0dAHe9zEVBvN5CBSQlq41_g,708
51
70
  linkml/generators/panderagen/panderagen.py,sha256=OxLZrVLzUD5PrmomsC0MYaUM8v0R4djKHDtVr6UjPjQ,6445
71
+ linkml/generators/panderagen/slot_generator_mixin.py,sha256=mDoyptHXiR4TehDmSe3cYX4Mpa1oJUH8apPiJEKycLo,2586
52
72
  linkml/generators/panderagen/panderagen_class_based/class.jinja2,sha256=56Pb-6iiGgyfcCT1oE7mD4Rbs637SLgn2wsqH3Eyzwc,686
53
73
  linkml/generators/panderagen/panderagen_class_based/enums.jinja2,sha256=7eXfmoz7F6Tb2aYumTwW6UrwrQvqD73oYTi-LbmNCVw,295
54
74
  linkml/generators/panderagen/panderagen_class_based/header.jinja2,sha256=shLPwNAjIPMgR7uoqZWUxo4a_OtV15ywSjYh0m9dIKo,396
55
75
  linkml/generators/panderagen/panderagen_class_based/mixins.jinja2,sha256=JCgwGre4FuoEUSbPrg5MRJXZbcx5_3uCt-JuBsG3LRY,955
56
76
  linkml/generators/panderagen/panderagen_class_based/pandera.jinja2,sha256=Vlh5tdp7T9gbPst1RR72PdFeboE4Ha0yX5wILXHeZyE,506
57
77
  linkml/generators/panderagen/panderagen_class_based/slots.jinja2,sha256=cy8LKkGNDkNZBoECVOwkvN0MKLj0U_KrgkiOaY317Rc,1416
58
- linkml/generators/panderagen/slot_generator_mixin.py,sha256=mDoyptHXiR4TehDmSe3cYX4Mpa1oJUH8apPiJEKycLo,2586
59
- linkml/generators/plantumlgen.py,sha256=S05S13kxDLeKJihZ7BZesuj_8-tQUzsWjL6S478dzQg,15603
60
- linkml/generators/prefixmapgen.py,sha256=X-3K1q5WcSS8TL7rHBOL4qBGBk2Szr7l1_UzRQVvFGA,4246
61
- linkml/generators/projectgen.py,sha256=jo2sMAIES1UG1l_auPACsL81aaTPU9obrGHGGMAFqEM,9590
62
- linkml/generators/protogen.py,sha256=a4KUyKj525tuE2YenEJQ_IkbNKnnhVH_N-qTEmMBVY4,2524
63
78
  linkml/generators/pydanticgen/__init__.py,sha256=5SUFNcrh-6MLfMqptR6wPsR2v1Gyrl3wii-yu6kdnQM,700
64
79
  linkml/generators/pydanticgen/array.py,sha256=TD3_LStHfGGY1TI7jn_9DeyvLMBmgM4kc0JeOWGzSbs,25803
65
80
  linkml/generators/pydanticgen/black.py,sha256=BaJ7b-kMUbIN_cKRT3yCaMEbFwxzj1_U7w4fKQnkL44,723
@@ -78,42 +93,28 @@ linkml/generators/pydanticgen/templates/module.py.jinja,sha256=hqZKsJ72yUioBkZAu
78
93
  linkml/generators/pydanticgen/templates/validator.py.jinja,sha256=oz8XWh4Mt7DRHH0KObKGZWl_WUoR0KzoGMkLOh-NXFU,525
79
94
  linkml/generators/python/__init__.py,sha256=NS9fPEuAo0punDplD91F9mcViXMJJv04Q5NkFcKPNvY,40
80
95
  linkml/generators/python/python_ifabsent_processor.py,sha256=AqFabuyHCBpPTLO2-XO1uWNh3YcIpc-Na_649o_VmLc,3834
81
- linkml/generators/pythongen.py,sha256=soc3EgUpp1dYwRWx--aVGWo9emCNhj9TvcJsUNunlwE,55847
82
- linkml/generators/rdfgen.py,sha256=33m01NKAF-AfOLwq_g6I9itle43_u4Ek10mLT8mmuYs,2963
83
96
  linkml/generators/shacl/__init__.py,sha256=KgMOyESGTdKk2Vhx9uuUYgEJPuJQ-iT1vDQVIMoiXCM,58
84
97
  linkml/generators/shacl/shacl_data_type.py,sha256=gX3Y2KyTVPwMyef0cJMTEpU9h0oH-H0ThVDORdNW170,1828
85
98
  linkml/generators/shacl/shacl_ifabsent_processor.py,sha256=rjxD5OSa7s66ALSj_8CqAqU8oj2NiE4nfOQJ6xCSpjA,4363
86
- linkml/generators/shaclgen.py,sha256=qas_rqhwx7IpnIKAKOtxUTPB7EdhiCcTOLVJQbLOOsk,15277
87
- linkml/generators/shexgen.py,sha256=fVwrYRifsojiPu6vM1oNwnkSEp4uX-QognHOExJs0cY,9933
88
- linkml/generators/sparqlgen.py,sha256=1WjZQFNk3QXMaJhVeztJ1uWg8qojLyGGBdAKSjpVQaI,6176
89
99
  linkml/generators/sqlalchemy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
100
  linkml/generators/sqlalchemy/sqlalchemy_declarative_template.py,sha256=X_Ws1NUBikMI5HuNgEhl_PIeWM-B-c2B0W9KUBH4QTg,2542
91
101
  linkml/generators/sqlalchemy/sqlalchemy_imperative_template.py,sha256=u4ZpponG1h6XROrOHGOf_0H2e6xL1_s8twAOA-gx94A,1622
92
- linkml/generators/sqlalchemygen.py,sha256=b8vrigGOso66qQrZKlvawRDz-1oDu5LyL-X4F-mkTdc,9053
93
- linkml/generators/sqltablegen.py,sha256=83j-4ImIZIwz1WTy1fHMGYbP7WjWpN6K0AuNQnXPeXw,18178
94
- linkml/generators/sssomgen.py,sha256=zrZy0WL9fF5bk-XAcB-MZYZkhHhqVRHt2rGBUtfqnLY,6891
95
- linkml/generators/string_template.md,sha256=UMEgU5-JLBEoSpoZ0SKuzcZV6El3vcApm-cvsegsE1c,1780
96
- linkml/generators/summarygen.py,sha256=abNd39Z-Kn3FX2fjXLeCqvXvFunpqM7UFPimtiCB2p0,3081
97
- linkml/generators/terminusdbgen.py,sha256=Zizvh_GLBO9LK_X11gUvB_Ip1ttkkfiD4OZBtxjgAG4,4669
98
- linkml/generators/typescriptgen.py,sha256=wRnZpZ3LEepJRFYHVNP06PX5rPFzIDPglDRxi0Z6Zro,8870
99
- linkml/generators/yamlgen.py,sha256=PWexYoR3wHRoAUk6zK67fRYjBF6sAmX_iGlOAT0PJq0,1623
100
- linkml/generators/yumlgen.py,sha256=ZK42N3hJPvvOdztOWCwysARrGVWjg5V4Qx2XcS2Vvgc,13277
101
102
  linkml/linter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
103
  linkml/linter/cli.py,sha256=0Bt7-A1zUTJK3rzFj1O-uvLXc0JsO5vkxODvkWOPgT4,4552
103
- linkml/linter/config/datamodel/.linkmllint.yaml,sha256=40rNhcL35FXQSjlVBMWnyPgplwEUqFT_sJmeZqUzxMw,292
104
- linkml/linter/config/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- linkml/linter/config/datamodel/config.py,sha256=nU9-BMqWcdSaJrMMX7pauljPyGNo9yGRHP2kiUxXO6E,22971
106
- linkml/linter/config/datamodel/config.yaml,sha256=oJzH3H_N9OzqFwr-ThPEvs0OQI82E07rEAM5dm_7Ndw,9741
104
+ linkml/linter/linter.py,sha256=O7X2i6w-YWKl26FL7WXw9Beh4xkhmYi30PuD_FE3cM8,5187
105
+ linkml/linter/rules.py,sha256=WKTDIA8iQbTOi_hUOEY6AwRY_Xa56AcIJOHQ8oJ0qnc,17342
107
106
  linkml/linter/config/default.yaml,sha256=sDKkS9RXhSy7U6YCr5bbzPpCYCvChy6c9PsRd49tJRc,730
108
107
  linkml/linter/config/recommended.yaml,sha256=iPvaevOWgNge0ECAQoXE1v78lY_te7i9nyE-xr7pqdc,316
108
+ linkml/linter/config/datamodel/.linkmllint.yaml,sha256=40rNhcL35FXQSjlVBMWnyPgplwEUqFT_sJmeZqUzxMw,292
109
+ linkml/linter/config/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
+ linkml/linter/config/datamodel/config.py,sha256=juLR811BlMagvLY_qrT2rbOGqiC3S7PO9MrdvWJHHNU,23821
111
+ linkml/linter/config/datamodel/config.yaml,sha256=z2EFvMXAFL_7hIrBrq_0SK5EQIa14p7VOSGfVUyTtCc,10018
109
112
  linkml/linter/formatters/__init__.py,sha256=lKTbA20yL_TuimKZIBI1DGXgDO7D4QSrJ3zZFCJRwu0,269
110
113
  linkml/linter/formatters/formatter.py,sha256=u2DNowT7Nx1rexCMJmghlXklTYb98_Glj5qhnhjTkBc,518
111
114
  linkml/linter/formatters/json_formatter.py,sha256=rrOELuETUCFTl1Ewnrus9Rx9hl2g4uucrMfN6yw33iI,767
112
115
  linkml/linter/formatters/markdown_formatter.py,sha256=G7B2kIi6_EL_att73OSW6zF6hG-vPbNmicZHR5L6n-w,2599
113
116
  linkml/linter/formatters/terminal_formatter.py,sha256=xmNwlRieVCssRt3fpnNP5WWw_YXGmaBsbxFoMWufy5M,2085
114
117
  linkml/linter/formatters/tsv_formatter.py,sha256=1VW-1Tv16mwhIDpHdExYpJJR3z42K5_XK2C-4mmYYdE,871
115
- linkml/linter/linter.py,sha256=O7X2i6w-YWKl26FL7WXw9Beh4xkhmYi30PuD_FE3cM8,5187
116
- linkml/linter/rules.py,sha256=uzUcFdHAfkm1Pd-WSMJFuIYQI7LlzV-E-vSHgc5zvEo,16912
117
118
  linkml/reporting/__init__.py,sha256=Jo0V_nyEcnWhMukMW-bqW9dlbgCfaRlWm3CO-XzgU84,92
118
119
  linkml/reporting/model.py,sha256=_HY5Htuyu4AnH3F22FMSd6fBWdMqyeW_gN808Ng05So,8385
119
120
  linkml/transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -123,14 +124,13 @@ linkml/transformers/relmodel_transformer.py,sha256=g3WhT3FyNlxP36lFaJzSh9v9eZweN
123
124
  linkml/transformers/rollup_transformer.py,sha256=YP3RyYa0TzfkTrPZ4LnTIedmQWCnneFk3wAT77E1Amc,4549
124
125
  linkml/transformers/schema_renamer.py,sha256=DvXsAsxAb8p8RAxR_c74zbn_VRFN1JHCLHcjH9z7qr0,5263
125
126
  linkml/utils/__init__.py,sha256=Pkyv-Gfb8QoJdInRdJuuUz1Igfe0sT9t8Gv3V_fyTXc,92
126
- linkml/utils/cli_utils.py,sha256=MdVbox1qr6kDUHUCWAmFhV-D6ebs_nn8vVwB8KDQfew,742
127
127
  linkml/utils/converter.py,sha256=0xcUXdVPUXZvVuHivUibfVMoCd24oPsjYU1M17H173U,7121
128
128
  linkml/utils/datautils.py,sha256=QlbzwXykh5Fphfe5KxPo6_ekXfniLbHiEGJtLWjUrvY,3742
129
129
  linkml/utils/datavalidator.py,sha256=kBdWaVi8IZT1bOwEJgJYx-wZAb_PTBObB9nHpYORfKA,472
130
130
  linkml/utils/deprecation.py,sha256=fFd_rUmTJInovuhuHVZf_44fQRve6FyJ43DY2-0XLmA,9781
131
131
  linkml/utils/exceptions.py,sha256=3S6lf5WAUgVvjPRaES597_YjUjbbJ5KqjKjpjcaRLoU,217
132
132
  linkml/utils/execute_tutorial.py,sha256=gGgkuTjP8Tsb-4imsNAa_1ESlrsl3qCz02skFvhI5dE,10587
133
- linkml/utils/generator.py,sha256=WIiH1VzmDKMl438u9gBYMDRXRawsBKylVL3TyrMiZ78,39693
133
+ linkml/utils/generator.py,sha256=vWQQntyLFN-tKDL06_RxdPR5ee0NNOvTqthApGZSNSo,39689
134
134
  linkml/utils/helpers.py,sha256=MomYM4Oof-c1SgyMpjoG0Aob-eaVeF8kXvuzdJiKo_g,3351
135
135
  linkml/utils/logictools.py,sha256=dvwuX6DU0PZyxhVr9kphyQFttqZNSbbIRZ7vtTh2gU8,23649
136
136
  linkml/utils/mergeutils.py,sha256=uXHuyc13MhATMPaDToSsJlMTXeqQ9AGVEj7uOlcGGLE,10505
@@ -144,6 +144,9 @@ linkml/utils/typereferences.py,sha256=CcL8ieqFgLq13pvVtYxcJmVy5BzmRpK7VsC0ZVH7mc
144
144
  linkml/utils/validation.py,sha256=WIxcd8wm6z4S7NcMc-nebpeBWarFxiPHVSAQzqLBs6U,1491
145
145
  linkml/validator/__init__.py,sha256=rhGXoxyxY3ZMJYwB29HYYzXbwSbMxxE-OmB2ouQIvVw,4995
146
146
  linkml/validator/cli.py,sha256=tVvlSOlW5L4sLZFhJ_15xqOmUdeIVrBvQ5nJ4bTnk08,7691
147
+ linkml/validator/report.py,sha256=fhXGkm1Yxdy1fmxJD08Kn_yZ7FikJMW0LVPmZiF4lHw,1055
148
+ linkml/validator/validation_context.py,sha256=Pmccq-LQ9iEeLyZhamp3mKjjtwp4ji1hIe5TT05AUT4,2732
149
+ linkml/validator/validator.py,sha256=cUcUCfn3lqsOiG_5jL60CZKElY06DWLrdi5RQhB3pE4,5674
147
150
  linkml/validator/loaders/__init__.py,sha256=FjUqEfBHeT5PEMBEZ9XwpclyQOysr4OCI1M0w_MYPVc,1165
148
151
  linkml/validator/loaders/delimited_file_loader.py,sha256=aj1UORvz27fQy-QtM1O5MrtHFZ3PUn1mhnIPRmbgzXQ,2643
149
152
  linkml/validator/loaders/json_loader.py,sha256=ZdS0Xn2Z7lUINyETQj6tPd0Tu2YpvB1fqxEztxmrpYI,836
@@ -156,19 +159,16 @@ linkml/validator/plugins/pydantic_validation_plugin.py,sha256=dJ-LDUtbD8Y6tH1RE-
156
159
  linkml/validator/plugins/recommended_slots_plugin.py,sha256=6P2WYNgA_UPSJja_0jhh4hlLD6P8HXIkefnD9IxH4Hc,2359
157
160
  linkml/validator/plugins/shacl_validation_plugin.py,sha256=4QxFAhuMKKkKTl8VDtD-FTBqnXsQEoG_d3osDKggcQk,3915
158
161
  linkml/validator/plugins/validation_plugin.py,sha256=Gx4S5nFZ7DPoYIGlFe_o2vQJyCX0vBB3Qk2t606IfFs,1557
159
- linkml/validator/report.py,sha256=fhXGkm1Yxdy1fmxJD08Kn_yZ7FikJMW0LVPmZiF4lHw,1055
160
- linkml/validator/validation_context.py,sha256=Pmccq-LQ9iEeLyZhamp3mKjjtwp4ji1hIe5TT05AUT4,2732
161
- linkml/validator/validator.py,sha256=cUcUCfn3lqsOiG_5jL60CZKElY06DWLrdi5RQhB3pE4,5674
162
162
  linkml/validators/__init__.py,sha256=43W3J5NPKhwa3ZFHLRYsJMocwQKWGYCF9Ki9r0ccGbc,202
163
163
  linkml/validators/jsonschemavalidator.py,sha256=_2nXfM5ti42S3nx-msPrCevL5h7KCm15o0tJImQQ-XA,8384
164
164
  linkml/validators/sparqlvalidator.py,sha256=xlf9hZ-XDeScv2WB9wBg17WKM8HOKmRPowozOzlOLSQ,4961
165
165
  linkml/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
+ linkml/workspaces/example_runner.py,sha256=EjaAn6vaAKZnFcW5hRopkYBguiaR05aqKbuaM-o_7IE,12940
166
167
  linkml/workspaces/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
168
  linkml/workspaces/datamodel/workspaces.py,sha256=YIGzErECZuMER03h3DcuY3psMb0lDF1Pia_8hreKoTE,14667
168
169
  linkml/workspaces/datamodel/workspaces.yaml,sha256=LU0lMJ4W6Tk66r5ECD7OkaVm9kCRfu93yoik1b4gkzQ,4228
169
- linkml/workspaces/example_runner.py,sha256=EjaAn6vaAKZnFcW5hRopkYBguiaR05aqKbuaM-o_7IE,12940
170
- linkml-1.9.3rc3.dist-info/LICENSE,sha256=zsURghk1UIVsx0jaDvEy5QU2UAqecv1vtJozTV8Hwvw,536
171
- linkml-1.9.3rc3.dist-info/METADATA,sha256=gJdI2MMb6D5lWNQUzo4Qrgi1aszT2A82x4MZ7w6jQeQ,3723
172
- linkml-1.9.3rc3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
173
- linkml-1.9.3rc3.dist-info/entry_points.txt,sha256=AgYAJBnCIEYZsOidFnZKRbTJRxMRtmapbXbtx5imB0E,2239
174
- linkml-1.9.3rc3.dist-info/RECORD,,
170
+ linkml-1.9.4rc2.dist-info/METADATA,sha256=l_PS_D17NxeIJKXWEZzq2jGpSVuSQgDi1XnriIbNp5g,3344
171
+ linkml-1.9.4rc2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
172
+ linkml-1.9.4rc2.dist-info/entry_points.txt,sha256=BXonQU9A7VqkPV5UA2r0vz0qLdAznpTovTFEI7FGlgE,2336
173
+ linkml-1.9.4rc2.dist-info/licenses/LICENSE,sha256=zsURghk1UIVsx0jaDvEy5QU2UAqecv1vtJozTV8Hwvw,536
174
+ linkml-1.9.4rc2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -0,0 +1,50 @@
1
+ [console_scripts]
2
+ gen-csv = linkml.generators.csvgen:cli
3
+ gen-dbml = linkml.generators.dbmlgen:cli
4
+ gen-doc = linkml.generators.docgen:cli
5
+ gen-erdiagram = linkml.generators.erdiagramgen:cli
6
+ gen-excel = linkml.generators.excelgen:cli
7
+ gen-golang = linkml.generators.golanggen:cli
8
+ gen-golr-views = linkml.generators.golrgen:cli
9
+ gen-graphql = linkml.generators.graphqlgen:cli
10
+ gen-graphviz = linkml.generators.dotgen:cli
11
+ gen-java = linkml.generators.javagen:cli
12
+ gen-json-schema = linkml.generators.jsonschemagen:cli
13
+ gen-jsonld = linkml.generators.jsonldgen:cli
14
+ gen-jsonld-context = linkml.generators.jsonldcontextgen:cli
15
+ gen-linkml = linkml.generators.linkmlgen:cli
16
+ gen-markdown = linkml.generators.markdowngen:cli
17
+ gen-mermaid-class-diagram = linkml.generators.mermaidclassdiagramgen:cli
18
+ gen-namespaces = linkml.generators.namespacegen:cli
19
+ gen-owl = linkml.generators.owlgen:cli
20
+ gen-pandera = linkml.generators.panderagen:cli
21
+ gen-plantuml = linkml.generators.plantumlgen:cli
22
+ gen-prefix-map = linkml.generators.prefixmapgen:cli
23
+ gen-project = linkml.generators.projectgen:cli
24
+ gen-proto = linkml.generators.protogen:cli
25
+ gen-py-classes = linkml.generators.pythongen:cli
26
+ gen-pydantic = linkml.generators.pydanticgen:cli
27
+ gen-python = linkml.generators.pythongen:cli
28
+ gen-rdf = linkml.generators.rdfgen:cli
29
+ gen-shacl = linkml.generators.shaclgen:cli
30
+ gen-shex = linkml.generators.shexgen:cli
31
+ gen-sparql = linkml.generators.sparqlgen:cli
32
+ gen-sqla = linkml.generators.sqlalchemygen:cli
33
+ gen-sqlddl = linkml.generators.sqltablegen:cli
34
+ gen-sqltables = linkml.generators.sqltablegen:cli
35
+ gen-sssom = linkml.generators.sssomgen:cli
36
+ gen-summary = linkml.generators.summarygen:cli
37
+ gen-terminusdb = linkml.generators.terminusdbgen:cli
38
+ gen-typescript = linkml.generators.typescriptgen:cli
39
+ gen-yaml = linkml.generators.yamlgen:cli
40
+ gen-yuml = linkml.generators.yumlgen:cli
41
+ linkml = linkml.cli.main:linkml
42
+ linkml-convert = linkml.utils.converter:cli
43
+ linkml-jsonschema-validate = linkml.validators.jsonschemavalidator:cli
44
+ linkml-lint = linkml.linter.cli:main
45
+ linkml-run-examples = linkml.workspaces.example_runner:cli
46
+ linkml-schema-fixer = linkml.utils.schema_fixer:main
47
+ linkml-sparql-validate = linkml.validators.sparqlvalidator:cli
48
+ linkml-sqldb = linkml.utils.sqlutils:main
49
+ linkml-validate = linkml.validator.cli:cli
50
+ run-tutorial = linkml.utils.execute_tutorial:cli
@@ -1,51 +0,0 @@
1
- [console_scripts]
2
- gen-csv=linkml.generators.csvgen:cli
3
- gen-dbml=linkml.generators.dbmlgen:cli
4
- gen-doc=linkml.generators.docgen:cli
5
- gen-erdiagram=linkml.generators.erdiagramgen:cli
6
- gen-excel=linkml.generators.excelgen:cli
7
- gen-golang=linkml.generators.golanggen:cli
8
- gen-golr-views=linkml.generators.golrgen:cli
9
- gen-graphql=linkml.generators.graphqlgen:cli
10
- gen-graphviz=linkml.generators.dotgen:cli
11
- gen-java=linkml.generators.javagen:cli
12
- gen-json-schema=linkml.generators.jsonschemagen:cli
13
- gen-jsonld=linkml.generators.jsonldgen:cli
14
- gen-jsonld-context=linkml.generators.jsonldcontextgen:cli
15
- gen-linkml=linkml.generators.linkmlgen:cli
16
- gen-markdown=linkml.generators.markdowngen:cli
17
- gen-mermaid-class-diagram=linkml.generators.mermaidclassdiagramgen:cli
18
- gen-namespaces=linkml.generators.namespacegen:cli
19
- gen-owl=linkml.generators.owlgen:cli
20
- gen-pandera=linkml.generators.panderagen:cli
21
- gen-plantuml=linkml.generators.plantumlgen:cli
22
- gen-prefix-map=linkml.generators.prefixmapgen:cli
23
- gen-project=linkml.generators.projectgen:cli
24
- gen-proto=linkml.generators.protogen:cli
25
- gen-py-classes=linkml.generators.pythongen:cli
26
- gen-pydantic=linkml.generators.pydanticgen:cli
27
- gen-python=linkml.generators.pythongen:cli
28
- gen-rdf=linkml.generators.rdfgen:cli
29
- gen-shacl=linkml.generators.shaclgen:cli
30
- gen-shex=linkml.generators.shexgen:cli
31
- gen-sparql=linkml.generators.sparqlgen:cli
32
- gen-sqla=linkml.generators.sqlalchemygen:cli
33
- gen-sqlddl=linkml.generators.sqltablegen:cli
34
- gen-sqltables=linkml.generators.sqltablegen:cli
35
- gen-sssom=linkml.generators.sssomgen:cli
36
- gen-summary=linkml.generators.summarygen:cli
37
- gen-terminusdb=linkml.generators.terminusdbgen:cli
38
- gen-typescript=linkml.generators.typescriptgen:cli
39
- gen-yaml=linkml.generators.yamlgen:cli
40
- gen-yuml=linkml.generators.yumlgen:cli
41
- linkml=linkml.cli.main:linkml
42
- linkml-convert=linkml.utils.converter:cli
43
- linkml-jsonschema-validate=linkml.validators.jsonschemavalidator:cli
44
- linkml-lint=linkml.linter.cli:main
45
- linkml-run-examples=linkml.workspaces.example_runner:cli
46
- linkml-schema-fixer=linkml.utils.schema_fixer:main
47
- linkml-sparql-validate=linkml.validators.sparqlvalidator:cli
48
- linkml-sqldb=linkml.utils.sqlutils:main
49
- linkml-validate=linkml.validator.cli:cli
50
- run-tutorial=linkml.utils.execute_tutorial:cli
51
-
File without changes