datamarket 0.7.100__tar.gz → 0.7.101__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 datamarket might be problematic. Click here for more details.

Files changed (35) hide show
  1. {datamarket-0.7.100 → datamarket-0.7.101}/PKG-INFO +1 -1
  2. {datamarket-0.7.100 → datamarket-0.7.101}/pyproject.toml +1 -1
  3. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/exceptions/main.py +6 -0
  4. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/main.py +6 -3
  5. {datamarket-0.7.100 → datamarket-0.7.101}/LICENSE +0 -0
  6. {datamarket-0.7.100 → datamarket-0.7.101}/README.md +0 -0
  7. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/__init__.py +0 -0
  8. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/exceptions/__init__.py +0 -0
  9. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/interfaces/__init__.py +0 -0
  10. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/interfaces/alchemy.py +0 -0
  11. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/interfaces/aws.py +0 -0
  12. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/interfaces/azure.py +0 -0
  13. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/interfaces/drive.py +0 -0
  14. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/interfaces/ftp.py +0 -0
  15. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/interfaces/nominatim.py +0 -0
  16. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/interfaces/peerdb.py +0 -0
  17. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/interfaces/proxy.py +0 -0
  18. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/interfaces/tinybird.py +0 -0
  19. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/params/__init__.py +0 -0
  20. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/params/nominatim.py +0 -0
  21. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/__init__.py +0 -0
  22. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/airflow.py +0 -0
  23. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/alchemy.py +0 -0
  24. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/nominatim.py +0 -0
  25. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/playwright/__init__.py +0 -0
  26. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/playwright/async_api.py +0 -0
  27. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/playwright/sync_api.py +0 -0
  28. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/selenium.py +0 -0
  29. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/soda.py +0 -0
  30. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/strings/__init__.py +0 -0
  31. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/strings/normalization.py +0 -0
  32. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/strings/obfuscation.py +0 -0
  33. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/strings/standardization.py +0 -0
  34. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/typer.py +0 -0
  35. {datamarket-0.7.100 → datamarket-0.7.101}/src/datamarket/utils/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: datamarket
3
- Version: 0.7.100
3
+ Version: 0.7.101
4
4
  Summary: Utilities that integrate advanced scraping knowledge into just one library.
5
5
  License: GPL-3.0-or-later
6
6
  Author: DataMarket
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "datamarket"
3
- version = "0.7.100"
3
+ version = "0.7.101"
4
4
  description = "Utilities that integrate advanced scraping knowledge into just one library."
5
5
  authors = ["DataMarket <techsupport@datamarket.es>"]
6
6
  license = "GPL-3.0-or-later"
@@ -12,3 +12,9 @@ class NotFoundError(Exception):
12
12
  def __init__(self, message="Not found!"):
13
13
  self.message = message
14
14
  super().__init__(self.message)
15
+
16
+
17
+ class BadRequestError(Exception):
18
+ def __init__(self, message="Bad request!"):
19
+ self.message = message
20
+ super().__init__(self.message)
@@ -3,6 +3,7 @@
3
3
 
4
4
  import asyncio
5
5
  import configparser
6
+ from datetime import timedelta
6
7
  import logging
7
8
  import random
8
9
  import re
@@ -25,7 +26,7 @@ from tenacity import (
25
26
  wait_exponential,
26
27
  )
27
28
 
28
- from ..exceptions import RedirectionDetectedError, NotFoundError
29
+ from ..exceptions import RedirectionDetectedError, NotFoundError, BadRequestError
29
30
  from ..interfaces.proxy import ProxyInterface
30
31
 
31
32
  ########################################################################################################################
@@ -131,7 +132,7 @@ def parse_field(dict_struct, field_path, format_method=None):
131
132
 
132
133
 
133
134
  @retry(
134
- retry=retry_if_not_exception_type((NotFoundError, RedirectionDetectedError, ProxyError)),
135
+ retry=retry_if_not_exception_type((NotFoundError, BadRequestError, RedirectionDetectedError, ProxyError)),
135
136
  wait=wait_exponential(exp_base=3, multiplier=3, max=60),
136
137
  stop=stop_after_attempt(5),
137
138
  before_sleep=before_sleep_log(logger, logging.WARNING),
@@ -144,7 +145,7 @@ def get_data(
144
145
  sleep: tuple = (6, 3),
145
146
  proxy_interface: ProxyInterface = None,
146
147
  use_auth_proxies: bool = False,
147
- max_proxy_delay: int = 1800,
148
+ max_proxy_delay: timedelta = timedelta(minutes=10),
148
149
  **kwargs,
149
150
  ):
150
151
  retry_type = retry_if_exception_type(ProxyError)
@@ -175,6 +176,8 @@ def get_data(
175
176
 
176
177
  if r.status_code == 404:
177
178
  raise NotFoundError(f"404 Not Found error for {url}")
179
+ if r.status_code == 400:
180
+ raise BadRequestError(f"400 Bad Request error for {url}")
178
181
  r.raise_for_status()
179
182
  r.encoding = "utf-8"
180
183
 
File without changes
File without changes