castor-extractor 0.24.52__py3-none-any.whl → 0.24.54__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 castor-extractor might be problematic. Click here for more details.

CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.24.54 - 2025-09-18
4
+
5
+ * SqlServer: fix typo in the extraction query of schemas
6
+
7
+ ## 0.24.53 - 2025-09-18
8
+
9
+ * Fix CSV field size to support running on Windows
10
+
3
11
  ## 0.24.52 - 2025-09-18
4
12
 
5
13
  * SqlServer : improve extraction of users and technical owners
@@ -1,6 +1,7 @@
1
1
  """convert files to csv"""
2
2
 
3
3
  import csv
4
+ import ctypes
4
5
  import json
5
6
  import logging
6
7
  import re
@@ -21,6 +22,8 @@ CSV_OPTIONS: CsvOptions = {
21
22
  "quotechar": '"',
22
23
  }
23
24
 
25
+ CSV_FIELD_SIZE_MB = 100
26
+
24
27
  ScalarValue = Union[int, float, None, str]
25
28
 
26
29
  logger = logging.getLogger(__name__)
@@ -132,6 +135,31 @@ class Formatter(ABC):
132
135
  pass
133
136
 
134
137
 
138
+ def _set_csv_field_size_limit(target_limit_mb: int) -> None:
139
+ """
140
+ Safely set the maximum CSV field size limit across platforms.
141
+
142
+ This function wraps `csv.field_size_limit()` to avoid `OverflowError` on
143
+ Windows, where the maximum C long is only 32 bits (2^31 - 1). On Linux and
144
+ macOS, the C long is typically 64 bits, allowing much larger values.
145
+
146
+ The requested limit is specified in megabytes and converted to bytes.
147
+
148
+ It is then clamped to the maximum value supported by:
149
+ - the current platform's C long
150
+ - Python's `sys.maxsize`
151
+ - the requested target limit
152
+ """
153
+ target_limit_bytes = target_limit_mb * 1024**2
154
+
155
+ # max value of C long for the current platform
156
+ platform_c_long = (1 << (8 * ctypes.sizeof(ctypes.c_long) - 1)) - 1
157
+
158
+ limit_bytes = min(target_limit_bytes, sys.maxsize, platform_c_long)
159
+
160
+ csv.field_size_limit(limit_bytes)
161
+
162
+
135
163
  class CsvFormatter(Formatter):
136
164
  """
137
165
  Serialize/Deserialize CSV
@@ -141,9 +169,7 @@ class CsvFormatter(Formatter):
141
169
  return "csv"
142
170
 
143
171
  # increase the size limit (some fields are very large)
144
- # Limit to 100 MB. Value must be smaller than the C long maximum value.
145
- size_limit = min(sys.maxsize, 100 * 1024**3)
146
- csv.field_size_limit(size_limit)
172
+ _set_csv_field_size_limit(target_limit_mb=CSV_FIELD_SIZE_MB)
147
173
 
148
174
  @staticmethod
149
175
  def serialize(buffer: IO[str], data: Iterable[dict]) -> bool:
@@ -17,7 +17,7 @@ SELECT
17
17
  schema_name = s.name,
18
18
  schema_id = CAST(d.database_id AS VARCHAR(10)) + '_' + CAST(s.schema_id AS VARCHAR(10)),
19
19
  schema_owner = u.name,
20
- schema_owner_id = u.uid
20
+ schema_owner_id = u.name
21
21
  FROM [{database}].sys.schemas AS s
22
22
  INNER JOIN ids AS i
23
23
  ON s.name = i.table_schema
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: castor-extractor
3
- Version: 0.24.52
3
+ Version: 0.24.54
4
4
  Summary: Extract your metadata assets.
5
5
  Home-page: https://www.castordoc.com/
6
6
  License: EULA
@@ -215,6 +215,14 @@ For any questions or bug report, contact us at [support@coalesce.io](mailto:supp
215
215
 
216
216
  # Changelog
217
217
 
218
+ ## 0.24.54 - 2025-09-18
219
+
220
+ * SqlServer: fix typo in the extraction query of schemas
221
+
222
+ ## 0.24.53 - 2025-09-18
223
+
224
+ * Fix CSV field size to support running on Windows
225
+
218
226
  ## 0.24.52 - 2025-09-18
219
227
 
220
228
  * SqlServer : improve extraction of users and technical owners
@@ -1,4 +1,4 @@
1
- CHANGELOG.md,sha256=ruS47cNmG5EMJYGYtkGGyhh7A5NgNz4TxzS8h0lP_Co,20477
1
+ CHANGELOG.md,sha256=UWQqKdcoyCIOs5Akoc9DqX5p2sBbFpk5mKXX_OBznUQ,20637
2
2
  Dockerfile,sha256=xQ05-CFfGShT3oUqaiumaldwA288dj9Yb_pxofQpufg,301
3
3
  DockerfileUsage.md,sha256=2hkJQF-5JuuzfPZ7IOxgM6QgIQW7l-9oRMFVwyXC4gE,998
4
4
  LICENCE,sha256=sL-IGa4hweyya1HgzMskrRdybbIa2cktzxb5qmUgDg8,8254
@@ -124,7 +124,7 @@ castor_extractor/utils/deprecate.py,sha256=aBIN2QqZUx5CBNZMFfOUhi8QqtPqRcJtmrN6x
124
124
  castor_extractor/utils/env.py,sha256=TqdtB50U8LE0993WhhEhpy89TJrHbjtIKjvg6KQ-5q0,596
125
125
  castor_extractor/utils/files.py,sha256=qKbfu5FRjsQdKnRmaJNd5EdX_F6gf5C5tV8LdoYKxs0,1527
126
126
  castor_extractor/utils/files_test.py,sha256=omRT3XSjaSAywYUoLh1SGWqYzl4UwBYKSYA9_7mXd_E,1542
127
- castor_extractor/utils/formatter.py,sha256=KFUIiT1mSMS464trrpneFC2aIC0MjocHS0BLzX0WkIk,4969
127
+ castor_extractor/utils/formatter.py,sha256=wys8LD5sB39g37aqIpJ3X-YXVspcsUmcuUFvZA4ODHg,5811
128
128
  castor_extractor/utils/formatter_test.csv,sha256=UCNqPs8-xrY1AdMSpuctVFXInQe3Z_EABP4rF-Jw5ks,3802
129
129
  castor_extractor/utils/formatter_test.json,sha256=yPP_z1ZEavaUskC-Hx33uGlwKoInHYOFKqsJ9NgwIFo,12527
130
130
  castor_extractor/utils/formatter_test.py,sha256=VPlRTPQOaAeCySNs1wU1jd3bMppqxkVpD1dyCLt6p94,1856
@@ -428,14 +428,14 @@ castor_extractor/warehouse/sqlserver/queries/.sqlfluff,sha256=yy0KQdz8I_67vnXyX8
428
428
  castor_extractor/warehouse/sqlserver/queries/column.sql,sha256=ojiUQQnHXdWMbgaYOcxKBiwfi7rtu_tyamK6r4t4IBM,2929
429
429
  castor_extractor/warehouse/sqlserver/queries/database.sql,sha256=4dPeBCn85MEOXr1f-DPXxiI3RvvoE_1n8lsbTs26E0I,150
430
430
  castor_extractor/warehouse/sqlserver/queries/query.sql,sha256=bkENw7QovlG4MyYe5q3XNPs3ajUr_3bNzpbm0Y2upYo,821
431
- castor_extractor/warehouse/sqlserver/queries/schema.sql,sha256=jUnZ10kIZk44nKQ5KiyjZ0YFdypYQj__OlPDRq71EAw,909
431
+ castor_extractor/warehouse/sqlserver/queries/schema.sql,sha256=Fq_8-tCnArayON3fjd2oMWM9nuYaXX3aZMr5jOOfMuw,910
432
432
  castor_extractor/warehouse/sqlserver/queries/table.sql,sha256=ggzatJOlOfGkMG1NS-hD-n1-3WLbV9Yh8IsQrEFO5X4,2831
433
433
  castor_extractor/warehouse/sqlserver/queries/user.sql,sha256=MAlnTis43E3Amu1e1Oz_qhaX8Bz-iN0Lrbf9RiohX7Y,99
434
434
  castor_extractor/warehouse/sqlserver/queries/view_ddl.sql,sha256=9rynvx6MWg3iZzrWPB7haZfVKEPkxulzryE2g19x804,315
435
435
  castor_extractor/warehouse/sqlserver/query.py,sha256=c8f7_SEMR17DhbtzuYphWqWDQ0sCRy-nR442RRBZVYw,1773
436
436
  castor_extractor/warehouse/synapse/queries/column.sql,sha256=lNcFoIW3Y0PFOqoOzJEXmPvZvfAsY0AP63Mu2LuPzPo,1351
437
- castor_extractor-0.24.52.dist-info/LICENCE,sha256=sL-IGa4hweyya1HgzMskrRdybbIa2cktzxb5qmUgDg8,8254
438
- castor_extractor-0.24.52.dist-info/METADATA,sha256=0wd_HdsZnM75f8hXza9FNIvjipmHGUDHOe5yjIYX1Ig,27930
439
- castor_extractor-0.24.52.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
440
- castor_extractor-0.24.52.dist-info/entry_points.txt,sha256=_F-qeZCybjoMkNb9ErEhnyqXuG6afHIFQhakdBHZsr4,1803
441
- castor_extractor-0.24.52.dist-info/RECORD,,
437
+ castor_extractor-0.24.54.dist-info/LICENCE,sha256=sL-IGa4hweyya1HgzMskrRdybbIa2cktzxb5qmUgDg8,8254
438
+ castor_extractor-0.24.54.dist-info/METADATA,sha256=jEfKI6ocldlGkpKQsrBrW-1Vn0e1n7IPS7NLzEzSCpg,28090
439
+ castor_extractor-0.24.54.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
440
+ castor_extractor-0.24.54.dist-info/entry_points.txt,sha256=_F-qeZCybjoMkNb9ErEhnyqXuG6afHIFQhakdBHZsr4,1803
441
+ castor_extractor-0.24.54.dist-info/RECORD,,