sl-shared-assets 5.1.2__tar.gz → 6.0.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.

Potentially problematic release.


This version of sl-shared-assets might be problematic. Click here for more details.

Files changed (36) hide show
  1. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/PKG-INFO +2 -4
  2. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/pyproject.toml +4 -6
  3. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/command_line_interfaces/configure.py +1 -1
  4. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/server/pipeline.py +15 -1
  5. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/tools/packaging_tools.py +1 -1
  6. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/tox.ini +1 -1
  7. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/.gitignore +0 -0
  8. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/LICENSE +0 -0
  9. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/README.md +0 -0
  10. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/docs/Makefile +0 -0
  11. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/docs/make.bat +0 -0
  12. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/docs/source/api.rst +0 -0
  13. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/docs/source/conf.py +0 -0
  14. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/docs/source/index.rst +0 -0
  15. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/docs/source/welcome.rst +0 -0
  16. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/envs/slsa_dev_lin.yml +0 -0
  17. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/envs/slsa_dev_lin_spec.txt +0 -0
  18. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/envs/slsa_dev_osx.yml +0 -0
  19. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/envs/slsa_dev_osx_spec.txt +0 -0
  20. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/envs/slsa_dev_win.yml +0 -0
  21. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/envs/slsa_dev_win_spec.txt +0 -0
  22. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/__init__.py +0 -0
  23. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/command_line_interfaces/__init__.py +0 -0
  24. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/command_line_interfaces/manage.py +0 -0
  25. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/data_classes/__init__.py +0 -0
  26. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/data_classes/configuration_data.py +0 -0
  27. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/data_classes/runtime_data.py +0 -0
  28. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/data_classes/session_data.py +0 -0
  29. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/data_classes/surgery_data.py +0 -0
  30. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/py.typed +0 -0
  31. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/server/__init__.py +0 -0
  32. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/server/job.py +0 -0
  33. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/server/server.py +0 -0
  34. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/tools/__init__.py +0 -0
  35. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/tools/project_management_tools.py +0 -0
  36. {sl_shared_assets-5.1.2 → sl_shared_assets-6.0.0}/src/sl_shared_assets/tools/transfer_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sl-shared-assets
3
- Version: 5.1.2
3
+ Version: 6.0.0
4
4
  Summary: Provides data acquisition and processing assets shared between Sun (NeuroAI) lab libraries.
5
5
  Project-URL: Homepage, https://github.com/Sun-Lab-NBB/sl-shared-assets
6
6
  Project-URL: Documentation, https://sl-shared-assets-api-docs.netlify.app/
@@ -686,12 +686,10 @@ Classifier: Development Status :: 5 - Production/Stable
686
686
  Classifier: Intended Audience :: Developers
687
687
  Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
688
688
  Classifier: Operating System :: OS Independent
689
- Classifier: Programming Language :: Python :: 3.11
690
- Classifier: Programming Language :: Python :: 3.12
691
689
  Classifier: Programming Language :: Python :: 3.13
692
690
  Classifier: Topic :: Scientific/Engineering
693
691
  Classifier: Typing :: Typed
694
- Requires-Python: >=3.11
692
+ Requires-Python: <3.14,>=3.13
695
693
  Requires-Dist: appdirs<2,>=1
696
694
  Requires-Dist: ataraxis-base-utilities<4,>=3
697
695
  Requires-Dist: ataraxis-data-structures<4,>=3
@@ -1,16 +1,16 @@
1
1
  # Defines the build system used for the project.
2
2
  [build-system]
3
- requires = ["hatchling==1.27.0"]
3
+ requires = ["hatchling>=1,<2"]
4
4
  build-backend = "hatchling.build"
5
5
 
6
6
  # Project metdata section. Provides the genral ID information about the project.
7
7
  [project]
8
8
  name = "sl-shared-assets"
9
- version = "5.1.2"
9
+ version = "6.0.0"
10
10
  description = "Provides data acquisition and processing assets shared between Sun (NeuroAI) lab libraries."
11
11
  readme = "README.md"
12
12
  license = { file = "LICENSE" }
13
- requires-python = ">=3.11"
13
+ requires-python = ">=3.13,<3.14"
14
14
  authors = [
15
15
  { name = "Ivan Kondratyev" },
16
16
  { name = "Kushaan Gupta" },
@@ -31,8 +31,6 @@ classifiers = [
31
31
  # License
32
32
  "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
33
33
  # Supported Python Versions
34
- "Programming Language :: Python :: 3.11",
35
- "Programming Language :: Python :: 3.12",
36
34
  "Programming Language :: Python :: 3.13",
37
35
  # Supported OS systems
38
36
  "Operating System :: OS Independent",
@@ -101,7 +99,7 @@ packages = ["src/sl_shared_assets"]
101
99
  [tool.ruff]
102
100
  line-length = 120 # The maximum column length is set to 120 for this project.
103
101
  indent-width = 4 # Same as black, indents are 4 spaces
104
- target-version = "py311" # Targets the lowest supported version of python
102
+ target-version = "py313" # Targets the lowest supported version of python
105
103
  src = ["src"] # The name of the source directory
106
104
 
107
105
  # Excludes 'service' .py files, such as the sphinx configuration file, from linting.
@@ -15,7 +15,7 @@ from ..data_classes import (
15
15
  )
16
16
 
17
17
  # Ensures that displayed CLICK help messages are formatted according to the lab standard.
18
- CONTEXT_SETTINGS = dict(max_content_width=120) # or any width you want
18
+ CONTEXT_SETTINGS = dict(max_content_width=120)
19
19
 
20
20
 
21
21
  @click.group("manage", context_settings=CONTEXT_SETTINGS)
@@ -342,6 +342,9 @@ class ProcessingTracker(YamlConfig):
342
342
  self._complete = True
343
343
  self._encountered_error = False
344
344
  self._save_state()
345
+ else:
346
+ # Otherwise, updates the completed job counter, but does not change any other state variables.
347
+ self._save_state()
345
348
 
346
349
  def abort(self) -> None:
347
350
  """Resets the pipeline tracker file to the default state.
@@ -524,11 +527,22 @@ class ProcessingPipeline:
524
527
  # to the server.
525
528
  elif tracker.is_running:
526
529
  self._pipeline_stage += 1
527
- self._submit_jobs()
530
+
531
+ # If the incremented stage is not a valid stage, the pipeline has actually been aborted and the tracker file
532
+ # does not properly reflect this state. Sets the internal state tracker appropriately and resets (removes)
533
+ # the tracker file from the server to prevent deadlocking further runtimes
534
+ if self._pipeline_stage not in self.jobs.keys():
535
+ sh.rmtree(self.local_tracker_path.parent) # Removes local temporary data
536
+ self.pipeline_status = ProcessingStatus.ABORTED
537
+ self.server.remove(remote_path=self.remote_tracker_path, is_dir=False)
538
+ else:
539
+ # Otherwise, submits the next batch of jobs to the server.
540
+ self._submit_jobs()
528
541
 
529
542
  # The final and the rarest state: the pipeline was aborted before it finished the runtime. Generally, this state
530
543
  # should not be encountered during most runtimes.
531
544
  else:
545
+ sh.rmtree(self.local_tracker_path.parent) # Removes local temporary data
532
546
  self.pipeline_status = ProcessingStatus.ABORTED
533
547
 
534
548
  def _submit_jobs(self) -> None:
@@ -115,7 +115,7 @@ def calculate_directory_checksum(
115
115
  results = []
116
116
  if not batch:
117
117
  with tqdm(
118
- total=len(files), desc=f"Calculating checksum for {Path(*directory.parts[-6:])}", unit="files"
118
+ total=len(files), desc=f"Calculating checksum for {Path(*directory.parts[-6:])}", unit="file"
119
119
  ) as pbar:
120
120
  for future in as_completed(future_to_path):
121
121
  results.append(future.result())
@@ -29,7 +29,7 @@ description =
29
29
  Runs static code formatting, style, and typing checkers. Mypy may not always work properly until py.typed marker is
30
30
  added the first time the 'stubs' task is executed.
31
31
  extras = dev
32
- basepython = py311
32
+ basepython = py313
33
33
  commands =
34
34
  automation-cli purge-stubs
35
35
  ruff check --select I,NPY,FLY,ERA,PTH,N,FURB,TRY,RUF,UP,ARG --fix