jobflow 0.1.19__tar.gz → 0.2.0__tar.gz
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.
- {jobflow-0.1.19/src/jobflow.egg-info → jobflow-0.2.0}/PKG-INFO +24 -22
- {jobflow-0.1.19 → jobflow-0.2.0}/pyproject.toml +20 -19
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/core/flow.py +2 -2
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/core/job.py +3 -3
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/core/reference.py +1 -1
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/utils/graph.py +1 -1
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/utils/uuid.py +4 -1
- {jobflow-0.1.19 → jobflow-0.2.0/src/jobflow.egg-info}/PKG-INFO +24 -22
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow.egg-info/requires.txt +18 -18
- {jobflow-0.1.19 → jobflow-0.2.0}/LICENSE +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/README.md +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/setup.cfg +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/__init__.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/_version.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/core/__init__.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/core/maker.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/core/schemas.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/core/state.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/core/store.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/managers/__init__.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/managers/fireworks.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/managers/local.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/py.typed +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/settings.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/utils/__init__.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/utils/dict_mods.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/utils/enum.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/utils/find.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/utils/log.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow/utils/uid.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow.egg-info/SOURCES.txt +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow.egg-info/dependency_links.txt +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/src/jobflow.egg-info/top_level.txt +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/tests/test_settings.py +0 -0
- {jobflow-0.1.19 → jobflow-0.2.0}/tests/test_version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: jobflow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: jobflow is a library for writing computational workflows
|
|
5
5
|
Author-email: Alex Ganose <a.ganose@imperial.ac.uk>
|
|
6
6
|
License: modified BSD
|
|
@@ -17,11 +17,12 @@ Classifier: Operating System :: OS Independent
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
22
|
Classifier: Topic :: Database :: Front-Ends
|
|
22
23
|
Classifier: Topic :: Other/Nonlisted Topic
|
|
23
24
|
Classifier: Topic :: Scientific/Engineering
|
|
24
|
-
Requires-Python: >=3.
|
|
25
|
+
Requires-Python: >=3.10
|
|
25
26
|
Description-Content-Type: text/markdown
|
|
26
27
|
License-File: LICENSE
|
|
27
28
|
Requires-Dist: PyYAML
|
|
@@ -34,39 +35,40 @@ Requires-Dist: pydash
|
|
|
34
35
|
Provides-Extra: ulid
|
|
35
36
|
Requires-Dist: python-ulid; extra == "ulid"
|
|
36
37
|
Provides-Extra: docs
|
|
37
|
-
Requires-Dist: autodoc_pydantic==2.
|
|
38
|
+
Requires-Dist: autodoc_pydantic==2.2.0; extra == "docs"
|
|
38
39
|
Requires-Dist: furo==2024.8.6; extra == "docs"
|
|
39
|
-
Requires-Dist: ipython==
|
|
40
|
-
Requires-Dist: myst_parser==4.0.
|
|
41
|
-
Requires-Dist: nbsphinx==0.9.
|
|
40
|
+
Requires-Dist: ipython==9.3.0; extra == "docs"
|
|
41
|
+
Requires-Dist: myst_parser==4.0.1; extra == "docs"
|
|
42
|
+
Requires-Dist: nbsphinx==0.9.7; extra == "docs"
|
|
42
43
|
Requires-Dist: sphinx-copybutton==0.5.2; extra == "docs"
|
|
43
44
|
Requires-Dist: sphinx==8.1.3; extra == "docs"
|
|
44
45
|
Provides-Extra: dev
|
|
45
46
|
Requires-Dist: pre-commit>=2.12.1; extra == "dev"
|
|
46
47
|
Requires-Dist: typing_extensions; python_version < "3.11" and extra == "dev"
|
|
47
48
|
Provides-Extra: tests
|
|
48
|
-
Requires-Dist: moto==
|
|
49
|
-
Requires-Dist: pytest-cov==6.
|
|
50
|
-
Requires-Dist: pytest==8.
|
|
49
|
+
Requires-Dist: moto==5.1.5; extra == "tests"
|
|
50
|
+
Requires-Dist: pytest-cov==6.1.1; extra == "tests"
|
|
51
|
+
Requires-Dist: pytest==8.4.0; extra == "tests"
|
|
51
52
|
Provides-Extra: vis
|
|
52
53
|
Requires-Dist: matplotlib; extra == "vis"
|
|
53
54
|
Requires-Dist: pydot; extra == "vis"
|
|
54
55
|
Provides-Extra: fireworks
|
|
55
56
|
Requires-Dist: FireWorks; extra == "fireworks"
|
|
56
57
|
Provides-Extra: strict
|
|
57
|
-
Requires-Dist: FireWorks==2.0.
|
|
58
|
+
Requires-Dist: FireWorks==2.0.4; extra == "strict"
|
|
58
59
|
Requires-Dist: PyYAML==6.0.2; extra == "strict"
|
|
59
|
-
Requires-Dist: maggma==0.
|
|
60
|
-
Requires-Dist: matplotlib==3.
|
|
61
|
-
Requires-Dist: monty==
|
|
62
|
-
Requires-Dist: moto==
|
|
63
|
-
Requires-Dist: networkx==3.2
|
|
64
|
-
Requires-Dist: pydantic-settings==2.
|
|
65
|
-
Requires-Dist: pydantic==2.
|
|
66
|
-
Requires-Dist: pydash==8.0.
|
|
67
|
-
Requires-Dist: pydot==
|
|
60
|
+
Requires-Dist: maggma==0.71.5; extra == "strict"
|
|
61
|
+
Requires-Dist: matplotlib==3.10.3; extra == "strict"
|
|
62
|
+
Requires-Dist: monty==2025.3.3; extra == "strict"
|
|
63
|
+
Requires-Dist: moto==5.1.5; extra == "strict"
|
|
64
|
+
Requires-Dist: networkx==3.4.2; extra == "strict"
|
|
65
|
+
Requires-Dist: pydantic-settings==2.9.1; extra == "strict"
|
|
66
|
+
Requires-Dist: pydantic==2.11.5; extra == "strict"
|
|
67
|
+
Requires-Dist: pydash==8.0.5; extra == "strict"
|
|
68
|
+
Requires-Dist: pydot==4.0.0; extra == "strict"
|
|
68
69
|
Requires-Dist: python-ulid==3.0.0; extra == "strict"
|
|
69
|
-
Requires-Dist: typing-extensions==4.
|
|
70
|
+
Requires-Dist: typing-extensions==4.13.2; extra == "strict"
|
|
71
|
+
Dynamic: license-file
|
|
70
72
|
|
|
71
73
|
<div align="center">
|
|
72
74
|
|
|
@@ -19,12 +19,13 @@ classifiers = [
|
|
|
19
19
|
"Programming Language :: Python :: 3",
|
|
20
20
|
"Programming Language :: Python :: 3.10",
|
|
21
21
|
"Programming Language :: Python :: 3.11",
|
|
22
|
-
"Programming Language :: Python :: 3.
|
|
22
|
+
"Programming Language :: Python :: 3.12",
|
|
23
|
+
"Programming Language :: Python :: 3.13",
|
|
23
24
|
"Topic :: Database :: Front-Ends",
|
|
24
25
|
"Topic :: Other/Nonlisted Topic",
|
|
25
26
|
"Topic :: Scientific/Engineering",
|
|
26
27
|
]
|
|
27
|
-
requires-python = ">=3.
|
|
28
|
+
requires-python = ">=3.10"
|
|
28
29
|
dependencies = [
|
|
29
30
|
"PyYAML",
|
|
30
31
|
"maggma>=0.57.0",
|
|
@@ -38,32 +39,32 @@ dependencies = [
|
|
|
38
39
|
[project.optional-dependencies]
|
|
39
40
|
ulid = ["python-ulid"]
|
|
40
41
|
docs = [
|
|
41
|
-
"autodoc_pydantic==2.
|
|
42
|
+
"autodoc_pydantic==2.2.0",
|
|
42
43
|
"furo==2024.8.6",
|
|
43
|
-
"ipython==
|
|
44
|
-
"myst_parser==4.0.
|
|
45
|
-
"nbsphinx==0.9.
|
|
44
|
+
"ipython==9.3.0",
|
|
45
|
+
"myst_parser==4.0.1",
|
|
46
|
+
"nbsphinx==0.9.7",
|
|
46
47
|
"sphinx-copybutton==0.5.2",
|
|
47
48
|
"sphinx==8.1.3",
|
|
48
49
|
]
|
|
49
50
|
dev = ["pre-commit>=2.12.1", "typing_extensions; python_version < '3.11'"]
|
|
50
|
-
tests = ["moto==
|
|
51
|
+
tests = ["moto==5.1.5", "pytest-cov==6.1.1", "pytest==8.4.0"]
|
|
51
52
|
vis = ["matplotlib", "pydot"]
|
|
52
53
|
fireworks = ["FireWorks"]
|
|
53
54
|
strict = [
|
|
54
|
-
"FireWorks==2.0.
|
|
55
|
+
"FireWorks==2.0.4",
|
|
55
56
|
"PyYAML==6.0.2",
|
|
56
|
-
"maggma==0.
|
|
57
|
-
"matplotlib==3.
|
|
58
|
-
"monty==
|
|
59
|
-
"moto==
|
|
60
|
-
"networkx==3.2
|
|
61
|
-
"pydantic-settings==2.
|
|
62
|
-
"pydantic==2.
|
|
63
|
-
"pydash==8.0.
|
|
64
|
-
"pydot==
|
|
57
|
+
"maggma==0.71.5",
|
|
58
|
+
"matplotlib==3.10.3",
|
|
59
|
+
"monty==2025.3.3",
|
|
60
|
+
"moto==5.1.5",
|
|
61
|
+
"networkx==3.4.2",
|
|
62
|
+
"pydantic-settings==2.9.1",
|
|
63
|
+
"pydantic==2.11.5",
|
|
64
|
+
"pydash==8.0.5",
|
|
65
|
+
"pydot==4.0.0",
|
|
65
66
|
"python-ulid==3.0.0",
|
|
66
|
-
"typing-extensions==4.
|
|
67
|
+
"typing-extensions==4.13.2",
|
|
67
68
|
]
|
|
68
69
|
|
|
69
70
|
[project.urls]
|
|
@@ -84,7 +85,7 @@ max-line-length = 88
|
|
|
84
85
|
max-doc-length = 88
|
|
85
86
|
select = "C, E, F, W, B"
|
|
86
87
|
extend-ignore = "E203, W503, E501, F401, RST21"
|
|
87
|
-
min-python-version = "3.
|
|
88
|
+
min-python-version = "3.10.0"
|
|
88
89
|
docstring-convention = "numpy"
|
|
89
90
|
rst-roles = "class, func, ref, obj"
|
|
90
91
|
|
|
@@ -617,7 +617,7 @@ class Flow(MSONable):
|
|
|
617
617
|
function_filter: Callable = None,
|
|
618
618
|
dict_mod: bool = False,
|
|
619
619
|
dynamic: bool = True,
|
|
620
|
-
callback_filter: Callable[[Flow | Job], bool]
|
|
620
|
+
callback_filter: Callable[[Flow | Job], bool] | None = None,
|
|
621
621
|
):
|
|
622
622
|
"""
|
|
623
623
|
Update the metadata of the Flow and/or its Jobs.
|
|
@@ -681,7 +681,7 @@ class Flow(MSONable):
|
|
|
681
681
|
callback_filter=callback_filter,
|
|
682
682
|
)
|
|
683
683
|
|
|
684
|
-
if callback_filter(self) is False:
|
|
684
|
+
if callback_filter is not None and callback_filter(self) is False:
|
|
685
685
|
return
|
|
686
686
|
|
|
687
687
|
if dict_mod:
|
|
@@ -926,7 +926,7 @@ class Job(MSONable):
|
|
|
926
926
|
function_filter: Callable = None,
|
|
927
927
|
dict_mod: bool = False,
|
|
928
928
|
dynamic: bool = True,
|
|
929
|
-
callback_filter: Callable[[jobflow.Flow | Job], bool]
|
|
929
|
+
callback_filter: Callable[[jobflow.Flow | Job], bool] | None = None,
|
|
930
930
|
):
|
|
931
931
|
"""
|
|
932
932
|
Update the metadata of the job.
|
|
@@ -1006,7 +1006,7 @@ class Job(MSONable):
|
|
|
1006
1006
|
):
|
|
1007
1007
|
return
|
|
1008
1008
|
|
|
1009
|
-
if callback_filter(self) is False:
|
|
1009
|
+
if callback_filter is not None and callback_filter(self) is False:
|
|
1010
1010
|
return
|
|
1011
1011
|
|
|
1012
1012
|
# if we get to here then we pass all the filters
|
|
@@ -1265,7 +1265,7 @@ class Response(typing.Generic[T]):
|
|
|
1265
1265
|
job_returns.output = apply_schema(job_returns.output, output_schema)
|
|
1266
1266
|
|
|
1267
1267
|
job_returns.job_dir = job_dir
|
|
1268
|
-
return cast(Self, job_returns)
|
|
1268
|
+
return cast("Self", job_returns)
|
|
1269
1269
|
|
|
1270
1270
|
if isinstance(job_returns, (list, tuple)):
|
|
1271
1271
|
# check that a Response object is not given as one of many outputs
|
|
@@ -513,7 +513,7 @@ def validate_schema_access(
|
|
|
513
513
|
the bool is ``True`` if the schema access was valid.
|
|
514
514
|
The BaseModel class associated with the item, if any.
|
|
515
515
|
"""
|
|
516
|
-
schema_dict = schema.
|
|
516
|
+
schema_dict = schema.model_json_schema()
|
|
517
517
|
if item not in schema_dict["properties"]:
|
|
518
518
|
raise AttributeError(f"{schema.__name__} does not have attribute '{item}'.")
|
|
519
519
|
|
|
@@ -170,7 +170,7 @@ def to_pydot(flow: jobflow.Flow):
|
|
|
170
170
|
if isinstance(job, Flow):
|
|
171
171
|
add_cluster(job, cluster)
|
|
172
172
|
else:
|
|
173
|
-
cluster.add_node(pydot_graph.get_node(f
|
|
173
|
+
cluster.add_node(pydot_graph.get_node(f"{job.uuid}")[0])
|
|
174
174
|
|
|
175
175
|
outer_graph.add_subgraph(cluster)
|
|
176
176
|
|
|
@@ -4,7 +4,10 @@ from monty.dev import deprecated
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@deprecated(
|
|
7
|
-
message=
|
|
7
|
+
message=(
|
|
8
|
+
"The UUID system will be replaced with a UID that "
|
|
9
|
+
"contains both the UUID and ULID."
|
|
10
|
+
)
|
|
8
11
|
)
|
|
9
12
|
def suuid() -> str:
|
|
10
13
|
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: jobflow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: jobflow is a library for writing computational workflows
|
|
5
5
|
Author-email: Alex Ganose <a.ganose@imperial.ac.uk>
|
|
6
6
|
License: modified BSD
|
|
@@ -17,11 +17,12 @@ Classifier: Operating System :: OS Independent
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
22
|
Classifier: Topic :: Database :: Front-Ends
|
|
22
23
|
Classifier: Topic :: Other/Nonlisted Topic
|
|
23
24
|
Classifier: Topic :: Scientific/Engineering
|
|
24
|
-
Requires-Python: >=3.
|
|
25
|
+
Requires-Python: >=3.10
|
|
25
26
|
Description-Content-Type: text/markdown
|
|
26
27
|
License-File: LICENSE
|
|
27
28
|
Requires-Dist: PyYAML
|
|
@@ -34,39 +35,40 @@ Requires-Dist: pydash
|
|
|
34
35
|
Provides-Extra: ulid
|
|
35
36
|
Requires-Dist: python-ulid; extra == "ulid"
|
|
36
37
|
Provides-Extra: docs
|
|
37
|
-
Requires-Dist: autodoc_pydantic==2.
|
|
38
|
+
Requires-Dist: autodoc_pydantic==2.2.0; extra == "docs"
|
|
38
39
|
Requires-Dist: furo==2024.8.6; extra == "docs"
|
|
39
|
-
Requires-Dist: ipython==
|
|
40
|
-
Requires-Dist: myst_parser==4.0.
|
|
41
|
-
Requires-Dist: nbsphinx==0.9.
|
|
40
|
+
Requires-Dist: ipython==9.3.0; extra == "docs"
|
|
41
|
+
Requires-Dist: myst_parser==4.0.1; extra == "docs"
|
|
42
|
+
Requires-Dist: nbsphinx==0.9.7; extra == "docs"
|
|
42
43
|
Requires-Dist: sphinx-copybutton==0.5.2; extra == "docs"
|
|
43
44
|
Requires-Dist: sphinx==8.1.3; extra == "docs"
|
|
44
45
|
Provides-Extra: dev
|
|
45
46
|
Requires-Dist: pre-commit>=2.12.1; extra == "dev"
|
|
46
47
|
Requires-Dist: typing_extensions; python_version < "3.11" and extra == "dev"
|
|
47
48
|
Provides-Extra: tests
|
|
48
|
-
Requires-Dist: moto==
|
|
49
|
-
Requires-Dist: pytest-cov==6.
|
|
50
|
-
Requires-Dist: pytest==8.
|
|
49
|
+
Requires-Dist: moto==5.1.5; extra == "tests"
|
|
50
|
+
Requires-Dist: pytest-cov==6.1.1; extra == "tests"
|
|
51
|
+
Requires-Dist: pytest==8.4.0; extra == "tests"
|
|
51
52
|
Provides-Extra: vis
|
|
52
53
|
Requires-Dist: matplotlib; extra == "vis"
|
|
53
54
|
Requires-Dist: pydot; extra == "vis"
|
|
54
55
|
Provides-Extra: fireworks
|
|
55
56
|
Requires-Dist: FireWorks; extra == "fireworks"
|
|
56
57
|
Provides-Extra: strict
|
|
57
|
-
Requires-Dist: FireWorks==2.0.
|
|
58
|
+
Requires-Dist: FireWorks==2.0.4; extra == "strict"
|
|
58
59
|
Requires-Dist: PyYAML==6.0.2; extra == "strict"
|
|
59
|
-
Requires-Dist: maggma==0.
|
|
60
|
-
Requires-Dist: matplotlib==3.
|
|
61
|
-
Requires-Dist: monty==
|
|
62
|
-
Requires-Dist: moto==
|
|
63
|
-
Requires-Dist: networkx==3.2
|
|
64
|
-
Requires-Dist: pydantic-settings==2.
|
|
65
|
-
Requires-Dist: pydantic==2.
|
|
66
|
-
Requires-Dist: pydash==8.0.
|
|
67
|
-
Requires-Dist: pydot==
|
|
60
|
+
Requires-Dist: maggma==0.71.5; extra == "strict"
|
|
61
|
+
Requires-Dist: matplotlib==3.10.3; extra == "strict"
|
|
62
|
+
Requires-Dist: monty==2025.3.3; extra == "strict"
|
|
63
|
+
Requires-Dist: moto==5.1.5; extra == "strict"
|
|
64
|
+
Requires-Dist: networkx==3.4.2; extra == "strict"
|
|
65
|
+
Requires-Dist: pydantic-settings==2.9.1; extra == "strict"
|
|
66
|
+
Requires-Dist: pydantic==2.11.5; extra == "strict"
|
|
67
|
+
Requires-Dist: pydash==8.0.5; extra == "strict"
|
|
68
|
+
Requires-Dist: pydot==4.0.0; extra == "strict"
|
|
68
69
|
Requires-Dist: python-ulid==3.0.0; extra == "strict"
|
|
69
|
-
Requires-Dist: typing-extensions==4.
|
|
70
|
+
Requires-Dist: typing-extensions==4.13.2; extra == "strict"
|
|
71
|
+
Dynamic: license-file
|
|
70
72
|
|
|
71
73
|
<div align="center">
|
|
72
74
|
|
|
@@ -13,11 +13,11 @@ pre-commit>=2.12.1
|
|
|
13
13
|
typing_extensions
|
|
14
14
|
|
|
15
15
|
[docs]
|
|
16
|
-
autodoc_pydantic==2.
|
|
16
|
+
autodoc_pydantic==2.2.0
|
|
17
17
|
furo==2024.8.6
|
|
18
|
-
ipython==
|
|
19
|
-
myst_parser==4.0.
|
|
20
|
-
nbsphinx==0.9.
|
|
18
|
+
ipython==9.3.0
|
|
19
|
+
myst_parser==4.0.1
|
|
20
|
+
nbsphinx==0.9.7
|
|
21
21
|
sphinx-copybutton==0.5.2
|
|
22
22
|
sphinx==8.1.3
|
|
23
23
|
|
|
@@ -25,24 +25,24 @@ sphinx==8.1.3
|
|
|
25
25
|
FireWorks
|
|
26
26
|
|
|
27
27
|
[strict]
|
|
28
|
-
FireWorks==2.0.
|
|
28
|
+
FireWorks==2.0.4
|
|
29
29
|
PyYAML==6.0.2
|
|
30
|
-
maggma==0.
|
|
31
|
-
matplotlib==3.
|
|
32
|
-
monty==
|
|
33
|
-
moto==
|
|
34
|
-
networkx==3.2
|
|
35
|
-
pydantic-settings==2.
|
|
36
|
-
pydantic==2.
|
|
37
|
-
pydash==8.0.
|
|
38
|
-
pydot==
|
|
30
|
+
maggma==0.71.5
|
|
31
|
+
matplotlib==3.10.3
|
|
32
|
+
monty==2025.3.3
|
|
33
|
+
moto==5.1.5
|
|
34
|
+
networkx==3.4.2
|
|
35
|
+
pydantic-settings==2.9.1
|
|
36
|
+
pydantic==2.11.5
|
|
37
|
+
pydash==8.0.5
|
|
38
|
+
pydot==4.0.0
|
|
39
39
|
python-ulid==3.0.0
|
|
40
|
-
typing-extensions==4.
|
|
40
|
+
typing-extensions==4.13.2
|
|
41
41
|
|
|
42
42
|
[tests]
|
|
43
|
-
moto==
|
|
44
|
-
pytest-cov==6.
|
|
45
|
-
pytest==8.
|
|
43
|
+
moto==5.1.5
|
|
44
|
+
pytest-cov==6.1.1
|
|
45
|
+
pytest==8.4.0
|
|
46
46
|
|
|
47
47
|
[ulid]
|
|
48
48
|
python-ulid
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|