luminesce-sdk 2.4.2__py3-none-any.whl → 2.4.6__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.
- luminesce/__init__.py +6 -0
- luminesce/api/current_table_field_catalog_api.py +18 -10
- luminesce/api/sql_background_execution_api.py +252 -18
- luminesce/api/sql_execution_api.py +32 -16
- luminesce/configuration.py +1 -1
- luminesce/models/__init__.py +6 -0
- luminesce/models/background_multi_query_response.py +16 -1
- luminesce/models/background_query_progress_response.py +8 -2
- luminesce/models/background_query_response.py +6 -1
- luminesce/models/column.py +7 -1
- luminesce/models/date_parameters.py +8 -1
- luminesce/models/lineage.py +149 -0
- luminesce/models/luminesce_binary_type.py +1 -0
- luminesce/models/lusid_grid_data.py +30 -2
- luminesce/models/sql_execution_flags.py +40 -0
- luminesce/models/table_lineage.py +106 -0
- {luminesce_sdk-2.4.2.dist-info → luminesce_sdk-2.4.6.dist-info}/METADATA +5 -1
- {luminesce_sdk-2.4.2.dist-info → luminesce_sdk-2.4.6.dist-info}/RECORD +19 -16
- {luminesce_sdk-2.4.2.dist-info → luminesce_sdk-2.4.6.dist-info}/WHEEL +1 -1
|
@@ -444,22 +444,22 @@ class SqlExecutionApi:
|
|
|
444
444
|
|
|
445
445
|
|
|
446
446
|
@overload
|
|
447
|
-
async def get_by_query_json(self, query : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (must be one line only)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, **kwargs) -> str: # noqa: E501
|
|
447
|
+
async def get_by_query_json(self, query : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (must be one line only)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, include_lineage : Annotated[Optional[StrictBool], Field(description="Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored")] = None, **kwargs) -> str: # noqa: E501
|
|
448
448
|
...
|
|
449
449
|
|
|
450
450
|
@overload
|
|
451
|
-
def get_by_query_json(self, query : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (must be one line only)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, async_req: Optional[bool]=True, **kwargs) -> str: # noqa: E501
|
|
451
|
+
def get_by_query_json(self, query : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (must be one line only)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, include_lineage : Annotated[Optional[StrictBool], Field(description="Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored")] = None, async_req: Optional[bool]=True, **kwargs) -> str: # noqa: E501
|
|
452
452
|
...
|
|
453
453
|
|
|
454
454
|
@validate_arguments
|
|
455
|
-
def get_by_query_json(self, query : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (must be one line only)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[str, Awaitable[str]]: # noqa: E501
|
|
455
|
+
def get_by_query_json(self, query : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (must be one line only)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, include_lineage : Annotated[Optional[StrictBool], Field(description="Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[str, Awaitable[str]]: # noqa: E501
|
|
456
456
|
"""GetByQueryJson: Execute Sql from the url returning JSON # noqa: E501
|
|
457
457
|
|
|
458
458
|
Returns data from a simple single-line query execution which is specified on the url. e.g. `select ^ from Sys.Field order by 1, 2`, returned in the format of the method name. The following error codes are to be anticipated with standard Problem Detail reports: - 400 BadRequest - something failed with the execution or parsing of your query - 401 Unauthorized - 403 Forbidden # noqa: E501
|
|
459
459
|
This method makes a synchronous HTTP request by default. To make an
|
|
460
460
|
asynchronous HTTP request, please pass async_req=True
|
|
461
461
|
|
|
462
|
-
>>> thread = api.get_by_query_json(query, scalar_parameters, query_name, timeout, json_proper, async_req=True)
|
|
462
|
+
>>> thread = api.get_by_query_json(query, scalar_parameters, query_name, timeout, json_proper, include_lineage, async_req=True)
|
|
463
463
|
>>> result = thread.get()
|
|
464
464
|
|
|
465
465
|
:param query: LuminesceSql to Execute (must be one line only) (required)
|
|
@@ -472,6 +472,8 @@ class SqlExecutionApi:
|
|
|
472
472
|
:type timeout: int
|
|
473
473
|
:param json_proper: Should this be text/json (not json-encoded-as-a-string)
|
|
474
474
|
:type json_proper: bool
|
|
475
|
+
:param include_lineage: Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored
|
|
476
|
+
:type include_lineage: bool
|
|
475
477
|
:param async_req: Whether to execute the request asynchronously.
|
|
476
478
|
:type async_req: bool, optional
|
|
477
479
|
:param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
|
|
@@ -488,17 +490,17 @@ class SqlExecutionApi:
|
|
|
488
490
|
raise ValueError(message)
|
|
489
491
|
if async_req is not None:
|
|
490
492
|
kwargs['async_req'] = async_req
|
|
491
|
-
return self.get_by_query_json_with_http_info(query, scalar_parameters, query_name, timeout, json_proper, **kwargs) # noqa: E501
|
|
493
|
+
return self.get_by_query_json_with_http_info(query, scalar_parameters, query_name, timeout, json_proper, include_lineage, **kwargs) # noqa: E501
|
|
492
494
|
|
|
493
495
|
@validate_arguments
|
|
494
|
-
def get_by_query_json_with_http_info(self, query : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (must be one line only)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
|
496
|
+
def get_by_query_json_with_http_info(self, query : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (must be one line only)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, include_lineage : Annotated[Optional[StrictBool], Field(description="Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
|
495
497
|
"""GetByQueryJson: Execute Sql from the url returning JSON # noqa: E501
|
|
496
498
|
|
|
497
499
|
Returns data from a simple single-line query execution which is specified on the url. e.g. `select ^ from Sys.Field order by 1, 2`, returned in the format of the method name. The following error codes are to be anticipated with standard Problem Detail reports: - 400 BadRequest - something failed with the execution or parsing of your query - 401 Unauthorized - 403 Forbidden # noqa: E501
|
|
498
500
|
This method makes a synchronous HTTP request by default. To make an
|
|
499
501
|
asynchronous HTTP request, please pass async_req=True
|
|
500
502
|
|
|
501
|
-
>>> thread = api.get_by_query_json_with_http_info(query, scalar_parameters, query_name, timeout, json_proper, async_req=True)
|
|
503
|
+
>>> thread = api.get_by_query_json_with_http_info(query, scalar_parameters, query_name, timeout, json_proper, include_lineage, async_req=True)
|
|
502
504
|
>>> result = thread.get()
|
|
503
505
|
|
|
504
506
|
:param query: LuminesceSql to Execute (must be one line only) (required)
|
|
@@ -511,6 +513,8 @@ class SqlExecutionApi:
|
|
|
511
513
|
:type timeout: int
|
|
512
514
|
:param json_proper: Should this be text/json (not json-encoded-as-a-string)
|
|
513
515
|
:type json_proper: bool
|
|
516
|
+
:param include_lineage: Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored
|
|
517
|
+
:type include_lineage: bool
|
|
514
518
|
:param async_req: Whether to execute the request asynchronously.
|
|
515
519
|
:type async_req: bool, optional
|
|
516
520
|
:param _preload_content: if False, the ApiResponse.data will
|
|
@@ -542,7 +546,8 @@ class SqlExecutionApi:
|
|
|
542
546
|
'scalar_parameters',
|
|
543
547
|
'query_name',
|
|
544
548
|
'timeout',
|
|
545
|
-
'json_proper'
|
|
549
|
+
'json_proper',
|
|
550
|
+
'include_lineage'
|
|
546
551
|
]
|
|
547
552
|
_all_params.extend(
|
|
548
553
|
[
|
|
@@ -589,6 +594,9 @@ class SqlExecutionApi:
|
|
|
589
594
|
if _params.get('json_proper') is not None: # noqa: E501
|
|
590
595
|
_query_params.append(('jsonProper', _params['json_proper']))
|
|
591
596
|
|
|
597
|
+
if _params.get('include_lineage') is not None: # noqa: E501
|
|
598
|
+
_query_params.append(('includeLineage', _params['include_lineage']))
|
|
599
|
+
|
|
592
600
|
# process the header parameters
|
|
593
601
|
_header_params = dict(_params.get('_headers', {}))
|
|
594
602
|
# process the form parameters
|
|
@@ -1769,22 +1777,22 @@ class SqlExecutionApi:
|
|
|
1769
1777
|
|
|
1770
1778
|
|
|
1771
1779
|
@overload
|
|
1772
|
-
async def put_by_query_json(self, body : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (may be multi-line)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout_seconds : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, **kwargs) -> str: # noqa: E501
|
|
1780
|
+
async def put_by_query_json(self, body : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (may be multi-line)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout_seconds : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, include_lineage : Annotated[Optional[StrictBool], Field(description="Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored")] = None, **kwargs) -> str: # noqa: E501
|
|
1773
1781
|
...
|
|
1774
1782
|
|
|
1775
1783
|
@overload
|
|
1776
|
-
def put_by_query_json(self, body : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (may be multi-line)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout_seconds : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, async_req: Optional[bool]=True, **kwargs) -> str: # noqa: E501
|
|
1784
|
+
def put_by_query_json(self, body : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (may be multi-line)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout_seconds : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, include_lineage : Annotated[Optional[StrictBool], Field(description="Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored")] = None, async_req: Optional[bool]=True, **kwargs) -> str: # noqa: E501
|
|
1777
1785
|
...
|
|
1778
1786
|
|
|
1779
1787
|
@validate_arguments
|
|
1780
|
-
def put_by_query_json(self, body : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (may be multi-line)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout_seconds : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[str, Awaitable[str]]: # noqa: E501
|
|
1788
|
+
def put_by_query_json(self, body : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (may be multi-line)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout_seconds : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, include_lineage : Annotated[Optional[StrictBool], Field(description="Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[str, Awaitable[str]]: # noqa: E501
|
|
1781
1789
|
"""PutByQueryJson: Execute Sql from the body returning JSON # noqa: E501
|
|
1782
1790
|
|
|
1783
1791
|
For more complex LuminesceSql a PUT will allow for longer and line break delimited Sql, whic will be returned in the format of the method name. e.g.: ```sql @@cutoff = select #2020-02-01#; @issues = select Id, SortId, Summary, Created, Updated from Dev.Jira.Issue where Project='HC' and Created < @@cutoff and Updated > @@cutoff; select i.Id, i.SortId, i.Summary, LinkText, LinkedIssueId, LinkedIssueSortId, LinkedIssueSummary from @issues i inner join Dev.Jira.Issue.Link li on i.Id = li.IssueId ``` The following error codes are to be anticipated with standard Problem Detail reports: - 400 BadRequest - something failed with the execution or parsing of your query - 401 Unauthorized - 403 Forbidden # noqa: E501
|
|
1784
1792
|
This method makes a synchronous HTTP request by default. To make an
|
|
1785
1793
|
asynchronous HTTP request, please pass async_req=True
|
|
1786
1794
|
|
|
1787
|
-
>>> thread = api.put_by_query_json(body, scalar_parameters, query_name, timeout_seconds, json_proper, async_req=True)
|
|
1795
|
+
>>> thread = api.put_by_query_json(body, scalar_parameters, query_name, timeout_seconds, json_proper, include_lineage, async_req=True)
|
|
1788
1796
|
>>> result = thread.get()
|
|
1789
1797
|
|
|
1790
1798
|
:param body: LuminesceSql to Execute (may be multi-line) (required)
|
|
@@ -1797,6 +1805,8 @@ class SqlExecutionApi:
|
|
|
1797
1805
|
:type timeout_seconds: int
|
|
1798
1806
|
:param json_proper: Should this be text/json (not json-encoded-as-a-string)
|
|
1799
1807
|
:type json_proper: bool
|
|
1808
|
+
:param include_lineage: Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored
|
|
1809
|
+
:type include_lineage: bool
|
|
1800
1810
|
:param async_req: Whether to execute the request asynchronously.
|
|
1801
1811
|
:type async_req: bool, optional
|
|
1802
1812
|
:param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
|
|
@@ -1813,17 +1823,17 @@ class SqlExecutionApi:
|
|
|
1813
1823
|
raise ValueError(message)
|
|
1814
1824
|
if async_req is not None:
|
|
1815
1825
|
kwargs['async_req'] = async_req
|
|
1816
|
-
return self.put_by_query_json_with_http_info(body, scalar_parameters, query_name, timeout_seconds, json_proper, **kwargs) # noqa: E501
|
|
1826
|
+
return self.put_by_query_json_with_http_info(body, scalar_parameters, query_name, timeout_seconds, json_proper, include_lineage, **kwargs) # noqa: E501
|
|
1817
1827
|
|
|
1818
1828
|
@validate_arguments
|
|
1819
|
-
def put_by_query_json_with_http_info(self, body : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (may be multi-line)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout_seconds : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
|
1829
|
+
def put_by_query_json_with_http_info(self, body : Annotated[StrictStr, Field(..., description="LuminesceSql to Execute (may be multi-line)")], scalar_parameters : Annotated[Optional[Dict[str, Dict[str, StrictStr]]], Field(description="Json encoded dictionary of key-value pairs for scalar parameter values to use in the sql execution.")] = None, query_name : Annotated[Optional[StrictStr], Field( description="Name to apply to the query in logs and `Sys.Logs.HcQueryStart`")] = None, timeout_seconds : Annotated[Optional[StrictInt], Field(description="In seconds: <0 or > 175 → 175s (Maximum allowed), 0 → 120s")] = None, json_proper : Annotated[Optional[StrictBool], Field(description="Should this be text/json (not json-encoded-as-a-string)")] = None, include_lineage : Annotated[Optional[StrictBool], Field(description="Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
|
1820
1830
|
"""PutByQueryJson: Execute Sql from the body returning JSON # noqa: E501
|
|
1821
1831
|
|
|
1822
1832
|
For more complex LuminesceSql a PUT will allow for longer and line break delimited Sql, whic will be returned in the format of the method name. e.g.: ```sql @@cutoff = select #2020-02-01#; @issues = select Id, SortId, Summary, Created, Updated from Dev.Jira.Issue where Project='HC' and Created < @@cutoff and Updated > @@cutoff; select i.Id, i.SortId, i.Summary, LinkText, LinkedIssueId, LinkedIssueSortId, LinkedIssueSummary from @issues i inner join Dev.Jira.Issue.Link li on i.Id = li.IssueId ``` The following error codes are to be anticipated with standard Problem Detail reports: - 400 BadRequest - something failed with the execution or parsing of your query - 401 Unauthorized - 403 Forbidden # noqa: E501
|
|
1823
1833
|
This method makes a synchronous HTTP request by default. To make an
|
|
1824
1834
|
asynchronous HTTP request, please pass async_req=True
|
|
1825
1835
|
|
|
1826
|
-
>>> thread = api.put_by_query_json_with_http_info(body, scalar_parameters, query_name, timeout_seconds, json_proper, async_req=True)
|
|
1836
|
+
>>> thread = api.put_by_query_json_with_http_info(body, scalar_parameters, query_name, timeout_seconds, json_proper, include_lineage, async_req=True)
|
|
1827
1837
|
>>> result = thread.get()
|
|
1828
1838
|
|
|
1829
1839
|
:param body: LuminesceSql to Execute (may be multi-line) (required)
|
|
@@ -1836,6 +1846,8 @@ class SqlExecutionApi:
|
|
|
1836
1846
|
:type timeout_seconds: int
|
|
1837
1847
|
:param json_proper: Should this be text/json (not json-encoded-as-a-string)
|
|
1838
1848
|
:type json_proper: bool
|
|
1849
|
+
:param include_lineage: Should lineage be included? If true this will be `properJson` and the jsonProper flag ignored
|
|
1850
|
+
:type include_lineage: bool
|
|
1839
1851
|
:param async_req: Whether to execute the request asynchronously.
|
|
1840
1852
|
:type async_req: bool, optional
|
|
1841
1853
|
:param _preload_content: if False, the ApiResponse.data will
|
|
@@ -1867,7 +1879,8 @@ class SqlExecutionApi:
|
|
|
1867
1879
|
'scalar_parameters',
|
|
1868
1880
|
'query_name',
|
|
1869
1881
|
'timeout_seconds',
|
|
1870
|
-
'json_proper'
|
|
1882
|
+
'json_proper',
|
|
1883
|
+
'include_lineage'
|
|
1871
1884
|
]
|
|
1872
1885
|
_all_params.extend(
|
|
1873
1886
|
[
|
|
@@ -1911,6 +1924,9 @@ class SqlExecutionApi:
|
|
|
1911
1924
|
if _params.get('json_proper') is not None: # noqa: E501
|
|
1912
1925
|
_query_params.append(('jsonProper', _params['json_proper']))
|
|
1913
1926
|
|
|
1927
|
+
if _params.get('include_lineage') is not None: # noqa: E501
|
|
1928
|
+
_query_params.append(('includeLineage', _params['include_lineage']))
|
|
1929
|
+
|
|
1914
1930
|
# process the header parameters
|
|
1915
1931
|
_header_params = dict(_params.get('_headers', {}))
|
|
1916
1932
|
# process the form parameters
|
luminesce/configuration.py
CHANGED
|
@@ -445,7 +445,7 @@ class Configuration:
|
|
|
445
445
|
return "Python SDK Debug Report:\n"\
|
|
446
446
|
"OS: {env}\n"\
|
|
447
447
|
"Python Version: {pyversion}\n"\
|
|
448
|
-
"Version of the API: 1.19.
|
|
448
|
+
"Version of the API: 1.19.160\n"\
|
|
449
449
|
"SDK Package Version: {package_version}".\
|
|
450
450
|
format(env=sys.platform, pyversion=sys.version, package_version=package_version)
|
|
451
451
|
|
luminesce/models/__init__.py
CHANGED
|
@@ -67,6 +67,7 @@ from luminesce.models.intellisense_request import IntellisenseRequest
|
|
|
67
67
|
from luminesce.models.intellisense_response import IntellisenseResponse
|
|
68
68
|
from luminesce.models.intellisense_type import IntellisenseType
|
|
69
69
|
from luminesce.models.joined_table_design import JoinedTableDesign
|
|
70
|
+
from luminesce.models.lineage import Lineage
|
|
70
71
|
from luminesce.models.link import Link
|
|
71
72
|
from luminesce.models.luminesce_binary_type import LuminesceBinaryType
|
|
72
73
|
from luminesce.models.lusid_grid_data import LusidGridData
|
|
@@ -90,6 +91,8 @@ from luminesce.models.resource_list_of_access_controlled_resource import Resourc
|
|
|
90
91
|
from luminesce.models.scalar_parameter import ScalarParameter
|
|
91
92
|
from luminesce.models.source import Source
|
|
92
93
|
from luminesce.models.source_type import SourceType
|
|
94
|
+
from luminesce.models.sql_execution_flags import SqlExecutionFlags
|
|
95
|
+
from luminesce.models.table_lineage import TableLineage
|
|
93
96
|
from luminesce.models.table_meta import TableMeta
|
|
94
97
|
from luminesce.models.table_view import TableView
|
|
95
98
|
from luminesce.models.task_status import TaskStatus
|
|
@@ -152,6 +155,7 @@ __all__ = [
|
|
|
152
155
|
"IntellisenseResponse",
|
|
153
156
|
"IntellisenseType",
|
|
154
157
|
"JoinedTableDesign",
|
|
158
|
+
"Lineage",
|
|
155
159
|
"Link",
|
|
156
160
|
"LuminesceBinaryType",
|
|
157
161
|
"LusidGridData",
|
|
@@ -175,6 +179,8 @@ __all__ = [
|
|
|
175
179
|
"ScalarParameter",
|
|
176
180
|
"Source",
|
|
177
181
|
"SourceType",
|
|
182
|
+
"SqlExecutionFlags",
|
|
183
|
+
"TableLineage",
|
|
178
184
|
"TableMeta",
|
|
179
185
|
"TableView",
|
|
180
186
|
"TaskStatus",
|
|
@@ -33,6 +33,7 @@ class BackgroundMultiQueryResponse(BaseModel):
|
|
|
33
33
|
cancel: Optional[Link] = None
|
|
34
34
|
fetch_json: Optional[List[Link]] = Field(default=None, description="Json (as a string) data request links for all of the child queries", alias="fetchJson")
|
|
35
35
|
fetch_json_proper: Optional[List[Link]] = Field(default=None, description="Json-proper data request links for all of the child queries", alias="fetchJsonProper")
|
|
36
|
+
fetch_json_proper_with_lineage: Optional[List[Link]] = Field(default=None, description="Json-proper-with-lineage data request links for all of the child queries", alias="fetchJsonProperWithLineage")
|
|
36
37
|
fetch_xml: Optional[List[Link]] = Field(default=None, description="Xml data request links for all of the child queries", alias="fetchXml")
|
|
37
38
|
fetch_parquet: Optional[List[Link]] = Field(default=None, description="Parquet data request links for all of the child queries", alias="fetchParquet")
|
|
38
39
|
fetch_csv: Optional[List[Link]] = Field(default=None, description="CSV data request links for all of the child queries", alias="fetchCsv")
|
|
@@ -40,7 +41,7 @@ class BackgroundMultiQueryResponse(BaseModel):
|
|
|
40
41
|
fetch_excel: Optional[List[Link]] = Field(default=None, description="Excel workbook data request links for all of the child queries", alias="fetchExcel")
|
|
41
42
|
fetch_sqlite: Optional[List[Link]] = Field(default=None, description="SqLite DB data request links for all of the child queries", alias="fetchSqlite")
|
|
42
43
|
histogram: Optional[List[Link]] = Field(default=None, description="Histogram links for all of the child queries")
|
|
43
|
-
__properties = ["executionId", "progress", "cancel", "fetchJson", "fetchJsonProper", "fetchXml", "fetchParquet", "fetchCsv", "fetchPipe", "fetchExcel", "fetchSqlite", "histogram"]
|
|
44
|
+
__properties = ["executionId", "progress", "cancel", "fetchJson", "fetchJsonProper", "fetchJsonProperWithLineage", "fetchXml", "fetchParquet", "fetchCsv", "fetchPipe", "fetchExcel", "fetchSqlite", "histogram"]
|
|
44
45
|
|
|
45
46
|
class Config:
|
|
46
47
|
"""Pydantic configuration"""
|
|
@@ -75,6 +76,7 @@ class BackgroundMultiQueryResponse(BaseModel):
|
|
|
75
76
|
"execution_id",
|
|
76
77
|
"fetch_json",
|
|
77
78
|
"fetch_json_proper",
|
|
79
|
+
"fetch_json_proper_with_lineage",
|
|
78
80
|
"fetch_xml",
|
|
79
81
|
"fetch_parquet",
|
|
80
82
|
"fetch_csv",
|
|
@@ -104,6 +106,13 @@ class BackgroundMultiQueryResponse(BaseModel):
|
|
|
104
106
|
if _item:
|
|
105
107
|
_items.append(_item.to_dict())
|
|
106
108
|
_dict['fetchJsonProper'] = _items
|
|
109
|
+
# override the default output from pydantic by calling `to_dict()` of each item in fetch_json_proper_with_lineage (list)
|
|
110
|
+
_items = []
|
|
111
|
+
if self.fetch_json_proper_with_lineage:
|
|
112
|
+
for _item in self.fetch_json_proper_with_lineage:
|
|
113
|
+
if _item:
|
|
114
|
+
_items.append(_item.to_dict())
|
|
115
|
+
_dict['fetchJsonProperWithLineage'] = _items
|
|
107
116
|
# override the default output from pydantic by calling `to_dict()` of each item in fetch_xml (list)
|
|
108
117
|
_items = []
|
|
109
118
|
if self.fetch_xml:
|
|
@@ -163,6 +172,11 @@ class BackgroundMultiQueryResponse(BaseModel):
|
|
|
163
172
|
if self.fetch_json_proper is None and "fetch_json_proper" in self.__fields_set__:
|
|
164
173
|
_dict['fetchJsonProper'] = None
|
|
165
174
|
|
|
175
|
+
# set to None if fetch_json_proper_with_lineage (nullable) is None
|
|
176
|
+
# and __fields_set__ contains the field
|
|
177
|
+
if self.fetch_json_proper_with_lineage is None and "fetch_json_proper_with_lineage" in self.__fields_set__:
|
|
178
|
+
_dict['fetchJsonProperWithLineage'] = None
|
|
179
|
+
|
|
166
180
|
# set to None if fetch_xml (nullable) is None
|
|
167
181
|
# and __fields_set__ contains the field
|
|
168
182
|
if self.fetch_xml is None and "fetch_xml" in self.__fields_set__:
|
|
@@ -215,6 +229,7 @@ class BackgroundMultiQueryResponse(BaseModel):
|
|
|
215
229
|
"cancel": Link.from_dict(obj.get("cancel")) if obj.get("cancel") is not None else None,
|
|
216
230
|
"fetch_json": [Link.from_dict(_item) for _item in obj.get("fetchJson")] if obj.get("fetchJson") is not None else None,
|
|
217
231
|
"fetch_json_proper": [Link.from_dict(_item) for _item in obj.get("fetchJsonProper")] if obj.get("fetchJsonProper") is not None else None,
|
|
232
|
+
"fetch_json_proper_with_lineage": [Link.from_dict(_item) for _item in obj.get("fetchJsonProperWithLineage")] if obj.get("fetchJsonProperWithLineage") is not None else None,
|
|
218
233
|
"fetch_xml": [Link.from_dict(_item) for _item in obj.get("fetchXml")] if obj.get("fetchXml") is not None else None,
|
|
219
234
|
"fetch_parquet": [Link.from_dict(_item) for _item in obj.get("fetchParquet")] if obj.get("fetchParquet") is not None else None,
|
|
220
235
|
"fetch_csv": [Link.from_dict(_item) for _item in obj.get("fetchCsv")] if obj.get("fetchCsv") is not None else None,
|
|
@@ -25,6 +25,7 @@ from datetime import datetime
|
|
|
25
25
|
from luminesce.models.background_query_state import BackgroundQueryState
|
|
26
26
|
from luminesce.models.column import Column
|
|
27
27
|
from luminesce.models.feedback_event_args import FeedbackEventArgs
|
|
28
|
+
from luminesce.models.table_lineage import TableLineage
|
|
28
29
|
from luminesce.models.task_status import TaskStatus
|
|
29
30
|
|
|
30
31
|
class BackgroundQueryProgressResponse(BaseModel):
|
|
@@ -40,7 +41,8 @@ class BackgroundQueryProgressResponse(BaseModel):
|
|
|
40
41
|
query: Optional[StrictStr] = Field(None,alias="query", description="The LuminesceSql of the original request")
|
|
41
42
|
query_name: Optional[StrictStr] = Field(None,alias="queryName", description="The QueryName given in the original request")
|
|
42
43
|
columns_available: Optional[List[Column]] = Field(default=None, description="When HasData is true this is the schema of columns that will be returned if the data is requested", alias="columnsAvailable")
|
|
43
|
-
|
|
44
|
+
lineage: Optional[TableLineage] = None
|
|
45
|
+
__properties = ["hasData", "rowCount", "status", "state", "progress", "feedback", "query", "queryName", "columnsAvailable", "lineage"]
|
|
44
46
|
|
|
45
47
|
class Config:
|
|
46
48
|
"""Pydantic configuration"""
|
|
@@ -88,6 +90,9 @@ class BackgroundQueryProgressResponse(BaseModel):
|
|
|
88
90
|
if _item:
|
|
89
91
|
_items.append(_item.to_dict())
|
|
90
92
|
_dict['columnsAvailable'] = _items
|
|
93
|
+
# override the default output from pydantic by calling `to_dict()` of lineage
|
|
94
|
+
if self.lineage:
|
|
95
|
+
_dict['lineage'] = self.lineage.to_dict()
|
|
91
96
|
# set to None if progress (nullable) is None
|
|
92
97
|
# and __fields_set__ contains the field
|
|
93
98
|
if self.progress is None and "progress" in self.__fields_set__:
|
|
@@ -133,7 +138,8 @@ class BackgroundQueryProgressResponse(BaseModel):
|
|
|
133
138
|
"feedback": [FeedbackEventArgs.from_dict(_item) for _item in obj.get("feedback")] if obj.get("feedback") is not None else None,
|
|
134
139
|
"query": obj.get("query"),
|
|
135
140
|
"query_name": obj.get("queryName"),
|
|
136
|
-
"columns_available": [Column.from_dict(_item) for _item in obj.get("columnsAvailable")] if obj.get("columnsAvailable") is not None else None
|
|
141
|
+
"columns_available": [Column.from_dict(_item) for _item in obj.get("columnsAvailable")] if obj.get("columnsAvailable") is not None else None,
|
|
142
|
+
"lineage": TableLineage.from_dict(obj.get("lineage")) if obj.get("lineage") is not None else None
|
|
137
143
|
})
|
|
138
144
|
return _obj
|
|
139
145
|
|
|
@@ -33,6 +33,7 @@ class BackgroundQueryResponse(BaseModel):
|
|
|
33
33
|
cancel: Optional[Link] = None
|
|
34
34
|
fetch_json: Optional[Link] = Field(default=None, alias="fetchJson")
|
|
35
35
|
fetch_json_proper: Optional[Link] = Field(default=None, alias="fetchJsonProper")
|
|
36
|
+
fetch_json_proper_with_lineage: Optional[Link] = Field(default=None, alias="fetchJsonProperWithLineage")
|
|
36
37
|
fetch_xml: Optional[Link] = Field(default=None, alias="fetchXml")
|
|
37
38
|
fetch_parquet: Optional[Link] = Field(default=None, alias="fetchParquet")
|
|
38
39
|
fetch_csv: Optional[Link] = Field(default=None, alias="fetchCsv")
|
|
@@ -40,7 +41,7 @@ class BackgroundQueryResponse(BaseModel):
|
|
|
40
41
|
fetch_excel: Optional[Link] = Field(default=None, alias="fetchExcel")
|
|
41
42
|
fetch_sqlite: Optional[Link] = Field(default=None, alias="fetchSqlite")
|
|
42
43
|
histogram: Optional[Link] = None
|
|
43
|
-
__properties = ["executionId", "progress", "cancel", "fetchJson", "fetchJsonProper", "fetchXml", "fetchParquet", "fetchCsv", "fetchPipe", "fetchExcel", "fetchSqlite", "histogram"]
|
|
44
|
+
__properties = ["executionId", "progress", "cancel", "fetchJson", "fetchJsonProper", "fetchJsonProperWithLineage", "fetchXml", "fetchParquet", "fetchCsv", "fetchPipe", "fetchExcel", "fetchSqlite", "histogram"]
|
|
44
45
|
|
|
45
46
|
class Config:
|
|
46
47
|
"""Pydantic configuration"""
|
|
@@ -86,6 +87,9 @@ class BackgroundQueryResponse(BaseModel):
|
|
|
86
87
|
# override the default output from pydantic by calling `to_dict()` of fetch_json_proper
|
|
87
88
|
if self.fetch_json_proper:
|
|
88
89
|
_dict['fetchJsonProper'] = self.fetch_json_proper.to_dict()
|
|
90
|
+
# override the default output from pydantic by calling `to_dict()` of fetch_json_proper_with_lineage
|
|
91
|
+
if self.fetch_json_proper_with_lineage:
|
|
92
|
+
_dict['fetchJsonProperWithLineage'] = self.fetch_json_proper_with_lineage.to_dict()
|
|
89
93
|
# override the default output from pydantic by calling `to_dict()` of fetch_xml
|
|
90
94
|
if self.fetch_xml:
|
|
91
95
|
_dict['fetchXml'] = self.fetch_xml.to_dict()
|
|
@@ -129,6 +133,7 @@ class BackgroundQueryResponse(BaseModel):
|
|
|
129
133
|
"cancel": Link.from_dict(obj.get("cancel")) if obj.get("cancel") is not None else None,
|
|
130
134
|
"fetch_json": Link.from_dict(obj.get("fetchJson")) if obj.get("fetchJson") is not None else None,
|
|
131
135
|
"fetch_json_proper": Link.from_dict(obj.get("fetchJsonProper")) if obj.get("fetchJsonProper") is not None else None,
|
|
136
|
+
"fetch_json_proper_with_lineage": Link.from_dict(obj.get("fetchJsonProperWithLineage")) if obj.get("fetchJsonProperWithLineage") is not None else None,
|
|
132
137
|
"fetch_xml": Link.from_dict(obj.get("fetchXml")) if obj.get("fetchXml") is not None else None,
|
|
133
138
|
"fetch_parquet": Link.from_dict(obj.get("fetchParquet")) if obj.get("fetchParquet") is not None else None,
|
|
134
139
|
"fetch_csv": Link.from_dict(obj.get("fetchCsv")) if obj.get("fetchCsv") is not None else None,
|
luminesce/models/column.py
CHANGED
|
@@ -24,6 +24,7 @@ from pydantic.v1 import BaseModel, StrictStr, StrictInt, StrictBool, StrictFloat
|
|
|
24
24
|
from datetime import datetime
|
|
25
25
|
from luminesce.models.condition_attributes import ConditionAttributes
|
|
26
26
|
from luminesce.models.data_type import DataType
|
|
27
|
+
from luminesce.models.lineage import Lineage
|
|
27
28
|
|
|
28
29
|
class Column(BaseModel):
|
|
29
30
|
"""
|
|
@@ -33,6 +34,7 @@ class Column(BaseModel):
|
|
|
33
34
|
is_main: Optional[StrictBool] = Field(default=None, alias="isMain")
|
|
34
35
|
is_required_by_provider: Optional[StrictBool] = Field(default=None, alias="isRequiredByProvider")
|
|
35
36
|
mandatory_for_actions: Optional[StrictStr] = Field(None,alias="mandatoryForActions")
|
|
37
|
+
lineage: Optional[Lineage] = None
|
|
36
38
|
name: Optional[StrictStr] = Field(None,alias="name")
|
|
37
39
|
type: Optional[DataType] = None
|
|
38
40
|
description: Optional[StrictStr] = Field(None,alias="description")
|
|
@@ -40,7 +42,7 @@ class Column(BaseModel):
|
|
|
40
42
|
condition_usage: Optional[ConditionAttributes] = Field(default=None, alias="conditionUsage")
|
|
41
43
|
sample_values: Optional[StrictStr] = Field(None,alias="sampleValues")
|
|
42
44
|
allowed_values: Optional[StrictStr] = Field(None,alias="allowedValues")
|
|
43
|
-
__properties = ["isPrimaryKey", "isMain", "isRequiredByProvider", "mandatoryForActions", "name", "type", "description", "displayName", "conditionUsage", "sampleValues", "allowedValues"]
|
|
45
|
+
__properties = ["isPrimaryKey", "isMain", "isRequiredByProvider", "mandatoryForActions", "lineage", "name", "type", "description", "displayName", "conditionUsage", "sampleValues", "allowedValues"]
|
|
44
46
|
|
|
45
47
|
class Config:
|
|
46
48
|
"""Pydantic configuration"""
|
|
@@ -74,6 +76,9 @@ class Column(BaseModel):
|
|
|
74
76
|
exclude={
|
|
75
77
|
},
|
|
76
78
|
exclude_none=True)
|
|
79
|
+
# override the default output from pydantic by calling `to_dict()` of lineage
|
|
80
|
+
if self.lineage:
|
|
81
|
+
_dict['lineage'] = self.lineage.to_dict()
|
|
77
82
|
# set to None if mandatory_for_actions (nullable) is None
|
|
78
83
|
# and __fields_set__ contains the field
|
|
79
84
|
if self.mandatory_for_actions is None and "mandatory_for_actions" in self.__fields_set__:
|
|
@@ -120,6 +125,7 @@ class Column(BaseModel):
|
|
|
120
125
|
"is_main": obj.get("isMain"),
|
|
121
126
|
"is_required_by_provider": obj.get("isRequiredByProvider"),
|
|
122
127
|
"mandatory_for_actions": obj.get("mandatoryForActions"),
|
|
128
|
+
"lineage": Lineage.from_dict(obj.get("lineage")) if obj.get("lineage") is not None else None,
|
|
123
129
|
"name": obj.get("name"),
|
|
124
130
|
"type": obj.get("type"),
|
|
125
131
|
"description": obj.get("description"),
|
|
@@ -30,8 +30,9 @@ class DateParameters(BaseModel):
|
|
|
30
30
|
date_from: Optional[datetime] = Field(default=None, description="Parameter to determine the lower bound in a date range", alias="dateFrom")
|
|
31
31
|
date_to: Optional[datetime] = Field(default=None, description="Parameter to determine the upper bound in a date range", alias="dateTo")
|
|
32
32
|
effective_at: Optional[datetime] = Field(default=None, description="EffectiveAt of the dashboard", alias="effectiveAt")
|
|
33
|
+
effective_from: Optional[datetime] = Field(default=None, description="EffectiveFrom of the dashboard", alias="effectiveFrom")
|
|
33
34
|
as_at: datetime = Field(description="AsAt of the dashboard", alias="asAt")
|
|
34
|
-
__properties = ["dateFrom", "dateTo", "effectiveAt", "asAt"]
|
|
35
|
+
__properties = ["dateFrom", "dateTo", "effectiveAt", "effectiveFrom", "asAt"]
|
|
35
36
|
|
|
36
37
|
class Config:
|
|
37
38
|
"""Pydantic configuration"""
|
|
@@ -80,6 +81,11 @@ class DateParameters(BaseModel):
|
|
|
80
81
|
if self.effective_at is None and "effective_at" in self.__fields_set__:
|
|
81
82
|
_dict['effectiveAt'] = None
|
|
82
83
|
|
|
84
|
+
# set to None if effective_from (nullable) is None
|
|
85
|
+
# and __fields_set__ contains the field
|
|
86
|
+
if self.effective_from is None and "effective_from" in self.__fields_set__:
|
|
87
|
+
_dict['effectiveFrom'] = None
|
|
88
|
+
|
|
83
89
|
return _dict
|
|
84
90
|
|
|
85
91
|
@classmethod
|
|
@@ -95,6 +101,7 @@ class DateParameters(BaseModel):
|
|
|
95
101
|
"date_from": obj.get("dateFrom"),
|
|
96
102
|
"date_to": obj.get("dateTo"),
|
|
97
103
|
"effective_at": obj.get("effectiveAt"),
|
|
104
|
+
"effective_from": obj.get("effectiveFrom"),
|
|
98
105
|
"as_at": obj.get("asAt")
|
|
99
106
|
})
|
|
100
107
|
return _obj
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
FINBOURNE Luminesce Web API
|
|
5
|
+
|
|
6
|
+
FINBOURNE Technology # noqa: E501
|
|
7
|
+
|
|
8
|
+
Contact: info@finbourne.com
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
from typing import List, Dict, Optional, Any, Union, TYPE_CHECKING
|
|
22
|
+
from typing_extensions import Annotated
|
|
23
|
+
from pydantic.v1 import BaseModel, StrictStr, StrictInt, StrictBool, StrictFloat, StrictBytes, Field, validator, ValidationError, conlist, constr
|
|
24
|
+
from datetime import datetime
|
|
25
|
+
|
|
26
|
+
class Lineage(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
Lineage
|
|
29
|
+
"""
|
|
30
|
+
type: Optional[StrictStr] = Field(None,alias="type")
|
|
31
|
+
subtype: Optional[StrictStr] = Field(None,alias="subtype")
|
|
32
|
+
alias: Optional[StrictStr] = Field(None,alias="alias")
|
|
33
|
+
display_name: Optional[StrictStr] = Field(None,alias="displayName")
|
|
34
|
+
description: Optional[StrictStr] = Field(None,alias="description")
|
|
35
|
+
documentation_as_html: Optional[StrictStr] = Field(None,alias="documentationAsHtml")
|
|
36
|
+
documentation_as_mark_down: Optional[StrictStr] = Field(None,alias="documentationAsMarkDown")
|
|
37
|
+
full_text: Optional[StrictStr] = Field(None,alias="fullText")
|
|
38
|
+
children: Optional[List[Lineage]] = None
|
|
39
|
+
__properties = ["type", "subtype", "alias", "displayName", "description", "documentationAsHtml", "documentationAsMarkDown", "fullText", "children"]
|
|
40
|
+
|
|
41
|
+
class Config:
|
|
42
|
+
"""Pydantic configuration"""
|
|
43
|
+
allow_population_by_field_name = True
|
|
44
|
+
validate_assignment = True
|
|
45
|
+
|
|
46
|
+
def __str__(self):
|
|
47
|
+
"""For `print` and `pprint`"""
|
|
48
|
+
return pprint.pformat(self.dict(by_alias=False))
|
|
49
|
+
|
|
50
|
+
def __repr__(self):
|
|
51
|
+
"""For `print` and `pprint`"""
|
|
52
|
+
return self.to_str()
|
|
53
|
+
|
|
54
|
+
def to_str(self) -> str:
|
|
55
|
+
"""Returns the string representation of the model using alias"""
|
|
56
|
+
return pprint.pformat(self.dict(by_alias=True))
|
|
57
|
+
|
|
58
|
+
def to_json(self) -> str:
|
|
59
|
+
"""Returns the JSON representation of the model using alias"""
|
|
60
|
+
return json.dumps(self.to_dict())
|
|
61
|
+
|
|
62
|
+
@classmethod
|
|
63
|
+
def from_json(cls, json_str: str) -> Lineage:
|
|
64
|
+
"""Create an instance of Lineage from a JSON string"""
|
|
65
|
+
return cls.from_dict(json.loads(json_str))
|
|
66
|
+
|
|
67
|
+
def to_dict(self):
|
|
68
|
+
"""Returns the dictionary representation of the model using alias"""
|
|
69
|
+
_dict = self.dict(by_alias=True,
|
|
70
|
+
exclude={
|
|
71
|
+
},
|
|
72
|
+
exclude_none=True)
|
|
73
|
+
# override the default output from pydantic by calling `to_dict()` of each item in children (list)
|
|
74
|
+
_items = []
|
|
75
|
+
if self.children:
|
|
76
|
+
for _item in self.children:
|
|
77
|
+
if _item:
|
|
78
|
+
_items.append(_item.to_dict())
|
|
79
|
+
_dict['children'] = _items
|
|
80
|
+
# set to None if type (nullable) is None
|
|
81
|
+
# and __fields_set__ contains the field
|
|
82
|
+
if self.type is None and "type" in self.__fields_set__:
|
|
83
|
+
_dict['type'] = None
|
|
84
|
+
|
|
85
|
+
# set to None if subtype (nullable) is None
|
|
86
|
+
# and __fields_set__ contains the field
|
|
87
|
+
if self.subtype is None and "subtype" in self.__fields_set__:
|
|
88
|
+
_dict['subtype'] = None
|
|
89
|
+
|
|
90
|
+
# set to None if alias (nullable) is None
|
|
91
|
+
# and __fields_set__ contains the field
|
|
92
|
+
if self.alias is None and "alias" in self.__fields_set__:
|
|
93
|
+
_dict['alias'] = None
|
|
94
|
+
|
|
95
|
+
# set to None if display_name (nullable) is None
|
|
96
|
+
# and __fields_set__ contains the field
|
|
97
|
+
if self.display_name is None and "display_name" in self.__fields_set__:
|
|
98
|
+
_dict['displayName'] = None
|
|
99
|
+
|
|
100
|
+
# set to None if description (nullable) is None
|
|
101
|
+
# and __fields_set__ contains the field
|
|
102
|
+
if self.description is None and "description" in self.__fields_set__:
|
|
103
|
+
_dict['description'] = None
|
|
104
|
+
|
|
105
|
+
# set to None if documentation_as_html (nullable) is None
|
|
106
|
+
# and __fields_set__ contains the field
|
|
107
|
+
if self.documentation_as_html is None and "documentation_as_html" in self.__fields_set__:
|
|
108
|
+
_dict['documentationAsHtml'] = None
|
|
109
|
+
|
|
110
|
+
# set to None if documentation_as_mark_down (nullable) is None
|
|
111
|
+
# and __fields_set__ contains the field
|
|
112
|
+
if self.documentation_as_mark_down is None and "documentation_as_mark_down" in self.__fields_set__:
|
|
113
|
+
_dict['documentationAsMarkDown'] = None
|
|
114
|
+
|
|
115
|
+
# set to None if full_text (nullable) is None
|
|
116
|
+
# and __fields_set__ contains the field
|
|
117
|
+
if self.full_text is None and "full_text" in self.__fields_set__:
|
|
118
|
+
_dict['fullText'] = None
|
|
119
|
+
|
|
120
|
+
# set to None if children (nullable) is None
|
|
121
|
+
# and __fields_set__ contains the field
|
|
122
|
+
if self.children is None and "children" in self.__fields_set__:
|
|
123
|
+
_dict['children'] = None
|
|
124
|
+
|
|
125
|
+
return _dict
|
|
126
|
+
|
|
127
|
+
@classmethod
|
|
128
|
+
def from_dict(cls, obj: dict) -> Lineage:
|
|
129
|
+
"""Create an instance of Lineage from a dict"""
|
|
130
|
+
if obj is None:
|
|
131
|
+
return None
|
|
132
|
+
|
|
133
|
+
if not isinstance(obj, dict):
|
|
134
|
+
return Lineage.parse_obj(obj)
|
|
135
|
+
|
|
136
|
+
_obj = Lineage.parse_obj({
|
|
137
|
+
"type": obj.get("type"),
|
|
138
|
+
"subtype": obj.get("subtype"),
|
|
139
|
+
"alias": obj.get("alias"),
|
|
140
|
+
"display_name": obj.get("displayName"),
|
|
141
|
+
"description": obj.get("description"),
|
|
142
|
+
"documentation_as_html": obj.get("documentationAsHtml"),
|
|
143
|
+
"documentation_as_mark_down": obj.get("documentationAsMarkDown"),
|
|
144
|
+
"full_text": obj.get("fullText"),
|
|
145
|
+
"children": [Lineage.from_dict(_item) for _item in obj.get("children")] if obj.get("children") is not None else None
|
|
146
|
+
})
|
|
147
|
+
return _obj
|
|
148
|
+
|
|
149
|
+
Lineage.update_forward_refs()
|
|
@@ -37,6 +37,7 @@ class LuminesceBinaryType(str, Enum):
|
|
|
37
37
|
PYTHON_PROVIDERS = 'Python_Providers'
|
|
38
38
|
AWS_S3_PROVIDERS = 'AwsS3_Providers'
|
|
39
39
|
AZURE_PROVIDERS = 'Azure_Providers'
|
|
40
|
+
GCS_PROVIDERS = 'Gcs_Providers'
|
|
40
41
|
SQL_DB_PROVIDERS_DB2_LINUX = 'SqlDb_Providers_Db2Linux'
|
|
41
42
|
SQL_DB_PROVIDERS_MY_SQL = 'SqlDb_Providers_MySql'
|
|
42
43
|
SQL_DB_PROVIDERS_ORACLE = 'SqlDb_Providers_Oracle'
|