deriva-ml 1.14.30__tar.gz → 1.14.32__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.
Files changed (110) hide show
  1. {deriva_ml-1.14.30/src/deriva_ml.egg-info → deriva_ml-1.14.32}/PKG-INFO +2 -1
  2. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/pyproject.toml +2 -1
  3. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/execution/workflow.py +16 -20
  4. {deriva_ml-1.14.30 → deriva_ml-1.14.32/src/deriva_ml.egg-info}/PKG-INFO +2 -1
  5. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml.egg-info/requires.txt +1 -0
  6. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/execution/test_execution.py +2 -10
  7. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/test_utils.py +1 -1
  8. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/uv.lock +15 -13
  9. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/.github/release-drafter.yml +0 -0
  10. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/.github/workflows/publish-docs.yml +0 -0
  11. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/.github/workflows/release.yml +0 -0
  12. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/.gitignore +0 -0
  13. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/LICENSE +0 -0
  14. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/README.md +0 -0
  15. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/.DS_Store +0 -0
  16. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/Notebooks/DerivaML Create Notes.ipynb +0 -0
  17. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/Notebooks/DerivaML Dataset.ipynb +0 -0
  18. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/Notebooks/DerivaML Execution.ipynb +0 -0
  19. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/Notebooks/DerivaML Features.ipynb +0 -0
  20. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/Notebooks/DerivaML Ingest.ipynb +0 -0
  21. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/Notebooks/DerivaML Vocabulary.ipynb +0 -0
  22. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/assets/ERD.png +0 -0
  23. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/assets/Launcher.png +0 -0
  24. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/assets/copy_minid.png +0 -0
  25. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/assets/deriva-logo.png +0 -0
  26. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/assets/deriva-ml.pdf +0 -0
  27. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/assets/sharing-at-home.pdf +0 -0
  28. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/code-docs/dataset.md +0 -0
  29. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/code-docs/dataset_aux_classes.md +0 -0
  30. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/code-docs/dataset_bag.md +0 -0
  31. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/code-docs/deriva_definitions.md +0 -0
  32. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/code-docs/deriva_ml_base.md +0 -0
  33. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/code-docs/deriva_model.md +0 -0
  34. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/code-docs/execution.md +0 -0
  35. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/code-docs/execution_configuration.md +0 -0
  36. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/code-docs/feature.md +0 -0
  37. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/code-docs/upload.md +0 -0
  38. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/index.md +0 -0
  39. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/release-notes.md +0 -0
  40. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/user-guide/datasets.md +0 -0
  41. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/user-guide/deriva_ml_structure.md +0 -0
  42. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/user-guide/execution-configuration.md +0 -0
  43. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/user-guide/file-assets.md +0 -0
  44. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/user-guide/identifiers.md +0 -0
  45. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/user-guide/install.md +0 -0
  46. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/user-guide/notebooks.md +0 -0
  47. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/docs/user-guide/overview.md +0 -0
  48. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/mkdocs.yml +0 -0
  49. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/release.sh +0 -0
  50. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/setup.cfg +0 -0
  51. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/__init__.py +0 -0
  52. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/core/__init__.py +0 -0
  53. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/core/base.py +0 -0
  54. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/core/constants.py +0 -0
  55. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/core/definitions.py +0 -0
  56. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/core/enums.py +0 -0
  57. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/core/ermrest.py +0 -0
  58. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/core/exceptions.py +0 -0
  59. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/core/filespec.py +0 -0
  60. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/dataset/__init__.py +0 -0
  61. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/dataset/aux_classes.py +0 -0
  62. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/dataset/dataset.py +0 -0
  63. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/dataset/dataset_bag.py +0 -0
  64. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/dataset/history.py +0 -0
  65. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/dataset/upload.py +0 -0
  66. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/demo_catalog.py +0 -0
  67. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/execution/__init__.py +0 -0
  68. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/execution/environment.py +0 -0
  69. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/execution/execution.py +0 -0
  70. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/execution/execution_configuration.py +0 -0
  71. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/feature.py +0 -0
  72. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/model/__init__.py +0 -0
  73. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/model/catalog.py +0 -0
  74. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/model/database.py +0 -0
  75. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/model/sql_mapper.py +0 -0
  76. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/run_notebook.py +0 -0
  77. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/schema/__init__.py +0 -0
  78. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/schema/annotations.py +0 -0
  79. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/schema/check_schema.py +0 -0
  80. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/schema/create_schema.py +0 -0
  81. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/schema/deriva-ml-reference.json +0 -0
  82. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/schema/policy.json +0 -0
  83. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml/schema/table_comments_utils.py +0 -0
  84. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml.egg-info/SOURCES.txt +0 -0
  85. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml.egg-info/dependency_links.txt +0 -0
  86. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml.egg-info/entry_points.txt +0 -0
  87. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/src/deriva_ml.egg-info/top_level.txt +0 -0
  88. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/__init__.py +0 -0
  89. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/conftest.py +0 -0
  90. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/core/__init__.py +0 -0
  91. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/core/test_basic_tables.py +0 -0
  92. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/core/test_file.py +0 -0
  93. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/core/test_vocabulary.py +0 -0
  94. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/dataset/__init__.py +0 -0
  95. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/dataset/demo-catalog-schema.json +0 -0
  96. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/dataset/deriva-ml-reference.json +0 -0
  97. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/dataset/eye-ai-catalog-schema.json +0 -0
  98. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/dataset/test_dataset_export.py +0 -0
  99. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/dataset/test_dataset_version.py +0 -0
  100. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/dataset/test_datasets.py +0 -0
  101. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/dataset/test_download.py +0 -0
  102. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/execution/__init__.py +0 -0
  103. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/execution/workflow-test.ipynb +0 -0
  104. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/execution/workflow-test.py +0 -0
  105. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/feature/test_features.py +0 -0
  106. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/model/__init__.py +0 -0
  107. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/model/test_database.py +0 -0
  108. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/model/test_models.py +0 -0
  109. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/test-files/execution-parameters.json +0 -0
  110. {deriva_ml-1.14.30 → deriva_ml-1.14.32}/tests/test-files/notebook-parameters.json +0 -0
@@ -1,11 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deriva-ml
3
- Version: 1.14.30
3
+ Version: 1.14.32
4
4
  Summary: Utilities to simplify use of Dervia and Pandas to create reproducable ML pipelines
5
5
  Author-email: ISRD <isrd-dev@isi.edu>
6
6
  Requires-Python: >=3.10
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
+ Requires-Dist: bump-my-version
9
10
  Requires-Dist: deriva~=1.7.10
10
11
  Requires-Dist: deepdiff
11
12
  Requires-Dist: pandas
@@ -8,6 +8,7 @@ description = "Utilities to simplify use of Dervia and Pandas to create reproduc
8
8
  readme = "README.md"
9
9
  requires-python = ">=3.10"
10
10
  dependencies = [
11
+ "bump-my-version",
11
12
  "deriva~=1.7.10",
12
13
  "deepdiff",
13
14
  "pandas",
@@ -89,8 +90,8 @@ keywords = ["deriva-ml"]
89
90
 
90
91
  [dependency-groups]
91
92
  dev = [
92
- "bump-my-version",
93
93
  "icecream>=2.1.4",
94
+ "ipykernel",
94
95
  "jupyter>=1.1.1",
95
96
  "mkdocs-jupyter",
96
97
  "mkdocstrings[python]",
@@ -7,6 +7,7 @@ from pathlib import Path
7
7
  from typing import Any
8
8
 
9
9
  import requests
10
+ from pydantic import BaseModel, PrivateAttr, model_validator
10
11
  from requests import RequestException
11
12
 
12
13
  from deriva_ml.core.definitions import RID
@@ -48,7 +49,7 @@ except ImportError:
48
49
  return get_connection_file()
49
50
 
50
51
 
51
- class Workflow:
52
+ class Workflow(BaseModel):
52
53
  """Represents a computational workflow in DerivaML.
53
54
 
54
55
  A workflow defines a computational process or analysis pipeline. Each workflow has
@@ -75,17 +76,19 @@ class Workflow:
75
76
  ... )
76
77
  """
77
78
 
78
- def __init__(
79
- self,
80
- name: str,
81
- workflow_type: str,
82
- description: str | None = None,
83
- url: str | None = None,
84
- version: str | None = None,
85
- rid: RID | None = None,
86
- checksum: str | None = None,
87
- is_notebook: bool = False,
88
- ):
79
+ name: str
80
+ workflow_type: str
81
+ description: str | None = None
82
+ url: str | None = None
83
+ version: str | None = None
84
+ rid: RID | None = None
85
+ checksum: str | None = None
86
+ is_notebook: bool = False
87
+
88
+ _logger: logging.Logger = PrivateAttr(default=10)
89
+
90
+ @model_validator(mode="after")
91
+ def setup_url_checksum(self) -> "Workflow":
89
92
  """Creates a workflow from the current execution context.
90
93
 
91
94
  Identifies the currently executing program (script or notebook) and creates
@@ -114,14 +117,6 @@ class Workflow:
114
117
  ... description="Process sample data"
115
118
  ... )
116
119
  """
117
- self.name = name
118
- self.url = url
119
- self.workflow_type = workflow_type
120
- self.version = version
121
- self.description = description
122
- self.rid = rid
123
- self.checksum = checksum
124
- self.is_notebook = is_notebook
125
120
  """Initializes logging for the workflow."""
126
121
 
127
122
  # Check to see if execution file info is being passed in by calling program.
@@ -135,6 +130,7 @@ class Workflow:
135
130
  self.url, self.checksum = Workflow.get_url_and_checksum(path)
136
131
 
137
132
  self._logger = logging.getLogger("deriva_ml")
133
+ return self
138
134
 
139
135
  @staticmethod
140
136
  def get_url_and_checksum(executable_path: Path) -> tuple[str, str]:
@@ -1,11 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deriva-ml
3
- Version: 1.14.30
3
+ Version: 1.14.32
4
4
  Summary: Utilities to simplify use of Dervia and Pandas to create reproducable ML pipelines
5
5
  Author-email: ISRD <isrd-dev@isi.edu>
6
6
  Requires-Python: >=3.10
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
+ Requires-Dist: bump-my-version
9
10
  Requires-Dist: deriva~=1.7.10
10
11
  Requires-Dist: deepdiff
11
12
  Requires-Dist: pandas
@@ -1,3 +1,4 @@
1
+ bump-my-version
1
2
  deriva~=1.7.10
2
3
  deepdiff
3
4
  pandas
@@ -2,7 +2,6 @@
2
2
  Tests for the execution module.
3
3
  """
4
4
 
5
- import json
6
5
  import subprocess
7
6
  from tempfile import TemporaryDirectory
8
7
 
@@ -61,7 +60,7 @@ class TestWorkflow:
61
60
  new_workflow = result.stdout.strip()
62
61
  assert new_workflow == workflow_rid
63
62
 
64
- def test_workflow_creation_notebook(self, test_ml, tmp_path):
63
+ def test_workflow_creation_notebook(self, test_ml):
65
64
  ml_instance = test_ml
66
65
  ml_instance.add_term(vc.asset_type, "Test Model", description="Model for our Test workflow")
67
66
  ml_instance.add_term(vc.workflow_type, "Test Workflow", description="A ML Workflow that uses Deriva ML API")
@@ -69,10 +68,6 @@ class TestWorkflow:
69
68
  workflows = list(workflow_table.entities().fetch())
70
69
  assert 0 == len(workflows)
71
70
 
72
- config_file = tmp_path / "config.json"
73
- with config_file.open("w") as fp:
74
- json.dump({"host": ml_instance.catalog.deriva_server.server, "catalog_id": ml_instance.catalog_id}, fp)
75
-
76
71
  print("Running notebook...")
77
72
  result = subprocess.run(
78
73
  [
@@ -87,14 +82,11 @@ class TestWorkflow:
87
82
  capture_output=True,
88
83
  text=True,
89
84
  )
90
- print(result)
91
85
  workflows = list(workflow_table.entities().fetch())
92
86
  assert 1 == len(workflows)
93
87
  workflow_rid = workflows[0]["RID"]
94
88
  workflow_url = workflows[0]["URL"]
95
-
96
- print(workflow_url)
97
- print(workflow_rid)
89
+ assert workflow_url.endswith("workflow-test.ipynb")
98
90
 
99
91
 
100
92
  class TestExecution:
@@ -42,7 +42,7 @@ class MLCatalog:
42
42
  pb = self.catalog.getPathBuilder()
43
43
  ml_path = pb.schemas["deriva-ml"]
44
44
  domain_path = pb.schemas[self.domain_schema]
45
- for t in ["Dataset_Execution", "Dataset_Version", "Dataset_Dataset"]:
45
+ for t in ["Dataset_Execution", "Dataset_Version", "Dataset_Dataset", "Workflow", "Workflow_Execution"]:
46
46
  try:
47
47
  ml_path.tables[t].path.delete()
48
48
  except DataPathException:
@@ -22,13 +22,13 @@ name = "aiohttp"
22
22
  version = "3.12.15"
23
23
  source = { registry = "https://pypi.org/simple" }
24
24
  dependencies = [
25
- { name = "aiohappyeyeballs", marker = "python_full_version >= '3.12'" },
26
- { name = "aiosignal", marker = "python_full_version >= '3.12'" },
27
- { name = "attrs", marker = "python_full_version >= '3.12'" },
28
- { name = "frozenlist", marker = "python_full_version >= '3.12'" },
29
- { name = "multidict", marker = "python_full_version >= '3.12'" },
30
- { name = "propcache", marker = "python_full_version >= '3.12'" },
31
- { name = "yarl", marker = "python_full_version >= '3.12'" },
25
+ { name = "aiohappyeyeballs", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
26
+ { name = "aiosignal", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
27
+ { name = "attrs", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
28
+ { name = "frozenlist", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
29
+ { name = "multidict", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
30
+ { name = "propcache", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
31
+ { name = "yarl", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
32
32
  ]
33
33
  sdist = { url = "https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size = 7823716, upload-time = "2025-07-29T05:52:32.215Z" }
34
34
  wheels = [
@@ -107,7 +107,7 @@ name = "aiosignal"
107
107
  version = "1.4.0"
108
108
  source = { registry = "https://pypi.org/simple" }
109
109
  dependencies = [
110
- { name = "frozenlist", marker = "python_full_version >= '3.12'" },
110
+ { name = "frozenlist", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
111
111
  { name = "typing-extensions", marker = "python_full_version == '3.12.*'" },
112
112
  ]
113
113
  sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" }
@@ -775,6 +775,7 @@ wheels = [
775
775
  name = "deriva-ml"
776
776
  source = { editable = "." }
777
777
  dependencies = [
778
+ { name = "bump-my-version" },
778
779
  { name = "deepdiff" },
779
780
  { name = "deriva" },
780
781
  { name = "nbstripout" },
@@ -790,8 +791,8 @@ dependencies = [
790
791
 
791
792
  [package.dev-dependencies]
792
793
  dev = [
793
- { name = "bump-my-version" },
794
794
  { name = "icecream" },
795
+ { name = "ipykernel" },
795
796
  { name = "jupyter" },
796
797
  { name = "mkdocs-jupyter" },
797
798
  { name = "mkdocs-material" },
@@ -806,6 +807,7 @@ lint = [
806
807
 
807
808
  [package.metadata]
808
809
  requires-dist = [
810
+ { name = "bump-my-version" },
809
811
  { name = "deepdiff" },
810
812
  { name = "deriva", specifier = "~=1.7.10" },
811
813
  { name = "nbstripout" },
@@ -821,8 +823,8 @@ requires-dist = [
821
823
 
822
824
  [package.metadata.requires-dev]
823
825
  dev = [
824
- { name = "bump-my-version" },
825
826
  { name = "icecream", specifier = ">=2.1.4" },
827
+ { name = "ipykernel" },
826
828
  { name = "jupyter", specifier = ">=1.1.1" },
827
829
  { name = "mkdocs-jupyter" },
828
830
  { name = "mkdocs-material" },
@@ -3605,9 +3607,9 @@ name = "yarl"
3605
3607
  version = "1.20.1"
3606
3608
  source = { registry = "https://pypi.org/simple" }
3607
3609
  dependencies = [
3608
- { name = "idna", marker = "python_full_version >= '3.12'" },
3609
- { name = "multidict", marker = "python_full_version >= '3.12'" },
3610
- { name = "propcache", marker = "python_full_version >= '3.12'" },
3610
+ { name = "idna", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
3611
+ { name = "multidict", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
3612
+ { name = "propcache", marker = "python_full_version >= '3.12' and python_full_version < '3.14'" },
3611
3613
  ]
3612
3614
  sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428, upload-time = "2025-06-10T00:46:09.923Z" }
3613
3615
  wheels = [
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes