datamarket 0.9.17__py3-none-any.whl → 0.9.19__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 datamarket might be problematic. Click here for more details.

@@ -84,8 +84,28 @@ class PostgresPeer:
84
84
  table_list = []
85
85
  for table in table_names:
86
86
  full_table_name = f'"{schema_name}"."{table}"'
87
- logger.info(f"Setting REPLICA IDENTITY FULL for table: {full_table_name}")
88
- conn.execute(text(f"ALTER TABLE {full_table_name} REPLICA IDENTITY FULL;"))
87
+
88
+ # Check current replica identity
89
+ query = text("""
90
+ SELECT CASE c.relreplident
91
+ WHEN 'd' THEN 'DEFAULT'
92
+ WHEN 'n' THEN 'NOTHING'
93
+ WHEN 'f' THEN 'FULL'
94
+ WHEN 'i' THEN 'INDEX'
95
+ END AS replica_identity
96
+ FROM pg_class c
97
+ JOIN pg_namespace n ON c.relnamespace = n.oid
98
+ WHERE c.relname = :table_name
99
+ AND n.nspname = :schema_name;
100
+ """)
101
+ result = conn.execute(query, {"table_name": table, "schema_name": schema_name}).scalar_one_or_none()
102
+
103
+ if result != "FULL":
104
+ logger.info(f"Setting REPLICA IDENTITY FULL for table: {full_table_name}")
105
+ conn.execute(text(f"ALTER TABLE {full_table_name} REPLICA IDENTITY FULL;"))
106
+ else:
107
+ logger.info(f"REPLICA IDENTITY for table {full_table_name} is already FULL. Skipping ALTER TABLE.")
108
+
89
109
  table_list.append(full_table_name)
90
110
 
91
111
  table_list_str = ", ".join(table_list)
@@ -312,12 +332,17 @@ class PeerDBInterface:
312
332
  logger.debug(f"Making API request to PeerDB endpoint: {endpoint}")
313
333
  try:
314
334
  r = requests.post(url, headers=headers, json=payload, timeout=30)
335
+ response = r.json()
315
336
  r.raise_for_status()
316
337
  logger.debug(f"API request to {endpoint} completed successfully")
317
- return r.json()
338
+ return response
318
339
  except HTTPError as e:
319
340
  logger.error(f"HTTP error occurred: {e}")
320
341
  logger.error(f"Response JSON: {r.json() if 'r' in locals() else 'N/A'}")
342
+
343
+ if "no rows in result set" in response.get("message", ""):
344
+ return {"currentFlowState": "STATUS_UNKNOWN"}
345
+
321
346
  raise
322
347
 
323
348
  def _resolve_host_mapping(self, host):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: datamarket
3
- Version: 0.9.17
3
+ Version: 0.9.19
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
@@ -16,6 +16,7 @@ Provides-Extra: alchemy
16
16
  Provides-Extra: aws
17
17
  Provides-Extra: azure-storage-blob
18
18
  Provides-Extra: boto3
19
+ Provides-Extra: camoufox
19
20
  Provides-Extra: chompjs
20
21
  Provides-Extra: click
21
22
  Provides-Extra: clickhouse-driver
@@ -64,6 +65,7 @@ Requires-Dist: SQLAlchemy (>=2.0.0,<3.0.0) ; extra == "alchemy"
64
65
  Requires-Dist: azure-storage-blob (>=12.0.0,<13.0.0) ; extra == "azure-storage-blob"
65
66
  Requires-Dist: beautifulsoup4 (>=4.0.0,<5.0.0)
66
67
  Requires-Dist: boto3 (>=1.35.0,<1.36.0) ; extra == "boto3" or extra == "aws" or extra == "peerdb"
68
+ Requires-Dist: camoufox[geoip] (>=0.4.11,<0.5.0) ; extra == "camoufox"
67
69
  Requires-Dist: chompjs (>=1.0.0,<2.0.0) ; extra == "chompjs"
68
70
  Requires-Dist: click (>=8.0.0,<9.0.0) ; extra == "click"
69
71
  Requires-Dist: clickhouse-driver (>=0.2.0,<0.3.0) ; extra == "clickhouse-driver" or extra == "peerdb"
@@ -5,7 +5,7 @@ datamarket/interfaces/aws.py,sha256=7KLUeBxmPN7avEMPsu5HC_KHB1N7W6Anp2X8fo43mlw,
5
5
  datamarket/interfaces/drive.py,sha256=shbV5jpQVe_KPE-8Idx6Z9te5Zu1SmVfrvSAyd9ZIgE,2915
6
6
  datamarket/interfaces/ftp.py,sha256=o0KlJxtksbop9OjCiQRzyAa2IeG_ExVXagS6apwrAQo,1881
7
7
  datamarket/interfaces/nominatim.py,sha256=ysIA2J1GhsZ0TJxD6B8N1_a7dkMEqtZQV6mT4Hayecg,3672
8
- datamarket/interfaces/peerdb.py,sha256=QkX8pyT5pi6g0wT5yoPiBAkCTJB0NutkxNPPxYOVqyY,22566
8
+ datamarket/interfaces/peerdb.py,sha256=cwYwvO740GyaPo9zLAwJsf3UeJDGDiYzjQVM9Q6s-_g,23652
9
9
  datamarket/interfaces/proxy.py,sha256=updoOStKd8-nQBbxWbnD9eOt6HksnYi-5dQ0rEySf5M,3152
10
10
  datamarket/interfaces/tinybird.py,sha256=AYrcRGNOCoCt7ojilkWa27POROee9sTCwZ61GGHEPeM,2698
11
11
  datamarket/params/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -17,7 +17,7 @@ datamarket/utils/main.py,sha256=O6rX-65h4h0j2zs9dofdTPlly5reKDnvgLtTwbLmbWg,6529
17
17
  datamarket/utils/selenium.py,sha256=IMKlbLzXABFhACnWzhHmB0l2hhVzNwHGZwbo14nEewQ,2499
18
18
  datamarket/utils/soda.py,sha256=eZTXFbI1P3WoMd1MM-YjoVTpdjTcDSWuvBb7ViBMhSQ,941
19
19
  datamarket/utils/typer.py,sha256=FDF3l6gh3UlAFPsHCtesnekvct2rKz0oFn3uKARBQvE,814
20
- datamarket-0.9.17.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
21
- datamarket-0.9.17.dist-info/METADATA,sha256=hNvKYKsU4pTLrpjGQ6HFBn8IBicz1-uvjzuAcKE7yy0,6363
22
- datamarket-0.9.17.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
23
- datamarket-0.9.17.dist-info/RECORD,,
20
+ datamarket-0.9.19.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
21
+ datamarket-0.9.19.dist-info/METADATA,sha256=yMqp6i6mEyKhwB6VOxXF5Gg1sldJSbkuB9HH2w3NdPQ,6459
22
+ datamarket-0.9.19.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
23
+ datamarket-0.9.19.dist-info/RECORD,,