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 +8 -0
- castor_extractor/utils/formatter.py +29 -3
- castor_extractor/warehouse/sqlserver/queries/schema.sql +1 -1
- {castor_extractor-0.24.52.dist-info → castor_extractor-0.24.54.dist-info}/METADATA +9 -1
- {castor_extractor-0.24.52.dist-info → castor_extractor-0.24.54.dist-info}/RECORD +8 -8
- {castor_extractor-0.24.52.dist-info → castor_extractor-0.24.54.dist-info}/LICENCE +0 -0
- {castor_extractor-0.24.52.dist-info → castor_extractor-0.24.54.dist-info}/WHEEL +0 -0
- {castor_extractor-0.24.52.dist-info → castor_extractor-0.24.54.dist-info}/entry_points.txt +0 -0
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
|
-
|
|
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.
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
438
|
-
castor_extractor-0.24.
|
|
439
|
-
castor_extractor-0.24.
|
|
440
|
-
castor_extractor-0.24.
|
|
441
|
-
castor_extractor-0.24.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|