modal 0.75.8__tar.gz → 0.76.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.
Files changed (184) hide show
  1. {modal-0.75.8 → modal-0.76.0}/PKG-INFO +1 -1
  2. {modal-0.75.8 → modal-0.76.0}/modal/client.pyi +2 -2
  3. {modal-0.75.8 → modal-0.76.0}/modal/file_pattern_matcher.py +1 -1
  4. {modal-0.75.8 → modal-0.76.0}/modal/image.py +3 -2
  5. {modal-0.75.8 → modal-0.76.0}/modal/mount.py +4 -4
  6. {modal-0.75.8 → modal-0.76.0}/modal.egg-info/PKG-INFO +1 -1
  7. {modal-0.75.8 → modal-0.76.0}/modal_version/__init__.py +1 -1
  8. {modal-0.75.8 → modal-0.76.0}/modal_version/_version_generated.py +1 -1
  9. {modal-0.75.8 → modal-0.76.0}/LICENSE +0 -0
  10. {modal-0.75.8 → modal-0.76.0}/README.md +0 -0
  11. {modal-0.75.8 → modal-0.76.0}/modal/__init__.py +0 -0
  12. {modal-0.75.8 → modal-0.76.0}/modal/__main__.py +0 -0
  13. {modal-0.75.8 → modal-0.76.0}/modal/_clustered_functions.py +0 -0
  14. {modal-0.75.8 → modal-0.76.0}/modal/_clustered_functions.pyi +0 -0
  15. {modal-0.75.8 → modal-0.76.0}/modal/_container_entrypoint.py +0 -0
  16. {modal-0.75.8 → modal-0.76.0}/modal/_functions.py +0 -0
  17. {modal-0.75.8 → modal-0.76.0}/modal/_ipython.py +0 -0
  18. {modal-0.75.8 → modal-0.76.0}/modal/_location.py +0 -0
  19. {modal-0.75.8 → modal-0.76.0}/modal/_object.py +0 -0
  20. {modal-0.75.8 → modal-0.76.0}/modal/_output.py +0 -0
  21. {modal-0.75.8 → modal-0.76.0}/modal/_partial_function.py +0 -0
  22. {modal-0.75.8 → modal-0.76.0}/modal/_pty.py +0 -0
  23. {modal-0.75.8 → modal-0.76.0}/modal/_resolver.py +0 -0
  24. {modal-0.75.8 → modal-0.76.0}/modal/_resources.py +0 -0
  25. {modal-0.75.8 → modal-0.76.0}/modal/_runtime/__init__.py +0 -0
  26. {modal-0.75.8 → modal-0.76.0}/modal/_runtime/asgi.py +0 -0
  27. {modal-0.75.8 → modal-0.76.0}/modal/_runtime/container_io_manager.py +0 -0
  28. {modal-0.75.8 → modal-0.76.0}/modal/_runtime/container_io_manager.pyi +0 -0
  29. {modal-0.75.8 → modal-0.76.0}/modal/_runtime/execution_context.py +0 -0
  30. {modal-0.75.8 → modal-0.76.0}/modal/_runtime/execution_context.pyi +0 -0
  31. {modal-0.75.8 → modal-0.76.0}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  32. {modal-0.75.8 → modal-0.76.0}/modal/_runtime/telemetry.py +0 -0
  33. {modal-0.75.8 → modal-0.76.0}/modal/_runtime/user_code_imports.py +0 -0
  34. {modal-0.75.8 → modal-0.76.0}/modal/_serialization.py +0 -0
  35. {modal-0.75.8 → modal-0.76.0}/modal/_traceback.py +0 -0
  36. {modal-0.75.8 → modal-0.76.0}/modal/_tunnel.py +0 -0
  37. {modal-0.75.8 → modal-0.76.0}/modal/_tunnel.pyi +0 -0
  38. {modal-0.75.8 → modal-0.76.0}/modal/_type_manager.py +0 -0
  39. {modal-0.75.8 → modal-0.76.0}/modal/_utils/__init__.py +0 -0
  40. {modal-0.75.8 → modal-0.76.0}/modal/_utils/app_utils.py +0 -0
  41. {modal-0.75.8 → modal-0.76.0}/modal/_utils/async_utils.py +0 -0
  42. {modal-0.75.8 → modal-0.76.0}/modal/_utils/blob_utils.py +0 -0
  43. {modal-0.75.8 → modal-0.76.0}/modal/_utils/bytes_io_segment_payload.py +0 -0
  44. {modal-0.75.8 → modal-0.76.0}/modal/_utils/deprecation.py +0 -0
  45. {modal-0.75.8 → modal-0.76.0}/modal/_utils/docker_utils.py +0 -0
  46. {modal-0.75.8 → modal-0.76.0}/modal/_utils/function_utils.py +0 -0
  47. {modal-0.75.8 → modal-0.76.0}/modal/_utils/git_utils.py +0 -0
  48. {modal-0.75.8 → modal-0.76.0}/modal/_utils/grpc_testing.py +0 -0
  49. {modal-0.75.8 → modal-0.76.0}/modal/_utils/grpc_utils.py +0 -0
  50. {modal-0.75.8 → modal-0.76.0}/modal/_utils/hash_utils.py +0 -0
  51. {modal-0.75.8 → modal-0.76.0}/modal/_utils/http_utils.py +0 -0
  52. {modal-0.75.8 → modal-0.76.0}/modal/_utils/jwt_utils.py +0 -0
  53. {modal-0.75.8 → modal-0.76.0}/modal/_utils/logger.py +0 -0
  54. {modal-0.75.8 → modal-0.76.0}/modal/_utils/mount_utils.py +0 -0
  55. {modal-0.75.8 → modal-0.76.0}/modal/_utils/name_utils.py +0 -0
  56. {modal-0.75.8 → modal-0.76.0}/modal/_utils/package_utils.py +0 -0
  57. {modal-0.75.8 → modal-0.76.0}/modal/_utils/pattern_utils.py +0 -0
  58. {modal-0.75.8 → modal-0.76.0}/modal/_utils/rand_pb_testing.py +0 -0
  59. {modal-0.75.8 → modal-0.76.0}/modal/_utils/shell_utils.py +0 -0
  60. {modal-0.75.8 → modal-0.76.0}/modal/_vendor/__init__.py +0 -0
  61. {modal-0.75.8 → modal-0.76.0}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  62. {modal-0.75.8 → modal-0.76.0}/modal/_vendor/cloudpickle.py +0 -0
  63. {modal-0.75.8 → modal-0.76.0}/modal/_vendor/tblib.py +0 -0
  64. {modal-0.75.8 → modal-0.76.0}/modal/_watcher.py +0 -0
  65. {modal-0.75.8 → modal-0.76.0}/modal/app.py +0 -0
  66. {modal-0.75.8 → modal-0.76.0}/modal/app.pyi +0 -0
  67. {modal-0.75.8 → modal-0.76.0}/modal/call_graph.py +0 -0
  68. {modal-0.75.8 → modal-0.76.0}/modal/cli/__init__.py +0 -0
  69. {modal-0.75.8 → modal-0.76.0}/modal/cli/_download.py +0 -0
  70. {modal-0.75.8 → modal-0.76.0}/modal/cli/_traceback.py +0 -0
  71. {modal-0.75.8 → modal-0.76.0}/modal/cli/app.py +0 -0
  72. {modal-0.75.8 → modal-0.76.0}/modal/cli/cluster.py +0 -0
  73. {modal-0.75.8 → modal-0.76.0}/modal/cli/config.py +0 -0
  74. {modal-0.75.8 → modal-0.76.0}/modal/cli/container.py +0 -0
  75. {modal-0.75.8 → modal-0.76.0}/modal/cli/dict.py +0 -0
  76. {modal-0.75.8 → modal-0.76.0}/modal/cli/entry_point.py +0 -0
  77. {modal-0.75.8 → modal-0.76.0}/modal/cli/environment.py +0 -0
  78. {modal-0.75.8 → modal-0.76.0}/modal/cli/import_refs.py +0 -0
  79. {modal-0.75.8 → modal-0.76.0}/modal/cli/launch.py +0 -0
  80. {modal-0.75.8 → modal-0.76.0}/modal/cli/network_file_system.py +0 -0
  81. {modal-0.75.8 → modal-0.76.0}/modal/cli/profile.py +0 -0
  82. {modal-0.75.8 → modal-0.76.0}/modal/cli/programs/__init__.py +0 -0
  83. {modal-0.75.8 → modal-0.76.0}/modal/cli/programs/run_jupyter.py +0 -0
  84. {modal-0.75.8 → modal-0.76.0}/modal/cli/programs/vscode.py +0 -0
  85. {modal-0.75.8 → modal-0.76.0}/modal/cli/queues.py +0 -0
  86. {modal-0.75.8 → modal-0.76.0}/modal/cli/run.py +0 -0
  87. {modal-0.75.8 → modal-0.76.0}/modal/cli/secret.py +0 -0
  88. {modal-0.75.8 → modal-0.76.0}/modal/cli/token.py +0 -0
  89. {modal-0.75.8 → modal-0.76.0}/modal/cli/utils.py +0 -0
  90. {modal-0.75.8 → modal-0.76.0}/modal/cli/volume.py +0 -0
  91. {modal-0.75.8 → modal-0.76.0}/modal/client.py +0 -0
  92. {modal-0.75.8 → modal-0.76.0}/modal/cloud_bucket_mount.py +0 -0
  93. {modal-0.75.8 → modal-0.76.0}/modal/cloud_bucket_mount.pyi +0 -0
  94. {modal-0.75.8 → modal-0.76.0}/modal/cls.py +0 -0
  95. {modal-0.75.8 → modal-0.76.0}/modal/cls.pyi +0 -0
  96. {modal-0.75.8 → modal-0.76.0}/modal/config.py +0 -0
  97. {modal-0.75.8 → modal-0.76.0}/modal/container_process.py +0 -0
  98. {modal-0.75.8 → modal-0.76.0}/modal/container_process.pyi +0 -0
  99. {modal-0.75.8 → modal-0.76.0}/modal/dict.py +0 -0
  100. {modal-0.75.8 → modal-0.76.0}/modal/dict.pyi +0 -0
  101. {modal-0.75.8 → modal-0.76.0}/modal/environments.py +0 -0
  102. {modal-0.75.8 → modal-0.76.0}/modal/environments.pyi +0 -0
  103. {modal-0.75.8 → modal-0.76.0}/modal/exception.py +0 -0
  104. {modal-0.75.8 → modal-0.76.0}/modal/experimental/__init__.py +0 -0
  105. {modal-0.75.8 → modal-0.76.0}/modal/experimental/ipython.py +0 -0
  106. {modal-0.75.8 → modal-0.76.0}/modal/file_io.py +0 -0
  107. {modal-0.75.8 → modal-0.76.0}/modal/file_io.pyi +0 -0
  108. {modal-0.75.8 → modal-0.76.0}/modal/functions.py +0 -0
  109. {modal-0.75.8 → modal-0.76.0}/modal/functions.pyi +0 -0
  110. {modal-0.75.8 → modal-0.76.0}/modal/gpu.py +0 -0
  111. {modal-0.75.8 → modal-0.76.0}/modal/image.pyi +0 -0
  112. {modal-0.75.8 → modal-0.76.0}/modal/io_streams.py +0 -0
  113. {modal-0.75.8 → modal-0.76.0}/modal/io_streams.pyi +0 -0
  114. {modal-0.75.8 → modal-0.76.0}/modal/mount.pyi +0 -0
  115. {modal-0.75.8 → modal-0.76.0}/modal/network_file_system.py +0 -0
  116. {modal-0.75.8 → modal-0.76.0}/modal/network_file_system.pyi +0 -0
  117. {modal-0.75.8 → modal-0.76.0}/modal/object.py +0 -0
  118. {modal-0.75.8 → modal-0.76.0}/modal/object.pyi +0 -0
  119. {modal-0.75.8 → modal-0.76.0}/modal/output.py +0 -0
  120. {modal-0.75.8 → modal-0.76.0}/modal/parallel_map.py +0 -0
  121. {modal-0.75.8 → modal-0.76.0}/modal/parallel_map.pyi +0 -0
  122. {modal-0.75.8 → modal-0.76.0}/modal/partial_function.py +0 -0
  123. {modal-0.75.8 → modal-0.76.0}/modal/partial_function.pyi +0 -0
  124. {modal-0.75.8 → modal-0.76.0}/modal/proxy.py +0 -0
  125. {modal-0.75.8 → modal-0.76.0}/modal/proxy.pyi +0 -0
  126. {modal-0.75.8 → modal-0.76.0}/modal/py.typed +0 -0
  127. {modal-0.75.8 → modal-0.76.0}/modal/queue.py +0 -0
  128. {modal-0.75.8 → modal-0.76.0}/modal/queue.pyi +0 -0
  129. {modal-0.75.8 → modal-0.76.0}/modal/requirements/2023.12.312.txt +0 -0
  130. {modal-0.75.8 → modal-0.76.0}/modal/requirements/2023.12.txt +0 -0
  131. {modal-0.75.8 → modal-0.76.0}/modal/requirements/2024.04.txt +0 -0
  132. {modal-0.75.8 → modal-0.76.0}/modal/requirements/2024.10.txt +0 -0
  133. {modal-0.75.8 → modal-0.76.0}/modal/requirements/PREVIEW.txt +0 -0
  134. {modal-0.75.8 → modal-0.76.0}/modal/requirements/README.md +0 -0
  135. {modal-0.75.8 → modal-0.76.0}/modal/requirements/base-images.json +0 -0
  136. {modal-0.75.8 → modal-0.76.0}/modal/retries.py +0 -0
  137. {modal-0.75.8 → modal-0.76.0}/modal/runner.py +0 -0
  138. {modal-0.75.8 → modal-0.76.0}/modal/runner.pyi +0 -0
  139. {modal-0.75.8 → modal-0.76.0}/modal/running_app.py +0 -0
  140. {modal-0.75.8 → modal-0.76.0}/modal/sandbox.py +0 -0
  141. {modal-0.75.8 → modal-0.76.0}/modal/sandbox.pyi +0 -0
  142. {modal-0.75.8 → modal-0.76.0}/modal/schedule.py +0 -0
  143. {modal-0.75.8 → modal-0.76.0}/modal/scheduler_placement.py +0 -0
  144. {modal-0.75.8 → modal-0.76.0}/modal/secret.py +0 -0
  145. {modal-0.75.8 → modal-0.76.0}/modal/secret.pyi +0 -0
  146. {modal-0.75.8 → modal-0.76.0}/modal/serving.py +0 -0
  147. {modal-0.75.8 → modal-0.76.0}/modal/serving.pyi +0 -0
  148. {modal-0.75.8 → modal-0.76.0}/modal/snapshot.py +0 -0
  149. {modal-0.75.8 → modal-0.76.0}/modal/snapshot.pyi +0 -0
  150. {modal-0.75.8 → modal-0.76.0}/modal/stream_type.py +0 -0
  151. {modal-0.75.8 → modal-0.76.0}/modal/token_flow.py +0 -0
  152. {modal-0.75.8 → modal-0.76.0}/modal/token_flow.pyi +0 -0
  153. {modal-0.75.8 → modal-0.76.0}/modal/volume.py +0 -0
  154. {modal-0.75.8 → modal-0.76.0}/modal/volume.pyi +0 -0
  155. {modal-0.75.8 → modal-0.76.0}/modal.egg-info/SOURCES.txt +0 -0
  156. {modal-0.75.8 → modal-0.76.0}/modal.egg-info/dependency_links.txt +0 -0
  157. {modal-0.75.8 → modal-0.76.0}/modal.egg-info/entry_points.txt +0 -0
  158. {modal-0.75.8 → modal-0.76.0}/modal.egg-info/requires.txt +0 -0
  159. {modal-0.75.8 → modal-0.76.0}/modal.egg-info/top_level.txt +0 -0
  160. {modal-0.75.8 → modal-0.76.0}/modal_docs/__init__.py +0 -0
  161. {modal-0.75.8 → modal-0.76.0}/modal_docs/gen_cli_docs.py +0 -0
  162. {modal-0.75.8 → modal-0.76.0}/modal_docs/gen_reference_docs.py +0 -0
  163. {modal-0.75.8 → modal-0.76.0}/modal_docs/mdmd/__init__.py +0 -0
  164. {modal-0.75.8 → modal-0.76.0}/modal_docs/mdmd/mdmd.py +0 -0
  165. {modal-0.75.8 → modal-0.76.0}/modal_docs/mdmd/signatures.py +0 -0
  166. {modal-0.75.8 → modal-0.76.0}/modal_proto/__init__.py +0 -0
  167. {modal-0.75.8 → modal-0.76.0}/modal_proto/api.proto +0 -0
  168. {modal-0.75.8 → modal-0.76.0}/modal_proto/api_grpc.py +0 -0
  169. {modal-0.75.8 → modal-0.76.0}/modal_proto/api_pb2.py +0 -0
  170. {modal-0.75.8 → modal-0.76.0}/modal_proto/api_pb2.pyi +0 -0
  171. {modal-0.75.8 → modal-0.76.0}/modal_proto/api_pb2_grpc.py +0 -0
  172. {modal-0.75.8 → modal-0.76.0}/modal_proto/api_pb2_grpc.pyi +0 -0
  173. {modal-0.75.8 → modal-0.76.0}/modal_proto/modal_api_grpc.py +0 -0
  174. {modal-0.75.8 → modal-0.76.0}/modal_proto/modal_options_grpc.py +0 -0
  175. {modal-0.75.8 → modal-0.76.0}/modal_proto/options.proto +0 -0
  176. {modal-0.75.8 → modal-0.76.0}/modal_proto/options_grpc.py +0 -0
  177. {modal-0.75.8 → modal-0.76.0}/modal_proto/options_pb2.py +0 -0
  178. {modal-0.75.8 → modal-0.76.0}/modal_proto/options_pb2.pyi +0 -0
  179. {modal-0.75.8 → modal-0.76.0}/modal_proto/options_pb2_grpc.py +0 -0
  180. {modal-0.75.8 → modal-0.76.0}/modal_proto/options_pb2_grpc.pyi +0 -0
  181. {modal-0.75.8 → modal-0.76.0}/modal_proto/py.typed +0 -0
  182. {modal-0.75.8 → modal-0.76.0}/modal_version/__main__.py +0 -0
  183. {modal-0.75.8 → modal-0.76.0}/pyproject.toml +0 -0
  184. {modal-0.75.8 → modal-0.76.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 0.75.8
3
+ Version: 0.76.0
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.75.8"
30
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.76.0"
31
31
  ): ...
32
32
  def is_closed(self) -> bool: ...
33
33
  @property
@@ -86,7 +86,7 @@ class Client:
86
86
  _snapshotted: bool
87
87
 
88
88
  def __init__(
89
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.75.8"
89
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.76.0"
90
90
  ): ...
91
91
  def is_closed(self) -> bool: ...
92
92
  @property
@@ -84,7 +84,7 @@ class FilePatternMatcher(_AbstractPatternMatcher):
84
84
  def _set_patterns(self, patterns: Sequence[str]) -> None:
85
85
  self.patterns = []
86
86
  for pattern in list(patterns):
87
- pattern = pattern.strip()
87
+ pattern = pattern.strip().strip(os.path.sep)
88
88
  if not pattern:
89
89
  continue
90
90
  pattern = os.path.normpath(pattern)
@@ -279,8 +279,9 @@ def _create_context_mount(
279
279
  include_fn = FilePatternMatcher(*copy_patterns)
280
280
 
281
281
  def ignore_with_include(source: Path) -> bool:
282
- relative_source = source.relative_to(context_dir)
283
- if not include_fn(relative_source) or ignore_fn(relative_source):
282
+ if source.is_absolute():
283
+ source = source.relative_to(context_dir)
284
+ if not include_fn(source) or ignore_fn(source):
284
285
  return True
285
286
 
286
287
  return False
@@ -153,9 +153,9 @@ class _MountDir(_MountEntry):
153
153
 
154
154
  for local_filename in gen:
155
155
  local_path = Path(local_filename)
156
- if not self.ignore(local_path):
157
- local_relpath = local_path.expanduser().absolute().relative_to(local_dir)
158
- mount_path = self.remote_path / local_relpath.as_posix()
156
+ rel_local_path = local_path.relative_to(local_dir)
157
+ if not self.ignore(rel_local_path):
158
+ mount_path = self.remote_path / rel_local_path.as_posix()
159
159
  yield local_path.resolve(), mount_path
160
160
 
161
161
  def watch_entry(self):
@@ -339,8 +339,8 @@ class _Mount(_Object, type_prefix="mo"):
339
339
  return _Mount._new()._extend(
340
340
  _MountDir(
341
341
  local_dir=local_path,
342
- ignore=ignore,
343
342
  remote_path=remote_path,
343
+ ignore=ignore,
344
344
  recursive=True,
345
345
  ),
346
346
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 0.75.8
3
+ Version: 0.76.0
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -7,7 +7,7 @@ from ._version_generated import build_number
7
7
  major_number = 0
8
8
 
9
9
  # Bump this manually on breaking changes, then reset the number in _version_generated.py
10
- minor_number = 75
10
+ minor_number = 76
11
11
 
12
12
  # Right now, automatically increment the patch number in CI
13
13
  __version__ = f"{major_number}.{minor_number}.{max(build_number, 0)}"
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
 
3
3
  # Note: Reset this value to -1 whenever you make a minor `0.X` release of the client.
4
- build_number = 8 # git: 75ded48
4
+ build_number = 0 # git: 1b997c3
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes