linkml 1.8.1__py3-none-any.whl → 1.8.2__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/__init__.py +0 -0
- linkml/cli/__main__.py +4 -0
- linkml/cli/main.py +126 -0
- linkml/generators/common/build.py +105 -0
- linkml/generators/common/lifecycle.py +124 -0
- linkml/generators/common/template.py +89 -0
- linkml/generators/csvgen.py +1 -1
- linkml/generators/docgen/slot.md.jinja2 +4 -0
- linkml/generators/docgen.py +1 -1
- linkml/generators/dotgen.py +1 -1
- linkml/generators/erdiagramgen.py +1 -1
- linkml/generators/excelgen.py +1 -1
- linkml/generators/golanggen.py +1 -1
- linkml/generators/golrgen.py +1 -1
- linkml/generators/graphqlgen.py +1 -1
- linkml/generators/javagen.py +1 -1
- linkml/generators/jsonldcontextgen.py +4 -4
- linkml/generators/jsonldgen.py +1 -1
- linkml/generators/jsonschemagen.py +69 -22
- linkml/generators/linkmlgen.py +1 -1
- linkml/generators/markdowngen.py +1 -1
- linkml/generators/namespacegen.py +1 -1
- linkml/generators/oocodegen.py +2 -1
- linkml/generators/owlgen.py +1 -1
- linkml/generators/plantumlgen.py +1 -1
- linkml/generators/prefixmapgen.py +1 -1
- linkml/generators/projectgen.py +1 -1
- linkml/generators/protogen.py +1 -1
- linkml/generators/pydanticgen/__init__.py +8 -3
- linkml/generators/pydanticgen/array.py +114 -194
- linkml/generators/pydanticgen/build.py +64 -25
- linkml/generators/pydanticgen/includes.py +1 -31
- linkml/generators/pydanticgen/pydanticgen.py +616 -274
- linkml/generators/pydanticgen/template.py +152 -184
- linkml/generators/pydanticgen/templates/attribute.py.jinja +9 -7
- linkml/generators/pydanticgen/templates/base_model.py.jinja +0 -13
- linkml/generators/pydanticgen/templates/class.py.jinja +2 -2
- linkml/generators/pydanticgen/templates/footer.py.jinja +2 -10
- linkml/generators/pydanticgen/templates/module.py.jinja +2 -2
- linkml/generators/pydanticgen/templates/validator.py.jinja +0 -4
- linkml/generators/pythongen.py +12 -2
- linkml/generators/rdfgen.py +1 -1
- linkml/generators/shaclgen.py +6 -2
- linkml/generators/shexgen.py +1 -1
- linkml/generators/sparqlgen.py +1 -1
- linkml/generators/sqlalchemygen.py +1 -1
- linkml/generators/sqltablegen.py +1 -1
- linkml/generators/sssomgen.py +1 -1
- linkml/generators/summarygen.py +1 -1
- linkml/generators/terminusdbgen.py +7 -4
- linkml/generators/typescriptgen.py +1 -1
- linkml/generators/yamlgen.py +1 -1
- linkml/generators/yumlgen.py +1 -1
- linkml/linter/cli.py +1 -1
- linkml/transformers/logical_model_transformer.py +117 -18
- linkml/utils/converter.py +1 -1
- linkml/utils/execute_tutorial.py +2 -0
- linkml/utils/logictools.py +142 -29
- linkml/utils/schema_builder.py +7 -6
- linkml/utils/schema_fixer.py +1 -1
- linkml/utils/sqlutils.py +1 -1
- linkml/validator/cli.py +4 -1
- linkml/validators/jsonschemavalidator.py +1 -1
- linkml/validators/sparqlvalidator.py +1 -1
- linkml/workspaces/example_runner.py +1 -1
- {linkml-1.8.1.dist-info → linkml-1.8.2.dist-info}/METADATA +2 -2
- {linkml-1.8.1.dist-info → linkml-1.8.2.dist-info}/RECORD +70 -64
- {linkml-1.8.1.dist-info → linkml-1.8.2.dist-info}/entry_points.txt +1 -1
- {linkml-1.8.1.dist-info → linkml-1.8.2.dist-info}/LICENSE +0 -0
- {linkml-1.8.1.dist-info → linkml-1.8.2.dist-info}/WHEEL +0 -0
linkml/utils/logictools.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import operator
|
2
2
|
from copy import deepcopy
|
3
3
|
from itertools import product
|
4
|
-
from typing import Any, Collection, List, Optional, Tuple
|
4
|
+
from typing import Any, Collection, List, Optional, Tuple, Type
|
5
5
|
|
6
6
|
|
7
7
|
def member_of(item: Any, collection: Collection[Any]) -> bool:
|
@@ -25,6 +25,8 @@ OPS = {
|
|
25
25
|
|
26
26
|
|
27
27
|
class Expression:
|
28
|
+
"""Base class for logic expressions"""
|
29
|
+
|
28
30
|
def __eq__(self, other: "Expression"):
|
29
31
|
if isinstance(other, Expression):
|
30
32
|
return self._ordered_str() == other._ordered_str()
|
@@ -60,6 +62,7 @@ class Expression:
|
|
60
62
|
|
61
63
|
def __contains__(self, other: Any):
|
62
64
|
return Term("contains", self, other)
|
65
|
+
return Term("contains", self, other)
|
63
66
|
|
64
67
|
def _ordered_str(self, **kwargs):
|
65
68
|
return str(self)
|
@@ -69,6 +72,8 @@ class Expression:
|
|
69
72
|
|
70
73
|
|
71
74
|
class Variable(Expression):
|
75
|
+
"""A variable in a logic expression"""
|
76
|
+
|
72
77
|
def __init__(self, name: str):
|
73
78
|
self.name = name
|
74
79
|
|
@@ -80,6 +85,8 @@ class Variable(Expression):
|
|
80
85
|
|
81
86
|
|
82
87
|
class Top(Expression):
|
88
|
+
"""True expression"""
|
89
|
+
|
83
90
|
def __str__(self):
|
84
91
|
return "T"
|
85
92
|
|
@@ -88,6 +95,8 @@ class Top(Expression):
|
|
88
95
|
|
89
96
|
|
90
97
|
class Bottom(Expression):
|
98
|
+
"""False expression"""
|
99
|
+
|
91
100
|
def __str__(self):
|
92
101
|
return "F"
|
93
102
|
|
@@ -96,6 +105,8 @@ class Bottom(Expression):
|
|
96
105
|
|
97
106
|
|
98
107
|
class Not(Expression):
|
108
|
+
"""Negation of an expression"""
|
109
|
+
|
99
110
|
def __init__(self, operand: Expression):
|
100
111
|
self.operand = operand
|
101
112
|
|
@@ -107,6 +118,8 @@ class Not(Expression):
|
|
107
118
|
|
108
119
|
|
109
120
|
class And(Expression):
|
121
|
+
"""Conjunction of expressions"""
|
122
|
+
|
110
123
|
def __init__(self, *operands: Expression):
|
111
124
|
self.operands: List[Expression] = list(operands)
|
112
125
|
|
@@ -306,6 +319,45 @@ def distribute_and_over_or(expr: Expression) -> Expression:
|
|
306
319
|
|
307
320
|
|
308
321
|
def is_contradiction(expr: Expression, apply_dnf=False) -> Optional[bool]:
|
322
|
+
"""
|
323
|
+
Check if the given expression is a contradiction.
|
324
|
+
|
325
|
+
>>> a = Variable("a")
|
326
|
+
>>> b = Variable("b")
|
327
|
+
>>> c = Variable("c")
|
328
|
+
>>> d = Variable("d")
|
329
|
+
>>> F = Bottom()
|
330
|
+
>>> T = Top()
|
331
|
+
>>> is_contradiction(T)
|
332
|
+
False
|
333
|
+
>>> is_contradiction(F)
|
334
|
+
True
|
335
|
+
>>> is_contradiction(~T)
|
336
|
+
True
|
337
|
+
>>> is_contradiction(~F)
|
338
|
+
False
|
339
|
+
>>> is_contradiction(~~T)
|
340
|
+
False
|
341
|
+
>>> is_contradiction(~~F)
|
342
|
+
True
|
343
|
+
>>> is_contradiction(F & F)
|
344
|
+
True
|
345
|
+
>>> is_contradiction(F & T)
|
346
|
+
True
|
347
|
+
>>> is_contradiction(F | T)
|
348
|
+
False
|
349
|
+
>>> is_contradiction(a & F )
|
350
|
+
True
|
351
|
+
>>> is_contradiction(a & ~a)
|
352
|
+
True
|
353
|
+
>>> assert is_contradiction(a & T) is None
|
354
|
+
>>> assert is_contradiction(a) is None
|
355
|
+
>>> assert is_contradiction(And(a)) is None
|
356
|
+
|
357
|
+
:param expr:
|
358
|
+
:param apply_dnf:
|
359
|
+
:return:
|
360
|
+
"""
|
309
361
|
if apply_dnf:
|
310
362
|
expr = to_dnf(expr)
|
311
363
|
expr = simplify(expr)
|
@@ -354,6 +406,32 @@ def evals_to_true(expr: Expression, apply_dnf=False) -> Optional[bool]:
|
|
354
406
|
"""
|
355
407
|
Two-valued logic
|
356
408
|
|
409
|
+
>>> a = Variable("a")
|
410
|
+
>>> b = Variable("b")
|
411
|
+
>>> c = Variable("c")
|
412
|
+
>>> d = Variable("d")
|
413
|
+
>>> F = Bottom()
|
414
|
+
>>> T = Top()
|
415
|
+
>>> evals_to_true(T)
|
416
|
+
True
|
417
|
+
>>> evals_to_true(F)
|
418
|
+
False
|
419
|
+
>>> evals_to_true(~T)
|
420
|
+
False
|
421
|
+
>>> evals_to_true(~F)
|
422
|
+
True
|
423
|
+
>>> evals_to_true(a & b)
|
424
|
+
False
|
425
|
+
>>> evals_to_true(a | b)
|
426
|
+
False
|
427
|
+
>>> evals_to_true(a & a)
|
428
|
+
False
|
429
|
+
|
430
|
+
Note that this does not perform unification, so the following does not evaluate to True
|
431
|
+
|
432
|
+
>>> evals_to_true(a & ~a)
|
433
|
+
False
|
434
|
+
|
357
435
|
:param expr:
|
358
436
|
:param apply_dnf:
|
359
437
|
:return:
|
@@ -363,7 +441,7 @@ def evals_to_true(expr: Expression, apply_dnf=False) -> Optional[bool]:
|
|
363
441
|
if isinstance(expr, And):
|
364
442
|
return all([evals_to_true(operand) for operand in expr.operands])
|
365
443
|
elif isinstance(expr, Not):
|
366
|
-
if is_contradiction(expr.operand) is
|
444
|
+
if is_contradiction(expr.operand) is True:
|
367
445
|
return True
|
368
446
|
else:
|
369
447
|
return False
|
@@ -378,32 +456,6 @@ def evals_to_true(expr: Expression, apply_dnf=False) -> Optional[bool]:
|
|
378
456
|
return False
|
379
457
|
|
380
458
|
|
381
|
-
def is_tautology(expr):
|
382
|
-
"""
|
383
|
-
Checks if the given propositional logic formula is a tautology.
|
384
|
-
|
385
|
-
A formula is a tautology if it is true under every possible valuation of its variables.
|
386
|
-
|
387
|
-
Args:
|
388
|
-
expr (Expression): The input formula which is an instance of Expression or its subclasses.
|
389
|
-
|
390
|
-
Returns:
|
391
|
-
bool: True if the formula is a tautology, False otherwise.
|
392
|
-
"""
|
393
|
-
if isinstance(expr, Or):
|
394
|
-
for i in range(len(expr.operands)):
|
395
|
-
for j in range(i + 1, len(expr.operands)):
|
396
|
-
if isinstance(expr.operands[i], Not) and expr.operands[i].operand == expr.operands[j]:
|
397
|
-
return True
|
398
|
-
elif isinstance(expr.operands[j], Not) and expr.operands[j].operand == expr.operands[i]:
|
399
|
-
return True
|
400
|
-
elif isinstance(expr, And):
|
401
|
-
for operand in expr.operands:
|
402
|
-
if is_tautology(operand):
|
403
|
-
return True
|
404
|
-
return False
|
405
|
-
|
406
|
-
|
407
459
|
def eliminate_redundant(expr: Expression) -> Expression:
|
408
460
|
if isinstance(expr, And):
|
409
461
|
visited = set()
|
@@ -444,6 +496,23 @@ def simplify(expr: Expression) -> Expression:
|
|
444
496
|
"""
|
445
497
|
Simplifies the given propositional logic formula.
|
446
498
|
|
499
|
+
>>> a = Variable("a")
|
500
|
+
>>> b = Variable("b")
|
501
|
+
>>> c = Variable("c")
|
502
|
+
>>> d = Variable("d")
|
503
|
+
>>> simplify(a & b)
|
504
|
+
(a & b)
|
505
|
+
>>> simplify(a | b)
|
506
|
+
(a | b)
|
507
|
+
>>> simplify(a & a)
|
508
|
+
a
|
509
|
+
>>> simplify(a | a)
|
510
|
+
a
|
511
|
+
>>> simplify(a & ~a)
|
512
|
+
F
|
513
|
+
>>> simplify(a | ~a)
|
514
|
+
T
|
515
|
+
|
447
516
|
:param expr:
|
448
517
|
:return:
|
449
518
|
"""
|
@@ -521,6 +590,30 @@ COMPOSITIONS = {
|
|
521
590
|
|
522
591
|
|
523
592
|
def _unsat(x: Expression, y: Expression) -> bool:
|
593
|
+
"""
|
594
|
+
Check if two terms are unsatisfiable when combined.
|
595
|
+
|
596
|
+
>>> a = Variable("a")
|
597
|
+
>>> b = Variable("b")
|
598
|
+
>>> _unsat( a < b, a > b)
|
599
|
+
True
|
600
|
+
>>> _unsat( a < b, a < b)
|
601
|
+
False
|
602
|
+
>>> _unsat( a <= b, b >= a)
|
603
|
+
False
|
604
|
+
>>> _unsat( a < b, a <= b)
|
605
|
+
False
|
606
|
+
>>> _unsat( a < b, b <= a)
|
607
|
+
False
|
608
|
+
>>> _unsat( IsIn(a, [1, 2]), IsIn(a, [2, 3]))
|
609
|
+
False
|
610
|
+
>>> _unsat( IsIn(a, [1, 2]), IsIn(a, [3, 4]))
|
611
|
+
True
|
612
|
+
|
613
|
+
:param x:
|
614
|
+
:param y:
|
615
|
+
:return:
|
616
|
+
"""
|
524
617
|
if isinstance(x, Term) and isinstance(y, Term):
|
525
618
|
if x.operands[0] == y.operands[0]:
|
526
619
|
xp = x.predicate
|
@@ -547,7 +640,27 @@ def _unsat(x: Expression, y: Expression) -> bool:
|
|
547
640
|
return False
|
548
641
|
|
549
642
|
|
550
|
-
def compose_operators(boolean_op, op1, v1, op2, v2) -> Optional[Tuple]:
|
643
|
+
def compose_operators(boolean_op: Type[Expression], op1: str, v1: Any, op2: str, v2: Any) -> Optional[Tuple]:
|
644
|
+
"""
|
645
|
+
Compose two expressions.
|
646
|
+
|
647
|
+
>>> assert compose_operators(And, '<', 1, '<', 2) == (operator.__lt__, 1)
|
648
|
+
>>> assert compose_operators(Or, '<', 1, '<', 2) == (operator.__lt__, 2)
|
649
|
+
>>> assert compose_operators(Or, '=', 1, '=', 2) is None
|
650
|
+
>>> assert compose_operators(And, '=', 1, '=', 2) is None
|
651
|
+
>>> assert compose_operators(And, "in", [1, 2], "in", [2, 3]) == (member_of, [2])
|
652
|
+
>>> assert compose_operators(Or, "in", [1, 2], "in", [2, 3]) == (member_of, [1, 2, 3])
|
653
|
+
>>> assert compose_operators(And, "in", [1], "in", [3]) == (member_of, [])
|
654
|
+
>>> assert compose_operators(And, "in", [1], "in", UniversalSet()) == (member_of, [1])
|
655
|
+
>>> assert compose_operators(Or, "in", [1], "in", UniversalSet()) == (member_of, UniversalSet())
|
656
|
+
|
657
|
+
:param boolean_op:
|
658
|
+
:param op1:
|
659
|
+
:param v1:
|
660
|
+
:param op2:
|
661
|
+
:param v2:
|
662
|
+
:return: New expression OR None if the expressions cannot be reduced
|
663
|
+
"""
|
551
664
|
rev_op_map = {v: k for k, v in OPS.items()}
|
552
665
|
if not (op1 in rev_op_map and op2 in rev_op_map):
|
553
666
|
return None
|
linkml/utils/schema_builder.py
CHANGED
@@ -101,12 +101,13 @@ class SchemaBuilder:
|
|
101
101
|
for k, v in slots.items():
|
102
102
|
cls.slots.append(k)
|
103
103
|
self.add_slot(SlotDefinition(k, **v), replace_if_present=replace_if_present)
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
104
|
+
else:
|
105
|
+
for s in slots:
|
106
|
+
cls.slots.append(s.name if isinstance(s, SlotDefinition) else s)
|
107
|
+
if isinstance(s, str) and s in self.schema.slots:
|
108
|
+
# top-level slot already exists
|
109
|
+
continue
|
110
|
+
self.add_slot(s, replace_if_present=replace_if_present)
|
110
111
|
if slot_usage:
|
111
112
|
if isinstance(slot_usage, dict):
|
112
113
|
for k, v in slot_usage.items():
|
linkml/utils/schema_fixer.py
CHANGED
linkml/utils/sqlutils.py
CHANGED
linkml/validator/cli.py
CHANGED
@@ -64,7 +64,7 @@ def _resolve_loaders(loader_config: Iterable[Union[str, Dict[str, Dict[str, str]
|
|
64
64
|
DEPRECATED = "[DEPRECATED: only used in legacy mode]"
|
65
65
|
|
66
66
|
|
67
|
-
@click.command()
|
67
|
+
@click.command(name="validate")
|
68
68
|
@click.option(
|
69
69
|
"-s",
|
70
70
|
"--schema",
|
@@ -132,6 +132,9 @@ def cli(
|
|
132
132
|
include_range_class_descendants: bool,
|
133
133
|
include_context: bool,
|
134
134
|
):
|
135
|
+
"""
|
136
|
+
Validate data according to a LinkML Schema
|
137
|
+
"""
|
135
138
|
if legacy_mode:
|
136
139
|
from linkml.validators import jsonschemavalidator
|
137
140
|
|
@@ -114,7 +114,7 @@ class JsonSchemaDataValidator(DataValidator):
|
|
114
114
|
yield f"{best_error.message} in {best_error.json_path}"
|
115
115
|
|
116
116
|
|
117
|
-
@click.command()
|
117
|
+
@click.command(name="jsonschema")
|
118
118
|
@click.option("--module", "-m", help="Path to python datamodel module")
|
119
119
|
@click.option(
|
120
120
|
"--input-format",
|
@@ -85,7 +85,7 @@ class SparqlDataValidator(DataValidator):
|
|
85
85
|
return self.schema
|
86
86
|
|
87
87
|
|
88
|
-
@click.command()
|
88
|
+
@click.command(name="sparql")
|
89
89
|
@click.option("--named-graph", "-G", multiple=True, help="Constrain query to a named graph")
|
90
90
|
@click.option("--input", "-i", help="Input file to validate")
|
91
91
|
@click.option("--endpoint-url", "-U", help="URL of sparql endpoint")
|
@@ -255,7 +255,7 @@ class ExampleRunner:
|
|
255
255
|
return dict_obj
|
256
256
|
|
257
257
|
|
258
|
-
@click.command()
|
258
|
+
@click.command(name="examples")
|
259
259
|
@click.option("--schema", "-s", required=True, help="Path to linkml schema yaml file")
|
260
260
|
@click.option("--prefixes", "-P", help="Path to prefixes")
|
261
261
|
@click.option("--input-directory", "-e", help="folder containing positive examples that MUST pass validation")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: linkml
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.2
|
4
4
|
Summary: Linked Open Data Modeling Language
|
5
5
|
Home-page: https://linkml.io/linkml/
|
6
6
|
Keywords: schema,linked data,data modeling,rdf,owl,biolink
|
@@ -36,7 +36,7 @@ Requires-Dist: jinja2 (>=3.1.0)
|
|
36
36
|
Requires-Dist: jsonasobj2 (>=1.0.3,<2.0.0)
|
37
37
|
Requires-Dist: jsonschema[format] (>=4.0.0)
|
38
38
|
Requires-Dist: linkml-dataops
|
39
|
-
Requires-Dist: linkml-runtime (
|
39
|
+
Requires-Dist: linkml-runtime (>=1.8.1,<2.0.0)
|
40
40
|
Requires-Dist: openpyxl
|
41
41
|
Requires-Dist: parse
|
42
42
|
Requires-Dist: prefixcommons (>=0.1.7)
|
@@ -1,11 +1,17 @@
|
|
1
1
|
linkml/__init__.py,sha256=0REu65rXiOk3F1CYLzq60HiSZ2DfFySfGS6QFljZ01s,3663
|
2
2
|
linkml/_version.py,sha256=udxv6OEqcE89DTVMYPtetXYg8IA8Sgc6yW26-6f8C3M,310
|
3
|
+
linkml/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
|
+
linkml/cli/__main__.py,sha256=oPa7Fl2DQP40UivpIWNRr1CgwT2SQM0rhE478155zBY,80
|
5
|
+
linkml/cli/main.py,sha256=-VaV8Z6rhadMOIHS9kdeV30NdXsE6jG3kVpvGbkF2wY,5184
|
3
6
|
linkml/generators/PythonGenNotes.md,sha256=wb9BPLLhF6378OKLbwSBAwmniLpwrcT5_bbfCHfLme8,51006
|
4
7
|
linkml/generators/README.md,sha256=RMzT8EblC_GEdPy5WyfXHDBXlFI6k6mz3Cx2sdpcyWI,4438
|
5
8
|
linkml/generators/__init__.py,sha256=dQ2EUKy_MctEVEzbC3XzEJL5YmYwjYfsa44mG2zKn7g,1517
|
6
9
|
linkml/generators/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
|
+
linkml/generators/common/build.py,sha256=hXf2gf1ox2hiR-D6N-qXt5w5QkISLlo1A-_GurY3yHo,2897
|
11
|
+
linkml/generators/common/lifecycle.py,sha256=UOJXlIyWQkvsn0Dao9_ZDzlamJtiINyVJQ6SRj66L9s,4910
|
12
|
+
linkml/generators/common/template.py,sha256=bjcSNiC85MYl9oGhk0ZpqwZpRxxy_NqxG8XBV-TXXDY,3338
|
7
13
|
linkml/generators/common/type_designators.py,sha256=lgVcIRJJ-yCvVGeP9U_gQZpm77UmJBQo9Bh3lGJITno,1956
|
8
|
-
linkml/generators/csvgen.py,sha256=
|
14
|
+
linkml/generators/csvgen.py,sha256=O20K3IuDxomGJAyNFJmm1_HbPyl6xUK0l-aKY0A3KcM,3253
|
9
15
|
linkml/generators/docgen/class.md.jinja2,sha256=-JmjYHgYOaaBYd5r-Tr5dkk0CLM_lX0kHdocPQtRsjU,3504
|
10
16
|
linkml/generators/docgen/class_diagram.md.jinja2,sha256=gzskx4hOpU_s6BqOXdYZ9DwKxuClnsEgDzPurm30PeY,3469
|
11
17
|
linkml/generators/docgen/common_metadata.md.jinja2,sha256=gy9J8rghBfKDKimwtHj_XuHY4PJRRYHLXVlBHqWrUzU,1604
|
@@ -13,70 +19,70 @@ linkml/generators/docgen/enum.md.jinja2,sha256=mXnUrRkleY2bOTEyAZ5c4pcUnqhs6BNa8
|
|
13
19
|
linkml/generators/docgen/index.md.jinja2,sha256=wXUYTmayPLFltC0vbGE_Mf6m3GkkWav7FOEjCvEpHp4,1466
|
14
20
|
linkml/generators/docgen/index.tex.jinja2,sha256=Go_EA-_N4JUpbOYbk3OY11mz5yV70VF2l2sMtgIPWw4,501
|
15
21
|
linkml/generators/docgen/schema.md.jinja2,sha256=xlENfnzNRYgPT_0tdqNFxgklVM4Qf5BuzhFVvSMDuxs,70
|
16
|
-
linkml/generators/docgen/slot.md.jinja2,sha256=
|
22
|
+
linkml/generators/docgen/slot.md.jinja2,sha256=dJHugIv9OPTi3FIn8Iez7CzjQizdXrcn0hcmCmXSgV4,3339
|
17
23
|
linkml/generators/docgen/subset.md.jinja2,sha256=EPln_fjlhlkmwEGEp2iPX-9Xm2vVodPZLlRBlYCB_sA,2705
|
18
24
|
linkml/generators/docgen/type.md.jinja2,sha256=QmCMJZrFwP33eHkggBVtypbyrxTb-XZn9vHOYojVaYk,635
|
19
|
-
linkml/generators/docgen.py,sha256=
|
20
|
-
linkml/generators/dotgen.py,sha256=
|
21
|
-
linkml/generators/erdiagramgen.py,sha256=
|
22
|
-
linkml/generators/excelgen.py,sha256=
|
23
|
-
linkml/generators/golanggen.py,sha256=
|
24
|
-
linkml/generators/golrgen.py,sha256=
|
25
|
-
linkml/generators/graphqlgen.py,sha256
|
25
|
+
linkml/generators/docgen.py,sha256=BbYIL1Bep0La4izwHaYZuTsnbVAv8_zjx3U3r1eHFEQ,36406
|
26
|
+
linkml/generators/dotgen.py,sha256=vjHveFtKBItHRkowi1I4FHffcn4u4wLpBydYgVxB-vE,5028
|
27
|
+
linkml/generators/erdiagramgen.py,sha256=5_VEPvRL0I819wCjk7T5hWffdBPc_qw3XpQdOYpO7uE,11357
|
28
|
+
linkml/generators/excelgen.py,sha256=MQRRm1wDbg7auUQH9tGb5aRyrp-e4gjXsY10aoLb9LI,7708
|
29
|
+
linkml/generators/golanggen.py,sha256=w3iTcOK69cwCrhE1pZn-PpV59arFZB8uU3ErLFo9i8Y,5803
|
30
|
+
linkml/generators/golrgen.py,sha256=JB92VDhTuwyaOyxHxB4goIsjZbq4NMf36ESprC3GeBs,3454
|
31
|
+
linkml/generators/graphqlgen.py,sha256=-BS-UHPyHqauUgtgcFCO4xSxxogk7BPAQFSXHIrKJT0,2163
|
26
32
|
linkml/generators/javagen/example_template.java.jinja2,sha256=ec4CVTv_0zS7V5Y-1E6H4lRraya10gfX7BEMBlu38X4,444
|
27
33
|
linkml/generators/javagen/java_record_template.jinja2,sha256=OQZffLSy_xR3FIhQMltvrYyVeut7l2Q-tzK7AOiVmWs,1729
|
28
|
-
linkml/generators/javagen.py,sha256=
|
29
|
-
linkml/generators/jsonldcontextgen.py,sha256=
|
30
|
-
linkml/generators/jsonldgen.py,sha256=
|
31
|
-
linkml/generators/jsonschemagen.py,sha256=
|
34
|
+
linkml/generators/javagen.py,sha256=BTAXgvOOvRa3AOfaaiVFyuyaqg4XFR_JbO6_7tT_AnQ,5335
|
35
|
+
linkml/generators/jsonldcontextgen.py,sha256=fZ22yjYGLMf_rQYKQSRh3IvMdGVAFhJ0PdQF8d514NI,8689
|
36
|
+
linkml/generators/jsonldgen.py,sha256=9ru1rb4_u7t_Rp8ILQSmDIsk_evrDL_OeilnQUsu338,7770
|
37
|
+
linkml/generators/jsonschemagen.py,sha256=XoA0HJ1XlItogmhr3F8XNnAi1UG6fXeBAKkjme48n7o,30388
|
32
38
|
linkml/generators/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
|
-
linkml/generators/linkmlgen.py,sha256=
|
34
|
-
linkml/generators/markdowngen.py,sha256=
|
35
|
-
linkml/generators/namespacegen.py,sha256=
|
36
|
-
linkml/generators/oocodegen.py,sha256=
|
37
|
-
linkml/generators/owlgen.py,sha256=
|
38
|
-
linkml/generators/plantumlgen.py,sha256=
|
39
|
-
linkml/generators/prefixmapgen.py,sha256=
|
40
|
-
linkml/generators/projectgen.py,sha256=
|
41
|
-
linkml/generators/protogen.py,sha256=
|
42
|
-
linkml/generators/pydanticgen/__init__.py,sha256
|
43
|
-
linkml/generators/pydanticgen/array.py,sha256=
|
39
|
+
linkml/generators/linkmlgen.py,sha256=g1D8B6MBxcG6b9aYCUESp7nDZPmjedCs8rmGm_0GLnE,3484
|
40
|
+
linkml/generators/markdowngen.py,sha256=0gjMPJ0Ycm9se4Y4cyqjbTntGYqRRZu4RL-9Qf5n4lk,34464
|
41
|
+
linkml/generators/namespacegen.py,sha256=C4p9LSwsnDqf6sv-wG5l0VQniWFJ1HA1hRXJBDOg3pM,6467
|
42
|
+
linkml/generators/oocodegen.py,sha256=aBJgy-S-8FL5cW9p4hf986iSTxXwvkM7ZajKlari4us,7820
|
43
|
+
linkml/generators/owlgen.py,sha256=XgEuwvlznnsk8Z-mqZlCC0eK2DinPT9YLga3CkRyBRE,57564
|
44
|
+
linkml/generators/plantumlgen.py,sha256=ScTpXZe2Vjs2O6DeRJo-nr-p13lWSAtMZl6gu9jQYTk,15478
|
45
|
+
linkml/generators/prefixmapgen.py,sha256=oISFtSt_s5OWx65tYasWk0bUJIDIU1MjnsWqfBE7ZQA,4257
|
46
|
+
linkml/generators/projectgen.py,sha256=XSndKhTJ8uik30wWtabKNhERybPeeyVrekf7oEDVF2Q,9764
|
47
|
+
linkml/generators/protogen.py,sha256=a4KUyKj525tuE2YenEJQ_IkbNKnnhVH_N-qTEmMBVY4,2524
|
48
|
+
linkml/generators/pydanticgen/__init__.py,sha256=5SUFNcrh-6MLfMqptR6wPsR2v1Gyrl3wii-yu6kdnQM,700
|
49
|
+
linkml/generators/pydanticgen/array.py,sha256=mF_vhmlPfd9yVlVyANvT9GgLP6iQLSheqaowT5Jp6Jo,16120
|
44
50
|
linkml/generators/pydanticgen/black.py,sha256=BaJ7b-kMUbIN_cKRT3yCaMEbFwxzj1_U7w4fKQnkL44,723
|
45
|
-
linkml/generators/pydanticgen/build.py,sha256=
|
46
|
-
linkml/generators/pydanticgen/includes.py,sha256=
|
47
|
-
linkml/generators/pydanticgen/pydanticgen.py,sha256=
|
48
|
-
linkml/generators/pydanticgen/template.py,sha256=
|
49
|
-
linkml/generators/pydanticgen/templates/attribute.py.jinja,sha256=
|
50
|
-
linkml/generators/pydanticgen/templates/base_model.py.jinja,sha256=
|
51
|
-
linkml/generators/pydanticgen/templates/class.py.jinja,sha256=
|
51
|
+
linkml/generators/pydanticgen/build.py,sha256=_NQzXK_wWJ-EAHBi1nqZCEWSTYy7KWkc5w-mRsEXycI,3936
|
52
|
+
linkml/generators/pydanticgen/includes.py,sha256=kDAwonKbhTFzrFa2TrmTYuOSHXuzDy5WHgBaI5nVY6c,504
|
53
|
+
linkml/generators/pydanticgen/pydanticgen.py,sha256=TCQG5O0GFT1GDsrMby79jDujWFJ3D_pXW8sUB3vw3L0,49059
|
54
|
+
linkml/generators/pydanticgen/template.py,sha256=alt5yXyf2zdh93rLhyuIu9Ctb9C3O1oM62Upr4JH6Cw,21000
|
55
|
+
linkml/generators/pydanticgen/templates/attribute.py.jinja,sha256=uMyVKpO5uQkAFlIvIBwA6FFZl_BSIotfwCorrSwMA3Q,873
|
56
|
+
linkml/generators/pydanticgen/templates/base_model.py.jinja,sha256=6KRQ1ZVHh1uwZnYL3qxBnyit8_DNE7D-4l2-1wsRsG0,406
|
57
|
+
linkml/generators/pydanticgen/templates/class.py.jinja,sha256=GqR2t5y0vLmvUpT2vyP5VX42PO9AkAnGE-U2RZPa9AI,690
|
52
58
|
linkml/generators/pydanticgen/templates/conditional_import.py.jinja,sha256=YheknDrxvepiJUzeItSL5aSbAkCdR1k0a6m6aTA4qNM,240
|
53
59
|
linkml/generators/pydanticgen/templates/enum.py.jinja,sha256=572XFQyEMZfL-G_Cj68T-NI_mUnDoFOAVJOGIKu2Hb8,338
|
54
|
-
linkml/generators/pydanticgen/templates/footer.py.jinja,sha256=
|
60
|
+
linkml/generators/pydanticgen/templates/footer.py.jinja,sha256=t_24p1xmqdbfxGqz_XCXSTvkkWt26_2w_RcQjGIAWlY,155
|
55
61
|
linkml/generators/pydanticgen/templates/imports.py.jinja,sha256=d1XFna2eOpkH8cgJML3vXwqGcocczvOcrbg6jjd4kP0,945
|
56
|
-
linkml/generators/pydanticgen/templates/module.py.jinja,sha256=
|
57
|
-
linkml/generators/pydanticgen/templates/validator.py.jinja,sha256=
|
58
|
-
linkml/generators/pythongen.py,sha256=
|
59
|
-
linkml/generators/rdfgen.py,sha256=
|
62
|
+
linkml/generators/pydanticgen/templates/module.py.jinja,sha256=NLCYn4wgwVBCs8trV2hNq0_BkZgfIIS6zQTmjzFDJCQ,568
|
63
|
+
linkml/generators/pydanticgen/templates/validator.py.jinja,sha256=BhXRGrT7HIweVHEE3Z7ZUtFFV8kP1dmRKJfu53jZBBQ,441
|
64
|
+
linkml/generators/pythongen.py,sha256=Ti654YxzTwZRXap-vT5T7iP3NYWox0yFqdp4oHV8tNs,53289
|
65
|
+
linkml/generators/rdfgen.py,sha256=OT8oS8MPUVf5UK3OKvRWgAh9iQiWwdyWJSA69PncOw4,2969
|
60
66
|
linkml/generators/shacl/__init__.py,sha256=O-M-wndKw8rMW-U8X3QCNHal-ErXP6uXZqxiQSa77l4,108
|
61
67
|
linkml/generators/shacl/ifabsent_processor.py,sha256=kV9BGA2ZPXLRfaFuW0o4jpkATvGggvrqpAo9c1UqWNE,2193
|
62
68
|
linkml/generators/shacl/shacl_data_type.py,sha256=BT3C9tdFyBQnuucPN7YQiFAKEa9yuzy-Q26X6dmOXgo,1827
|
63
|
-
linkml/generators/shaclgen.py,sha256=
|
64
|
-
linkml/generators/shexgen.py,sha256
|
65
|
-
linkml/generators/sparqlgen.py,sha256=
|
69
|
+
linkml/generators/shaclgen.py,sha256=9fp7qsKhMpplDHNIBIwfFLguYubjOEUn9th_Fvtg8zA,13283
|
70
|
+
linkml/generators/shexgen.py,sha256=-GFdapDEAUXAjsXdTI7ZlS39YfuvaxfzPkdqUNM19qI,9941
|
71
|
+
linkml/generators/sparqlgen.py,sha256=ULvWokNGPADq1qDENoFeRYg3FmjdTh4-Vq-eYjsAEK4,6151
|
66
72
|
linkml/generators/sqlalchemy/__init__.py,sha256=mb9AC1rIFkSiNZhhG0TAk45ol9PjS1XvsrvCjgfVUpQ,249
|
67
73
|
linkml/generators/sqlalchemy/sqlalchemy_declarative_template.py,sha256=X_Ws1NUBikMI5HuNgEhl_PIeWM-B-c2B0W9KUBH4QTg,2542
|
68
74
|
linkml/generators/sqlalchemy/sqlalchemy_imperative_template.py,sha256=u4ZpponG1h6XROrOHGOf_0H2e6xL1_s8twAOA-gx94A,1622
|
69
|
-
linkml/generators/sqlalchemygen.py,sha256=
|
70
|
-
linkml/generators/sqltablegen.py,sha256=
|
71
|
-
linkml/generators/sssomgen.py,sha256=
|
75
|
+
linkml/generators/sqlalchemygen.py,sha256=qTyT0s1FhQnCvcgjEsC4OaTWhkgHBAGxcHnxEoF9DmI,9297
|
76
|
+
linkml/generators/sqltablegen.py,sha256=nKjUMhd05JaWaME_DjP7AV2DDUulsKpcu7IidhD3PLo,12359
|
77
|
+
linkml/generators/sssomgen.py,sha256=zrZy0WL9fF5bk-XAcB-MZYZkhHhqVRHt2rGBUtfqnLY,6891
|
72
78
|
linkml/generators/string_template.md,sha256=kRcfic6entgIaJdpSg6GF3jcjC9wbKsCVM6wVT2qipc,1788
|
73
|
-
linkml/generators/summarygen.py,sha256=
|
74
|
-
linkml/generators/terminusdbgen.py,sha256=
|
75
|
-
linkml/generators/typescriptgen.py,sha256=
|
76
|
-
linkml/generators/yamlgen.py,sha256=
|
77
|
-
linkml/generators/yumlgen.py,sha256=
|
79
|
+
linkml/generators/summarygen.py,sha256=C9r34928QtVMaXTbdch-mRPB5L0jDTGmTnVmtrKrR-0,3083
|
80
|
+
linkml/generators/terminusdbgen.py,sha256=ItJ-HTMkkX22Ex1-UjJZmtEtE2fn6UdjAxDtn20RXV8,4713
|
81
|
+
linkml/generators/typescriptgen.py,sha256=y8l1A1hAyuiRmXw0CyPXfamBKWpi7ag_lspfr8bnIds,8594
|
82
|
+
linkml/generators/yamlgen.py,sha256=38zdh5T4tObFhCHgbUbKbc0UuFh1TmmsWBkWM9gcvsI,1625
|
83
|
+
linkml/generators/yumlgen.py,sha256=Bg1MGlhCCQoswB19mFKh8xB0UcL9MQGHlUrAVGZSWkc,12208
|
78
84
|
linkml/linter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
79
|
-
linkml/linter/cli.py,sha256=
|
85
|
+
linkml/linter/cli.py,sha256=tXJ3vwjohCnj4EApEJXvXUSI3NLJ3fI3u6tJVxbgLQg,4505
|
80
86
|
linkml/linter/config/datamodel/.linkmllint.yaml,sha256=40rNhcL35FXQSjlVBMWnyPgplwEUqFT_sJmeZqUzxMw,292
|
81
87
|
linkml/linter/config/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
82
88
|
linkml/linter/config/datamodel/config.py,sha256=WyIBA1damYcW0JI6zLxbFwcHOtSdw0prSADlJdz3zG0,17202
|
@@ -94,32 +100,32 @@ linkml/linter/rules.py,sha256=Eg_-lIX1KPsCp3PHdPcBiHmSS5qAVZkHbw5LURfkfXk,11481
|
|
94
100
|
linkml/reporting/__init__.py,sha256=Jo0V_nyEcnWhMukMW-bqW9dlbgCfaRlWm3CO-XzgU84,92
|
95
101
|
linkml/reporting/model.py,sha256=-10yNfk8wuRC48ZI-akrWvtlJ9a6RYWET2TzlZV3XXo,8622
|
96
102
|
linkml/transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
97
|
-
linkml/transformers/logical_model_transformer.py,sha256=
|
103
|
+
linkml/transformers/logical_model_transformer.py,sha256=rPeBYzQdLtcEKPe1kwkOWce4N7HZvFaULDrEGKbB-qI,29838
|
98
104
|
linkml/transformers/model_transformer.py,sha256=tK_MpRDI-q2qfe8KHT6qJHP8ZruKjYx1FcM-Fnjse-E,678
|
99
105
|
linkml/transformers/relmodel_transformer.py,sha256=aiSI2xaqRz4f0Z_0WFaBP5bknzX0pTnvxsR5mESFysg,18857
|
100
106
|
linkml/transformers/schema_renamer.py,sha256=DYRbgL9j41M9FdbHYLY3u4YIdDM98laD3cv_lHcgWHQ,5275
|
101
107
|
linkml/utils/__init__.py,sha256=Pkyv-Gfb8QoJdInRdJuuUz1Igfe0sT9t8Gv3V_fyTXc,92
|
102
108
|
linkml/utils/cli_utils.py,sha256=MdVbox1qr6kDUHUCWAmFhV-D6ebs_nn8vVwB8KDQfew,742
|
103
|
-
linkml/utils/converter.py,sha256=
|
109
|
+
linkml/utils/converter.py,sha256=vMpJLNFDxZR3yUGMiBCassDC-vvTb2oTq_3NYSLgErk,6297
|
104
110
|
linkml/utils/datautils.py,sha256=QlbzwXykh5Fphfe5KxPo6_ekXfniLbHiEGJtLWjUrvY,3742
|
105
111
|
linkml/utils/datavalidator.py,sha256=kBdWaVi8IZT1bOwEJgJYx-wZAb_PTBObB9nHpYORfKA,472
|
106
112
|
linkml/utils/deprecation.py,sha256=onhB82qjIkKzyUOTO9WDqN6QF3I2cJoyBrbm66vHmgM,8088
|
107
|
-
linkml/utils/execute_tutorial.py,sha256=
|
113
|
+
linkml/utils/execute_tutorial.py,sha256=KGmSnaz6joIAShnrD24n8kD6URe6CBoSUYsDOTg7qCg,7039
|
108
114
|
linkml/utils/generator.py,sha256=nAZTBFDKAZ2Asi6f54-GSOZoP03jQKgbYCW82KA34Z4,39100
|
109
115
|
linkml/utils/helpers.py,sha256=yR8n4zFA5wPcYC7xzRuNF3wO16vG80v6j7DM3qTNmIc,447
|
110
116
|
linkml/utils/ifabsent_functions.py,sha256=IkcBcmRYu8sllx7_mTCqu4aHfTxX2AnQoccZ1KOODds,5843
|
111
|
-
linkml/utils/logictools.py,sha256=
|
117
|
+
linkml/utils/logictools.py,sha256=BGtcoqr_Rsu08Ywa6lNiL881uZzQmNWk1p4FEIVKYe0,23641
|
112
118
|
linkml/utils/mergeutils.py,sha256=QVm2iQB4v_L2rSvPBsPe9C865R03BgV3TzlPoTTTwWQ,9044
|
113
119
|
linkml/utils/rawloader.py,sha256=nUB8Gfn8yEVwyo6bx0TtB2mBGkilC-fybi0xvQ73Gks,4417
|
114
|
-
linkml/utils/schema_builder.py,sha256=
|
115
|
-
linkml/utils/schema_fixer.py,sha256=
|
120
|
+
linkml/utils/schema_builder.py,sha256=LwaLeo65IQBHcmRD1kIxnjI1idFZyZsgfPACPow1_JY,9983
|
121
|
+
linkml/utils/schema_fixer.py,sha256=dzAkID_hO8VNrSpO9Jbz_GLJQAoRju13cZ3fnY03ZX8,16771
|
116
122
|
linkml/utils/schemaloader.py,sha256=dWZO044p_UcUWnrd8HZ-NsbLXQ9cA6c8HKfNI9-qH2A,47388
|
117
123
|
linkml/utils/schemasynopsis.py,sha256=j7sNt6j-E3rmf-1qEo351Kth2kltt6crQV-dxJAGCUE,18414
|
118
|
-
linkml/utils/sqlutils.py,sha256=
|
124
|
+
linkml/utils/sqlutils.py,sha256=Ddm6nsUd3oqLEWwZj7yakpyhRCO92Vvfl2MobiFaaXo,17083
|
119
125
|
linkml/utils/typereferences.py,sha256=8Yfuz9-HAwOPoJLbIcO_sY9zf32hvPRzGeSOzECfMWA,2232
|
120
126
|
linkml/utils/validation.py,sha256=eLw1-d8x3N1V14bSc6H_mJJXo59ryKvvUIBcOJ1dVMw,1438
|
121
127
|
linkml/validator/__init__.py,sha256=u0CeorIw50Qqwa60-lIFsJXg-sOdfo90hqvLpyvvwo4,4993
|
122
|
-
linkml/validator/cli.py,sha256
|
128
|
+
linkml/validator/cli.py,sha256=-7_hU787d321z_4pJeUs9dQsM76xpXie9dS-552c7Xs,7683
|
123
129
|
linkml/validator/loaders/__init__.py,sha256=FjUqEfBHeT5PEMBEZ9XwpclyQOysr4OCI1M0w_MYPVc,1165
|
124
130
|
linkml/validator/loaders/delimited_file_loader.py,sha256=fdh61ZMPTfH29_DM93f5dY0jLP7KQPNh_QAHZppsdNw,2616
|
125
131
|
linkml/validator/loaders/json_loader.py,sha256=Qy42naS2clb0fNXbUushckRu5AIX32b3UFUL6KMhxDE,809
|
@@ -136,15 +142,15 @@ linkml/validator/report.py,sha256=LwFpmJ74Cvsi2CuEDhm1a8nn9x1VI3Z98DbkUZVhKMA,89
|
|
136
142
|
linkml/validator/validation_context.py,sha256=Pmccq-LQ9iEeLyZhamp3mKjjtwp4ji1hIe5TT05AUT4,2732
|
137
143
|
linkml/validator/validator.py,sha256=BFgfKdu9Nad2dc9XTpmz9daQTj_FTcvo6mBq3e8fhJs,5649
|
138
144
|
linkml/validators/__init__.py,sha256=43W3J5NPKhwa3ZFHLRYsJMocwQKWGYCF9Ki9r0ccGbc,202
|
139
|
-
linkml/validators/jsonschemavalidator.py,sha256=
|
140
|
-
linkml/validators/sparqlvalidator.py,sha256=
|
145
|
+
linkml/validators/jsonschemavalidator.py,sha256=LVhBF3Fp4Ltjeaov36duoODxXVXwKqe07SrohH_uzhg,7968
|
146
|
+
linkml/validators/sparqlvalidator.py,sha256=KU4Vj-B3i_0Fde0Sn89oqkOVxt1UGW3uI4F6YNoJMTQ,4625
|
141
147
|
linkml/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
142
148
|
linkml/workspaces/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
143
149
|
linkml/workspaces/datamodel/workspaces.py,sha256=4HdkqweGNfMPqnB1_Onc9DcTfkhoagTRcqruh08nRoI,14905
|
144
150
|
linkml/workspaces/datamodel/workspaces.yaml,sha256=EjVrwPpeRZqJRjuGyyDRxxFzuv55SiLIXPBRUG6HStU,4233
|
145
|
-
linkml/workspaces/example_runner.py,sha256=
|
146
|
-
linkml-1.8.
|
147
|
-
linkml-1.8.
|
148
|
-
linkml-1.8.
|
149
|
-
linkml-1.8.
|
150
|
-
linkml-1.8.
|
151
|
+
linkml/workspaces/example_runner.py,sha256=qrn3EALJsHpyzQXo2npg5oTmMNQTrCjaNIAuMV0P5c8,11720
|
152
|
+
linkml-1.8.2.dist-info/entry_points.txt,sha256=jvnPJ8UTca4_L-Dh8OdUm5td8I3ZFlKRhMPjqRLtaSg,2084
|
153
|
+
linkml-1.8.2.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
|
154
|
+
linkml-1.8.2.dist-info/LICENSE,sha256=kORMoywK6j9_iy0UvLR-a80P1Rvc9AOM4gsKlUNZABg,535
|
155
|
+
linkml-1.8.2.dist-info/METADATA,sha256=rdL9CvP5g68hZnKnQcInhtIMvcI2Ip5wqBdII0le-nY,3731
|
156
|
+
linkml-1.8.2.dist-info/RECORD,,
|
@@ -18,7 +18,6 @@ gen-owl=linkml.generators.owlgen:cli
|
|
18
18
|
gen-plantuml=linkml.generators.plantumlgen:cli
|
19
19
|
gen-prefix-map=linkml.generators.prefixmapgen:cli
|
20
20
|
gen-project=linkml.generators.projectgen:cli
|
21
|
-
gen-prolog=linkml.generators.lpgen:cli
|
22
21
|
gen-proto=linkml.generators.protogen:cli
|
23
22
|
gen-py-classes=linkml.generators.pythongen:cli
|
24
23
|
gen-pydantic=linkml.generators.pydanticgen:cli
|
@@ -36,6 +35,7 @@ gen-terminusdb=linkml.generators.terminusdbgen:cli
|
|
36
35
|
gen-typescript=linkml.generators.typescriptgen:cli
|
37
36
|
gen-yaml=linkml.generators.yamlgen:cli
|
38
37
|
gen-yuml=linkml.generators.yumlgen:cli
|
38
|
+
linkml=linkml.cli.main:linkml
|
39
39
|
linkml-convert=linkml.utils.converter:cli
|
40
40
|
linkml-jsonschema-validate=linkml.validators.jsonschemavalidator:cli
|
41
41
|
linkml-lint=linkml.linter.cli:main
|
File without changes
|
File without changes
|