girder-worker 5.0.20.dev8__tar.gz → 5.0.21.dev2__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 (78) hide show
  1. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/PKG-INFO +1 -1
  2. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/docker/tasks/__init__.py +7 -0
  3. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/task.py +7 -1
  4. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker.egg-info/PKG-INFO +1 -1
  5. girder_worker-5.0.21.dev2/girder_worker.egg-info/scm_version.json +8 -0
  6. girder_worker-5.0.20.dev8/girder_worker.egg-info/scm_version.json +0 -8
  7. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/MANIFEST.in +0 -0
  8. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/.gitignore +0 -0
  9. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/__init__.py +0 -0
  10. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/_test_plugins/__init__.py +0 -0
  11. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/_test_plugins/plugins.py +0 -0
  12. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/_test_plugins/tasks.py +0 -0
  13. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/app.py +0 -0
  14. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/celeryconfig.py +0 -0
  15. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/context/__init__.py +0 -0
  16. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/context/girder_context.py +0 -0
  17. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/context/nongirder_context.py +0 -0
  18. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/docker/__init__.py +0 -0
  19. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/docker/io/__init__.py +0 -0
  20. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/docker/io/girder.py +0 -0
  21. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/docker/nvidia.py +0 -0
  22. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/docker/stream_adapter.py +0 -0
  23. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/docker/transforms/__init__.py +0 -0
  24. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/docker/transforms/girder.py +0 -0
  25. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/docker/utils.py +0 -0
  26. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/entrypoint.py +0 -0
  27. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/log_utils.py +0 -0
  28. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/__init__.py +0 -0
  29. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/decorators.py +0 -0
  30. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tee.py +0 -0
  31. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/__init__.py +0 -0
  32. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/contrib/__init__.py +0 -0
  33. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/contrib/girder_io_test.py +0 -0
  34. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/decorators_test.py +0 -0
  35. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/fake_dir/file1.txt +0 -0
  36. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/fake_dir/file2.txt +0 -0
  37. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/fake_dir/subdir/file3.txt +0 -0
  38. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/girder_io_test.py +0 -0
  39. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/tee_test.py +0 -0
  40. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/transform_test.py +0 -0
  41. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/tests/types_test.py +0 -0
  42. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/transform.py +0 -0
  43. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/transforms/__init__.py +0 -0
  44. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/transforms/common.py +0 -0
  45. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/transforms/contrib/__init__.py +0 -0
  46. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/transforms/contrib/girder_io.py +0 -0
  47. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/transforms/girder_io.py +0 -0
  48. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/__init__.py +0 -0
  49. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/base.py +0 -0
  50. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/boolean.py +0 -0
  51. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/choice.py +0 -0
  52. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/color.py +0 -0
  53. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/girder.py +0 -0
  54. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/girder_folder.py +0 -0
  55. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/girder_item.py +0 -0
  56. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/integer.py +0 -0
  57. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/number.py +0 -0
  58. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/number_choice.py +0 -0
  59. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/number_multichoice.py +0 -0
  60. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/number_vector.py +0 -0
  61. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/range.py +0 -0
  62. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/string.py +0 -0
  63. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/string_choice.py +0 -0
  64. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/string_multichoice.py +0 -0
  65. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/string_vector.py +0 -0
  66. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/utils/types/vector.py +0 -0
  67. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker/worker.dist.cfg +0 -0
  68. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker.egg-info/SOURCES.txt +0 -0
  69. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker.egg-info/dependency_links.txt +0 -0
  70. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker.egg-info/entry_points.txt +0 -0
  71. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker.egg-info/not-zip-safe +0 -0
  72. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker.egg-info/requires.txt +0 -0
  73. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker.egg-info/scm_file_list.json +0 -0
  74. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/girder_worker.egg-info/top_level.txt +0 -0
  75. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/pyproject.toml +0 -0
  76. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/requirements.in +0 -0
  77. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/setup.cfg +0 -0
  78. {girder_worker-5.0.20.dev8 → girder_worker-5.0.21.dev2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: girder-worker
3
- Version: 5.0.20.dev8
3
+ Version: 5.0.21.dev2
4
4
  Summary: Batch execution engine built on celery.
5
5
  Home-page: https://github.com/girder/girder_worker
6
6
  Author: Kitware, Inc.
@@ -468,6 +468,13 @@ def _docker_run(task, image, pull_image=True, entrypoint=None, container_args=No
468
468
  else:
469
469
  container.remove()
470
470
 
471
+ # A canceled container was stopped before it wrote its outputs, so skip the
472
+ # result hooks rather than failing the job on the missing files. The select
473
+ # loop has already recorded any cancel it saw, so check that record rather
474
+ # than querying the worker again.
475
+ if getattr(task.request, '_girder_worker_canceled', False) is True:
476
+ return ()
477
+
471
478
  # return an array of None's equal to number of entries in the girder_result_hooks
472
479
  # header, in order to trigger processing of the container outputs.
473
480
  results = []
@@ -115,10 +115,16 @@ class Task(celery.Task):
115
115
  """
116
116
  A property to indicate if a task has been canceled.
117
117
 
118
+ Once a cancel has been observed it is remembered for the rest of the
119
+ request: the revoked list is fetched from the worker on every check,
120
+ and a later fetch that times out must not un-cancel the task.
121
+
118
122
  :return: True is this task has been canceled, False otherwise.
119
123
  :rtype: bool
120
124
  """
121
- return is_revoked(self)
125
+ if getattr(self.request, '_girder_worker_canceled', False) is not True:
126
+ self.request._girder_worker_canceled = is_revoked(self)
127
+ return self.request._girder_worker_canceled
122
128
 
123
129
  def describe(self):
124
130
  return describe_function(self.run)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: girder-worker
3
- Version: 5.0.20.dev8
3
+ Version: 5.0.21.dev2
4
4
  Summary: Batch execution engine built on celery.
5
5
  Home-page: https://github.com/girder/girder_worker
6
6
  Author: Kitware, Inc.
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "5.0.20",
3
+ "distance": 2,
4
+ "node": "ga6954f59751db96fe599cb58fbabeef6e558a9c1",
5
+ "dirty": false,
6
+ "branch": "master",
7
+ "node_date": "2026-10-26"
8
+ }
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "5.0.19",
3
- "distance": 8,
4
- "node": "g41aad97df0a4e9c3deffd2d67b15017fc2a8b41c",
5
- "dirty": false,
6
- "branch": "master",
7
- "node_date": "2026-10-22"
8
- }