modal 0.73.73__tar.gz → 0.73.75__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 (182) hide show
  1. {modal-0.73.73 → modal-0.73.75}/PKG-INFO +1 -1
  2. {modal-0.73.73 → modal-0.73.75}/modal/client.pyi +2 -2
  3. {modal-0.73.73 → modal-0.73.75}/modal/config.py +8 -0
  4. {modal-0.73.73 → modal-0.73.75}/modal/image.py +1 -0
  5. {modal-0.73.73 → modal-0.73.75}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-0.73.73 → modal-0.73.75}/modal_proto/api.proto +2 -0
  7. {modal-0.73.73 → modal-0.73.75}/modal_proto/api_pb2.py +410 -410
  8. {modal-0.73.73 → modal-0.73.75}/modal_proto/api_pb2.pyi +5 -1
  9. {modal-0.73.73 → modal-0.73.75}/modal_version/_version_generated.py +1 -1
  10. {modal-0.73.73 → modal-0.73.75}/LICENSE +0 -0
  11. {modal-0.73.73 → modal-0.73.75}/README.md +0 -0
  12. {modal-0.73.73 → modal-0.73.75}/modal/__init__.py +0 -0
  13. {modal-0.73.73 → modal-0.73.75}/modal/__main__.py +0 -0
  14. {modal-0.73.73 → modal-0.73.75}/modal/_clustered_functions.py +0 -0
  15. {modal-0.73.73 → modal-0.73.75}/modal/_clustered_functions.pyi +0 -0
  16. {modal-0.73.73 → modal-0.73.75}/modal/_container_entrypoint.py +0 -0
  17. {modal-0.73.73 → modal-0.73.75}/modal/_functions.py +0 -0
  18. {modal-0.73.73 → modal-0.73.75}/modal/_ipython.py +0 -0
  19. {modal-0.73.73 → modal-0.73.75}/modal/_location.py +0 -0
  20. {modal-0.73.73 → modal-0.73.75}/modal/_object.py +0 -0
  21. {modal-0.73.73 → modal-0.73.75}/modal/_output.py +0 -0
  22. {modal-0.73.73 → modal-0.73.75}/modal/_partial_function.py +0 -0
  23. {modal-0.73.73 → modal-0.73.75}/modal/_proxy_tunnel.py +0 -0
  24. {modal-0.73.73 → modal-0.73.75}/modal/_pty.py +0 -0
  25. {modal-0.73.73 → modal-0.73.75}/modal/_resolver.py +0 -0
  26. {modal-0.73.73 → modal-0.73.75}/modal/_resources.py +0 -0
  27. {modal-0.73.73 → modal-0.73.75}/modal/_runtime/__init__.py +0 -0
  28. {modal-0.73.73 → modal-0.73.75}/modal/_runtime/asgi.py +0 -0
  29. {modal-0.73.73 → modal-0.73.75}/modal/_runtime/container_io_manager.py +0 -0
  30. {modal-0.73.73 → modal-0.73.75}/modal/_runtime/container_io_manager.pyi +0 -0
  31. {modal-0.73.73 → modal-0.73.75}/modal/_runtime/execution_context.py +0 -0
  32. {modal-0.73.73 → modal-0.73.75}/modal/_runtime/execution_context.pyi +0 -0
  33. {modal-0.73.73 → modal-0.73.75}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  34. {modal-0.73.73 → modal-0.73.75}/modal/_runtime/telemetry.py +0 -0
  35. {modal-0.73.73 → modal-0.73.75}/modal/_runtime/user_code_imports.py +0 -0
  36. {modal-0.73.73 → modal-0.73.75}/modal/_serialization.py +0 -0
  37. {modal-0.73.73 → modal-0.73.75}/modal/_traceback.py +0 -0
  38. {modal-0.73.73 → modal-0.73.75}/modal/_tunnel.py +0 -0
  39. {modal-0.73.73 → modal-0.73.75}/modal/_tunnel.pyi +0 -0
  40. {modal-0.73.73 → modal-0.73.75}/modal/_utils/__init__.py +0 -0
  41. {modal-0.73.73 → modal-0.73.75}/modal/_utils/app_utils.py +0 -0
  42. {modal-0.73.73 → modal-0.73.75}/modal/_utils/async_utils.py +0 -0
  43. {modal-0.73.73 → modal-0.73.75}/modal/_utils/blob_utils.py +0 -0
  44. {modal-0.73.73 → modal-0.73.75}/modal/_utils/bytes_io_segment_payload.py +0 -0
  45. {modal-0.73.73 → modal-0.73.75}/modal/_utils/deprecation.py +0 -0
  46. {modal-0.73.73 → modal-0.73.75}/modal/_utils/docker_utils.py +0 -0
  47. {modal-0.73.73 → modal-0.73.75}/modal/_utils/function_utils.py +0 -0
  48. {modal-0.73.73 → modal-0.73.75}/modal/_utils/grpc_testing.py +0 -0
  49. {modal-0.73.73 → modal-0.73.75}/modal/_utils/grpc_utils.py +0 -0
  50. {modal-0.73.73 → modal-0.73.75}/modal/_utils/hash_utils.py +0 -0
  51. {modal-0.73.73 → modal-0.73.75}/modal/_utils/http_utils.py +0 -0
  52. {modal-0.73.73 → modal-0.73.75}/modal/_utils/logger.py +0 -0
  53. {modal-0.73.73 → modal-0.73.75}/modal/_utils/mount_utils.py +0 -0
  54. {modal-0.73.73 → modal-0.73.75}/modal/_utils/name_utils.py +0 -0
  55. {modal-0.73.73 → modal-0.73.75}/modal/_utils/package_utils.py +0 -0
  56. {modal-0.73.73 → modal-0.73.75}/modal/_utils/pattern_utils.py +0 -0
  57. {modal-0.73.73 → modal-0.73.75}/modal/_utils/rand_pb_testing.py +0 -0
  58. {modal-0.73.73 → modal-0.73.75}/modal/_utils/shell_utils.py +0 -0
  59. {modal-0.73.73 → modal-0.73.75}/modal/_vendor/__init__.py +0 -0
  60. {modal-0.73.73 → modal-0.73.75}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  61. {modal-0.73.73 → modal-0.73.75}/modal/_vendor/cloudpickle.py +0 -0
  62. {modal-0.73.73 → modal-0.73.75}/modal/_vendor/tblib.py +0 -0
  63. {modal-0.73.73 → modal-0.73.75}/modal/_watcher.py +0 -0
  64. {modal-0.73.73 → modal-0.73.75}/modal/app.py +0 -0
  65. {modal-0.73.73 → modal-0.73.75}/modal/app.pyi +0 -0
  66. {modal-0.73.73 → modal-0.73.75}/modal/call_graph.py +0 -0
  67. {modal-0.73.73 → modal-0.73.75}/modal/cli/__init__.py +0 -0
  68. {modal-0.73.73 → modal-0.73.75}/modal/cli/_download.py +0 -0
  69. {modal-0.73.73 → modal-0.73.75}/modal/cli/_traceback.py +0 -0
  70. {modal-0.73.73 → modal-0.73.75}/modal/cli/app.py +0 -0
  71. {modal-0.73.73 → modal-0.73.75}/modal/cli/config.py +0 -0
  72. {modal-0.73.73 → modal-0.73.75}/modal/cli/container.py +0 -0
  73. {modal-0.73.73 → modal-0.73.75}/modal/cli/dict.py +0 -0
  74. {modal-0.73.73 → modal-0.73.75}/modal/cli/entry_point.py +0 -0
  75. {modal-0.73.73 → modal-0.73.75}/modal/cli/environment.py +0 -0
  76. {modal-0.73.73 → modal-0.73.75}/modal/cli/import_refs.py +0 -0
  77. {modal-0.73.73 → modal-0.73.75}/modal/cli/launch.py +0 -0
  78. {modal-0.73.73 → modal-0.73.75}/modal/cli/network_file_system.py +0 -0
  79. {modal-0.73.73 → modal-0.73.75}/modal/cli/profile.py +0 -0
  80. {modal-0.73.73 → modal-0.73.75}/modal/cli/programs/__init__.py +0 -0
  81. {modal-0.73.73 → modal-0.73.75}/modal/cli/programs/run_jupyter.py +0 -0
  82. {modal-0.73.73 → modal-0.73.75}/modal/cli/programs/vscode.py +0 -0
  83. {modal-0.73.73 → modal-0.73.75}/modal/cli/queues.py +0 -0
  84. {modal-0.73.73 → modal-0.73.75}/modal/cli/run.py +0 -0
  85. {modal-0.73.73 → modal-0.73.75}/modal/cli/secret.py +0 -0
  86. {modal-0.73.73 → modal-0.73.75}/modal/cli/token.py +0 -0
  87. {modal-0.73.73 → modal-0.73.75}/modal/cli/utils.py +0 -0
  88. {modal-0.73.73 → modal-0.73.75}/modal/cli/volume.py +0 -0
  89. {modal-0.73.73 → modal-0.73.75}/modal/client.py +0 -0
  90. {modal-0.73.73 → modal-0.73.75}/modal/cloud_bucket_mount.py +0 -0
  91. {modal-0.73.73 → modal-0.73.75}/modal/cloud_bucket_mount.pyi +0 -0
  92. {modal-0.73.73 → modal-0.73.75}/modal/cls.py +0 -0
  93. {modal-0.73.73 → modal-0.73.75}/modal/cls.pyi +0 -0
  94. {modal-0.73.73 → modal-0.73.75}/modal/container_process.py +0 -0
  95. {modal-0.73.73 → modal-0.73.75}/modal/container_process.pyi +0 -0
  96. {modal-0.73.73 → modal-0.73.75}/modal/dict.py +0 -0
  97. {modal-0.73.73 → modal-0.73.75}/modal/dict.pyi +0 -0
  98. {modal-0.73.73 → modal-0.73.75}/modal/environments.py +0 -0
  99. {modal-0.73.73 → modal-0.73.75}/modal/environments.pyi +0 -0
  100. {modal-0.73.73 → modal-0.73.75}/modal/exception.py +0 -0
  101. {modal-0.73.73 → modal-0.73.75}/modal/experimental.py +0 -0
  102. {modal-0.73.73 → modal-0.73.75}/modal/experimental.pyi +0 -0
  103. {modal-0.73.73 → modal-0.73.75}/modal/extensions/__init__.py +0 -0
  104. {modal-0.73.73 → modal-0.73.75}/modal/extensions/ipython.py +0 -0
  105. {modal-0.73.73 → modal-0.73.75}/modal/file_io.py +0 -0
  106. {modal-0.73.73 → modal-0.73.75}/modal/file_io.pyi +0 -0
  107. {modal-0.73.73 → modal-0.73.75}/modal/file_pattern_matcher.py +0 -0
  108. {modal-0.73.73 → modal-0.73.75}/modal/functions.py +0 -0
  109. {modal-0.73.73 → modal-0.73.75}/modal/functions.pyi +0 -0
  110. {modal-0.73.73 → modal-0.73.75}/modal/gpu.py +0 -0
  111. {modal-0.73.73 → modal-0.73.75}/modal/image.pyi +0 -0
  112. {modal-0.73.73 → modal-0.73.75}/modal/io_streams.py +0 -0
  113. {modal-0.73.73 → modal-0.73.75}/modal/io_streams.pyi +0 -0
  114. {modal-0.73.73 → modal-0.73.75}/modal/mount.py +0 -0
  115. {modal-0.73.73 → modal-0.73.75}/modal/mount.pyi +0 -0
  116. {modal-0.73.73 → modal-0.73.75}/modal/network_file_system.py +0 -0
  117. {modal-0.73.73 → modal-0.73.75}/modal/network_file_system.pyi +0 -0
  118. {modal-0.73.73 → modal-0.73.75}/modal/object.py +0 -0
  119. {modal-0.73.73 → modal-0.73.75}/modal/object.pyi +0 -0
  120. {modal-0.73.73 → modal-0.73.75}/modal/output.py +0 -0
  121. {modal-0.73.73 → modal-0.73.75}/modal/parallel_map.py +0 -0
  122. {modal-0.73.73 → modal-0.73.75}/modal/parallel_map.pyi +0 -0
  123. {modal-0.73.73 → modal-0.73.75}/modal/partial_function.py +0 -0
  124. {modal-0.73.73 → modal-0.73.75}/modal/partial_function.pyi +0 -0
  125. {modal-0.73.73 → modal-0.73.75}/modal/proxy.py +0 -0
  126. {modal-0.73.73 → modal-0.73.75}/modal/proxy.pyi +0 -0
  127. {modal-0.73.73 → modal-0.73.75}/modal/py.typed +0 -0
  128. {modal-0.73.73 → modal-0.73.75}/modal/queue.py +0 -0
  129. {modal-0.73.73 → modal-0.73.75}/modal/queue.pyi +0 -0
  130. {modal-0.73.73 → modal-0.73.75}/modal/requirements/2023.12.312.txt +0 -0
  131. {modal-0.73.73 → modal-0.73.75}/modal/requirements/2023.12.txt +0 -0
  132. {modal-0.73.73 → modal-0.73.75}/modal/requirements/2024.04.txt +0 -0
  133. {modal-0.73.73 → modal-0.73.75}/modal/requirements/2024.10.txt +0 -0
  134. {modal-0.73.73 → modal-0.73.75}/modal/requirements/README.md +0 -0
  135. {modal-0.73.73 → modal-0.73.75}/modal/requirements/base-images.json +0 -0
  136. {modal-0.73.73 → modal-0.73.75}/modal/retries.py +0 -0
  137. {modal-0.73.73 → modal-0.73.75}/modal/runner.py +0 -0
  138. {modal-0.73.73 → modal-0.73.75}/modal/runner.pyi +0 -0
  139. {modal-0.73.73 → modal-0.73.75}/modal/running_app.py +0 -0
  140. {modal-0.73.73 → modal-0.73.75}/modal/sandbox.py +0 -0
  141. {modal-0.73.73 → modal-0.73.75}/modal/sandbox.pyi +0 -0
  142. {modal-0.73.73 → modal-0.73.75}/modal/schedule.py +0 -0
  143. {modal-0.73.73 → modal-0.73.75}/modal/scheduler_placement.py +0 -0
  144. {modal-0.73.73 → modal-0.73.75}/modal/secret.py +0 -0
  145. {modal-0.73.73 → modal-0.73.75}/modal/secret.pyi +0 -0
  146. {modal-0.73.73 → modal-0.73.75}/modal/serving.py +0 -0
  147. {modal-0.73.73 → modal-0.73.75}/modal/serving.pyi +0 -0
  148. {modal-0.73.73 → modal-0.73.75}/modal/snapshot.py +0 -0
  149. {modal-0.73.73 → modal-0.73.75}/modal/snapshot.pyi +0 -0
  150. {modal-0.73.73 → modal-0.73.75}/modal/stream_type.py +0 -0
  151. {modal-0.73.73 → modal-0.73.75}/modal/token_flow.py +0 -0
  152. {modal-0.73.73 → modal-0.73.75}/modal/token_flow.pyi +0 -0
  153. {modal-0.73.73 → modal-0.73.75}/modal/volume.py +0 -0
  154. {modal-0.73.73 → modal-0.73.75}/modal/volume.pyi +0 -0
  155. {modal-0.73.73 → modal-0.73.75}/modal.egg-info/SOURCES.txt +0 -0
  156. {modal-0.73.73 → modal-0.73.75}/modal.egg-info/dependency_links.txt +0 -0
  157. {modal-0.73.73 → modal-0.73.75}/modal.egg-info/entry_points.txt +0 -0
  158. {modal-0.73.73 → modal-0.73.75}/modal.egg-info/requires.txt +0 -0
  159. {modal-0.73.73 → modal-0.73.75}/modal.egg-info/top_level.txt +0 -0
  160. {modal-0.73.73 → modal-0.73.75}/modal_docs/__init__.py +0 -0
  161. {modal-0.73.73 → modal-0.73.75}/modal_docs/gen_cli_docs.py +0 -0
  162. {modal-0.73.73 → modal-0.73.75}/modal_docs/gen_reference_docs.py +0 -0
  163. {modal-0.73.73 → modal-0.73.75}/modal_docs/mdmd/__init__.py +0 -0
  164. {modal-0.73.73 → modal-0.73.75}/modal_docs/mdmd/mdmd.py +0 -0
  165. {modal-0.73.73 → modal-0.73.75}/modal_docs/mdmd/signatures.py +0 -0
  166. {modal-0.73.73 → modal-0.73.75}/modal_proto/__init__.py +0 -0
  167. {modal-0.73.73 → modal-0.73.75}/modal_proto/api_grpc.py +0 -0
  168. {modal-0.73.73 → modal-0.73.75}/modal_proto/api_pb2_grpc.py +0 -0
  169. {modal-0.73.73 → modal-0.73.75}/modal_proto/api_pb2_grpc.pyi +0 -0
  170. {modal-0.73.73 → modal-0.73.75}/modal_proto/modal_api_grpc.py +0 -0
  171. {modal-0.73.73 → modal-0.73.75}/modal_proto/modal_options_grpc.py +0 -0
  172. {modal-0.73.73 → modal-0.73.75}/modal_proto/options.proto +0 -0
  173. {modal-0.73.73 → modal-0.73.75}/modal_proto/options_grpc.py +0 -0
  174. {modal-0.73.73 → modal-0.73.75}/modal_proto/options_pb2.py +0 -0
  175. {modal-0.73.73 → modal-0.73.75}/modal_proto/options_pb2.pyi +0 -0
  176. {modal-0.73.73 → modal-0.73.75}/modal_proto/options_pb2_grpc.py +0 -0
  177. {modal-0.73.73 → modal-0.73.75}/modal_proto/options_pb2_grpc.pyi +0 -0
  178. {modal-0.73.73 → modal-0.73.75}/modal_proto/py.typed +0 -0
  179. {modal-0.73.73 → modal-0.73.75}/modal_version/__init__.py +0 -0
  180. {modal-0.73.73 → modal-0.73.75}/modal_version/__main__.py +0 -0
  181. {modal-0.73.73 → modal-0.73.75}/pyproject.toml +0 -0
  182. {modal-0.73.73 → modal-0.73.75}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: modal
3
- Version: 0.73.73
3
+ Version: 0.73.75
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -27,7 +27,7 @@ class _Client:
27
27
  _snapshotted: bool
28
28
 
29
29
  def __init__(
30
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.73"
30
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.75"
31
31
  ): ...
32
32
  def is_closed(self) -> bool: ...
33
33
  @property
@@ -85,7 +85,7 @@ class Client:
85
85
  _snapshotted: bool
86
86
 
87
87
  def __init__(
88
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.73"
88
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.75"
89
89
  ): ...
90
90
  def is_closed(self) -> bool: ...
91
91
  @property
@@ -60,6 +60,13 @@ Other possible configuration options are:
60
60
  When set, ignores the Image cache and builds all Image layers. Note that this
61
61
  will break the cache for all images based on the rebuilt layers, so other images
62
62
  may rebuild on subsequent runs / deploys even if the config is reverted.
63
+ * `ignore_cache` (in the .toml file) / `MODAL_IGNORE_CACHE` (as an env var).
64
+ Defaults to False.
65
+ When set, ignores the Image cache and builds all Image layers. Unlike `force_build`,
66
+ this will not overwrite the cache for other images that have the same recipe.
67
+ Subsequent runs that do not use this option will pull the *previous* Image from
68
+ the cache, if one exists. It can be useful for testing an App's robustness to
69
+ Image rebuilds without clobbering Images used by other Apps.
63
70
  * `traceback` (in the .toml file) / `MODAL_TRACEBACK` (as an env var).
64
71
  Defaults to False. Enables printing full tracebacks on unexpected CLI
65
72
  errors, which can be useful for debugging client issues.
@@ -218,6 +225,7 @@ _SETTINGS = {
218
225
  "worker_id": _Setting(), # For internal debugging use.
219
226
  "restore_state_path": _Setting("/__modal/restore-state.json"),
220
227
  "force_build": _Setting(False, transform=_to_boolean),
228
+ "ignore_cache": _Setting(False, transform=_to_boolean),
221
229
  "traceback": _Setting(False, transform=_to_boolean),
222
230
  "image_builder_version": _Setting(),
223
231
  "strict_parameters": _Setting(False, transform=_to_boolean), # For internal/experimental use
@@ -622,6 +622,7 @@ class _Image(_Object, type_prefix="im"):
622
622
  # Failsafe mechanism to prevent inadvertant updates to the global images.
623
623
  # Only admins can publish to the global namespace, but they have to additionally request it.
624
624
  allow_global_deployment=os.environ.get("MODAL_IMAGE_ALLOW_GLOBAL_DEPLOYMENT", "0") == "1",
625
+ ignore_cache=config.get("ignore_cache"),
625
626
  )
626
627
  resp = await retry_transient_errors(resolver.client.stub.ImageGetOrCreate, req)
627
628
  image_id = resp.image_id
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: modal
3
- Version: 0.73.73
3
+ Version: 0.73.75
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -1790,6 +1790,8 @@ message ImageGetOrCreateRequest {
1790
1790
  string builder_version = 9;
1791
1791
  // Only admins can publish global images, but this provides an extra failsafe
1792
1792
  bool allow_global_deployment = 10;
1793
+ // Force the Image to build but don't clobber any Images with the same recipe in the cache
1794
+ bool ignore_cache = 11;
1793
1795
  }
1794
1796
 
1795
1797
  message ImageGetOrCreateResponse {