parallel-web 0.1.1__py3-none-any.whl → 0.1.2__py3-none-any.whl
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 parallel-web might be problematic. Click here for more details.
- parallel/__init__.py +5 -0
- parallel/_base_client.py +22 -2
- parallel/_models.py +2 -0
- parallel/_types.py +2 -0
- parallel/_utils/_proxy.py +4 -1
- parallel/_utils/_resources_proxy.py +24 -0
- parallel/_version.py +1 -1
- parallel/lib/_time.py +19 -2
- parallel/resources/task_run.py +4 -4
- {parallel_web-0.1.1.dist-info → parallel_web-0.1.2.dist-info}/METADATA +12 -12
- {parallel_web-0.1.1.dist-info → parallel_web-0.1.2.dist-info}/RECORD +13 -12
- {parallel_web-0.1.1.dist-info → parallel_web-0.1.2.dist-info}/WHEEL +0 -0
- {parallel_web-0.1.1.dist-info → parallel_web-0.1.2.dist-info}/licenses/LICENSE +0 -0
parallel/__init__.py
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
+
import typing as _t
|
|
4
|
+
|
|
3
5
|
from . import types
|
|
4
6
|
from ._types import NOT_GIVEN, Omit, NoneType, NotGiven, Transport, ProxiesTypes
|
|
5
7
|
from ._utils import file_from_path
|
|
@@ -78,6 +80,9 @@ __all__ = [
|
|
|
78
80
|
"DefaultAsyncHttpxClient",
|
|
79
81
|
]
|
|
80
82
|
|
|
83
|
+
if not _t.TYPE_CHECKING:
|
|
84
|
+
from ._utils._resources_proxy import resources as resources
|
|
85
|
+
|
|
81
86
|
_setup_logging()
|
|
82
87
|
|
|
83
88
|
# Update the __module__ attribute for exported symbols so that
|
parallel/_base_client.py
CHANGED
|
@@ -960,6 +960,9 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
960
960
|
if self.custom_auth is not None:
|
|
961
961
|
kwargs["auth"] = self.custom_auth
|
|
962
962
|
|
|
963
|
+
if options.follow_redirects is not None:
|
|
964
|
+
kwargs["follow_redirects"] = options.follow_redirects
|
|
965
|
+
|
|
963
966
|
log.debug("Sending HTTP Request: %s %s", request.method, request.url)
|
|
964
967
|
|
|
965
968
|
response = None
|
|
@@ -1068,7 +1071,14 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1068
1071
|
) -> ResponseT:
|
|
1069
1072
|
origin = get_origin(cast_to) or cast_to
|
|
1070
1073
|
|
|
1071
|
-
if
|
|
1074
|
+
if (
|
|
1075
|
+
inspect.isclass(origin)
|
|
1076
|
+
and issubclass(origin, BaseAPIResponse)
|
|
1077
|
+
# we only want to actually return the custom BaseAPIResponse class if we're
|
|
1078
|
+
# returning the raw response, or if we're not streaming SSE, as if we're streaming
|
|
1079
|
+
# SSE then `cast_to` doesn't actively reflect the type we need to parse into
|
|
1080
|
+
and (not stream or bool(response.request.headers.get(RAW_RESPONSE_HEADER)))
|
|
1081
|
+
):
|
|
1072
1082
|
if not issubclass(origin, APIResponse):
|
|
1073
1083
|
raise TypeError(f"API Response types must subclass {APIResponse}; Received {origin}")
|
|
1074
1084
|
|
|
@@ -1460,6 +1470,9 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1460
1470
|
if self.custom_auth is not None:
|
|
1461
1471
|
kwargs["auth"] = self.custom_auth
|
|
1462
1472
|
|
|
1473
|
+
if options.follow_redirects is not None:
|
|
1474
|
+
kwargs["follow_redirects"] = options.follow_redirects
|
|
1475
|
+
|
|
1463
1476
|
log.debug("Sending HTTP Request: %s %s", request.method, request.url)
|
|
1464
1477
|
|
|
1465
1478
|
response = None
|
|
@@ -1568,7 +1581,14 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1568
1581
|
) -> ResponseT:
|
|
1569
1582
|
origin = get_origin(cast_to) or cast_to
|
|
1570
1583
|
|
|
1571
|
-
if
|
|
1584
|
+
if (
|
|
1585
|
+
inspect.isclass(origin)
|
|
1586
|
+
and issubclass(origin, BaseAPIResponse)
|
|
1587
|
+
# we only want to actually return the custom BaseAPIResponse class if we're
|
|
1588
|
+
# returning the raw response, or if we're not streaming SSE, as if we're streaming
|
|
1589
|
+
# SSE then `cast_to` doesn't actively reflect the type we need to parse into
|
|
1590
|
+
and (not stream or bool(response.request.headers.get(RAW_RESPONSE_HEADER)))
|
|
1591
|
+
):
|
|
1572
1592
|
if not issubclass(origin, AsyncAPIResponse):
|
|
1573
1593
|
raise TypeError(f"API Response types must subclass {AsyncAPIResponse}; Received {origin}")
|
|
1574
1594
|
|
parallel/_models.py
CHANGED
|
@@ -737,6 +737,7 @@ class FinalRequestOptionsInput(TypedDict, total=False):
|
|
|
737
737
|
idempotency_key: str
|
|
738
738
|
json_data: Body
|
|
739
739
|
extra_json: AnyMapping
|
|
740
|
+
follow_redirects: bool
|
|
740
741
|
|
|
741
742
|
|
|
742
743
|
@final
|
|
@@ -750,6 +751,7 @@ class FinalRequestOptions(pydantic.BaseModel):
|
|
|
750
751
|
files: Union[HttpxRequestFiles, None] = None
|
|
751
752
|
idempotency_key: Union[str, None] = None
|
|
752
753
|
post_parser: Union[Callable[[Any], Any], NotGiven] = NotGiven()
|
|
754
|
+
follow_redirects: Union[bool, None] = None
|
|
753
755
|
|
|
754
756
|
# It should be noted that we cannot use `json` here as that would override
|
|
755
757
|
# a BaseModel method in an incompatible fashion.
|
parallel/_types.py
CHANGED
|
@@ -100,6 +100,7 @@ class RequestOptions(TypedDict, total=False):
|
|
|
100
100
|
params: Query
|
|
101
101
|
extra_json: AnyMapping
|
|
102
102
|
idempotency_key: str
|
|
103
|
+
follow_redirects: bool
|
|
103
104
|
|
|
104
105
|
|
|
105
106
|
# Sentinel class used until PEP 0661 is accepted
|
|
@@ -215,3 +216,4 @@ class _GenericAlias(Protocol):
|
|
|
215
216
|
|
|
216
217
|
class HttpxSendArgs(TypedDict, total=False):
|
|
217
218
|
auth: httpx.Auth
|
|
219
|
+
follow_redirects: bool
|
parallel/_utils/_proxy.py
CHANGED
|
@@ -46,7 +46,10 @@ class LazyProxy(Generic[T], ABC):
|
|
|
46
46
|
@property # type: ignore
|
|
47
47
|
@override
|
|
48
48
|
def __class__(self) -> type: # pyright: ignore
|
|
49
|
-
|
|
49
|
+
try:
|
|
50
|
+
proxied = self.__get_proxied__()
|
|
51
|
+
except Exception:
|
|
52
|
+
return type(self)
|
|
50
53
|
if issubclass(type(proxied), LazyProxy):
|
|
51
54
|
return type(proxied)
|
|
52
55
|
return proxied.__class__
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any
|
|
4
|
+
from typing_extensions import override
|
|
5
|
+
|
|
6
|
+
from ._proxy import LazyProxy
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ResourcesProxy(LazyProxy[Any]):
|
|
10
|
+
"""A proxy for the `parallel.resources` module.
|
|
11
|
+
|
|
12
|
+
This is used so that we can lazily import `parallel.resources` only when
|
|
13
|
+
needed *and* so that users can just import `parallel` and reference `parallel.resources`
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
@override
|
|
17
|
+
def __load__(self) -> Any:
|
|
18
|
+
import importlib
|
|
19
|
+
|
|
20
|
+
mod = importlib.import_module("parallel.resources")
|
|
21
|
+
return mod
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
resources = ResourcesProxy().__as_proxied__()
|
parallel/_version.py
CHANGED
parallel/lib/_time.py
CHANGED
|
@@ -28,6 +28,24 @@ def _raise_timeout(run_id: str, exc: Union[Exception, None]) -> NoReturn:
|
|
|
28
28
|
raise TimeoutError(f"Fetching task run result for run id {run_id} timed out.") from exc
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
def _is_retryable_error(status_code: int) -> bool:
|
|
32
|
+
"""Determine if an error is retryable.
|
|
33
|
+
|
|
34
|
+
We retry the following HTTP status codes within the SDK:
|
|
35
|
+
- 408 (Request Timeout): The server timed out waiting for the request
|
|
36
|
+
- 503 (Service Unavailable): The server is temporarily unable to handle the request
|
|
37
|
+
- 504 (Gateway Timeout): The gateway server timed out
|
|
38
|
+
|
|
39
|
+
These errors typically indicate temporary issues with the server or network
|
|
40
|
+
that may resolve upon retry. We don't include 429 (Too Many Requests) as this
|
|
41
|
+
indicates rate limiting, which requires backing off rather than immediate retries.
|
|
42
|
+
|
|
43
|
+
Note: This is a low-level retry mechanism within the SDK. Customers may want to
|
|
44
|
+
implement their own retry logic at the application level for other error types.
|
|
45
|
+
"""
|
|
46
|
+
return status_code in (408, 503, 504)
|
|
47
|
+
|
|
48
|
+
|
|
31
49
|
@contextlib.contextmanager
|
|
32
50
|
def timeout_retry_context(run_id: str, deadline: float) -> Iterator[None]:
|
|
33
51
|
"""Context manager for handling timeouts and retries when fetching task run results.
|
|
@@ -49,8 +67,7 @@ def timeout_retry_context(run_id: str, deadline: float) -> Iterator[None]:
|
|
|
49
67
|
exc = e
|
|
50
68
|
continue
|
|
51
69
|
except APIStatusError as e:
|
|
52
|
-
|
|
53
|
-
if e.status_code == 408:
|
|
70
|
+
if _is_retryable_error(e.status_code):
|
|
54
71
|
exc = e
|
|
55
72
|
continue
|
|
56
73
|
raise
|
parallel/resources/task_run.py
CHANGED
|
@@ -42,7 +42,7 @@ class TaskRunResource(SyncAPIResource):
|
|
|
42
42
|
This property can be used as a prefix for any HTTP method call to return
|
|
43
43
|
the raw response object instead of the parsed content.
|
|
44
44
|
|
|
45
|
-
For more information, see https://www.github.com/
|
|
45
|
+
For more information, see https://www.github.com/parallel-web/parallel-sdk-python#accessing-raw-response-data-eg-headers
|
|
46
46
|
"""
|
|
47
47
|
return TaskRunResourceWithRawResponse(self)
|
|
48
48
|
|
|
@@ -51,7 +51,7 @@ class TaskRunResource(SyncAPIResource):
|
|
|
51
51
|
"""
|
|
52
52
|
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
53
53
|
|
|
54
|
-
For more information, see https://www.github.com/
|
|
54
|
+
For more information, see https://www.github.com/parallel-web/parallel-sdk-python#with_streaming_response
|
|
55
55
|
"""
|
|
56
56
|
return TaskRunResourceWithStreamingResponse(self)
|
|
57
57
|
|
|
@@ -317,7 +317,7 @@ class AsyncTaskRunResource(AsyncAPIResource):
|
|
|
317
317
|
This property can be used as a prefix for any HTTP method call to return
|
|
318
318
|
the raw response object instead of the parsed content.
|
|
319
319
|
|
|
320
|
-
For more information, see https://www.github.com/
|
|
320
|
+
For more information, see https://www.github.com/parallel-web/parallel-sdk-python#accessing-raw-response-data-eg-headers
|
|
321
321
|
"""
|
|
322
322
|
return AsyncTaskRunResourceWithRawResponse(self)
|
|
323
323
|
|
|
@@ -326,7 +326,7 @@ class AsyncTaskRunResource(AsyncAPIResource):
|
|
|
326
326
|
"""
|
|
327
327
|
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
328
328
|
|
|
329
|
-
For more information, see https://www.github.com/
|
|
329
|
+
For more information, see https://www.github.com/parallel-web/parallel-sdk-python#with_streaming_response
|
|
330
330
|
"""
|
|
331
331
|
return AsyncTaskRunResourceWithStreamingResponse(self)
|
|
332
332
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: parallel-web
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: The official Python library for the Parallel API
|
|
5
|
-
Project-URL: Homepage, https://github.com/
|
|
6
|
-
Project-URL: Repository, https://github.com/
|
|
5
|
+
Project-URL: Homepage, https://github.com/parallel-web/parallel-sdk-python
|
|
6
|
+
Project-URL: Repository, https://github.com/parallel-web/parallel-sdk-python
|
|
7
7
|
Author-email: Parallel <support@parallel.ai>
|
|
8
8
|
License: MIT
|
|
9
9
|
Classifier: Intended Audience :: Developers
|
|
@@ -31,7 +31,7 @@ Description-Content-Type: text/markdown
|
|
|
31
31
|
|
|
32
32
|
# Parallel Python API library
|
|
33
33
|
|
|
34
|
-
[](https://pypi.org/project/parallel-web/)
|
|
34
|
+
[>)](https://pypi.org/project/parallel-web/)
|
|
35
35
|
|
|
36
36
|
The Parallel Python library provides convenient access to the Parallel REST API from any Python 3.8+
|
|
37
37
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -43,7 +43,7 @@ It is generated with [Stainless](https://www.stainless.com/).
|
|
|
43
43
|
## Documentation
|
|
44
44
|
|
|
45
45
|
The REST API documentation can be found on our [docs](https://docs.parallel.ai).
|
|
46
|
-
The full API of this Python library can be found in [api.md](https://github.com/
|
|
46
|
+
The full API of this Python library can be found in [api.md](https://github.com/parallel-web/parallel-sdk-python/tree/main/api.md).
|
|
47
47
|
|
|
48
48
|
## Installation
|
|
49
49
|
|
|
@@ -54,7 +54,7 @@ pip install parallel-web
|
|
|
54
54
|
|
|
55
55
|
## Usage
|
|
56
56
|
|
|
57
|
-
The full API of this library can be found in [api.md](https://github.com/
|
|
57
|
+
The full API of this library can be found in [api.md](https://github.com/parallel-web/parallel-sdk-python/tree/main/api.md).
|
|
58
58
|
|
|
59
59
|
```python
|
|
60
60
|
import os
|
|
@@ -343,7 +343,7 @@ client.with_options(max_retries=5).task_run.execute(
|
|
|
343
343
|
### Timeouts
|
|
344
344
|
|
|
345
345
|
By default requests time out after 1 minute. You can configure this with a `timeout` option,
|
|
346
|
-
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/#fine-tuning-the-configuration) object:
|
|
346
|
+
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:
|
|
347
347
|
|
|
348
348
|
```python
|
|
349
349
|
from parallel import Parallel
|
|
@@ -369,7 +369,7 @@ client.with_options(timeout=5.0).task_run.execute(
|
|
|
369
369
|
|
|
370
370
|
On timeout, an `APITimeoutError` is thrown.
|
|
371
371
|
|
|
372
|
-
Note that requests that time out are [retried twice by default](https://github.com/
|
|
372
|
+
Note that requests that time out are [retried twice by default](https://github.com/parallel-web/parallel-sdk-python/tree/main/#retries).
|
|
373
373
|
|
|
374
374
|
## Advanced
|
|
375
375
|
|
|
@@ -416,9 +416,9 @@ task_run = response.parse() # get the object that `task_run.execute()` would ha
|
|
|
416
416
|
print(task_run.output)
|
|
417
417
|
```
|
|
418
418
|
|
|
419
|
-
These methods return an [`APIResponse`](https://github.com/
|
|
419
|
+
These methods return an [`APIResponse`](https://github.com/parallel-web/parallel-sdk-python/tree/main/src/parallel/_response.py) object.
|
|
420
420
|
|
|
421
|
-
The async client returns an [`AsyncAPIResponse`](https://github.com/
|
|
421
|
+
The async client returns an [`AsyncAPIResponse`](https://github.com/parallel-web/parallel-sdk-python/tree/main/src/parallel/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.
|
|
422
422
|
|
|
423
423
|
#### `.with_streaming_response`
|
|
424
424
|
|
|
@@ -526,7 +526,7 @@ This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) con
|
|
|
526
526
|
|
|
527
527
|
We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.
|
|
528
528
|
|
|
529
|
-
We are keen for your feedback; please open an [issue](https://www.github.com/
|
|
529
|
+
We are keen for your feedback; please open an [issue](https://www.github.com/parallel-web/parallel-sdk-python/issues) with questions, bugs, or suggestions.
|
|
530
530
|
|
|
531
531
|
### Determining the installed version
|
|
532
532
|
|
|
@@ -545,4 +545,4 @@ Python 3.8 or higher.
|
|
|
545
545
|
|
|
546
546
|
## Contributing
|
|
547
547
|
|
|
548
|
-
See [the contributing documentation](https://github.com/
|
|
548
|
+
See [the contributing documentation](https://github.com/parallel-web/parallel-sdk-python/tree/main/./CONTRIBUTING.md).
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
parallel/__init__.py,sha256=
|
|
2
|
-
parallel/_base_client.py,sha256=
|
|
1
|
+
parallel/__init__.py,sha256=DLcZySDPIMWxygZrS91n0h7XUblDa7R2CKSqJCeBD-U,2587
|
|
2
|
+
parallel/_base_client.py,sha256=CvhCKe_bvHxjG_KkjU7MN8epnRjDAoZercR16F7hKXo,65886
|
|
3
3
|
parallel/_client.py,sha256=-33nTbpzQe0MaMSXkPisZdlPG_phXweSGfssI4UXIKQ,15024
|
|
4
4
|
parallel/_compat.py,sha256=Bdw3skNpgAyCAWXJRUwTLiM0lOD1sLHEFKtw7peWp5U,6981
|
|
5
5
|
parallel/_constants.py,sha256=NJrT2b4m0CuDGEVBF1xwsrHOWLGPupleFrL9jGAlLwk,567
|
|
6
6
|
parallel/_exceptions.py,sha256=lP7_D_HALN-Nt5bfw4AefEB7tYkrQ8ZcjCRdxm_HrsQ,3224
|
|
7
7
|
parallel/_files.py,sha256=mf4dOgL4b0ryyZlbqLhggD3GVgDf6XxdGFAgce01ugE,3549
|
|
8
|
-
parallel/_models.py,sha256=
|
|
8
|
+
parallel/_models.py,sha256=G1vczEodX0vUySeVKbF-mbzlaObNL1oVAYH4c65agRk,29131
|
|
9
9
|
parallel/_qs.py,sha256=AOkSz4rHtK4YI3ZU_kzea-zpwBUgEY8WniGmTPyEimc,4846
|
|
10
10
|
parallel/_resource.py,sha256=QvY8l_r03hNBsFTTn3g7Pkx8OrDwIwROHaSEViWcYLA,1112
|
|
11
11
|
parallel/_response.py,sha256=zJKnQ9YzrMZCTPWis4CdyGCAH0kzT4m1OHE74jiF0jA,28800
|
|
12
12
|
parallel/_streaming.py,sha256=vH45vK3-83ruFalbvSgpE70zfwy8fjW9UwrO1TwjIfE,10108
|
|
13
|
-
parallel/_types.py,sha256=
|
|
14
|
-
parallel/_version.py,sha256=
|
|
13
|
+
parallel/_types.py,sha256=gdnumvz_C0ka1W865rehBsLCOgZyyHpKRedjJg7uRPY,6199
|
|
14
|
+
parallel/_version.py,sha256=WUXkK8O3I2gOafOqu7g-L_9WsH2ZQxqi0tbVT_oXd8k,160
|
|
15
15
|
parallel/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
parallel/_utils/__init__.py,sha256=Z5F2puD-cRsBEwlAuuuXDuIuKuJyLhtg0667MRHeBj4,2084
|
|
17
17
|
parallel/_utils/_logs.py,sha256=5tqZJRHHRqxJfftED6vN1CHcwhRZDSvzy9SaxozEAe4,780
|
|
18
|
-
parallel/_utils/_proxy.py,sha256=
|
|
18
|
+
parallel/_utils/_proxy.py,sha256=aglnj2yBTDyGX9Akk2crZHrl10oqRmceUy2Zp008XEs,1975
|
|
19
19
|
parallel/_utils/_reflection.py,sha256=ZmGkIgT_PuwedyNBrrKGbxoWtkpytJNU1uU4QHnmEMU,1364
|
|
20
|
+
parallel/_utils/_resources_proxy.py,sha256=xx_chZr_cBmnGMejQaqdjjzS6gjyOBjVARwb2lM7qm4,599
|
|
20
21
|
parallel/_utils/_streams.py,sha256=SMC90diFFecpEg_zgDRVbdR3hSEIgVVij4taD-noMLM,289
|
|
21
22
|
parallel/_utils/_sync.py,sha256=TpGLrrhRNWTJtODNE6Fup3_k7zrWm1j2RlirzBwre-0,2862
|
|
22
23
|
parallel/_utils/_transform.py,sha256=n7kskEWz6o__aoNvhFoGVyDoalNe6mJwp-g7BWkdj88,15617
|
|
@@ -25,12 +26,12 @@ parallel/_utils/_utils.py,sha256=nJWF6GJgM2imb1AYa1nZoE1f-Alo1EI0Y8L_q3a1gkw,123
|
|
|
25
26
|
parallel/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
|
|
26
27
|
parallel/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
28
|
parallel/lib/_pydantic.py,sha256=B_-msp3_jrPP09s-f73Xv4WEG212ECDfc0a_Gf-YZGE,1115
|
|
28
|
-
parallel/lib/_time.py,sha256=
|
|
29
|
+
parallel/lib/_time.py,sha256=SAf1AP__EqprIPCqpe8JqfaB_rqv10uzhNBJbD_THSY,2542
|
|
29
30
|
parallel/lib/_parsing/__init__.py,sha256=aEM9F2sU4s-CFpQgjydjfCAdxpusJ81jXI6KCoB8VPs,150
|
|
30
31
|
parallel/lib/_parsing/_task_run_result.py,sha256=9o95RcH4bX0UbI7ow5bnECrXMS6Ll0SEQR4leTK3VQU,3608
|
|
31
32
|
parallel/lib/_parsing/_task_spec.py,sha256=XkNWo2Ovu-anld8PAOIsi722vOXbDf2ex4p9rwWW51I,3067
|
|
32
33
|
parallel/resources/__init__.py,sha256=jGILtGZMcUjnm_PAOAkggRZlretqp_r24lMj7qFWqIg,566
|
|
33
|
-
parallel/resources/task_run.py,sha256=
|
|
34
|
+
parallel/resources/task_run.py,sha256=5FEtuqwYbR1Ict8s8zpkFHF6b0XGtgxVBxlnvKMfc0Y,25327
|
|
34
35
|
parallel/types/__init__.py,sha256=7EXEF1xwgzRtPbtywm1_PnOzShi_mN3TfU8p_PErz5s,653
|
|
35
36
|
parallel/types/json_schema_param.py,sha256=rn_85_uPZYkLYLZiM5erOuQ_trY4DcoB3XEpP4uvqyw,457
|
|
36
37
|
parallel/types/parsed_task_run_result.py,sha256=Qw_QFQNmMcykdBKlMnx6hl5cua5wwv5BZEs3Oo3_5NE,1098
|
|
@@ -40,7 +41,7 @@ parallel/types/task_run_result.py,sha256=yd3Lz_YzCQGe5ynK5iI6J17tAs5nSG7FUJ3fSLO
|
|
|
40
41
|
parallel/types/task_run_result_params.py,sha256=tL4CK5c0-Wo21O1pmT4pDvwzG-svtEwYujyCp0ZgATs,360
|
|
41
42
|
parallel/types/task_spec_param.py,sha256=qTENHBp7vRg-VDzK8HsLpTn3EJWIV0UVQaf45r9SfCs,1179
|
|
42
43
|
parallel/types/text_schema_param.py,sha256=M9WEl2aOh4_hNSdGm2BOmtm1VGqxxTh3f-Hs4OB4aCQ,445
|
|
43
|
-
parallel_web-0.1.
|
|
44
|
-
parallel_web-0.1.
|
|
45
|
-
parallel_web-0.1.
|
|
46
|
-
parallel_web-0.1.
|
|
44
|
+
parallel_web-0.1.2.dist-info/METADATA,sha256=f0gLsNP4XHVGgWeL88tVMkLzsd_Yw4e0I9as2DR5o0Y,17626
|
|
45
|
+
parallel_web-0.1.2.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
46
|
+
parallel_web-0.1.2.dist-info/licenses/LICENSE,sha256=1rFsV0HhxaZBP55JM8Cu2w0Bw-uxTFtyTja_DE94oEM,1048
|
|
47
|
+
parallel_web-0.1.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|