castor-extractor 0.22.6__py3-none-any.whl → 0.23.2__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 -2
- castor_extractor/commands/extract_confluence.py +1 -1
- castor_extractor/commands/extract_tableau.py +6 -0
- castor_extractor/knowledge/confluence/client/client.py +1 -1
- castor_extractor/knowledge/confluence/client/credentials.py +1 -1
- castor_extractor/knowledge/notion/client/client.py +1 -1
- castor_extractor/utils/validation_test.py +3 -3
- castor_extractor/visualization/looker_studio/client/looker_studio_api_client.py +28 -4
- castor_extractor/visualization/tableau_revamp/client/client_metadata_api.py +2 -2
- castor_extractor/visualization/tableau_revamp/extract.py +6 -1
- castor_extractor/warehouse/salesforce/extract.py +3 -1
- {castor_extractor-0.22.6.dist-info → castor_extractor-0.23.2.dist-info}/METADATA +10 -4
- {castor_extractor-0.22.6.dist-info → castor_extractor-0.23.2.dist-info}/RECORD +16 -16
- {castor_extractor-0.22.6.dist-info → castor_extractor-0.23.2.dist-info}/LICENCE +0 -0
- {castor_extractor-0.22.6.dist-info → castor_extractor-0.23.2.dist-info}/WHEEL +0 -0
- {castor_extractor-0.22.6.dist-info → castor_extractor-0.23.2.dist-info}/entry_points.txt +0 -0
CHANGELOG.md
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
|
|
2
1
|
# Changelog
|
|
3
2
|
|
|
3
|
+
## 0.23.2 - 2025-02-17
|
|
4
|
+
|
|
5
|
+
* support page_size in Tableau extraction command
|
|
6
|
+
|
|
7
|
+
## 0.23.1 - 2025-02-10
|
|
8
|
+
|
|
9
|
+
* change command for Confluence from password to token to reflect better their documentation
|
|
10
|
+
|
|
4
11
|
## 0.22.6 - 2025-01-21
|
|
5
12
|
|
|
6
13
|
* bump dependencies: looker, databricks, deptry, ...
|
|
7
14
|
|
|
8
|
-
|
|
9
15
|
## 0.22.5 - 2025-01-09
|
|
10
16
|
|
|
11
17
|
* Databricks: validate and deduplicate lineage links
|
|
@@ -13,7 +13,7 @@ def main():
|
|
|
13
13
|
parser.add_argument("-a", "--account_id", help="Confluence account id")
|
|
14
14
|
parser.add_argument("-b", "--base_url", help="Confluence account base url")
|
|
15
15
|
parser.add_argument("-o", "--output", help="Directory to write to")
|
|
16
|
-
parser.add_argument("-
|
|
16
|
+
parser.add_argument("-t", "--token", help="Confluence API token")
|
|
17
17
|
parser.add_argument("-u", "--username", help="Confluence username")
|
|
18
18
|
|
|
19
19
|
confluence.extract_all(**parse_filled_arguments(parser))
|
|
@@ -28,6 +28,12 @@ def main():
|
|
|
28
28
|
help="Extract Tableau Pulse assets: Metrics and Subscriptions",
|
|
29
29
|
)
|
|
30
30
|
|
|
31
|
+
parser.add_argument(
|
|
32
|
+
"--page-size",
|
|
33
|
+
help="Lower the pagination when request exceeds the nodes size limit",
|
|
34
|
+
required=False,
|
|
35
|
+
)
|
|
36
|
+
|
|
31
37
|
parser.add_argument("-o", "--output", help="Directory to write to")
|
|
32
38
|
|
|
33
39
|
tableau_revamp.extract_all(**parse_filled_arguments(parser))
|
|
@@ -37,7 +37,7 @@ class ConfluenceClient(APIClient):
|
|
|
37
37
|
):
|
|
38
38
|
self.account_id = credentials.account_id
|
|
39
39
|
auth = BasicAuth(
|
|
40
|
-
username=credentials.username, password=credentials.
|
|
40
|
+
username=credentials.username, password=credentials.token
|
|
41
41
|
)
|
|
42
42
|
super().__init__(
|
|
43
43
|
auth=auth,
|
|
@@ -11,7 +11,7 @@ from .endpoints import NotionEndpointFactory
|
|
|
11
11
|
from .pagination import NotionPagination
|
|
12
12
|
|
|
13
13
|
VOLUME_IGNORED = 10
|
|
14
|
-
IGNORED_ERROR_CODES = (HTTPStatus.BAD_GATEWAY,)
|
|
14
|
+
IGNORED_ERROR_CODES = (HTTPStatus.BAD_GATEWAY, HTTPStatus.NOT_FOUND)
|
|
15
15
|
NOTION_SAFE_MODE = RequestSafeMode(
|
|
16
16
|
max_errors=VOLUME_IGNORED,
|
|
17
17
|
status_codes=IGNORED_ERROR_CODES,
|
|
@@ -37,10 +37,10 @@ def test_validate_baseurl():
|
|
|
37
37
|
validate_baseurl("")
|
|
38
38
|
|
|
39
39
|
with pytest.raises(ValueError):
|
|
40
|
-
validate_baseurl("ftp://
|
|
40
|
+
validate_baseurl("ftp://timber.looker.eu")
|
|
41
41
|
|
|
42
42
|
with pytest.raises(ValueError):
|
|
43
|
-
validate_baseurl("https://
|
|
43
|
+
validate_baseurl("https://timber.looker.eu:19999?query=params")
|
|
44
44
|
|
|
45
45
|
with pytest.raises(ValueError):
|
|
46
|
-
validate_baseurl("https://
|
|
46
|
+
validate_baseurl("https://timber.looker.eu:19999#fragment")
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
from contextlib import contextmanager
|
|
1
2
|
from functools import partial
|
|
3
|
+
from http import HTTPStatus
|
|
2
4
|
from typing import Iterator, Optional
|
|
3
5
|
|
|
4
6
|
from google.auth.transport.requests import Request
|
|
@@ -7,6 +9,7 @@ from google.oauth2.service_account import Credentials
|
|
|
7
9
|
from ....utils import (
|
|
8
10
|
APIClient,
|
|
9
11
|
BearerAuth,
|
|
12
|
+
RequestSafeMode,
|
|
10
13
|
fetch_all_pages,
|
|
11
14
|
)
|
|
12
15
|
from .credentials import LookerStudioCredentials
|
|
@@ -16,6 +19,22 @@ from .pagination import LookerStudioPagination
|
|
|
16
19
|
from .scopes import SCOPES
|
|
17
20
|
|
|
18
21
|
|
|
22
|
+
@contextmanager
|
|
23
|
+
def temporary_safe_request(client: APIClient):
|
|
24
|
+
"""
|
|
25
|
+
Allows applying the safe mode only to specific requests instead of all
|
|
26
|
+
API calls.
|
|
27
|
+
"""
|
|
28
|
+
client._safe_mode = RequestSafeMode(
|
|
29
|
+
max_errors=float("inf"),
|
|
30
|
+
status_codes=(HTTPStatus.UNAUTHORIZED,),
|
|
31
|
+
)
|
|
32
|
+
try:
|
|
33
|
+
yield client
|
|
34
|
+
finally:
|
|
35
|
+
client._safe_mode = RequestSafeMode()
|
|
36
|
+
|
|
37
|
+
|
|
19
38
|
class LookerStudioAPIAuth(BearerAuth):
|
|
20
39
|
def __init__(
|
|
21
40
|
self,
|
|
@@ -56,9 +75,14 @@ class LookerStudioAPIClient(APIClient):
|
|
|
56
75
|
|
|
57
76
|
See also https://developers.google.com/looker-studio/integrate/api/reference/types#Permissions
|
|
58
77
|
"""
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
78
|
+
with temporary_safe_request(self):
|
|
79
|
+
data = self._get(LookerStudioAPIEndpoint.permissions(asset_name))
|
|
80
|
+
permissions = data.get("permissions")
|
|
81
|
+
|
|
82
|
+
if not permissions:
|
|
83
|
+
return True
|
|
84
|
+
|
|
85
|
+
return len(permissions.keys()) == 1
|
|
62
86
|
|
|
63
87
|
def _user_assets(
|
|
64
88
|
self, asset_type: LookerStudioAssetType, user_email: str
|
|
@@ -76,7 +100,7 @@ class LookerStudioAPIClient(APIClient):
|
|
|
76
100
|
|
|
77
101
|
for asset in assets:
|
|
78
102
|
asset_name = asset["name"]
|
|
79
|
-
owner = asset
|
|
103
|
+
owner = asset.get("owner", "")
|
|
80
104
|
if owner == user_email and not self._is_private_asset(asset_name):
|
|
81
105
|
yield asset
|
|
82
106
|
|
|
@@ -99,7 +99,7 @@ class TableauClientMetadataApi:
|
|
|
99
99
|
override_page_size: Optional[int] = None,
|
|
100
100
|
):
|
|
101
101
|
self._server = server
|
|
102
|
-
self.
|
|
102
|
+
self._override_page_size = override_page_size
|
|
103
103
|
|
|
104
104
|
def _call(
|
|
105
105
|
self,
|
|
@@ -117,7 +117,7 @@ class TableauClientMetadataApi:
|
|
|
117
117
|
|
|
118
118
|
def _page_size(self, asset: TableauRevampAsset) -> int:
|
|
119
119
|
return (
|
|
120
|
-
self.
|
|
120
|
+
self._override_page_size
|
|
121
121
|
or _CUSTOM_PAGE_SIZE.get(asset)
|
|
122
122
|
or DEFAULT_PAGE_SIZE
|
|
123
123
|
)
|
|
@@ -33,10 +33,15 @@ def extract_all(**kwargs) -> None:
|
|
|
33
33
|
"""
|
|
34
34
|
output_directory = kwargs.get("output") or from_env(OUTPUT_DIR)
|
|
35
35
|
with_pulse = kwargs.get("with_pulse") or False
|
|
36
|
+
page_size = kwargs.get("page_size")
|
|
36
37
|
timestamp = current_timestamp()
|
|
37
38
|
|
|
38
39
|
credentials = TableauRevampCredentials(**kwargs)
|
|
39
|
-
client = TableauRevampClient(
|
|
40
|
+
client = TableauRevampClient(
|
|
41
|
+
credentials,
|
|
42
|
+
with_pulse=with_pulse,
|
|
43
|
+
override_page_size=page_size,
|
|
44
|
+
)
|
|
40
45
|
client.login()
|
|
41
46
|
|
|
42
47
|
for key, data in iterate_all_data(client):
|
|
@@ -3,6 +3,7 @@ import logging
|
|
|
3
3
|
from ...utils import AbstractStorage, LocalStorage, write_summary
|
|
4
4
|
from ...utils.salesforce import SalesforceCredentials
|
|
5
5
|
from ..abstract import (
|
|
6
|
+
EXTERNAL_LINEAGE_ASSETS,
|
|
6
7
|
SupportedAssets,
|
|
7
8
|
WarehouseAsset,
|
|
8
9
|
WarehouseAssetGroup,
|
|
@@ -21,7 +22,8 @@ SALESFORCE_CATALOG_ASSETS: tuple[WarehouseAsset, ...] = (
|
|
|
21
22
|
)
|
|
22
23
|
|
|
23
24
|
SALESFORCE_ASSETS: SupportedAssets = {
|
|
24
|
-
WarehouseAssetGroup.CATALOG: SALESFORCE_CATALOG_ASSETS
|
|
25
|
+
WarehouseAssetGroup.CATALOG: SALESFORCE_CATALOG_ASSETS,
|
|
26
|
+
WarehouseAssetGroup.EXTERNAL_LINEAGE: EXTERNAL_LINEAGE_ASSETS,
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: castor-extractor
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.23.2
|
|
4
4
|
Summary: Extract your metadata assets.
|
|
5
5
|
Home-page: https://www.castordoc.com/
|
|
6
6
|
License: EULA
|
|
@@ -30,7 +30,7 @@ Provides-Extra: snowflake
|
|
|
30
30
|
Provides-Extra: sqlserver
|
|
31
31
|
Provides-Extra: tableau
|
|
32
32
|
Requires-Dist: cryptography (>=43.0.0,<44.0.0) ; extra == "snowflake"
|
|
33
|
-
Requires-Dist: databricks-sql-connector (
|
|
33
|
+
Requires-Dist: databricks-sql-connector (==3.6.0) ; extra == "databricks" or extra == "all"
|
|
34
34
|
Requires-Dist: google-api-core (>=2.1.1,<3.0.0)
|
|
35
35
|
Requires-Dist: google-api-python-client (>=2.121.0,<3.0.0) ; extra == "lookerstudio" or extra == "all"
|
|
36
36
|
Requires-Dist: google-auth (>=2,<3)
|
|
@@ -204,14 +204,20 @@ For any questions or bug report, contact us at [support@castordoc.com](mailto:su
|
|
|
204
204
|
|
|
205
205
|
[Castor](https://castordoc.com) helps you find, understand, use your data assets
|
|
206
206
|
|
|
207
|
-
|
|
208
207
|
# Changelog
|
|
209
208
|
|
|
209
|
+
## 0.23.2 - 2025-02-17
|
|
210
|
+
|
|
211
|
+
* support page_size in Tableau extraction command
|
|
212
|
+
|
|
213
|
+
## 0.23.1 - 2025-02-10
|
|
214
|
+
|
|
215
|
+
* change command for Confluence from password to token to reflect better their documentation
|
|
216
|
+
|
|
210
217
|
## 0.22.6 - 2025-01-21
|
|
211
218
|
|
|
212
219
|
* bump dependencies: looker, databricks, deptry, ...
|
|
213
220
|
|
|
214
|
-
|
|
215
221
|
## 0.22.5 - 2025-01-09
|
|
216
222
|
|
|
217
223
|
* Databricks: validate and deduplicate lineage links
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
CHANGELOG.md,sha256=
|
|
1
|
+
CHANGELOG.md,sha256=s6P_wRcecQhMAvMkLLh7ZI79FCVyK3hs4Hoc_lE_Ers,15605
|
|
2
2
|
Dockerfile,sha256=xQ05-CFfGShT3oUqaiumaldwA288dj9Yb_pxofQpufg,301
|
|
3
3
|
DockerfileUsage.md,sha256=2hkJQF-5JuuzfPZ7IOxgM6QgIQW7l-9oRMFVwyXC4gE,998
|
|
4
4
|
LICENCE,sha256=sL-IGa4hweyya1HgzMskrRdybbIa2cktzxb5qmUgDg8,8254
|
|
@@ -6,7 +6,7 @@ README.md,sha256=uF6PXm9ocPITlKVSh9afTakHmpLx3TvawLf-CbMP3wM,3578
|
|
|
6
6
|
castor_extractor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
castor_extractor/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
castor_extractor/commands/extract_bigquery.py,sha256=dU4OiYO1V0n32orvZnMh1_xtFKF_VxHNXcVsH3otY-g,1269
|
|
9
|
-
castor_extractor/commands/extract_confluence.py,sha256=
|
|
9
|
+
castor_extractor/commands/extract_confluence.py,sha256=xQjC0VZdz8jFHnugqQ0fQGjzGq34v49cqcP4ONeVYNs,748
|
|
10
10
|
castor_extractor/commands/extract_databricks.py,sha256=SVKyoa-BBUQAM6HRHf1Wdg9-tpICic2yyvXQwHcNBhA,1264
|
|
11
11
|
castor_extractor/commands/extract_domo.py,sha256=jvAawUsUTHrwCn_koK6StmQr4n_b5GyvJi6uu6WS0SM,1061
|
|
12
12
|
castor_extractor/commands/extract_looker.py,sha256=cySLiolLCgrREJ9d0kMrJ7P8K3efHTBTzShalWVfI3A,1214
|
|
@@ -24,7 +24,7 @@ castor_extractor/commands/extract_salesforce_reporting.py,sha256=FdANTNiLkIPdm80
|
|
|
24
24
|
castor_extractor/commands/extract_sigma.py,sha256=sxewHcZ1Doq35V2qnpX_zCKKXkrb1_9bYjUMg7BOW-k,643
|
|
25
25
|
castor_extractor/commands/extract_snowflake.py,sha256=vYiruxRoo--GeMemOGsSE1w9kcKTh_y4E165HtMVzkM,1982
|
|
26
26
|
castor_extractor/commands/extract_sqlserver.py,sha256=lwhbcNChaXHZgMgSOch3faVr7WJw-sDU6GHl3lzBt_0,1141
|
|
27
|
-
castor_extractor/commands/extract_tableau.py,sha256=
|
|
27
|
+
castor_extractor/commands/extract_tableau.py,sha256=DGQaXS-61rV-uzBtqfvqtyQzjLtrLTzE1ViTXPG1eck,1379
|
|
28
28
|
castor_extractor/commands/extract_thoughtspot.py,sha256=caAYJlH-vK7u5IUB6OKXxcaWfLgc7d_XqnFDWK6YNS4,639
|
|
29
29
|
castor_extractor/commands/file_check.py,sha256=TJx76Ymd0QCECmq35zRJMkPE8DJtSInB28MuSXWk8Ao,2644
|
|
30
30
|
castor_extractor/commands/upload.py,sha256=rLXp7gQ8zb1kLbho4FT87q8eJd8Gvo_TkyIynAaQ-4s,1342
|
|
@@ -43,15 +43,15 @@ castor_extractor/knowledge/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
|
43
43
|
castor_extractor/knowledge/confluence/__init__.py,sha256=pRT615pMDlB7Ifs09erVn2EdpZHgkvX5selemWU3VPE,129
|
|
44
44
|
castor_extractor/knowledge/confluence/assets.py,sha256=zv2G2LB8H0fKDbVJ4kHrAjbqehXI_K-wgd_ghSXGFvs,144
|
|
45
45
|
castor_extractor/knowledge/confluence/client/__init__.py,sha256=ALAzo0JEhxFzH2FnIO6HmtkAGS2_bGY8KXXMcTGV3aE,84
|
|
46
|
-
castor_extractor/knowledge/confluence/client/client.py,sha256=
|
|
47
|
-
castor_extractor/knowledge/confluence/client/credentials.py,sha256=
|
|
46
|
+
castor_extractor/knowledge/confluence/client/client.py,sha256=lGLRBbAOkEXcEKwHwdBhgG5cvAUkzpSL-7pPcmZpsE8,2114
|
|
47
|
+
castor_extractor/knowledge/confluence/client/credentials.py,sha256=tqUMw-SVoAi4o6I6OeGk4MeDiIPU3-ihhaomXv4CQ64,419
|
|
48
48
|
castor_extractor/knowledge/confluence/client/endpoints.py,sha256=b7PIvw9_W942L4zsEZa__KhZDTo4yt-CdIO0eas69TE,736
|
|
49
49
|
castor_extractor/knowledge/confluence/client/pagination.py,sha256=ty4meiMEujDVSiQyOJTibd-ReYyDyGezdFuk7EAGtMA,862
|
|
50
50
|
castor_extractor/knowledge/confluence/extract.py,sha256=6pA68CmYNC50qCJ7NgZMW0jD4ev0a_ltI5kSyBqSC0U,1565
|
|
51
51
|
castor_extractor/knowledge/notion/__init__.py,sha256=ZDmh0eNSxHf1zVPm0aYlKPci-vzOXhAgdsWjS2hdjh4,117
|
|
52
52
|
castor_extractor/knowledge/notion/assets.py,sha256=QHv1-pomt5UeN_prP2L6t_zJ-tDSqB8LgopkGAODYPQ,164
|
|
53
53
|
castor_extractor/knowledge/notion/client/__init__.py,sha256=CDPorBCethuNTEtpjvHGcWnWeVfqkEq-IbakWjDKATw,76
|
|
54
|
-
castor_extractor/knowledge/notion/client/client.py,sha256=
|
|
54
|
+
castor_extractor/knowledge/notion/client/client.py,sha256=fUjdmQXVBA0Dn75s10-umjCovEavXt_qAdiXjUuYizM,3727
|
|
55
55
|
castor_extractor/knowledge/notion/client/client_test.py,sha256=fo3_WgCIUfeF3nMfHTSB6wjxIW_dHp1XZL41tNzBisQ,1976
|
|
56
56
|
castor_extractor/knowledge/notion/client/constants.py,sha256=dZCpSrxFlLbR_cFPJKz4M5wcMVcY4UfWFG0N5S22Fhw,147
|
|
57
57
|
castor_extractor/knowledge/notion/client/credentials.py,sha256=-mBY6IhAb9z2RP1MilzIyS3BW39J__u_M5n9uIuUlxA,398
|
|
@@ -139,7 +139,7 @@ castor_extractor/utils/time.py,sha256=jmP1QWg4lv21Jp_Oy71lfJ47hjNOSgHiBOFf964RMP
|
|
|
139
139
|
castor_extractor/utils/time_test.py,sha256=pH8DSosNlwDYZXZNNjYDcL0WbmZc_c212LEEn88Oqew,647
|
|
140
140
|
castor_extractor/utils/type.py,sha256=Sd8JlEgbGkBUZnRqCUDtREeBkOMTXtlNMyCph90_J0Q,328
|
|
141
141
|
castor_extractor/utils/validation.py,sha256=kQAFtqt3gfy7YqYQ0u-60vyNYUF_96he5QDVUQnZmDo,1896
|
|
142
|
-
castor_extractor/utils/validation_test.py,sha256=
|
|
142
|
+
castor_extractor/utils/validation_test.py,sha256=A7P6VmI0kYX2aGIeEN12y7LsY7Kpm8pE4bdVFhbBAMw,1184
|
|
143
143
|
castor_extractor/utils/write.py,sha256=Z_RYm47XeHiUPPUMYMuAjQrVZ18CAkL3daQHQG1XPlM,2148
|
|
144
144
|
castor_extractor/visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
145
145
|
castor_extractor/visualization/domo/__init__.py,sha256=1axOCPm4RpdIyUt9LQEvlMvbOPllW8rk63h6EjVgJ0Y,111
|
|
@@ -176,7 +176,7 @@ castor_extractor/visualization/looker_studio/client/client.py,sha256=AYdR46NOdn_
|
|
|
176
176
|
castor_extractor/visualization/looker_studio/client/credentials.py,sha256=yzTaiJQ5cArTnbybUPF6fZZXbX9XQ0SBq-jVI2ECovA,521
|
|
177
177
|
castor_extractor/visualization/looker_studio/client/endpoints.py,sha256=5eY-ffqNDdlDBOOpiF7LpjyHMrzeClJktidCr1pTDUs,669
|
|
178
178
|
castor_extractor/visualization/looker_studio/client/enums.py,sha256=fHgemTaQpnwee8cw1YQVDsVnH--vTyFwT4Px8aVYYHQ,167
|
|
179
|
-
castor_extractor/visualization/looker_studio/client/looker_studio_api_client.py,sha256=
|
|
179
|
+
castor_extractor/visualization/looker_studio/client/looker_studio_api_client.py,sha256=oySC6rsppj67RSifxwSCw4bFrz1Irx6IFJhX7tc_v1E,4087
|
|
180
180
|
castor_extractor/visualization/looker_studio/client/pagination.py,sha256=9HQ3Rkdiz2VB6AvYtZ0F-WouiD0pMmdZyAmkv-3wh08,783
|
|
181
181
|
castor_extractor/visualization/looker_studio/client/scopes.py,sha256=824cqqgZuGq4L-rPNoHJe0ibXsxkRwB0CLG_kqw9Q0g,256
|
|
182
182
|
castor_extractor/visualization/metabase/__init__.py,sha256=3E36cmkMyEgBB6Ot5rWk-N75i0G-7k24QTlc-Iol4pM,193
|
|
@@ -296,7 +296,7 @@ castor_extractor/visualization/tableau_revamp/__init__.py,sha256=a3DGjQhaz17gBqW
|
|
|
296
296
|
castor_extractor/visualization/tableau_revamp/assets.py,sha256=8sJsK6Qixao6xVmVaO1usvs16SjNub9sIx7o-adYV14,659
|
|
297
297
|
castor_extractor/visualization/tableau_revamp/client/__init__.py,sha256=wmS9uLtUiqNYVloi0-DgD8d2qzu3RVZEAtWiaDp6G_M,90
|
|
298
298
|
castor_extractor/visualization/tableau_revamp/client/client.py,sha256=Ju89lMDiLOZ2LjxylcFm5429WElxGxjc52bMIWoKCDA,7716
|
|
299
|
-
castor_extractor/visualization/tableau_revamp/client/client_metadata_api.py,sha256=
|
|
299
|
+
castor_extractor/visualization/tableau_revamp/client/client_metadata_api.py,sha256=WdALsMGTji2C5oSDyRwFzq-f5HZDwX-m3W8Byx87Qh4,4357
|
|
300
300
|
castor_extractor/visualization/tableau_revamp/client/client_rest_api.py,sha256=O2F4qfrElTHHuD5WRPfLufazSmZ65jmlzye1t5rVOaQ,4024
|
|
301
301
|
castor_extractor/visualization/tableau_revamp/client/client_tsc.py,sha256=AzN8ytKmq6HUeApTJ118JQ7EBEPESqrg7u8n3GZXqZI,1874
|
|
302
302
|
castor_extractor/visualization/tableau_revamp/client/credentials.py,sha256=qA-EaX-4rbQRsn8v4zWh5Kh784ndHLjJaoZwnkQgCyo,1905
|
|
@@ -304,7 +304,7 @@ castor_extractor/visualization/tableau_revamp/client/errors.py,sha256=ecT8Tit5Vt
|
|
|
304
304
|
castor_extractor/visualization/tableau_revamp/client/gql_queries.py,sha256=uKNGRhYeoiKfJ8vxO50L0a2fHDpYQgEdG_eZfYSdHqM,2238
|
|
305
305
|
castor_extractor/visualization/tableau_revamp/client/rest_fields.py,sha256=3kvaq48BCBLfm7GL-i5W53MpbmSSi-e0yt31dNOk8ac,948
|
|
306
306
|
castor_extractor/visualization/tableau_revamp/constants.py,sha256=lHGB50FgVNO2nXeIhkvQKivD8ZFBIjDrflgD5cTXKJw,104
|
|
307
|
-
castor_extractor/visualization/tableau_revamp/extract.py,sha256=
|
|
307
|
+
castor_extractor/visualization/tableau_revamp/extract.py,sha256=Ud_lt1YDSyCBjR38sjtvINy_Ez_TnA_jtM2D-8LcxPA,1471
|
|
308
308
|
castor_extractor/visualization/thoughtspot/__init__.py,sha256=NhTGUk5Kdt54oCjHYoAt0cLBmVLys5lFYiRANL6wCmI,150
|
|
309
309
|
castor_extractor/visualization/thoughtspot/assets.py,sha256=SAQWPKaD2NTSDg7-GSkcRSSEkKSws0MJfOVcHkdeTSg,276
|
|
310
310
|
castor_extractor/visualization/thoughtspot/client/__init__.py,sha256=svrE2rMxR-OXctjPeAHMEPePlfcra-9KDevTMcHunAA,86
|
|
@@ -400,7 +400,7 @@ castor_extractor/warehouse/redshift/query.py,sha256=hQaBHj0OvoEQ_HehU-vPyd5JH7Yg
|
|
|
400
400
|
castor_extractor/warehouse/salesforce/__init__.py,sha256=NR4aNea5jeE1xYqeZ_29deeN84CkN0_D_Z7CLQdJvFY,137
|
|
401
401
|
castor_extractor/warehouse/salesforce/client.py,sha256=067ZyccmIYoY6VwLTSneefOJqUpobtnoEzxJMY2oSPs,3268
|
|
402
402
|
castor_extractor/warehouse/salesforce/constants.py,sha256=GusduVBCPvwpk_Im6F3bDvXeNQ7hRnCMdIAjIg65RnE,52
|
|
403
|
-
castor_extractor/warehouse/salesforce/extract.py,sha256=
|
|
403
|
+
castor_extractor/warehouse/salesforce/extract.py,sha256=hqZ71HPJuu--mYuYgg0kRBCR_qqLdXOmB1fw5i5DbHE,3514
|
|
404
404
|
castor_extractor/warehouse/salesforce/format.py,sha256=M5uGA8aURL_Nt27T8R2tDfbU5ZUM3ECG4fGalEkWkYA,3688
|
|
405
405
|
castor_extractor/warehouse/salesforce/format_test.py,sha256=puTL-Co84jE2SQzKFKGLYU9rey4Ja_Ox8xiKy4iOjeo,3780
|
|
406
406
|
castor_extractor/warehouse/salesforce/pagination.py,sha256=m1S9JRNf6Oe-6dDghYUY5wwTzGzKW5H9pE60PCXMha0,920
|
|
@@ -436,8 +436,8 @@ castor_extractor/warehouse/sqlserver/queries/table.sql,sha256=kbBQP-TdG5px1IVgyx
|
|
|
436
436
|
castor_extractor/warehouse/sqlserver/queries/user.sql,sha256=gOrZsMVypusR2dc4vwVs4E1a-CliRsr_UjnD2EbXs-A,94
|
|
437
437
|
castor_extractor/warehouse/sqlserver/query.py,sha256=g0hPT-RmeGi2DyenAi3o72cTlQsLToXIFYojqc8E5fQ,533
|
|
438
438
|
castor_extractor/warehouse/synapse/queries/column.sql,sha256=lNcFoIW3Y0PFOqoOzJEXmPvZvfAsY0AP63Mu2LuPzPo,1351
|
|
439
|
-
castor_extractor-0.
|
|
440
|
-
castor_extractor-0.
|
|
441
|
-
castor_extractor-0.
|
|
442
|
-
castor_extractor-0.
|
|
443
|
-
castor_extractor-0.
|
|
439
|
+
castor_extractor-0.23.2.dist-info/LICENCE,sha256=sL-IGa4hweyya1HgzMskrRdybbIa2cktzxb5qmUgDg8,8254
|
|
440
|
+
castor_extractor-0.23.2.dist-info/METADATA,sha256=XaEyHkKuPo14vRz6eAIjuvl3lzn6496vYtkefRZMuOA,22621
|
|
441
|
+
castor_extractor-0.23.2.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
442
|
+
castor_extractor-0.23.2.dist-info/entry_points.txt,sha256=7aVSxc-_2dicp28Ow-S4y0p4wGoTm9zGmVptMvfLdw8,1649
|
|
443
|
+
castor_extractor-0.23.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|