opensafely 2.0.2__tar.gz → 2.0.3__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 (238) hide show
  1. {opensafely-2.0.2 → opensafely-2.0.3}/PKG-INFO +1 -1
  2. opensafely-2.0.3/opensafely/VERSION +1 -0
  3. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/executors/volumes.py +11 -3
  4. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely.egg-info/PKG-INFO +1 -1
  5. opensafely-2.0.2/opensafely/VERSION +0 -1
  6. {opensafely-2.0.2 → opensafely-2.0.3}/LICENSE +0 -0
  7. {opensafely-2.0.2 → opensafely-2.0.3}/README.md +0 -0
  8. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/__init__.py +0 -0
  9. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/certifi/__init__.py +0 -0
  10. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/certifi/__main__.py +0 -0
  11. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/certifi/cacert.pem +0 -0
  12. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/certifi/core.py +0 -0
  13. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/certifi/py.typed +0 -0
  14. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/__init__.py +0 -0
  15. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/__main__.py +0 -0
  16. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/api.py +0 -0
  17. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/cd.py +0 -0
  18. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/cli/__init__.py +0 -0
  19. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/cli/__main__.py +0 -0
  20. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/constant.py +0 -0
  21. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/legacy.py +0 -0
  22. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/md.py +0 -0
  23. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/models.py +0 -0
  24. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/py.typed +0 -0
  25. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/utils.py +0 -0
  26. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/charset_normalizer/version.py +0 -0
  27. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/distro/__init__.py +0 -0
  28. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/distro/__main__.py +0 -0
  29. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/distro/distro.py +0 -0
  30. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/distro/py.typed +0 -0
  31. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/__init__.py +0 -0
  32. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/__main__.py +0 -0
  33. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/cli.py +0 -0
  34. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/codec.py +0 -0
  35. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/compat.py +0 -0
  36. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/core.py +0 -0
  37. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/idnadata.py +0 -0
  38. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/intranges.py +0 -0
  39. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/package_data.py +0 -0
  40. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/py.typed +0 -0
  41. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/idna/uts46data.py +0 -0
  42. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/_logs/__init__.py +0 -0
  43. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/_logs/_internal/__init__.py +0 -0
  44. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/_logs/py.typed +0 -0
  45. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/_logs/severity/__init__.py +0 -0
  46. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/attributes/__init__.py +0 -0
  47. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/attributes/py.typed +0 -0
  48. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/baggage/__init__.py +0 -0
  49. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/baggage/propagation/__init__.py +0 -0
  50. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/baggage/py.typed +0 -0
  51. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/context/__init__.py +0 -0
  52. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/context/context.py +0 -0
  53. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/context/contextvars_context.py +0 -0
  54. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/context/py.typed +0 -0
  55. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/environment_variables/__init__.py +0 -0
  56. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/environment_variables/py.typed +0 -0
  57. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/metrics/__init__.py +0 -0
  58. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/metrics/_internal/__init__.py +0 -0
  59. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/metrics/_internal/instrument.py +0 -0
  60. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/metrics/_internal/observation.py +0 -0
  61. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/metrics/py.typed +0 -0
  62. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/propagate/__init__.py +0 -0
  63. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/propagate/py.typed +0 -0
  64. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/propagators/_envcarrier.py +0 -0
  65. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/propagators/composite.py +0 -0
  66. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/propagators/py.typed +0 -0
  67. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/propagators/textmap.py +0 -0
  68. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/py.typed +0 -0
  69. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/trace/__init__.py +0 -0
  70. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/trace/propagation/__init__.py +0 -0
  71. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/trace/propagation/tracecontext.py +0 -0
  72. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/trace/py.typed +0 -0
  73. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/trace/span.py +0 -0
  74. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/trace/status.py +0 -0
  75. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/util/_decorator.py +0 -0
  76. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/util/_importlib_metadata.py +0 -0
  77. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/util/_once.py +0 -0
  78. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/util/_providers.py +0 -0
  79. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/util/py.typed +0 -0
  80. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/util/re.py +0 -0
  81. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/util/types.py +0 -0
  82. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/version/__init__.py +0 -0
  83. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/opentelemetry/version/py.typed +0 -0
  84. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/__init__.py +0 -0
  85. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/__main__.py +0 -0
  86. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/constants.py +0 -0
  87. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/exceptions.py +0 -0
  88. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/features.py +0 -0
  89. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/legacy.py +0 -0
  90. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/loading.py +0 -0
  91. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/main.py +0 -0
  92. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/models.py +0 -0
  93. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/outputs.py +0 -0
  94. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline/validation.py +0 -0
  95. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/pipeline.pyi +0 -0
  96. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/__init__.py +0 -0
  97. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/__version__.py +0 -0
  98. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/_internal_utils.py +0 -0
  99. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/_types.py +0 -0
  100. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/adapters.py +0 -0
  101. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/api.py +0 -0
  102. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/auth.py +0 -0
  103. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/certs.py +0 -0
  104. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/compat.py +0 -0
  105. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/cookies.py +0 -0
  106. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/exceptions.py +0 -0
  107. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/help.py +0 -0
  108. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/hooks.py +0 -0
  109. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/models.py +0 -0
  110. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/packages.py +0 -0
  111. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/py.typed +0 -0
  112. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/sessions.py +0 -0
  113. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/status_codes.py +0 -0
  114. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/structures.py +0 -0
  115. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/requests/utils.py +0 -0
  116. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/__init__.py +0 -0
  117. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/anchor.py +0 -0
  118. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/comments.py +0 -0
  119. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/compat.py +0 -0
  120. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/composer.py +0 -0
  121. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/configobjwalker.py +0 -0
  122. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/constructor.py +0 -0
  123. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/cyaml.py +0 -0
  124. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/dumper.py +0 -0
  125. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/emitter.py +0 -0
  126. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/error.py +0 -0
  127. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/events.py +0 -0
  128. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/loader.py +0 -0
  129. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/main.py +0 -0
  130. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/nodes.py +0 -0
  131. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/parser.py +0 -0
  132. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/py.typed +0 -0
  133. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/reader.py +0 -0
  134. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/representer.py +0 -0
  135. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/resolver.py +0 -0
  136. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/scalarbool.py +0 -0
  137. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/scalarfloat.py +0 -0
  138. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/scalarint.py +0 -0
  139. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/scalarstring.py +0 -0
  140. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/scanner.py +0 -0
  141. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/serializer.py +0 -0
  142. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/timestamp.py +0 -0
  143. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/tokens.py +0 -0
  144. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/ruyaml/util.py +0 -0
  145. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/typing_extensions.py +0 -0
  146. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/typing_extensions.pyi +0 -0
  147. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/__init__.py +0 -0
  148. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/_base_connection.py +0 -0
  149. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/_collections.py +0 -0
  150. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/_request_methods.py +0 -0
  151. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/_version.py +0 -0
  152. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/connection.py +0 -0
  153. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/connectionpool.py +0 -0
  154. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/contrib/__init__.py +0 -0
  155. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/contrib/emscripten/__init__.py +0 -0
  156. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/contrib/emscripten/connection.py +0 -0
  157. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/contrib/emscripten/fetch.py +0 -0
  158. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/contrib/emscripten/request.py +0 -0
  159. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/contrib/emscripten/response.py +0 -0
  160. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/contrib/pyopenssl.py +0 -0
  161. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/contrib/socks.py +0 -0
  162. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/exceptions.py +0 -0
  163. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/fields.py +0 -0
  164. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/filepost.py +0 -0
  165. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/http2/__init__.py +0 -0
  166. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/http2/connection.py +0 -0
  167. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/http2/probe.py +0 -0
  168. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/poolmanager.py +0 -0
  169. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/py.typed +0 -0
  170. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/response.py +0 -0
  171. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/__init__.py +0 -0
  172. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/connection.py +0 -0
  173. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/proxy.py +0 -0
  174. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/request.py +0 -0
  175. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/response.py +0 -0
  176. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/retry.py +0 -0
  177. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/ssl_.py +0 -0
  178. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/ssl_match_hostname.py +0 -0
  179. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/ssltransport.py +0 -0
  180. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/timeout.py +0 -0
  181. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/url.py +0 -0
  182. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/util.py +0 -0
  183. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/_vendor/urllib3/util/wait.py +0 -0
  184. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/clean.py +0 -0
  185. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/codelists.py +0 -0
  186. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/execute.py +0 -0
  187. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/info.py +0 -0
  188. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/__init__.py +0 -0
  189. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/actions.py +0 -0
  190. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/cli/__init__.py +0 -0
  191. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/cli/local_run.py +0 -0
  192. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/cli/migrate.py +0 -0
  193. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/config.py +0 -0
  194. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/create_or_update_jobs.py +0 -0
  195. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/executors/__init__.py +0 -0
  196. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/executors/local.py +0 -0
  197. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/job_executor.py +0 -0
  198. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/__init__.py +0 -0
  199. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/database.py +0 -0
  200. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/docker.py +0 -0
  201. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/git.py +0 -0
  202. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/github_validators.py +0 -0
  203. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/log_utils.py +0 -0
  204. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/lru_dict.py +0 -0
  205. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/path_utils.py +0 -0
  206. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/string_utils.py +0 -0
  207. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/subprocess_utils.py +0 -0
  208. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/lib/yaml_utils.py +0 -0
  209. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/models.py +0 -0
  210. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/queries.py +0 -0
  211. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/reusable_actions.py +0 -0
  212. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/run.py +0 -0
  213. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jobrunner/tracing.py +0 -0
  214. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/jupyter.py +0 -0
  215. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/launch.py +0 -0
  216. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/pull.py +0 -0
  217. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/rstudio.py +0 -0
  218. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/unzip.py +0 -0
  219. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/upgrade.py +0 -0
  220. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely/utils.py +0 -0
  221. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely.egg-info/SOURCES.txt +0 -0
  222. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely.egg-info/dependency_links.txt +0 -0
  223. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely.egg-info/entry_points.txt +0 -0
  224. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely.egg-info/requires.txt +0 -0
  225. {opensafely-2.0.2 → opensafely-2.0.3}/opensafely.egg-info/top_level.txt +0 -0
  226. {opensafely-2.0.2 → opensafely-2.0.3}/pyproject.toml +0 -0
  227. {opensafely-2.0.2 → opensafely-2.0.3}/setup.cfg +0 -0
  228. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_clean.py +0 -0
  229. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_codelists.py +0 -0
  230. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_execute.py +0 -0
  231. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_info.py +0 -0
  232. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_init.py +0 -0
  233. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_launch.py +0 -0
  234. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_packaging.py +0 -0
  235. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_pull.py +0 -0
  236. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_unzip.py +0 -0
  237. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_upgrade.py +0 -0
  238. {opensafely-2.0.2 → opensafely-2.0.3}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opensafely
3
- Version: 2.0.2
3
+ Version: 2.0.3
4
4
  Summary: Command line tool for running OpenSAFELY studies locally.
5
5
  Author-email: OpenSAFELY <tech@opensafely.org>
6
6
  License: GPL-3.0
@@ -0,0 +1 @@
1
+ v2.0.3
@@ -57,10 +57,18 @@ class DockerVolumeAPI:
57
57
  docker.delete_volume(docker_volume_name(job))
58
58
 
59
59
  def write_timestamp(job, path, timeout=None):
60
- with tempfile.NamedTemporaryFile() as f:
61
- p = Path(f.name)
60
+ # Note: writing to a temporary file while there's already a handle open to it
61
+ # is fine on unix, but sometimes errors on Windows, so we use a temp directory
62
+ # here instead of opening/writing to a temp file directly.
63
+ with tempfile.TemporaryDirectory() as tmpdir:
64
+ p = Path(tmpdir) / "timestamp"
62
65
  p.write_text(str(time.time_ns()))
63
- docker.copy_to_volume(docker_volume_name(job), p, path, timeout)
66
+ docker.copy_to_volume(
67
+ docker_volume_name(job),
68
+ p,
69
+ path,
70
+ timeout,
71
+ )
64
72
 
65
73
  def read_timestamp(job, path, timeout=None):
66
74
  return docker.read_timestamp(docker_volume_name(job), path, timeout)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opensafely
3
- Version: 2.0.2
3
+ Version: 2.0.3
4
4
  Summary: Command line tool for running OpenSAFELY studies locally.
5
5
  Author-email: OpenSAFELY <tech@opensafely.org>
6
6
  License: GPL-3.0
@@ -1 +0,0 @@
1
- v2.0.2
File without changes
File without changes
File without changes
File without changes