scrapely-client-python 1.0.0__tar.gz → 1.0.2__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.
Potentially problematic release.
This version of scrapely-client-python might be problematic. Click here for more details.
- scrapely_client_python-1.0.2/CHANGELOG.md +14 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/PKG-INFO +1 -1
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/pyproject.toml +1 -1
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/pyproject.toml.orig +1 -2
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_models.py +5 -5
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/actor.py +24 -10
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/dataset.py +4 -4
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/http_clients/_impit.py +4 -4
- scrapely_client_python-1.0.0/CHANGELOG.md +0 -9
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/CONTRIBUTING.md +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/LICENSE +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/README.md +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/__init__.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_charging.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_client_registry.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_consts.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_docs.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_literals.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_logging.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_pagination.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/__init__.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/_resource_client.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/actor_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/actor_env_var.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/actor_env_var_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/actor_version.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/actor_version_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/build.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/build_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/dataset_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/key_value_store.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/key_value_store_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/log.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/request_queue.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/request_queue_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/run.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/run_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/schedule.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/schedule_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/store_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/task.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/task_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/user.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/webhook.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/webhook_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/webhook_dispatch.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_resource_clients/webhook_dispatch_collection.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_scrapely_client.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_statistics.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_status_message_watcher.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_streamed_log.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_typeddicts.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/__init__.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/crypto.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/encoding.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/errors.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/http.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/time.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/try_import.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/errors.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/http_clients/__init__.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/http_clients/_base.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/http_compressors/__init__.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/http_compressors/_base.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/http_compressors/_brotli.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/http_compressors/_gzip.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/http_compressors/_resolve.py +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/py.typed +0 -0
- {scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/types.py +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [1.0.2] - 2026-10-13
|
|
6
|
+
|
|
7
|
+
- Builds are owner-only: `build_id` on runs and metamorphs and `build` in run options are optional, since runs of someone else's Actor carry no build info. Older versions raise a validation error on those runs.
|
|
8
|
+
- `actor().update(default_non_owner_build=...)` sets the User Build (the build everyone else runs); `''` clears it.
|
|
9
|
+
|
|
10
|
+
## [1.0.0] - 2026-09-08
|
|
11
|
+
|
|
12
|
+
Initial release.
|
|
13
|
+
|
|
14
|
+
- Python client for the Scrapely API: Actors, runs, datasets, key-value stores, request queues, task management, and webhooks
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "scrapely-client-python"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.2"
|
|
8
8
|
description = "Scrapely API client for Python"
|
|
9
9
|
authors = [{ name = "Scrapely" }]
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -46,7 +46,6 @@ brotli = ["brotli>=1.0.9"]
|
|
|
46
46
|
dev = [
|
|
47
47
|
# TODO: Remove this constraint once pydoc-markdown updates its dependencies.
|
|
48
48
|
# Package pydoc-markdown is unmaintained and pins old docspec-python with vulnerable black.
|
|
49
|
-
# See https://github.com/apify/apify-client-python/pull/582/ for more details.
|
|
50
49
|
# We explicitly constrain black>=24.3.0 to override the transitive dependency.
|
|
51
50
|
"black>=24.3.0",
|
|
52
51
|
"datamodel-code-generator[http,ruff]>=0.64.1,<1.0.0",
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_models.py
RENAMED
|
@@ -50,7 +50,7 @@ class ActVersion(BaseModel):
|
|
|
50
50
|
str | None, Field(examples=['0.0'], pattern='^([0-9]|[1-9][0-9])\\.([0-9]|[1-9][0-9])(\\.[0-9]+)?$')
|
|
51
51
|
] = None
|
|
52
52
|
git_repo_url: Annotated[
|
|
53
|
-
str | None, Field(examples=['https://github.com/
|
|
53
|
+
str | None, Field(examples=['https://github.com/example/my-actor.git#main:src'])
|
|
54
54
|
] = None
|
|
55
55
|
"""
|
|
56
56
|
URL of the git repository, present when sourceType is GIT_REPO.
|
|
@@ -1964,7 +1964,7 @@ class Metamorph(BaseModel):
|
|
|
1964
1964
|
"""
|
|
1965
1965
|
ID of the Actor that the run was metamorphed to.
|
|
1966
1966
|
"""
|
|
1967
|
-
build_id: Annotated[str, Field(examples=['ME6oKecqy5kXDS4KQ'])]
|
|
1967
|
+
build_id: Annotated[str | None, Field(examples=['ME6oKecqy5kXDS4KQ'])] = None
|
|
1968
1968
|
"""
|
|
1969
1969
|
ID of the build used for the metamorphed Actor.
|
|
1970
1970
|
"""
|
|
@@ -2915,7 +2915,7 @@ class Run(BaseModel):
|
|
|
2915
2915
|
"""
|
|
2916
2916
|
Configuration options for the Actor run.
|
|
2917
2917
|
"""
|
|
2918
|
-
build_id: Annotated[str, Field(examples=['7sT5jcggjjA9fNcxF'])]
|
|
2918
|
+
build_id: Annotated[str | None, Field(examples=['7sT5jcggjjA9fNcxF'])] = None
|
|
2919
2919
|
"""
|
|
2920
2920
|
ID of the Actor build used for this run.
|
|
2921
2921
|
"""
|
|
@@ -3017,7 +3017,7 @@ class RunOptions(BaseModel):
|
|
|
3017
3017
|
populate_by_name=True,
|
|
3018
3018
|
alias_generator=to_camel,
|
|
3019
3019
|
)
|
|
3020
|
-
build: Annotated[str, Field(examples=['latest'])]
|
|
3020
|
+
build: Annotated[str | None, Field(examples=['latest'])] = None
|
|
3021
3021
|
timeout_secs: Annotated[int, Field(examples=[300], ge=0)]
|
|
3022
3022
|
memory_mbytes: Annotated[int, Field(examples=[1024], ge=128, le=32768)]
|
|
3023
3023
|
disk_mbytes: Annotated[int | None, Field(examples=[2048], ge=0)] = None
|
|
@@ -3049,7 +3049,7 @@ class RunShort(BaseModel):
|
|
|
3049
3049
|
status: ActorJobStatus
|
|
3050
3050
|
started_at: Annotated[AwareDatetime, Field(examples=['2019-11-30T07:34:24.202Z'])]
|
|
3051
3051
|
finished_at: Annotated[AwareDatetime | None, Field(examples=['2019-12-12T09:30:12.202Z'])] = None
|
|
3052
|
-
build_id: Annotated[str, Field(examples=['HG7ML7M8z78YcAPEB'])]
|
|
3052
|
+
build_id: Annotated[str | None, Field(examples=['HG7ML7M8z78YcAPEB'])] = None
|
|
3053
3053
|
build_number: Annotated[
|
|
3054
3054
|
str | None, Field(examples=['0.0.2'], pattern='^([0-9]|[1-9][0-9])\\.([0-9]|[1-9][0-9])(\\.[1-9][0-9]{0,4})$')
|
|
3055
3055
|
] = None
|
|
@@ -124,6 +124,7 @@ class ActorClient(ResourceClient):
|
|
|
124
124
|
pricing_infos: list[dict[str, Any]] | None = None,
|
|
125
125
|
actor_permission_level: ActorPermissionLevel | None = None,
|
|
126
126
|
tagged_builds: dict[str, dict[str, str] | None] | None = None,
|
|
127
|
+
default_non_owner_build: str | None = None,
|
|
127
128
|
timeout: Timeout = 'short',
|
|
128
129
|
) -> Actor:
|
|
129
130
|
"""Update the Actor with the specified fields.
|
|
@@ -162,6 +163,9 @@ class ActorClient(ResourceClient):
|
|
|
162
163
|
tagged_builds: A dictionary mapping build tag names to their settings. Use it to create, update,
|
|
163
164
|
or remove build tags. To assign a tag, provide a dict with 'buildId' key. To remove a tag,
|
|
164
165
|
set its value to None. Example: {'latest': {'buildId': 'abc'}, 'beta': None}.
|
|
166
|
+
default_non_owner_build: The User Build: tag or number of the successful build that other users
|
|
167
|
+
of the public Actor run (they can't pick builds). Editable after publishing. Pass an empty
|
|
168
|
+
string to fall back to the default build.
|
|
165
169
|
timeout: Timeout for the API HTTP request.
|
|
166
170
|
|
|
167
171
|
Returns:
|
|
@@ -200,7 +204,10 @@ class ActorClient(ResourceClient):
|
|
|
200
204
|
),
|
|
201
205
|
tagged_builds=tagged_builds,
|
|
202
206
|
)
|
|
203
|
-
|
|
207
|
+
payload = actor_fields.model_dump(by_alias=True, exclude_none=True)
|
|
208
|
+
if default_non_owner_build is not None:
|
|
209
|
+
payload['defaultNonOwnerBuild'] = default_non_owner_build
|
|
210
|
+
result = self._update(timeout=timeout, **payload)
|
|
204
211
|
return ActorResponse.model_validate(result).data
|
|
205
212
|
|
|
206
213
|
def delete(self, *, timeout: Timeout = 'short') -> None:
|
|
@@ -417,7 +424,7 @@ class ActorClient(ResourceClient):
|
|
|
417
424
|
return BuildResponse.model_validate(result).data
|
|
418
425
|
|
|
419
426
|
def builds(self) -> BuildCollectionClient:
|
|
420
|
-
"""Retrieve a client for the builds of this Actor."""
|
|
427
|
+
"""Retrieve a client for the builds of this Actor (owner only; other users get 403)."""
|
|
421
428
|
return self._client_registry.build_collection_client(
|
|
422
429
|
resource_path='builds',
|
|
423
430
|
**self._base_client_kwargs,
|
|
@@ -436,7 +443,7 @@ class ActorClient(ResourceClient):
|
|
|
436
443
|
wait_for_finish: int | None = None,
|
|
437
444
|
timeout: Timeout = 'short',
|
|
438
445
|
) -> BuildClient:
|
|
439
|
-
"""Retrieve Actor's default build.
|
|
446
|
+
"""Retrieve Actor's default build (owner only; other users get 403).
|
|
440
447
|
|
|
441
448
|
|
|
442
449
|
Args:
|
|
@@ -495,11 +502,11 @@ class ActorClient(ResourceClient):
|
|
|
495
502
|
)
|
|
496
503
|
|
|
497
504
|
def versions(self) -> ActorVersionCollectionClient:
|
|
498
|
-
"""Retrieve a client for the versions of this Actor."""
|
|
505
|
+
"""Retrieve a client for the versions of this Actor (owner only; other users get 403)."""
|
|
499
506
|
return self._client_registry.actor_version_collection_client(**self._base_client_kwargs)
|
|
500
507
|
|
|
501
508
|
def version(self, version_number: str) -> ActorVersionClient:
|
|
502
|
-
"""Retrieve the client for the specified version of this Actor.
|
|
509
|
+
"""Retrieve the client for the specified version of this Actor (owner only).
|
|
503
510
|
|
|
504
511
|
Args:
|
|
505
512
|
version_number: The version number for which to retrieve the resource client.
|
|
@@ -613,6 +620,7 @@ class ActorClientAsync(ResourceClientAsync):
|
|
|
613
620
|
pricing_infos: list[dict[str, Any]] | None = None,
|
|
614
621
|
actor_permission_level: ActorPermissionLevel | None = None,
|
|
615
622
|
tagged_builds: dict[str, dict[str, str] | None] | None = None,
|
|
623
|
+
default_non_owner_build: str | None = None,
|
|
616
624
|
timeout: Timeout = 'short',
|
|
617
625
|
) -> Actor:
|
|
618
626
|
"""Update the Actor with the specified fields.
|
|
@@ -651,6 +659,9 @@ class ActorClientAsync(ResourceClientAsync):
|
|
|
651
659
|
tagged_builds: A dictionary mapping build tag names to their settings. Use it to create, update,
|
|
652
660
|
or remove build tags. To assign a tag, provide a dict with 'buildId' key. To remove a tag,
|
|
653
661
|
set its value to None. Example: {'latest': {'buildId': 'abc'}, 'beta': None}.
|
|
662
|
+
default_non_owner_build: The User Build: tag or number of the successful build that other users
|
|
663
|
+
of the public Actor run (they can't pick builds). Editable after publishing. Pass an empty
|
|
664
|
+
string to fall back to the default build.
|
|
654
665
|
timeout: Timeout for the API HTTP request.
|
|
655
666
|
|
|
656
667
|
Returns:
|
|
@@ -689,7 +700,10 @@ class ActorClientAsync(ResourceClientAsync):
|
|
|
689
700
|
),
|
|
690
701
|
tagged_builds=tagged_builds,
|
|
691
702
|
)
|
|
692
|
-
|
|
703
|
+
payload = actor_fields.model_dump(by_alias=True, exclude_none=True)
|
|
704
|
+
if default_non_owner_build is not None:
|
|
705
|
+
payload['defaultNonOwnerBuild'] = default_non_owner_build
|
|
706
|
+
result = await self._update(timeout=timeout, **payload)
|
|
693
707
|
return ActorResponse.model_validate(result).data
|
|
694
708
|
|
|
695
709
|
async def delete(self, *, timeout: Timeout = 'short') -> None:
|
|
@@ -910,7 +924,7 @@ class ActorClientAsync(ResourceClientAsync):
|
|
|
910
924
|
return BuildResponse.model_validate(result).data
|
|
911
925
|
|
|
912
926
|
def builds(self) -> BuildCollectionClientAsync:
|
|
913
|
-
"""Retrieve a client for the builds of this Actor."""
|
|
927
|
+
"""Retrieve a client for the builds of this Actor (owner only; other users get 403)."""
|
|
914
928
|
return self._client_registry.build_collection_client(
|
|
915
929
|
resource_path='builds',
|
|
916
930
|
**self._base_client_kwargs,
|
|
@@ -929,7 +943,7 @@ class ActorClientAsync(ResourceClientAsync):
|
|
|
929
943
|
wait_for_finish: int | None = None,
|
|
930
944
|
timeout: Timeout = 'short',
|
|
931
945
|
) -> BuildClientAsync:
|
|
932
|
-
"""Retrieve Actor's default build.
|
|
946
|
+
"""Retrieve Actor's default build (owner only; other users get 403).
|
|
933
947
|
|
|
934
948
|
|
|
935
949
|
Args:
|
|
@@ -988,11 +1002,11 @@ class ActorClientAsync(ResourceClientAsync):
|
|
|
988
1002
|
)
|
|
989
1003
|
|
|
990
1004
|
def versions(self) -> ActorVersionCollectionClientAsync:
|
|
991
|
-
"""Retrieve a client for the versions of this Actor."""
|
|
1005
|
+
"""Retrieve a client for the versions of this Actor (owner only; other users get 403)."""
|
|
992
1006
|
return self._client_registry.actor_version_collection_client(**self._base_client_kwargs)
|
|
993
1007
|
|
|
994
1008
|
def version(self, version_number: str) -> ActorVersionClientAsync:
|
|
995
|
-
"""Retrieve the client for the specified version of this Actor.
|
|
1009
|
+
"""Retrieve the client for the specified version of this Actor (owner only).
|
|
996
1010
|
|
|
997
1011
|
Args:
|
|
998
1012
|
version_number: The version number for which to retrieve the resource client.
|
|
@@ -305,7 +305,7 @@ class DatasetClient(ResourceClient):
|
|
|
305
305
|
|
|
306
306
|
|
|
307
307
|
Args:
|
|
308
|
-
item_format: Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml and
|
|
308
|
+
item_format: Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml, rss and pdf.
|
|
309
309
|
The default value is json.
|
|
310
310
|
offset: Number of items that should be skipped at the start. The default value is 0.
|
|
311
311
|
limit: Maximum number of items to return. By default there is no limit.
|
|
@@ -402,7 +402,7 @@ class DatasetClient(ResourceClient):
|
|
|
402
402
|
|
|
403
403
|
|
|
404
404
|
Args:
|
|
405
|
-
item_format: Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml and
|
|
405
|
+
item_format: Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml, rss and pdf.
|
|
406
406
|
The default value is json.
|
|
407
407
|
offset: Number of items that should be skipped at the start. The default value is 0.
|
|
408
408
|
limit: Maximum number of items to return. By default there is no limit.
|
|
@@ -857,7 +857,7 @@ class DatasetClientAsync(ResourceClientAsync):
|
|
|
857
857
|
|
|
858
858
|
|
|
859
859
|
Args:
|
|
860
|
-
item_format: Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml and
|
|
860
|
+
item_format: Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml, rss and pdf.
|
|
861
861
|
The default value is json.
|
|
862
862
|
offset: Number of items that should be skipped at the start. The default value is 0.
|
|
863
863
|
limit: Maximum number of items to return. By default there is no limit.
|
|
@@ -954,7 +954,7 @@ class DatasetClientAsync(ResourceClientAsync):
|
|
|
954
954
|
|
|
955
955
|
|
|
956
956
|
Args:
|
|
957
|
-
item_format: Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml and
|
|
957
|
+
item_format: Format of the results, possible values are: json, jsonl, csv, html, xlsx, xml, rss and pdf.
|
|
958
958
|
The default value is json.
|
|
959
959
|
offset: Number of items that should be skipped at the start. The default value is 0.
|
|
960
960
|
limit: Maximum number of items to return. By default there is no limit.
|
|
@@ -67,7 +67,7 @@ def _is_retryable_error(exc: Exception) -> bool:
|
|
|
67
67
|
|
|
68
68
|
@docs_group('HTTP clients')
|
|
69
69
|
class ImpitHttpClient(HttpClient):
|
|
70
|
-
"""Synchronous HTTP client for the Scrapely API built on top of
|
|
70
|
+
"""Synchronous HTTP client for the Scrapely API built on top of Impit.
|
|
71
71
|
|
|
72
72
|
Impit is a high-performance HTTP client written in Rust that provides browser-like TLS fingerprints,
|
|
73
73
|
automatic header ordering, and HTTP/2 support. This client wraps `impit.Client` and adds automatic retries
|
|
@@ -222,7 +222,7 @@ class ImpitHttpClient(HttpClient):
|
|
|
222
222
|
|
|
223
223
|
# Impit treats timeout=None as "use client default (30s)", not "no timeout".
|
|
224
224
|
# Use a large value (24 hours) to effectively disable the timeout.
|
|
225
|
-
# This can be removed once impit updates its behaviour
|
|
225
|
+
# This can be removed once impit updates its behaviour.
|
|
226
226
|
computed_timeout = self._compute_timeout(timeout, attempt=attempt)
|
|
227
227
|
impit_timeout = 86_400 if computed_timeout is None else computed_timeout
|
|
228
228
|
|
|
@@ -327,7 +327,7 @@ class ImpitHttpClient(HttpClient):
|
|
|
327
327
|
|
|
328
328
|
@docs_group('HTTP clients')
|
|
329
329
|
class ImpitHttpClientAsync(HttpClientAsync):
|
|
330
|
-
"""Asynchronous HTTP client for the Scrapely API built on top of
|
|
330
|
+
"""Asynchronous HTTP client for the Scrapely API built on top of Impit.
|
|
331
331
|
|
|
332
332
|
Impit is a high-performance HTTP client written in Rust that provides browser-like TLS fingerprints,
|
|
333
333
|
automatic header ordering, and HTTP/2 support. This client wraps `impit.AsyncClient` and adds automatic retries
|
|
@@ -495,7 +495,7 @@ class ImpitHttpClientAsync(HttpClientAsync):
|
|
|
495
495
|
|
|
496
496
|
# Impit treats timeout=None as "use client default (30s)", not "no timeout".
|
|
497
497
|
# Use a large value (24 hours) to effectively disable the timeout.
|
|
498
|
-
# This can be removed once impit updates its behaviour
|
|
498
|
+
# This can be removed once impit updates its behaviour.
|
|
499
499
|
computed_timeout = self._compute_timeout(timeout, attempt=attempt)
|
|
500
500
|
impit_timeout = 86_400 if computed_timeout is None else computed_timeout
|
|
501
501
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/__init__.py
RENAMED
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_charging.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_consts.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_literals.py
RENAMED
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_logging.py
RENAMED
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_pagination.py
RENAMED
|
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
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_statistics.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_streamed_log.py
RENAMED
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_typeddicts.py
RENAMED
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/__init__.py
RENAMED
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/crypto.py
RENAMED
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/encoding.py
RENAMED
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/errors.py
RENAMED
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/http.py
RENAMED
|
File without changes
|
{scrapely_client_python-1.0.0 → scrapely_client_python-1.0.2}/src/scrapely_client/_utils/time.py
RENAMED
|
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
|