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.
Files changed (83) hide show
  1. linkml/cli/main.py +5 -1
  2. linkml/converter/__init__.py +0 -0
  3. linkml/generators/__init__.py +2 -0
  4. linkml/generators/common/build.py +5 -20
  5. linkml/generators/common/template.py +289 -3
  6. linkml/generators/docgen.py +55 -10
  7. linkml/generators/erdiagramgen.py +9 -5
  8. linkml/generators/graphqlgen.py +32 -6
  9. linkml/generators/jsonldcontextgen.py +78 -12
  10. linkml/generators/jsonschemagen.py +29 -12
  11. linkml/generators/mermaidclassdiagramgen.py +21 -3
  12. linkml/generators/owlgen.py +13 -2
  13. linkml/generators/panderagen/dataframe_class.py +13 -0
  14. linkml/generators/panderagen/dataframe_field.py +50 -0
  15. linkml/generators/panderagen/linkml_pandera_validator.py +186 -0
  16. linkml/generators/panderagen/panderagen.py +22 -5
  17. linkml/generators/panderagen/panderagen_class_based/class.jinja2 +70 -13
  18. linkml/generators/panderagen/panderagen_class_based/custom_checks.jinja2 +27 -0
  19. linkml/generators/panderagen/panderagen_class_based/enums.jinja2 +3 -3
  20. linkml/generators/panderagen/panderagen_class_based/pandera.jinja2 +12 -2
  21. linkml/generators/panderagen/panderagen_class_based/slots.jinja2 +19 -17
  22. linkml/generators/panderagen/slot_generator_mixin.py +143 -16
  23. linkml/generators/panderagen/transforms/__init__.py +19 -0
  24. linkml/generators/panderagen/transforms/collection_dict_model_transform.py +62 -0
  25. linkml/generators/panderagen/transforms/list_dict_model_transform.py +66 -0
  26. linkml/generators/panderagen/transforms/model_transform.py +8 -0
  27. linkml/generators/panderagen/transforms/nested_struct_model_transform.py +27 -0
  28. linkml/generators/panderagen/transforms/simple_dict_model_transform.py +86 -0
  29. linkml/generators/plantumlgen.py +17 -11
  30. linkml/generators/pydanticgen/pydanticgen.py +53 -2
  31. linkml/generators/pydanticgen/template.py +45 -233
  32. linkml/generators/pydanticgen/templates/attribute.py.jinja +1 -0
  33. linkml/generators/pydanticgen/templates/base_model.py.jinja +16 -2
  34. linkml/generators/pydanticgen/templates/imports.py.jinja +1 -1
  35. linkml/generators/rdfgen.py +11 -2
  36. linkml/generators/rustgen/__init__.py +3 -0
  37. linkml/generators/rustgen/build.py +97 -0
  38. linkml/generators/rustgen/cli.py +83 -0
  39. linkml/generators/rustgen/rustgen.py +1186 -0
  40. linkml/generators/rustgen/template.py +910 -0
  41. linkml/generators/rustgen/templates/Cargo.toml.jinja +42 -0
  42. linkml/generators/rustgen/templates/anything.rs.jinja +149 -0
  43. linkml/generators/rustgen/templates/as_key_value.rs.jinja +86 -0
  44. linkml/generators/rustgen/templates/class_module.rs.jinja +8 -0
  45. linkml/generators/rustgen/templates/enum.rs.jinja +70 -0
  46. linkml/generators/rustgen/templates/file.rs.jinja +75 -0
  47. linkml/generators/rustgen/templates/import.rs.jinja +4 -0
  48. linkml/generators/rustgen/templates/imports.rs.jinja +8 -0
  49. linkml/generators/rustgen/templates/lib_shim.rs.jinja +52 -0
  50. linkml/generators/rustgen/templates/poly.rs.jinja +9 -0
  51. linkml/generators/rustgen/templates/poly_containers.rs.jinja +439 -0
  52. linkml/generators/rustgen/templates/poly_trait.rs.jinja +15 -0
  53. linkml/generators/rustgen/templates/poly_trait_impl.rs.jinja +5 -0
  54. linkml/generators/rustgen/templates/poly_trait_impl_orsubtype.rs.jinja +5 -0
  55. linkml/generators/rustgen/templates/poly_trait_property.rs.jinja +8 -0
  56. linkml/generators/rustgen/templates/poly_trait_property_impl.rs.jinja +134 -0
  57. linkml/generators/rustgen/templates/poly_trait_property_match.rs.jinja +10 -0
  58. linkml/generators/rustgen/templates/property.rs.jinja +28 -0
  59. linkml/generators/rustgen/templates/pyproject.toml.jinja +10 -0
  60. linkml/generators/rustgen/templates/serde_utils.rs.jinja +490 -0
  61. linkml/generators/rustgen/templates/slot_range_as_union.rs.jinja +64 -0
  62. linkml/generators/rustgen/templates/struct.rs.jinja +81 -0
  63. linkml/generators/rustgen/templates/struct_or_subtype_enum.rs.jinja +111 -0
  64. linkml/generators/rustgen/templates/stub_gen.rs.jinja +71 -0
  65. linkml/generators/rustgen/templates/stub_utils.rs.jinja +76 -0
  66. linkml/generators/rustgen/templates/typealias.rs.jinja +13 -0
  67. linkml/generators/sqltablegen.py +18 -16
  68. linkml/generators/yarrrmlgen.py +173 -0
  69. linkml/linter/config/datamodel/config.py +160 -293
  70. linkml/linter/config/datamodel/config.yaml +34 -26
  71. linkml/linter/config/default.yaml +4 -0
  72. linkml/linter/config/recommended.yaml +4 -0
  73. linkml/linter/linter.py +1 -2
  74. linkml/linter/rules.py +37 -0
  75. linkml/utils/schema_builder.py +2 -0
  76. linkml/utils/schemaloader.py +76 -3
  77. {linkml-1.9.4rc2.dist-info → linkml-1.9.5.dist-info}/METADATA +1 -1
  78. {linkml-1.9.4rc2.dist-info → linkml-1.9.5.dist-info}/RECORD +82 -40
  79. {linkml-1.9.4rc2.dist-info → linkml-1.9.5.dist-info}/entry_points.txt +2 -1
  80. linkml/generators/panderagen/panderagen_class_based/mixins.jinja2 +0 -26
  81. /linkml/{utils/converter.py → converter/cli.py} +0 -0
  82. {linkml-1.9.4rc2.dist-info → linkml-1.9.5.dist-info}/WHEEL +0 -0
  83. {linkml-1.9.4rc2.dist-info → linkml-1.9.5.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,5 @@
1
1
  # Auto generated from config.yaml by pythongen.py version: 0.0.1
2
- # Generation date: 2025-07-28T09:29:10
2
+ # Generation date: 2025-09-30T13:24:19
3
3
  # Schema: linter-config
4
4
  #
5
5
  # id: https://w3id.org/linkml/linter/config
@@ -9,18 +9,52 @@
9
9
  import dataclasses
10
10
  import re
11
11
  from dataclasses import dataclass
12
- from datetime import date, datetime, time
13
- from typing import Any, ClassVar, Dict, List, Optional, Union
12
+ from datetime import (
13
+ date,
14
+ datetime,
15
+ time
16
+ )
17
+ from typing import (
18
+ Any,
19
+ ClassVar,
20
+ Dict,
21
+ List,
22
+ Optional,
23
+ Union
24
+ )
14
25
 
15
- from jsonasobj2 import JsonObj, as_dict
16
- from linkml_runtime.linkml_model.meta import EnumDefinition, PermissibleValue, PvFormulaOptions
26
+ from jsonasobj2 import (
27
+ JsonObj,
28
+ as_dict
29
+ )
30
+ from linkml_runtime.linkml_model.meta import (
31
+ EnumDefinition,
32
+ PermissibleValue,
33
+ PvFormulaOptions
34
+ )
17
35
  from linkml_runtime.utils.curienamespace import CurieNamespace
18
36
  from linkml_runtime.utils.enumerations import EnumDefinitionImpl
19
- from linkml_runtime.utils.formatutils import camelcase, sfx, underscore
20
- from linkml_runtime.utils.metamodelcore import bnode, empty_dict, empty_list
37
+ from linkml_runtime.utils.formatutils import (
38
+ camelcase,
39
+ sfx,
40
+ underscore
41
+ )
42
+ from linkml_runtime.utils.metamodelcore import (
43
+ bnode,
44
+ empty_dict,
45
+ empty_list
46
+ )
21
47
  from linkml_runtime.utils.slot import Slot
22
- from linkml_runtime.utils.yamlutils import YAMLRoot, extended_float, extended_int, extended_str
23
- from rdflib import Namespace, URIRef
48
+ from linkml_runtime.utils.yamlutils import (
49
+ YAMLRoot,
50
+ extended_float,
51
+ extended_int,
52
+ extended_str
53
+ )
54
+ from rdflib import (
55
+ Namespace,
56
+ URIRef
57
+ )
24
58
 
25
59
  from linkml_runtime.linkml_model.types import Boolean, String
26
60
  from linkml_runtime.utils.metamodelcore import Bool
@@ -29,8 +63,8 @@ metamodel_version = "1.7.0"
29
63
  version = None
30
64
 
31
65
  # Namespaces
32
- LINKML = CurieNamespace("linkml", "https://w3id.org/linkml/")
33
- LINTCFG = CurieNamespace("lintcfg", "https://w3id.org/linkml/linter/config")
66
+ LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/')
67
+ LINTCFG = CurieNamespace('lintcfg', 'https://w3id.org/linkml/linter/config')
34
68
  DEFAULT_ = LINTCFG
35
69
 
36
70
 
@@ -39,13 +73,13 @@ DEFAULT_ = LINTCFG
39
73
  # Class references
40
74
 
41
75
 
76
+
42
77
  @dataclass(repr=False)
43
78
  class Config(YAMLRoot):
44
79
  """
45
80
  This is the top-level representation of a LinkML linter configuration file. It allows defining a set of rules
46
81
  while also optionally extending a predefined set of rules.
47
82
  """
48
-
49
83
  _inherited_slots: ClassVar[list[str]] = []
50
84
 
51
85
  class_class_uri: ClassVar[URIRef] = LINTCFG["Config"]
@@ -71,7 +105,6 @@ class Rules(YAMLRoot):
71
105
  """
72
106
  Each attribute of this class represents a rule that can be enabled and possibly configured by a configuration file.
73
107
  """
74
-
75
108
  _inherited_slots: ClassVar[list[str]] = []
76
109
 
77
110
  class_class_uri: ClassVar[URIRef] = LINTCFG["Rules"]
@@ -79,38 +112,27 @@ class Rules(YAMLRoot):
79
112
  class_name: ClassVar[str] = "Rules"
80
113
  class_model_uri: ClassVar[URIRef] = LINTCFG.Rules
81
114
 
115
+ canonical_prefixes: Optional[Union[dict, "CanonicalPrefixesConfig"]] = None
82
116
  no_empty_title: Optional[Union[dict, "NoEmptyTitleConfig"]] = None
83
- permissible_values_format: Optional[Union[dict, "PermissibleValuesFormatRuleConfig"]] = None
84
- tree_root_class: Optional[Union[dict, "TreeRootClassRuleConfig"]] = None
85
- recommended: Optional[Union[dict, "RecommendedRuleConfig"]] = None
86
- no_xsd_int_type: Optional[Union[dict, "RuleConfig"]] = None
87
117
  no_invalid_slot_usage: Optional[Union[dict, "RuleConfig"]] = None
88
118
  no_undeclared_slots: Optional[Union[dict, "RuleConfig"]] = None
89
119
  no_undeclared_ranges: Optional[Union[dict, "RuleConfig"]] = None
120
+ no_xsd_int_type: Optional[Union[dict, "RuleConfig"]] = None
121
+ one_identifier_per_class: Optional[Union[dict, "RuleConfig"]] = None
122
+ one_key_per_class: Optional[Union[dict, "RuleConfig"]] = None
123
+ permissible_values_format: Optional[Union[dict, "PermissibleValuesFormatRuleConfig"]] = None
124
+ recommended: Optional[Union[dict, "RecommendedRuleConfig"]] = None
90
125
  root_type_checks: Optional[Union[dict, "RuleConfig"]] = None
91
126
  standard_naming: Optional[Union[dict, "StandardNamingConfig"]] = None
92
- canonical_prefixes: Optional[Union[dict, "CanonicalPrefixesConfig"]] = None
127
+ tree_root_class: Optional[Union[dict, "TreeRootClassRuleConfig"]] = None
93
128
 
94
129
  def __post_init__(self, *_: str, **kwargs: Any):
130
+ if self.canonical_prefixes is not None and not isinstance(self.canonical_prefixes, CanonicalPrefixesConfig):
131
+ self.canonical_prefixes = CanonicalPrefixesConfig(**as_dict(self.canonical_prefixes))
132
+
95
133
  if self.no_empty_title is not None and not isinstance(self.no_empty_title, NoEmptyTitleConfig):
96
134
  self.no_empty_title = NoEmptyTitleConfig(**as_dict(self.no_empty_title))
97
135
 
98
- if self.permissible_values_format is not None and not isinstance(
99
- self.permissible_values_format, PermissibleValuesFormatRuleConfig
100
- ):
101
- self.permissible_values_format = PermissibleValuesFormatRuleConfig(
102
- **as_dict(self.permissible_values_format)
103
- )
104
-
105
- if self.tree_root_class is not None and not isinstance(self.tree_root_class, TreeRootClassRuleConfig):
106
- self.tree_root_class = TreeRootClassRuleConfig(**as_dict(self.tree_root_class))
107
-
108
- if self.recommended is not None and not isinstance(self.recommended, RecommendedRuleConfig):
109
- self.recommended = RecommendedRuleConfig(**as_dict(self.recommended))
110
-
111
- if self.no_xsd_int_type is not None and not isinstance(self.no_xsd_int_type, RuleConfig):
112
- self.no_xsd_int_type = RuleConfig(**as_dict(self.no_xsd_int_type))
113
-
114
136
  if self.no_invalid_slot_usage is not None and not isinstance(self.no_invalid_slot_usage, RuleConfig):
115
137
  self.no_invalid_slot_usage = RuleConfig(**as_dict(self.no_invalid_slot_usage))
116
138
 
@@ -120,14 +142,29 @@ class Rules(YAMLRoot):
120
142
  if self.no_undeclared_ranges is not None and not isinstance(self.no_undeclared_ranges, RuleConfig):
121
143
  self.no_undeclared_ranges = RuleConfig(**as_dict(self.no_undeclared_ranges))
122
144
 
145
+ if self.no_xsd_int_type is not None and not isinstance(self.no_xsd_int_type, RuleConfig):
146
+ self.no_xsd_int_type = RuleConfig(**as_dict(self.no_xsd_int_type))
147
+
148
+ if self.one_identifier_per_class is not None and not isinstance(self.one_identifier_per_class, RuleConfig):
149
+ self.one_identifier_per_class = RuleConfig(**as_dict(self.one_identifier_per_class))
150
+
151
+ if self.one_key_per_class is not None and not isinstance(self.one_key_per_class, RuleConfig):
152
+ self.one_key_per_class = RuleConfig(**as_dict(self.one_key_per_class))
153
+
154
+ if self.permissible_values_format is not None and not isinstance(self.permissible_values_format, PermissibleValuesFormatRuleConfig):
155
+ self.permissible_values_format = PermissibleValuesFormatRuleConfig(**as_dict(self.permissible_values_format))
156
+
157
+ if self.recommended is not None and not isinstance(self.recommended, RecommendedRuleConfig):
158
+ self.recommended = RecommendedRuleConfig(**as_dict(self.recommended))
159
+
123
160
  if self.root_type_checks is not None and not isinstance(self.root_type_checks, RuleConfig):
124
161
  self.root_type_checks = RuleConfig(**as_dict(self.root_type_checks))
125
162
 
126
163
  if self.standard_naming is not None and not isinstance(self.standard_naming, StandardNamingConfig):
127
164
  self.standard_naming = StandardNamingConfig(**as_dict(self.standard_naming))
128
165
 
129
- if self.canonical_prefixes is not None and not isinstance(self.canonical_prefixes, CanonicalPrefixesConfig):
130
- self.canonical_prefixes = CanonicalPrefixesConfig(**as_dict(self.canonical_prefixes))
166
+ if self.tree_root_class is not None and not isinstance(self.tree_root_class, TreeRootClassRuleConfig):
167
+ self.tree_root_class = TreeRootClassRuleConfig(**as_dict(self.tree_root_class))
131
168
 
132
169
  super().__post_init__(**kwargs)
133
170
 
@@ -137,7 +174,6 @@ class RuleConfig(YAMLRoot):
137
174
  """
138
175
  This is the base class for linter rules. It contains configuration options that are common to all rules.
139
176
  """
140
-
141
177
  _inherited_slots: ClassVar[list[str]] = []
142
178
 
143
179
  class_class_uri: ClassVar[URIRef] = LINTCFG["RuleConfig"]
@@ -161,7 +197,6 @@ class PermissibleValuesFormatRuleConfig(RuleConfig):
161
197
  """
162
198
  Additional configuration options for the `permissible_values_format` rule
163
199
  """
164
-
165
200
  _inherited_slots: ClassVar[list[str]] = []
166
201
 
167
202
  class_class_uri: ClassVar[URIRef] = LINTCFG["PermissibleValuesFormatRuleConfig"]
@@ -184,7 +219,6 @@ class TreeRootClassRuleConfig(RuleConfig):
184
219
  """
185
220
  Additional configuration options for the `tree_root_class` rule
186
221
  """
187
-
188
222
  _inherited_slots: ClassVar[list[str]] = []
189
223
 
190
224
  class_class_uri: ClassVar[URIRef] = LINTCFG["TreeRootClassRuleConfig"]
@@ -211,7 +245,6 @@ class RecommendedRuleConfig(RuleConfig):
211
245
  """
212
246
  Additional configuration options for the `recommended` rule
213
247
  """
214
-
215
248
  _inherited_slots: ClassVar[list[str]] = []
216
249
 
217
250
  class_class_uri: ClassVar[URIRef] = LINTCFG["RecommendedRuleConfig"]
@@ -222,9 +255,7 @@ class RecommendedRuleConfig(RuleConfig):
222
255
  level: Union[str, "RuleLevel"] = None
223
256
  include: Optional[Union[str, list[str]]] = empty_list()
224
257
  exclude: Optional[Union[str, list[str]]] = empty_list()
225
- exclude_type: Optional[
226
- Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]
227
- ] = empty_list()
258
+ exclude_type: Optional[Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]] = empty_list()
228
259
 
229
260
  def __post_init__(self, *_: str, **kwargs: Any):
230
261
  if not isinstance(self.include, list):
@@ -237,9 +268,7 @@ class RecommendedRuleConfig(RuleConfig):
237
268
 
238
269
  if not isinstance(self.exclude_type, list):
239
270
  self.exclude_type = [self.exclude_type] if self.exclude_type is not None else []
240
- self.exclude_type = [
241
- v if isinstance(v, MetamodelElementTypeEnum) else MetamodelElementTypeEnum(v) for v in self.exclude_type
242
- ]
271
+ self.exclude_type = [v if isinstance(v, MetamodelElementTypeEnum) else MetamodelElementTypeEnum(v) for v in self.exclude_type]
243
272
 
244
273
  super().__post_init__(**kwargs)
245
274
 
@@ -249,7 +278,6 @@ class StandardNamingConfig(RuleConfig):
249
278
  """
250
279
  Additional configuration options for the `standard_naming` rule
251
280
  """
252
-
253
281
  _inherited_slots: ClassVar[list[str]] = []
254
282
 
255
283
  class_class_uri: ClassVar[URIRef] = LINTCFG["StandardNamingConfig"]
@@ -259,9 +287,7 @@ class StandardNamingConfig(RuleConfig):
259
287
 
260
288
  level: Union[str, "RuleLevel"] = None
261
289
  permissible_values_upper_case: Optional[Union[bool, Bool]] = None
262
- exclude_type: Optional[
263
- Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]
264
- ] = empty_list()
290
+ exclude_type: Optional[Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]] = empty_list()
265
291
  exclude: Optional[Union[str, list[str]]] = empty_list()
266
292
  class_pattern: Optional[str] = None
267
293
  slot_pattern: Optional[str] = None
@@ -272,9 +298,7 @@ class StandardNamingConfig(RuleConfig):
272
298
 
273
299
  if not isinstance(self.exclude_type, list):
274
300
  self.exclude_type = [self.exclude_type] if self.exclude_type is not None else []
275
- self.exclude_type = [
276
- v if isinstance(v, MetamodelElementTypeEnum) else MetamodelElementTypeEnum(v) for v in self.exclude_type
277
- ]
301
+ self.exclude_type = [v if isinstance(v, MetamodelElementTypeEnum) else MetamodelElementTypeEnum(v) for v in self.exclude_type]
278
302
 
279
303
  if not isinstance(self.exclude, list):
280
304
  self.exclude = [self.exclude] if self.exclude is not None else []
@@ -294,7 +318,6 @@ class CanonicalPrefixesConfig(RuleConfig):
294
318
  """
295
319
  Additional configuration options for the canonical_prefixes rule
296
320
  """
297
-
298
321
  _inherited_slots: ClassVar[list[str]] = []
299
322
 
300
323
  class_class_uri: ClassVar[URIRef] = LINTCFG["CanonicalPrefixesConfig"]
@@ -318,7 +341,6 @@ class NoEmptyTitleConfig(RuleConfig):
318
341
  """
319
342
  Additional configuration options for the no_empty_title rule
320
343
  """
321
-
322
344
  _inherited_slots: ClassVar[list[str]] = []
323
345
 
324
346
  class_class_uri: ClassVar[URIRef] = LINTCFG["NoEmptyTitleConfig"]
@@ -327,16 +349,12 @@ class NoEmptyTitleConfig(RuleConfig):
327
349
  class_model_uri: ClassVar[URIRef] = LINTCFG.NoEmptyTitleConfig
328
350
 
329
351
  level: Union[str, "RuleLevel"] = None
330
- exclude_type: Optional[
331
- Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]
332
- ] = empty_list()
352
+ exclude_type: Optional[Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]] = empty_list()
333
353
 
334
354
  def __post_init__(self, *_: str, **kwargs: Any):
335
355
  if not isinstance(self.exclude_type, list):
336
356
  self.exclude_type = [self.exclude_type] if self.exclude_type is not None else []
337
- self.exclude_type = [
338
- v if isinstance(v, MetamodelElementTypeEnum) else MetamodelElementTypeEnum(v) for v in self.exclude_type
339
- ]
357
+ self.exclude_type = [v if isinstance(v, MetamodelElementTypeEnum) else MetamodelElementTypeEnum(v) for v in self.exclude_type]
340
358
 
341
359
  super().__post_init__(**kwargs)
342
360
 
@@ -346,294 +364,143 @@ class ExtendableConfigs(EnumDefinitionImpl):
346
364
  """
347
365
  The permissible values for the `extends` field of a config file
348
366
  """
349
-
350
- recommended = PermissibleValue(text="recommended", description="Extend the recommended rule set")
367
+ recommended = PermissibleValue(
368
+ text="recommended",
369
+ description="Extend the recommended rule set")
351
370
 
352
371
  _defn = EnumDefinition(
353
372
  name="ExtendableConfigs",
354
373
  description="The permissible values for the `extends` field of a config file",
355
374
  )
356
375
 
357
-
358
376
  class RuleLevel(EnumDefinitionImpl):
359
377
  """
360
378
  The permissible values for the `level` option of all rules
361
379
  """
362
-
363
- disabled = PermissibleValue(text="disabled", description="The rule will not be checked")
380
+ disabled = PermissibleValue(
381
+ text="disabled",
382
+ description="The rule will not be checked")
364
383
  warning = PermissibleValue(
365
- text="warning", description="A violation of a rule at this level is a minor issue that should be fixed"
366
- )
384
+ text="warning",
385
+ description="A violation of a rule at this level is a minor issue that should be fixed")
367
386
  error = PermissibleValue(
368
- text="error", description="A violation of a rule at this level is a major issue that must be fixed"
369
- )
387
+ text="error",
388
+ description="A violation of a rule at this level is a major issue that must be fixed")
370
389
 
371
390
  _defn = EnumDefinition(
372
391
  name="RuleLevel",
373
392
  description="The permissible values for the `level` option of all rules",
374
393
  )
375
394
 
376
-
377
395
  class MetamodelElementTypeEnum(EnumDefinitionImpl):
378
396
  """
379
397
  The permissible values for the exclude_type slot
380
398
  """
381
-
382
- class_definition = PermissibleValue(text="class_definition", meaning=LINKML["ClassDefinition"])
383
- enum_definition = PermissibleValue(text="enum_definition", meaning=LINKML["EnumDefinition"])
384
- permissible_value = PermissibleValue(text="permissible_value", meaning=LINKML["PermissibleValue"])
385
- slot_definition = PermissibleValue(text="slot_definition", meaning=LINKML["SlotDefinition"])
399
+ class_definition = PermissibleValue(
400
+ text="class_definition",
401
+ meaning=LINKML["ClassDefinition"])
402
+ enum_definition = PermissibleValue(
403
+ text="enum_definition",
404
+ meaning=LINKML["EnumDefinition"])
405
+ permissible_value = PermissibleValue(
406
+ text="permissible_value",
407
+ meaning=LINKML["PermissibleValue"])
408
+ slot_definition = PermissibleValue(
409
+ text="slot_definition",
410
+ meaning=LINKML["SlotDefinition"])
386
411
 
387
412
  _defn = EnumDefinition(
388
413
  name="MetamodelElementTypeEnum",
389
414
  description="The permissible values for the exclude_type slot",
390
415
  )
391
416
 
392
-
393
417
  # Slots
394
418
  class slots:
395
419
  pass
396
420
 
421
+ slots.config__extends = Slot(uri=LINTCFG.extends, name="config__extends", curie=LINTCFG.curie('extends'),
422
+ model_uri=LINTCFG.config__extends, domain=None, range=Optional[Union[str, "ExtendableConfigs"]])
397
423
 
398
- slots.config__extends = Slot(
399
- uri=LINTCFG.extends,
400
- name="config__extends",
401
- curie=LINTCFG.curie("extends"),
402
- model_uri=LINTCFG.config__extends,
403
- domain=None,
404
- range=Optional[Union[str, "ExtendableConfigs"]],
405
- )
424
+ slots.config__rules = Slot(uri=LINTCFG.rules, name="config__rules", curie=LINTCFG.curie('rules'),
425
+ model_uri=LINTCFG.config__rules, domain=None, range=Optional[Union[dict, Rules]])
406
426
 
407
- slots.config__rules = Slot(
408
- uri=LINTCFG.rules,
409
- name="config__rules",
410
- curie=LINTCFG.curie("rules"),
411
- model_uri=LINTCFG.config__rules,
412
- domain=None,
413
- range=Optional[Union[dict, Rules]],
414
- )
427
+ slots.rules__canonical_prefixes = Slot(uri=LINTCFG.canonical_prefixes, name="rules__canonical_prefixes", curie=LINTCFG.curie('canonical_prefixes'),
428
+ model_uri=LINTCFG.rules__canonical_prefixes, domain=None, range=Optional[Union[dict, CanonicalPrefixesConfig]])
415
429
 
416
- slots.rules__no_empty_title = Slot(
417
- uri=LINTCFG.no_empty_title,
418
- name="rules__no_empty_title",
419
- curie=LINTCFG.curie("no_empty_title"),
420
- model_uri=LINTCFG.rules__no_empty_title,
421
- domain=None,
422
- range=Optional[Union[dict, NoEmptyTitleConfig]],
423
- )
430
+ slots.rules__no_empty_title = Slot(uri=LINTCFG.no_empty_title, name="rules__no_empty_title", curie=LINTCFG.curie('no_empty_title'),
431
+ model_uri=LINTCFG.rules__no_empty_title, domain=None, range=Optional[Union[dict, NoEmptyTitleConfig]])
424
432
 
425
- slots.rules__permissible_values_format = Slot(
426
- uri=LINTCFG.permissible_values_format,
427
- name="rules__permissible_values_format",
428
- curie=LINTCFG.curie("permissible_values_format"),
429
- model_uri=LINTCFG.rules__permissible_values_format,
430
- domain=None,
431
- range=Optional[Union[dict, PermissibleValuesFormatRuleConfig]],
432
- )
433
+ slots.rules__no_invalid_slot_usage = Slot(uri=LINTCFG.no_invalid_slot_usage, name="rules__no_invalid_slot_usage", curie=LINTCFG.curie('no_invalid_slot_usage'),
434
+ model_uri=LINTCFG.rules__no_invalid_slot_usage, domain=None, range=Optional[Union[dict, RuleConfig]])
433
435
 
434
- slots.rules__tree_root_class = Slot(
435
- uri=LINTCFG.tree_root_class,
436
- name="rules__tree_root_class",
437
- curie=LINTCFG.curie("tree_root_class"),
438
- model_uri=LINTCFG.rules__tree_root_class,
439
- domain=None,
440
- range=Optional[Union[dict, TreeRootClassRuleConfig]],
441
- )
436
+ slots.rules__no_undeclared_slots = Slot(uri=LINTCFG.no_undeclared_slots, name="rules__no_undeclared_slots", curie=LINTCFG.curie('no_undeclared_slots'),
437
+ model_uri=LINTCFG.rules__no_undeclared_slots, domain=None, range=Optional[Union[dict, RuleConfig]])
442
438
 
443
- slots.rules__recommended = Slot(
444
- uri=LINTCFG.recommended,
445
- name="rules__recommended",
446
- curie=LINTCFG.curie("recommended"),
447
- model_uri=LINTCFG.rules__recommended,
448
- domain=None,
449
- range=Optional[Union[dict, RecommendedRuleConfig]],
450
- )
439
+ slots.rules__no_undeclared_ranges = Slot(uri=LINTCFG.no_undeclared_ranges, name="rules__no_undeclared_ranges", curie=LINTCFG.curie('no_undeclared_ranges'),
440
+ model_uri=LINTCFG.rules__no_undeclared_ranges, domain=None, range=Optional[Union[dict, RuleConfig]])
451
441
 
452
- slots.rules__no_xsd_int_type = Slot(
453
- uri=LINTCFG.no_xsd_int_type,
454
- name="rules__no_xsd_int_type",
455
- curie=LINTCFG.curie("no_xsd_int_type"),
456
- model_uri=LINTCFG.rules__no_xsd_int_type,
457
- domain=None,
458
- range=Optional[Union[dict, RuleConfig]],
459
- )
442
+ slots.rules__no_xsd_int_type = Slot(uri=LINTCFG.no_xsd_int_type, name="rules__no_xsd_int_type", curie=LINTCFG.curie('no_xsd_int_type'),
443
+ model_uri=LINTCFG.rules__no_xsd_int_type, domain=None, range=Optional[Union[dict, RuleConfig]])
460
444
 
461
- slots.rules__no_invalid_slot_usage = Slot(
462
- uri=LINTCFG.no_invalid_slot_usage,
463
- name="rules__no_invalid_slot_usage",
464
- curie=LINTCFG.curie("no_invalid_slot_usage"),
465
- model_uri=LINTCFG.rules__no_invalid_slot_usage,
466
- domain=None,
467
- range=Optional[Union[dict, RuleConfig]],
468
- )
445
+ slots.rules__one_identifier_per_class = Slot(uri=LINTCFG.one_identifier_per_class, name="rules__one_identifier_per_class", curie=LINTCFG.curie('one_identifier_per_class'),
446
+ model_uri=LINTCFG.rules__one_identifier_per_class, domain=None, range=Optional[Union[dict, RuleConfig]])
469
447
 
470
- slots.rules__no_undeclared_slots = Slot(
471
- uri=LINTCFG.no_undeclared_slots,
472
- name="rules__no_undeclared_slots",
473
- curie=LINTCFG.curie("no_undeclared_slots"),
474
- model_uri=LINTCFG.rules__no_undeclared_slots,
475
- domain=None,
476
- range=Optional[Union[dict, RuleConfig]],
477
- )
448
+ slots.rules__one_key_per_class = Slot(uri=LINTCFG.one_key_per_class, name="rules__one_key_per_class", curie=LINTCFG.curie('one_key_per_class'),
449
+ model_uri=LINTCFG.rules__one_key_per_class, domain=None, range=Optional[Union[dict, RuleConfig]])
478
450
 
479
- slots.rules__no_undeclared_ranges = Slot(
480
- uri=LINTCFG.no_undeclared_ranges,
481
- name="rules__no_undeclared_ranges",
482
- curie=LINTCFG.curie("no_undeclared_ranges"),
483
- model_uri=LINTCFG.rules__no_undeclared_ranges,
484
- domain=None,
485
- range=Optional[Union[dict, RuleConfig]],
486
- )
451
+ slots.rules__permissible_values_format = Slot(uri=LINTCFG.permissible_values_format, name="rules__permissible_values_format", curie=LINTCFG.curie('permissible_values_format'),
452
+ model_uri=LINTCFG.rules__permissible_values_format, domain=None, range=Optional[Union[dict, PermissibleValuesFormatRuleConfig]])
487
453
 
488
- slots.rules__root_type_checks = Slot(
489
- uri=LINTCFG.root_type_checks,
490
- name="rules__root_type_checks",
491
- curie=LINTCFG.curie("root_type_checks"),
492
- model_uri=LINTCFG.rules__root_type_checks,
493
- domain=None,
494
- range=Optional[Union[dict, RuleConfig]],
495
- )
454
+ slots.rules__recommended = Slot(uri=LINTCFG.recommended, name="rules__recommended", curie=LINTCFG.curie('recommended'),
455
+ model_uri=LINTCFG.rules__recommended, domain=None, range=Optional[Union[dict, RecommendedRuleConfig]])
496
456
 
497
- slots.rules__standard_naming = Slot(
498
- uri=LINTCFG.standard_naming,
499
- name="rules__standard_naming",
500
- curie=LINTCFG.curie("standard_naming"),
501
- model_uri=LINTCFG.rules__standard_naming,
502
- domain=None,
503
- range=Optional[Union[dict, StandardNamingConfig]],
504
- )
457
+ slots.rules__root_type_checks = Slot(uri=LINTCFG.root_type_checks, name="rules__root_type_checks", curie=LINTCFG.curie('root_type_checks'),
458
+ model_uri=LINTCFG.rules__root_type_checks, domain=None, range=Optional[Union[dict, RuleConfig]])
505
459
 
506
- slots.rules__canonical_prefixes = Slot(
507
- uri=LINTCFG.canonical_prefixes,
508
- name="rules__canonical_prefixes",
509
- curie=LINTCFG.curie("canonical_prefixes"),
510
- model_uri=LINTCFG.rules__canonical_prefixes,
511
- domain=None,
512
- range=Optional[Union[dict, CanonicalPrefixesConfig]],
513
- )
460
+ slots.rules__standard_naming = Slot(uri=LINTCFG.standard_naming, name="rules__standard_naming", curie=LINTCFG.curie('standard_naming'),
461
+ model_uri=LINTCFG.rules__standard_naming, domain=None, range=Optional[Union[dict, StandardNamingConfig]])
514
462
 
515
- slots.ruleConfig__level = Slot(
516
- uri=LINTCFG.level,
517
- name="ruleConfig__level",
518
- curie=LINTCFG.curie("level"),
519
- model_uri=LINTCFG.ruleConfig__level,
520
- domain=None,
521
- range=Union[str, "RuleLevel"],
522
- )
463
+ slots.rules__tree_root_class = Slot(uri=LINTCFG.tree_root_class, name="rules__tree_root_class", curie=LINTCFG.curie('tree_root_class'),
464
+ model_uri=LINTCFG.rules__tree_root_class, domain=None, range=Optional[Union[dict, TreeRootClassRuleConfig]])
523
465
 
524
- slots.permissibleValuesFormatRuleConfig__format = Slot(
525
- uri=LINTCFG.format,
526
- name="permissibleValuesFormatRuleConfig__format",
527
- curie=LINTCFG.curie("format"),
528
- model_uri=LINTCFG.permissibleValuesFormatRuleConfig__format,
529
- domain=None,
530
- range=Optional[str],
531
- )
466
+ slots.ruleConfig__level = Slot(uri=LINTCFG.level, name="ruleConfig__level", curie=LINTCFG.curie('level'),
467
+ model_uri=LINTCFG.ruleConfig__level, domain=None, range=Union[str, "RuleLevel"])
532
468
 
533
- slots.treeRootClassRuleConfig__root_class_name = Slot(
534
- uri=LINTCFG.root_class_name,
535
- name="treeRootClassRuleConfig__root_class_name",
536
- curie=LINTCFG.curie("root_class_name"),
537
- model_uri=LINTCFG.treeRootClassRuleConfig__root_class_name,
538
- domain=None,
539
- range=Optional[str],
540
- )
469
+ slots.permissibleValuesFormatRuleConfig__format = Slot(uri=LINTCFG.format, name="permissibleValuesFormatRuleConfig__format", curie=LINTCFG.curie('format'),
470
+ model_uri=LINTCFG.permissibleValuesFormatRuleConfig__format, domain=None, range=Optional[str])
541
471
 
542
- slots.treeRootClassRuleConfig__validate_existing_class_name = Slot(
543
- uri=LINTCFG.validate_existing_class_name,
544
- name="treeRootClassRuleConfig__validate_existing_class_name",
545
- curie=LINTCFG.curie("validate_existing_class_name"),
546
- model_uri=LINTCFG.treeRootClassRuleConfig__validate_existing_class_name,
547
- domain=None,
548
- range=Optional[Union[bool, Bool]],
549
- )
472
+ slots.treeRootClassRuleConfig__root_class_name = Slot(uri=LINTCFG.root_class_name, name="treeRootClassRuleConfig__root_class_name", curie=LINTCFG.curie('root_class_name'),
473
+ model_uri=LINTCFG.treeRootClassRuleConfig__root_class_name, domain=None, range=Optional[str])
550
474
 
551
- slots.recommendedRuleConfig__include = Slot(
552
- uri=LINTCFG.include,
553
- name="recommendedRuleConfig__include",
554
- curie=LINTCFG.curie("include"),
555
- model_uri=LINTCFG.recommendedRuleConfig__include,
556
- domain=None,
557
- range=Optional[Union[str, list[str]]],
558
- )
475
+ slots.treeRootClassRuleConfig__validate_existing_class_name = Slot(uri=LINTCFG.validate_existing_class_name, name="treeRootClassRuleConfig__validate_existing_class_name", curie=LINTCFG.curie('validate_existing_class_name'),
476
+ model_uri=LINTCFG.treeRootClassRuleConfig__validate_existing_class_name, domain=None, range=Optional[Union[bool, Bool]])
559
477
 
560
- slots.recommendedRuleConfig__exclude = Slot(
561
- uri=LINTCFG.exclude,
562
- name="recommendedRuleConfig__exclude",
563
- curie=LINTCFG.curie("exclude"),
564
- model_uri=LINTCFG.recommendedRuleConfig__exclude,
565
- domain=None,
566
- range=Optional[Union[str, list[str]]],
567
- )
478
+ slots.recommendedRuleConfig__include = Slot(uri=LINTCFG.include, name="recommendedRuleConfig__include", curie=LINTCFG.curie('include'),
479
+ model_uri=LINTCFG.recommendedRuleConfig__include, domain=None, range=Optional[Union[str, list[str]]])
568
480
 
569
- slots.recommendedRuleConfig__exclude_type = Slot(
570
- uri=LINTCFG.exclude_type,
571
- name="recommendedRuleConfig__exclude_type",
572
- curie=LINTCFG.curie("exclude_type"),
573
- model_uri=LINTCFG.recommendedRuleConfig__exclude_type,
574
- domain=None,
575
- range=Optional[Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]],
576
- )
481
+ slots.recommendedRuleConfig__exclude = Slot(uri=LINTCFG.exclude, name="recommendedRuleConfig__exclude", curie=LINTCFG.curie('exclude'),
482
+ model_uri=LINTCFG.recommendedRuleConfig__exclude, domain=None, range=Optional[Union[str, list[str]]])
577
483
 
578
- slots.standardNamingConfig__permissible_values_upper_case = Slot(
579
- uri=LINTCFG.permissible_values_upper_case,
580
- name="standardNamingConfig__permissible_values_upper_case",
581
- curie=LINTCFG.curie("permissible_values_upper_case"),
582
- model_uri=LINTCFG.standardNamingConfig__permissible_values_upper_case,
583
- domain=None,
584
- range=Optional[Union[bool, Bool]],
585
- )
484
+ slots.recommendedRuleConfig__exclude_type = Slot(uri=LINTCFG.exclude_type, name="recommendedRuleConfig__exclude_type", curie=LINTCFG.curie('exclude_type'),
485
+ model_uri=LINTCFG.recommendedRuleConfig__exclude_type, domain=None, range=Optional[Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]])
586
486
 
587
- slots.standardNamingConfig__exclude_type = Slot(
588
- uri=LINTCFG.exclude_type,
589
- name="standardNamingConfig__exclude_type",
590
- curie=LINTCFG.curie("exclude_type"),
591
- model_uri=LINTCFG.standardNamingConfig__exclude_type,
592
- domain=None,
593
- range=Optional[Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]],
594
- )
487
+ slots.standardNamingConfig__permissible_values_upper_case = Slot(uri=LINTCFG.permissible_values_upper_case, name="standardNamingConfig__permissible_values_upper_case", curie=LINTCFG.curie('permissible_values_upper_case'),
488
+ model_uri=LINTCFG.standardNamingConfig__permissible_values_upper_case, domain=None, range=Optional[Union[bool, Bool]])
595
489
 
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
- )
490
+ slots.standardNamingConfig__exclude_type = Slot(uri=LINTCFG.exclude_type, name="standardNamingConfig__exclude_type", curie=LINTCFG.curie('exclude_type'),
491
+ model_uri=LINTCFG.standardNamingConfig__exclude_type, domain=None, range=Optional[Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]])
604
492
 
605
- slots.standardNamingConfig__class_pattern = Slot(
606
- uri=LINTCFG.class_pattern,
607
- name="standardNamingConfig__class_pattern",
608
- curie=LINTCFG.curie("class_pattern"),
609
- model_uri=LINTCFG.standardNamingConfig__class_pattern,
610
- domain=None,
611
- range=Optional[str],
612
- )
493
+ slots.standardNamingConfig__exclude = Slot(uri=LINTCFG.exclude, name="standardNamingConfig__exclude", curie=LINTCFG.curie('exclude'),
494
+ model_uri=LINTCFG.standardNamingConfig__exclude, domain=None, range=Optional[Union[str, list[str]]])
613
495
 
614
- slots.standardNamingConfig__slot_pattern = Slot(
615
- uri=LINTCFG.slot_pattern,
616
- name="standardNamingConfig__slot_pattern",
617
- curie=LINTCFG.curie("slot_pattern"),
618
- model_uri=LINTCFG.standardNamingConfig__slot_pattern,
619
- domain=None,
620
- range=Optional[str],
621
- )
496
+ slots.standardNamingConfig__class_pattern = Slot(uri=LINTCFG.class_pattern, name="standardNamingConfig__class_pattern", curie=LINTCFG.curie('class_pattern'),
497
+ model_uri=LINTCFG.standardNamingConfig__class_pattern, domain=None, range=Optional[str])
622
498
 
623
- slots.canonicalPrefixesConfig__prefixmaps_contexts = Slot(
624
- uri=LINTCFG.prefixmaps_contexts,
625
- name="canonicalPrefixesConfig__prefixmaps_contexts",
626
- curie=LINTCFG.curie("prefixmaps_contexts"),
627
- model_uri=LINTCFG.canonicalPrefixesConfig__prefixmaps_contexts,
628
- domain=None,
629
- range=Optional[Union[str, list[str]]],
630
- )
499
+ slots.standardNamingConfig__slot_pattern = Slot(uri=LINTCFG.slot_pattern, name="standardNamingConfig__slot_pattern", curie=LINTCFG.curie('slot_pattern'),
500
+ model_uri=LINTCFG.standardNamingConfig__slot_pattern, domain=None, range=Optional[str])
631
501
 
632
- slots.noEmptyTitleConfig__exclude_type = Slot(
633
- uri=LINTCFG.exclude_type,
634
- name="noEmptyTitleConfig__exclude_type",
635
- curie=LINTCFG.curie("exclude_type"),
636
- model_uri=LINTCFG.noEmptyTitleConfig__exclude_type,
637
- domain=None,
638
- range=Optional[Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]],
639
- )
502
+ slots.canonicalPrefixesConfig__prefixmaps_contexts = Slot(uri=LINTCFG.prefixmaps_contexts, name="canonicalPrefixesConfig__prefixmaps_contexts", curie=LINTCFG.curie('prefixmaps_contexts'),
503
+ model_uri=LINTCFG.canonicalPrefixesConfig__prefixmaps_contexts, domain=None, range=Optional[Union[str, list[str]]])
504
+
505
+ slots.noEmptyTitleConfig__exclude_type = Slot(uri=LINTCFG.exclude_type, name="noEmptyTitleConfig__exclude_type", curie=LINTCFG.curie('exclude_type'),
506
+ model_uri=LINTCFG.noEmptyTitleConfig__exclude_type, domain=None, range=Optional[Union[Union[str, "MetamodelElementTypeEnum"], list[Union[str, "MetamodelElementTypeEnum"]]]])