lusid-sdk 2.1.983__py3-none-any.whl → 2.1.984__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.
- lusid/__init__.py +10 -0
- lusid/api/check_definitions_api.py +177 -0
- lusid/configuration.py +1 -1
- lusid/models/__init__.py +10 -0
- lusid/models/data_quality_check_result.py +181 -0
- lusid/models/derivation_formula_explain_request.py +12 -5
- lusid/models/lusid_entity_dataset.py +109 -0
- lusid/models/lusid_entity_result.py +121 -0
- lusid/models/run_check_request.py +83 -0
- lusid/models/run_check_response.py +90 -0
- {lusid_sdk-2.1.983.dist-info → lusid_sdk-2.1.984.dist-info}/METADATA +7 -1
- {lusid_sdk-2.1.983.dist-info → lusid_sdk-2.1.984.dist-info}/RECORD +13 -8
- {lusid_sdk-2.1.983.dist-info → lusid_sdk-2.1.984.dist-info}/WHEEL +0 -0
lusid/__init__.py
CHANGED
@@ -413,6 +413,7 @@ from lusid.models.data_map_key import DataMapKey
|
|
413
413
|
from lusid.models.data_mapping import DataMapping
|
414
414
|
from lusid.models.data_model_membership import DataModelMembership
|
415
415
|
from lusid.models.data_model_summary import DataModelSummary
|
416
|
+
from lusid.models.data_quality_check_result import DataQualityCheckResult
|
416
417
|
from lusid.models.data_scope import DataScope
|
417
418
|
from lusid.models.data_type import DataType
|
418
419
|
from lusid.models.data_type_entity import DataTypeEntity
|
@@ -715,6 +716,8 @@ from lusid.models.loan_interest_repayment_event import LoanInterestRepaymentEven
|
|
715
716
|
from lusid.models.loan_period import LoanPeriod
|
716
717
|
from lusid.models.loan_principal_repayment_event import LoanPrincipalRepaymentEvent
|
717
718
|
from lusid.models.lock_period_diary_entry_request import LockPeriodDiaryEntryRequest
|
719
|
+
from lusid.models.lusid_entity_dataset import LusidEntityDataset
|
720
|
+
from lusid.models.lusid_entity_result import LusidEntityResult
|
718
721
|
from lusid.models.lusid_instrument import LusidInstrument
|
719
722
|
from lusid.models.lusid_problem_details import LusidProblemDetails
|
720
723
|
from lusid.models.lusid_trade_ticket import LusidTradeTicket
|
@@ -1129,6 +1132,8 @@ from lusid.models.rounding_configuration import RoundingConfiguration
|
|
1129
1132
|
from lusid.models.rounding_configuration_component import RoundingConfigurationComponent
|
1130
1133
|
from lusid.models.rounding_convention import RoundingConvention
|
1131
1134
|
from lusid.models.rules_interval import RulesInterval
|
1135
|
+
from lusid.models.run_check_request import RunCheckRequest
|
1136
|
+
from lusid.models.run_check_response import RunCheckResponse
|
1132
1137
|
from lusid.models.scaling_methodology import ScalingMethodology
|
1133
1138
|
from lusid.models.schedule import Schedule
|
1134
1139
|
from lusid.models.schedule_type import ScheduleType
|
@@ -1803,6 +1808,7 @@ __all__ = [
|
|
1803
1808
|
"DataMapping",
|
1804
1809
|
"DataModelMembership",
|
1805
1810
|
"DataModelSummary",
|
1811
|
+
"DataQualityCheckResult",
|
1806
1812
|
"DataScope",
|
1807
1813
|
"DataType",
|
1808
1814
|
"DataTypeEntity",
|
@@ -2105,6 +2111,8 @@ __all__ = [
|
|
2105
2111
|
"LoanPeriod",
|
2106
2112
|
"LoanPrincipalRepaymentEvent",
|
2107
2113
|
"LockPeriodDiaryEntryRequest",
|
2114
|
+
"LusidEntityDataset",
|
2115
|
+
"LusidEntityResult",
|
2108
2116
|
"LusidInstrument",
|
2109
2117
|
"LusidProblemDetails",
|
2110
2118
|
"LusidTradeTicket",
|
@@ -2519,6 +2527,8 @@ __all__ = [
|
|
2519
2527
|
"RoundingConfigurationComponent",
|
2520
2528
|
"RoundingConvention",
|
2521
2529
|
"RulesInterval",
|
2530
|
+
"RunCheckRequest",
|
2531
|
+
"RunCheckResponse",
|
2522
2532
|
"ScalingMethodology",
|
2523
2533
|
"Schedule",
|
2524
2534
|
"ScheduleType",
|
@@ -30,6 +30,8 @@ from lusid.models.check_definition import CheckDefinition
|
|
30
30
|
from lusid.models.create_check_definition_request import CreateCheckDefinitionRequest
|
31
31
|
from lusid.models.deleted_entity_response import DeletedEntityResponse
|
32
32
|
from lusid.models.paged_resource_list_of_check_definition import PagedResourceListOfCheckDefinition
|
33
|
+
from lusid.models.run_check_request import RunCheckRequest
|
34
|
+
from lusid.models.run_check_response import RunCheckResponse
|
33
35
|
from lusid.models.update_check_definition_request import UpdateCheckDefinitionRequest
|
34
36
|
|
35
37
|
from lusid.api_client import ApiClient
|
@@ -770,6 +772,181 @@ class CheckDefinitionsApi:
|
|
770
772
|
_request_auth=_params.get('_request_auth'))
|
771
773
|
|
772
774
|
|
775
|
+
@overload
|
776
|
+
async def run_check_definition(self, scope : Annotated[StrictStr, Field(..., description="Scope of the CheckDefinition to run.")], code : Annotated[StrictStr, Field(..., description="Code of the CheckDefinition to run.")], run_check_request : Annotated[Optional[RunCheckRequest], Field(description="Run request defining what dataset to run against.")] = None, **kwargs) -> RunCheckResponse: # noqa: E501
|
777
|
+
...
|
778
|
+
|
779
|
+
@overload
|
780
|
+
def run_check_definition(self, scope : Annotated[StrictStr, Field(..., description="Scope of the CheckDefinition to run.")], code : Annotated[StrictStr, Field(..., description="Code of the CheckDefinition to run.")], run_check_request : Annotated[Optional[RunCheckRequest], Field(description="Run request defining what dataset to run against.")] = None, async_req: Optional[bool]=True, **kwargs) -> RunCheckResponse: # noqa: E501
|
781
|
+
...
|
782
|
+
|
783
|
+
@validate_arguments
|
784
|
+
def run_check_definition(self, scope : Annotated[StrictStr, Field(..., description="Scope of the CheckDefinition to run.")], code : Annotated[StrictStr, Field(..., description="Code of the CheckDefinition to run.")], run_check_request : Annotated[Optional[RunCheckRequest], Field(description="Run request defining what dataset to run against.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[RunCheckResponse, Awaitable[RunCheckResponse]]: # noqa: E501
|
785
|
+
"""[EXPERIMENTAL] RunCheckDefinition: Runs a Check Definition against given dataset. # noqa: E501
|
786
|
+
|
787
|
+
Runs a Check Definition against given dataset. # noqa: E501
|
788
|
+
This method makes a synchronous HTTP request by default. To make an
|
789
|
+
asynchronous HTTP request, please pass async_req=True
|
790
|
+
|
791
|
+
>>> thread = api.run_check_definition(scope, code, run_check_request, async_req=True)
|
792
|
+
>>> result = thread.get()
|
793
|
+
|
794
|
+
:param scope: Scope of the CheckDefinition to run. (required)
|
795
|
+
:type scope: str
|
796
|
+
:param code: Code of the CheckDefinition to run. (required)
|
797
|
+
:type code: str
|
798
|
+
:param run_check_request: Run request defining what dataset to run against.
|
799
|
+
:type run_check_request: RunCheckRequest
|
800
|
+
:param async_req: Whether to execute the request asynchronously.
|
801
|
+
:type async_req: bool, optional
|
802
|
+
:param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
|
803
|
+
:param opts: Configuration options for this request
|
804
|
+
:type opts: ConfigurationOptions, optional
|
805
|
+
:return: Returns the result object.
|
806
|
+
If the method is called asynchronously,
|
807
|
+
returns the request thread.
|
808
|
+
:rtype: RunCheckResponse
|
809
|
+
"""
|
810
|
+
kwargs['_return_http_data_only'] = True
|
811
|
+
if '_preload_content' in kwargs:
|
812
|
+
message = "Error! Please call the run_check_definition_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
|
813
|
+
raise ValueError(message)
|
814
|
+
if async_req is not None:
|
815
|
+
kwargs['async_req'] = async_req
|
816
|
+
return self.run_check_definition_with_http_info(scope, code, run_check_request, **kwargs) # noqa: E501
|
817
|
+
|
818
|
+
@validate_arguments
|
819
|
+
def run_check_definition_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="Scope of the CheckDefinition to run.")], code : Annotated[StrictStr, Field(..., description="Code of the CheckDefinition to run.")], run_check_request : Annotated[Optional[RunCheckRequest], Field(description="Run request defining what dataset to run against.")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
820
|
+
"""[EXPERIMENTAL] RunCheckDefinition: Runs a Check Definition against given dataset. # noqa: E501
|
821
|
+
|
822
|
+
Runs a Check Definition against given dataset. # noqa: E501
|
823
|
+
This method makes a synchronous HTTP request by default. To make an
|
824
|
+
asynchronous HTTP request, please pass async_req=True
|
825
|
+
|
826
|
+
>>> thread = api.run_check_definition_with_http_info(scope, code, run_check_request, async_req=True)
|
827
|
+
>>> result = thread.get()
|
828
|
+
|
829
|
+
:param scope: Scope of the CheckDefinition to run. (required)
|
830
|
+
:type scope: str
|
831
|
+
:param code: Code of the CheckDefinition to run. (required)
|
832
|
+
:type code: str
|
833
|
+
:param run_check_request: Run request defining what dataset to run against.
|
834
|
+
:type run_check_request: RunCheckRequest
|
835
|
+
:param async_req: Whether to execute the request asynchronously.
|
836
|
+
:type async_req: bool, optional
|
837
|
+
:param _preload_content: if False, the ApiResponse.data will
|
838
|
+
be set to none and raw_data will store the
|
839
|
+
HTTP response body without reading/decoding.
|
840
|
+
Default is True.
|
841
|
+
:type _preload_content: bool, optional
|
842
|
+
:param _return_http_data_only: response data instead of ApiResponse
|
843
|
+
object with status code, headers, etc
|
844
|
+
:type _return_http_data_only: bool, optional
|
845
|
+
:param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
|
846
|
+
:param opts: Configuration options for this request
|
847
|
+
:type opts: ConfigurationOptions, optional
|
848
|
+
:param _request_auth: set to override the auth_settings for an a single
|
849
|
+
request; this effectively ignores the authentication
|
850
|
+
in the spec for a single request.
|
851
|
+
:type _request_auth: dict, optional
|
852
|
+
:type _content_type: string, optional: force content-type for the request
|
853
|
+
:return: Returns the result object.
|
854
|
+
If the method is called asynchronously,
|
855
|
+
returns the request thread.
|
856
|
+
:rtype: tuple(RunCheckResponse, status_code(int), headers(HTTPHeaderDict))
|
857
|
+
"""
|
858
|
+
|
859
|
+
_params = locals()
|
860
|
+
|
861
|
+
_all_params = [
|
862
|
+
'scope',
|
863
|
+
'code',
|
864
|
+
'run_check_request'
|
865
|
+
]
|
866
|
+
_all_params.extend(
|
867
|
+
[
|
868
|
+
'async_req',
|
869
|
+
'_return_http_data_only',
|
870
|
+
'_preload_content',
|
871
|
+
'_request_timeout',
|
872
|
+
'_request_auth',
|
873
|
+
'_content_type',
|
874
|
+
'_headers',
|
875
|
+
'opts'
|
876
|
+
]
|
877
|
+
)
|
878
|
+
|
879
|
+
# validate the arguments
|
880
|
+
for _key, _val in _params['kwargs'].items():
|
881
|
+
if _key not in _all_params:
|
882
|
+
raise ApiTypeError(
|
883
|
+
"Got an unexpected keyword argument '%s'"
|
884
|
+
" to method run_check_definition" % _key
|
885
|
+
)
|
886
|
+
_params[_key] = _val
|
887
|
+
del _params['kwargs']
|
888
|
+
|
889
|
+
_collection_formats = {}
|
890
|
+
|
891
|
+
# process the path parameters
|
892
|
+
_path_params = {}
|
893
|
+
if _params['scope']:
|
894
|
+
_path_params['scope'] = _params['scope']
|
895
|
+
|
896
|
+
if _params['code']:
|
897
|
+
_path_params['code'] = _params['code']
|
898
|
+
|
899
|
+
|
900
|
+
# process the query parameters
|
901
|
+
_query_params = []
|
902
|
+
# process the header parameters
|
903
|
+
_header_params = dict(_params.get('_headers', {}))
|
904
|
+
# process the form parameters
|
905
|
+
_form_params = []
|
906
|
+
_files = {}
|
907
|
+
# process the body parameter
|
908
|
+
_body_params = None
|
909
|
+
if _params['run_check_request'] is not None:
|
910
|
+
_body_params = _params['run_check_request']
|
911
|
+
|
912
|
+
# set the HTTP header `Accept`
|
913
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
914
|
+
['text/plain', 'application/json', 'text/json']) # noqa: E501
|
915
|
+
|
916
|
+
# set the HTTP header `Content-Type`
|
917
|
+
_content_types_list = _params.get('_content_type',
|
918
|
+
self.api_client.select_header_content_type(
|
919
|
+
['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
|
920
|
+
if _content_types_list:
|
921
|
+
_header_params['Content-Type'] = _content_types_list
|
922
|
+
|
923
|
+
# authentication setting
|
924
|
+
_auth_settings = ['oauth2'] # noqa: E501
|
925
|
+
|
926
|
+
_response_types_map = {
|
927
|
+
'200': "RunCheckResponse",
|
928
|
+
'400': "LusidValidationProblemDetails",
|
929
|
+
}
|
930
|
+
|
931
|
+
return self.api_client.call_api(
|
932
|
+
'/api/dataquality/checkdefinitions/{scope}/{code}/$run', 'PUT',
|
933
|
+
_path_params,
|
934
|
+
_query_params,
|
935
|
+
_header_params,
|
936
|
+
body=_body_params,
|
937
|
+
post_params=_form_params,
|
938
|
+
files=_files,
|
939
|
+
response_types_map=_response_types_map,
|
940
|
+
auth_settings=_auth_settings,
|
941
|
+
async_req=_params.get('async_req'),
|
942
|
+
_return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
|
943
|
+
_preload_content=_params.get('_preload_content', True),
|
944
|
+
_request_timeout=_params.get('_request_timeout'),
|
945
|
+
opts=_params.get('opts'),
|
946
|
+
collection_formats=_collection_formats,
|
947
|
+
_request_auth=_params.get('_request_auth'))
|
948
|
+
|
949
|
+
|
773
950
|
@overload
|
774
951
|
async def update_check_definition(self, scope : Annotated[StrictStr, Field(..., description="The scope of the specified Check Definition.")], code : Annotated[StrictStr, Field(..., description="The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition.")], update_check_definition_request : Annotated[Optional[UpdateCheckDefinitionRequest], Field(description="The request containing the updated details of the Check Definition")] = None, **kwargs) -> CheckDefinition: # noqa: E501
|
775
952
|
...
|
lusid/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: 0.11.
|
448
|
+
"Version of the API: 0.11.8386\n"\
|
449
449
|
"SDK Package Version: {package_version}".\
|
450
450
|
format(env=sys.platform, pyversion=sys.version, package_version=package_version)
|
451
451
|
|
lusid/models/__init__.py
CHANGED
@@ -322,6 +322,7 @@ from lusid.models.data_map_key import DataMapKey
|
|
322
322
|
from lusid.models.data_mapping import DataMapping
|
323
323
|
from lusid.models.data_model_membership import DataModelMembership
|
324
324
|
from lusid.models.data_model_summary import DataModelSummary
|
325
|
+
from lusid.models.data_quality_check_result import DataQualityCheckResult
|
325
326
|
from lusid.models.data_scope import DataScope
|
326
327
|
from lusid.models.data_type import DataType
|
327
328
|
from lusid.models.data_type_entity import DataTypeEntity
|
@@ -624,6 +625,8 @@ from lusid.models.loan_interest_repayment_event import LoanInterestRepaymentEven
|
|
624
625
|
from lusid.models.loan_period import LoanPeriod
|
625
626
|
from lusid.models.loan_principal_repayment_event import LoanPrincipalRepaymentEvent
|
626
627
|
from lusid.models.lock_period_diary_entry_request import LockPeriodDiaryEntryRequest
|
628
|
+
from lusid.models.lusid_entity_dataset import LusidEntityDataset
|
629
|
+
from lusid.models.lusid_entity_result import LusidEntityResult
|
627
630
|
from lusid.models.lusid_instrument import LusidInstrument
|
628
631
|
from lusid.models.lusid_problem_details import LusidProblemDetails
|
629
632
|
from lusid.models.lusid_trade_ticket import LusidTradeTicket
|
@@ -1038,6 +1041,8 @@ from lusid.models.rounding_configuration import RoundingConfiguration
|
|
1038
1041
|
from lusid.models.rounding_configuration_component import RoundingConfigurationComponent
|
1039
1042
|
from lusid.models.rounding_convention import RoundingConvention
|
1040
1043
|
from lusid.models.rules_interval import RulesInterval
|
1044
|
+
from lusid.models.run_check_request import RunCheckRequest
|
1045
|
+
from lusid.models.run_check_response import RunCheckResponse
|
1041
1046
|
from lusid.models.scaling_methodology import ScalingMethodology
|
1042
1047
|
from lusid.models.schedule import Schedule
|
1043
1048
|
from lusid.models.schedule_type import ScheduleType
|
@@ -1622,6 +1627,7 @@ __all__ = [
|
|
1622
1627
|
"DataMapping",
|
1623
1628
|
"DataModelMembership",
|
1624
1629
|
"DataModelSummary",
|
1630
|
+
"DataQualityCheckResult",
|
1625
1631
|
"DataScope",
|
1626
1632
|
"DataType",
|
1627
1633
|
"DataTypeEntity",
|
@@ -1924,6 +1930,8 @@ __all__ = [
|
|
1924
1930
|
"LoanPeriod",
|
1925
1931
|
"LoanPrincipalRepaymentEvent",
|
1926
1932
|
"LockPeriodDiaryEntryRequest",
|
1933
|
+
"LusidEntityDataset",
|
1934
|
+
"LusidEntityResult",
|
1927
1935
|
"LusidInstrument",
|
1928
1936
|
"LusidProblemDetails",
|
1929
1937
|
"LusidTradeTicket",
|
@@ -2338,6 +2346,8 @@ __all__ = [
|
|
2338
2346
|
"RoundingConfigurationComponent",
|
2339
2347
|
"RoundingConvention",
|
2340
2348
|
"RulesInterval",
|
2349
|
+
"RunCheckRequest",
|
2350
|
+
"RunCheckResponse",
|
2341
2351
|
"ScalingMethodology",
|
2342
2352
|
"Schedule",
|
2343
2353
|
"ScheduleType",
|
@@ -0,0 +1,181 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
LUSID 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
|
+
from datetime import datetime
|
21
|
+
from typing import Any, Dict, Optional
|
22
|
+
from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictInt, StrictStr
|
23
|
+
from lusid.models.lusid_entity_result import LusidEntityResult
|
24
|
+
|
25
|
+
class DataQualityCheckResult(BaseModel):
|
26
|
+
"""
|
27
|
+
Represents the result of a data quality check operation # noqa: E501
|
28
|
+
"""
|
29
|
+
check_definition_scope: Optional[StrictStr] = Field(None,alias="checkDefinitionScope", description="The scope of the check definition")
|
30
|
+
check_definition_code: Optional[StrictStr] = Field(None,alias="checkDefinitionCode", description="The code of the check definition")
|
31
|
+
check_definition_display_name: Optional[StrictStr] = Field(None,alias="checkDefinitionDisplayName", description="The display name of the check definition")
|
32
|
+
check_run_as_at: Optional[datetime] = Field(None, alias="checkRunAsAt", description="The timestamp when the check was run")
|
33
|
+
result_type: Optional[StrictStr] = Field(None,alias="resultType", description="The type of result from the check")
|
34
|
+
rule_set_key: Optional[StrictStr] = Field(None,alias="ruleSetKey", description="The key identifying the ruleset")
|
35
|
+
rule_set_display_name: Optional[StrictStr] = Field(None,alias="ruleSetDisplayName", description="The display name of the ruleset")
|
36
|
+
rule_key: Optional[StrictStr] = Field(None,alias="ruleKey", description="The key identifying the rule (for RuleInvalid, RuleBreached, RuleBreachesOverLimit)")
|
37
|
+
rule_display_name: Optional[StrictStr] = Field(None,alias="ruleDisplayName", description="The display name of the rule (for RuleInvalid, RuleBreached, RuleBreachesOverLimit)")
|
38
|
+
rule_description: Optional[StrictStr] = Field(None,alias="ruleDescription", description="The description of the rule (for RuleInvalid, RuleBreached, RuleBreachesOverLimit)")
|
39
|
+
rule_formula: Optional[StrictStr] = Field(None,alias="ruleFormula", description="The formula of the rule (for RuleInvalid, RuleBreached, RuleBreachesOverLimit)")
|
40
|
+
severity: Optional[StrictInt] = Field(None, description="The severity level")
|
41
|
+
lusid_entity: Optional[LusidEntityResult] = Field(None, alias="lusidEntity")
|
42
|
+
count_rule_breaches: Optional[StrictInt] = Field(None, alias="countRuleBreaches", description="The count of rule breaches (1 for RuleBreached, multiple for RuleBreachesOverLimit)")
|
43
|
+
error_detail: Optional[StrictStr] = Field(None,alias="errorDetail", description="Error details (for RulesetInvalid, RuleInvalid)")
|
44
|
+
result_id: Optional[StrictStr] = Field(None,alias="resultId", description="Unique identifier for the result in format: {{GUID of Check Definition}}-{{resultType}}-{{rulesetKey}}-{{ruleKey}}-{{entity GUID}}")
|
45
|
+
__properties = ["checkDefinitionScope", "checkDefinitionCode", "checkDefinitionDisplayName", "checkRunAsAt", "resultType", "ruleSetKey", "ruleSetDisplayName", "ruleKey", "ruleDisplayName", "ruleDescription", "ruleFormula", "severity", "lusidEntity", "countRuleBreaches", "errorDetail", "resultId"]
|
46
|
+
|
47
|
+
class Config:
|
48
|
+
"""Pydantic configuration"""
|
49
|
+
allow_population_by_field_name = True
|
50
|
+
validate_assignment = True
|
51
|
+
|
52
|
+
def __str__(self):
|
53
|
+
"""For `print` and `pprint`"""
|
54
|
+
return pprint.pformat(self.dict(by_alias=False))
|
55
|
+
|
56
|
+
def __repr__(self):
|
57
|
+
"""For `print` and `pprint`"""
|
58
|
+
return self.to_str()
|
59
|
+
|
60
|
+
def to_str(self) -> str:
|
61
|
+
"""Returns the string representation of the model using alias"""
|
62
|
+
return pprint.pformat(self.dict(by_alias=True))
|
63
|
+
|
64
|
+
def to_json(self) -> str:
|
65
|
+
"""Returns the JSON representation of the model using alias"""
|
66
|
+
return json.dumps(self.to_dict())
|
67
|
+
|
68
|
+
@classmethod
|
69
|
+
def from_json(cls, json_str: str) -> DataQualityCheckResult:
|
70
|
+
"""Create an instance of DataQualityCheckResult from a JSON string"""
|
71
|
+
return cls.from_dict(json.loads(json_str))
|
72
|
+
|
73
|
+
def to_dict(self):
|
74
|
+
"""Returns the dictionary representation of the model using alias"""
|
75
|
+
_dict = self.dict(by_alias=True,
|
76
|
+
exclude={
|
77
|
+
},
|
78
|
+
exclude_none=True)
|
79
|
+
# override the default output from pydantic by calling `to_dict()` of lusid_entity
|
80
|
+
if self.lusid_entity:
|
81
|
+
_dict['lusidEntity'] = self.lusid_entity.to_dict()
|
82
|
+
# set to None if check_definition_scope (nullable) is None
|
83
|
+
# and __fields_set__ contains the field
|
84
|
+
if self.check_definition_scope is None and "check_definition_scope" in self.__fields_set__:
|
85
|
+
_dict['checkDefinitionScope'] = None
|
86
|
+
|
87
|
+
# set to None if check_definition_code (nullable) is None
|
88
|
+
# and __fields_set__ contains the field
|
89
|
+
if self.check_definition_code is None and "check_definition_code" in self.__fields_set__:
|
90
|
+
_dict['checkDefinitionCode'] = None
|
91
|
+
|
92
|
+
# set to None if check_definition_display_name (nullable) is None
|
93
|
+
# and __fields_set__ contains the field
|
94
|
+
if self.check_definition_display_name is None and "check_definition_display_name" in self.__fields_set__:
|
95
|
+
_dict['checkDefinitionDisplayName'] = None
|
96
|
+
|
97
|
+
# set to None if result_type (nullable) is None
|
98
|
+
# and __fields_set__ contains the field
|
99
|
+
if self.result_type is None and "result_type" in self.__fields_set__:
|
100
|
+
_dict['resultType'] = None
|
101
|
+
|
102
|
+
# set to None if rule_set_key (nullable) is None
|
103
|
+
# and __fields_set__ contains the field
|
104
|
+
if self.rule_set_key is None and "rule_set_key" in self.__fields_set__:
|
105
|
+
_dict['ruleSetKey'] = None
|
106
|
+
|
107
|
+
# set to None if rule_set_display_name (nullable) is None
|
108
|
+
# and __fields_set__ contains the field
|
109
|
+
if self.rule_set_display_name is None and "rule_set_display_name" in self.__fields_set__:
|
110
|
+
_dict['ruleSetDisplayName'] = None
|
111
|
+
|
112
|
+
# set to None if rule_key (nullable) is None
|
113
|
+
# and __fields_set__ contains the field
|
114
|
+
if self.rule_key is None and "rule_key" in self.__fields_set__:
|
115
|
+
_dict['ruleKey'] = None
|
116
|
+
|
117
|
+
# set to None if rule_display_name (nullable) is None
|
118
|
+
# and __fields_set__ contains the field
|
119
|
+
if self.rule_display_name is None and "rule_display_name" in self.__fields_set__:
|
120
|
+
_dict['ruleDisplayName'] = None
|
121
|
+
|
122
|
+
# set to None if rule_description (nullable) is None
|
123
|
+
# and __fields_set__ contains the field
|
124
|
+
if self.rule_description is None and "rule_description" in self.__fields_set__:
|
125
|
+
_dict['ruleDescription'] = None
|
126
|
+
|
127
|
+
# set to None if rule_formula (nullable) is None
|
128
|
+
# and __fields_set__ contains the field
|
129
|
+
if self.rule_formula is None and "rule_formula" in self.__fields_set__:
|
130
|
+
_dict['ruleFormula'] = None
|
131
|
+
|
132
|
+
# set to None if severity (nullable) is None
|
133
|
+
# and __fields_set__ contains the field
|
134
|
+
if self.severity is None and "severity" in self.__fields_set__:
|
135
|
+
_dict['severity'] = None
|
136
|
+
|
137
|
+
# set to None if count_rule_breaches (nullable) is None
|
138
|
+
# and __fields_set__ contains the field
|
139
|
+
if self.count_rule_breaches is None and "count_rule_breaches" in self.__fields_set__:
|
140
|
+
_dict['countRuleBreaches'] = None
|
141
|
+
|
142
|
+
# set to None if error_detail (nullable) is None
|
143
|
+
# and __fields_set__ contains the field
|
144
|
+
if self.error_detail is None and "error_detail" in self.__fields_set__:
|
145
|
+
_dict['errorDetail'] = None
|
146
|
+
|
147
|
+
# set to None if result_id (nullable) is None
|
148
|
+
# and __fields_set__ contains the field
|
149
|
+
if self.result_id is None and "result_id" in self.__fields_set__:
|
150
|
+
_dict['resultId'] = None
|
151
|
+
|
152
|
+
return _dict
|
153
|
+
|
154
|
+
@classmethod
|
155
|
+
def from_dict(cls, obj: dict) -> DataQualityCheckResult:
|
156
|
+
"""Create an instance of DataQualityCheckResult from a dict"""
|
157
|
+
if obj is None:
|
158
|
+
return None
|
159
|
+
|
160
|
+
if not isinstance(obj, dict):
|
161
|
+
return DataQualityCheckResult.parse_obj(obj)
|
162
|
+
|
163
|
+
_obj = DataQualityCheckResult.parse_obj({
|
164
|
+
"check_definition_scope": obj.get("checkDefinitionScope"),
|
165
|
+
"check_definition_code": obj.get("checkDefinitionCode"),
|
166
|
+
"check_definition_display_name": obj.get("checkDefinitionDisplayName"),
|
167
|
+
"check_run_as_at": obj.get("checkRunAsAt"),
|
168
|
+
"result_type": obj.get("resultType"),
|
169
|
+
"rule_set_key": obj.get("ruleSetKey"),
|
170
|
+
"rule_set_display_name": obj.get("ruleSetDisplayName"),
|
171
|
+
"rule_key": obj.get("ruleKey"),
|
172
|
+
"rule_display_name": obj.get("ruleDisplayName"),
|
173
|
+
"rule_description": obj.get("ruleDescription"),
|
174
|
+
"rule_formula": obj.get("ruleFormula"),
|
175
|
+
"severity": obj.get("severity"),
|
176
|
+
"lusid_entity": LusidEntityResult.from_dict(obj.get("lusidEntity")) if obj.get("lusidEntity") is not None else None,
|
177
|
+
"count_rule_breaches": obj.get("countRuleBreaches"),
|
178
|
+
"error_detail": obj.get("errorDetail"),
|
179
|
+
"result_id": obj.get("resultId")
|
180
|
+
})
|
181
|
+
return _obj
|
@@ -26,11 +26,12 @@ class DerivationFormulaExplainRequest(BaseModel):
|
|
26
26
|
DerivationFormulaExplainRequest
|
27
27
|
"""
|
28
28
|
entity_type: StrictStr = Field(...,alias="entityType", description="The type of the entity for which the derived property or partial formula is to be resolved against.")
|
29
|
-
scope: Optional[StrictStr] = Field(None,alias="scope", description="The scope that entity exists in. If no scope is provided, the default scope for the entity type will be used.")
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
scope: Optional[StrictStr] = Field(None,alias="scope", description="(Optional) The scope that entity exists in. If no scope is provided, the default scope for the entity type will be used.")
|
30
|
+
code: Optional[StrictStr] = Field(None,alias="code", description="(Optional) The code of the entity, to be provided for entities that support scope/code retrieval. If no code or identifier is provided, the logical evaluation tree without resolved values is returned.")
|
31
|
+
identifier: Optional[Dict[str, StrictStr]] = Field(None, description="(Optional). An identifier key/value pair that uniquely identifies the entity to explain the derived property for. This can be either an instrument identifier, or an identifier property. If no code or identifier is provided, the logical evaluation tree without resolved values is returned.")
|
32
|
+
property_key: Optional[StrictStr] = Field(None,alias="propertyKey", description="(Optional) The key of the derived property to get an explanation for. This takes the format {domain}/{scope}/{code}. One of either property key or partial formula must be provided.")
|
33
|
+
partial_formula: Optional[StrictStr] = Field(None,alias="partialFormula", description="(Optional) A partial derivation formula to get an explanation for. Can be provided in lieu of a property key. One of either property key or partial formula must be provided.")
|
34
|
+
__properties = ["entityType", "scope", "code", "identifier", "propertyKey", "partialFormula"]
|
34
35
|
|
35
36
|
class Config:
|
36
37
|
"""Pydantic configuration"""
|
@@ -69,6 +70,11 @@ class DerivationFormulaExplainRequest(BaseModel):
|
|
69
70
|
if self.scope is None and "scope" in self.__fields_set__:
|
70
71
|
_dict['scope'] = None
|
71
72
|
|
73
|
+
# set to None if code (nullable) is None
|
74
|
+
# and __fields_set__ contains the field
|
75
|
+
if self.code is None and "code" in self.__fields_set__:
|
76
|
+
_dict['code'] = None
|
77
|
+
|
72
78
|
# set to None if identifier (nullable) is None
|
73
79
|
# and __fields_set__ contains the field
|
74
80
|
if self.identifier is None and "identifier" in self.__fields_set__:
|
@@ -98,6 +104,7 @@ class DerivationFormulaExplainRequest(BaseModel):
|
|
98
104
|
_obj = DerivationFormulaExplainRequest.parse_obj({
|
99
105
|
"entity_type": obj.get("entityType"),
|
100
106
|
"scope": obj.get("scope"),
|
107
|
+
"code": obj.get("code"),
|
101
108
|
"identifier": obj.get("identifier"),
|
102
109
|
"property_key": obj.get("propertyKey"),
|
103
110
|
"partial_formula": obj.get("partialFormula")
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
LUSID 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
|
+
from datetime import datetime
|
21
|
+
from typing import Any, Dict, Optional
|
22
|
+
from pydantic.v1 import StrictStr, Field, BaseModel, Field, constr, validator
|
23
|
+
|
24
|
+
class LusidEntityDataset(BaseModel):
|
25
|
+
"""
|
26
|
+
Contains the run-time parameters that are appropriate for check definitions with datasetSchema.type = \"LusidEntity\" # noqa: E501
|
27
|
+
"""
|
28
|
+
as_at: Optional[datetime] = Field(None, alias="asAt", description="The asAt date to fetch the data. Nullable. Defaults to latest.")
|
29
|
+
effective_at: Optional[datetime] = Field(None, alias="effectiveAt", description="The effectiveAt date to fetch the data. Nullable. Defaults to latest.")
|
30
|
+
scope: StrictStr = Field(...,alias="scope", description="The scope of the entities to check. Required.")
|
31
|
+
as_at_modified_since: Optional[datetime] = Field(None, alias="asAtModifiedSince", description="Nullable. Filters the dataset for version.asAtModified greater than or equal to this value.")
|
32
|
+
selector_attribute: StrictStr = Field(...,alias="selectorAttribute", description="An attribute (field name, propertyKey or identifierKey) to use to sub-divide the dataset.")
|
33
|
+
selector_value: StrictStr = Field(...,alias="selectorValue", description="The value of the above attribute used to sub-divide the dataset.")
|
34
|
+
return_identifier_key: Optional[StrictStr] = Field(None,alias="returnIdentifierKey", description="The preferred identifier to return for entities with multiple external identifiers.")
|
35
|
+
__properties = ["asAt", "effectiveAt", "scope", "asAtModifiedSince", "selectorAttribute", "selectorValue", "returnIdentifierKey"]
|
36
|
+
|
37
|
+
class Config:
|
38
|
+
"""Pydantic configuration"""
|
39
|
+
allow_population_by_field_name = True
|
40
|
+
validate_assignment = True
|
41
|
+
|
42
|
+
def __str__(self):
|
43
|
+
"""For `print` and `pprint`"""
|
44
|
+
return pprint.pformat(self.dict(by_alias=False))
|
45
|
+
|
46
|
+
def __repr__(self):
|
47
|
+
"""For `print` and `pprint`"""
|
48
|
+
return self.to_str()
|
49
|
+
|
50
|
+
def to_str(self) -> str:
|
51
|
+
"""Returns the string representation of the model using alias"""
|
52
|
+
return pprint.pformat(self.dict(by_alias=True))
|
53
|
+
|
54
|
+
def to_json(self) -> str:
|
55
|
+
"""Returns the JSON representation of the model using alias"""
|
56
|
+
return json.dumps(self.to_dict())
|
57
|
+
|
58
|
+
@classmethod
|
59
|
+
def from_json(cls, json_str: str) -> LusidEntityDataset:
|
60
|
+
"""Create an instance of LusidEntityDataset from a JSON string"""
|
61
|
+
return cls.from_dict(json.loads(json_str))
|
62
|
+
|
63
|
+
def to_dict(self):
|
64
|
+
"""Returns the dictionary representation of the model using alias"""
|
65
|
+
_dict = self.dict(by_alias=True,
|
66
|
+
exclude={
|
67
|
+
},
|
68
|
+
exclude_none=True)
|
69
|
+
# set to None if as_at (nullable) is None
|
70
|
+
# and __fields_set__ contains the field
|
71
|
+
if self.as_at is None and "as_at" in self.__fields_set__:
|
72
|
+
_dict['asAt'] = None
|
73
|
+
|
74
|
+
# set to None if effective_at (nullable) is None
|
75
|
+
# and __fields_set__ contains the field
|
76
|
+
if self.effective_at is None and "effective_at" in self.__fields_set__:
|
77
|
+
_dict['effectiveAt'] = None
|
78
|
+
|
79
|
+
# set to None if as_at_modified_since (nullable) is None
|
80
|
+
# and __fields_set__ contains the field
|
81
|
+
if self.as_at_modified_since is None and "as_at_modified_since" in self.__fields_set__:
|
82
|
+
_dict['asAtModifiedSince'] = None
|
83
|
+
|
84
|
+
# set to None if return_identifier_key (nullable) is None
|
85
|
+
# and __fields_set__ contains the field
|
86
|
+
if self.return_identifier_key is None and "return_identifier_key" in self.__fields_set__:
|
87
|
+
_dict['returnIdentifierKey'] = None
|
88
|
+
|
89
|
+
return _dict
|
90
|
+
|
91
|
+
@classmethod
|
92
|
+
def from_dict(cls, obj: dict) -> LusidEntityDataset:
|
93
|
+
"""Create an instance of LusidEntityDataset from a dict"""
|
94
|
+
if obj is None:
|
95
|
+
return None
|
96
|
+
|
97
|
+
if not isinstance(obj, dict):
|
98
|
+
return LusidEntityDataset.parse_obj(obj)
|
99
|
+
|
100
|
+
_obj = LusidEntityDataset.parse_obj({
|
101
|
+
"as_at": obj.get("asAt"),
|
102
|
+
"effective_at": obj.get("effectiveAt"),
|
103
|
+
"scope": obj.get("scope"),
|
104
|
+
"as_at_modified_since": obj.get("asAtModifiedSince"),
|
105
|
+
"selector_attribute": obj.get("selectorAttribute"),
|
106
|
+
"selector_value": obj.get("selectorValue"),
|
107
|
+
"return_identifier_key": obj.get("returnIdentifierKey")
|
108
|
+
})
|
109
|
+
return _obj
|
@@ -0,0 +1,121 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
LUSID 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
|
+
from datetime import datetime
|
21
|
+
from typing import Any, Dict, Optional
|
22
|
+
from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictStr
|
23
|
+
|
24
|
+
class LusidEntityResult(BaseModel):
|
25
|
+
"""
|
26
|
+
Represents LUSID entity details for a data quality check result # noqa: E501
|
27
|
+
"""
|
28
|
+
as_at: Optional[datetime] = Field(None, alias="asAt", description="The as-at timestamp for the entity")
|
29
|
+
effective_at: Optional[datetime] = Field(None, alias="effectiveAt", description="The effective-at timestamp for the entity")
|
30
|
+
entity_type: Optional[StrictStr] = Field(None,alias="entityType", description="The type of the LUSID entity")
|
31
|
+
scope: Optional[StrictStr] = Field(None,alias="scope", description="The scope of the entity")
|
32
|
+
identifier_key: Optional[StrictStr] = Field(None,alias="identifierKey", description="The identifier key for the entity")
|
33
|
+
identifier_value: Optional[StrictStr] = Field(None,alias="identifierValue", description="The identifier value for the entity")
|
34
|
+
entity_unique_id: Optional[StrictStr] = Field(None,alias="entityUniqueId", description="The unique identifier for the entity")
|
35
|
+
display_name: Optional[StrictStr] = Field(None,alias="displayName", description="The display name of the entity")
|
36
|
+
__properties = ["asAt", "effectiveAt", "entityType", "scope", "identifierKey", "identifierValue", "entityUniqueId", "displayName"]
|
37
|
+
|
38
|
+
class Config:
|
39
|
+
"""Pydantic configuration"""
|
40
|
+
allow_population_by_field_name = True
|
41
|
+
validate_assignment = True
|
42
|
+
|
43
|
+
def __str__(self):
|
44
|
+
"""For `print` and `pprint`"""
|
45
|
+
return pprint.pformat(self.dict(by_alias=False))
|
46
|
+
|
47
|
+
def __repr__(self):
|
48
|
+
"""For `print` and `pprint`"""
|
49
|
+
return self.to_str()
|
50
|
+
|
51
|
+
def to_str(self) -> str:
|
52
|
+
"""Returns the string representation of the model using alias"""
|
53
|
+
return pprint.pformat(self.dict(by_alias=True))
|
54
|
+
|
55
|
+
def to_json(self) -> str:
|
56
|
+
"""Returns the JSON representation of the model using alias"""
|
57
|
+
return json.dumps(self.to_dict())
|
58
|
+
|
59
|
+
@classmethod
|
60
|
+
def from_json(cls, json_str: str) -> LusidEntityResult:
|
61
|
+
"""Create an instance of LusidEntityResult from a JSON string"""
|
62
|
+
return cls.from_dict(json.loads(json_str))
|
63
|
+
|
64
|
+
def to_dict(self):
|
65
|
+
"""Returns the dictionary representation of the model using alias"""
|
66
|
+
_dict = self.dict(by_alias=True,
|
67
|
+
exclude={
|
68
|
+
},
|
69
|
+
exclude_none=True)
|
70
|
+
# set to None if entity_type (nullable) is None
|
71
|
+
# and __fields_set__ contains the field
|
72
|
+
if self.entity_type is None and "entity_type" in self.__fields_set__:
|
73
|
+
_dict['entityType'] = None
|
74
|
+
|
75
|
+
# set to None if scope (nullable) is None
|
76
|
+
# and __fields_set__ contains the field
|
77
|
+
if self.scope is None and "scope" in self.__fields_set__:
|
78
|
+
_dict['scope'] = None
|
79
|
+
|
80
|
+
# set to None if identifier_key (nullable) is None
|
81
|
+
# and __fields_set__ contains the field
|
82
|
+
if self.identifier_key is None and "identifier_key" in self.__fields_set__:
|
83
|
+
_dict['identifierKey'] = None
|
84
|
+
|
85
|
+
# set to None if identifier_value (nullable) is None
|
86
|
+
# and __fields_set__ contains the field
|
87
|
+
if self.identifier_value is None and "identifier_value" in self.__fields_set__:
|
88
|
+
_dict['identifierValue'] = None
|
89
|
+
|
90
|
+
# set to None if entity_unique_id (nullable) is None
|
91
|
+
# and __fields_set__ contains the field
|
92
|
+
if self.entity_unique_id is None and "entity_unique_id" in self.__fields_set__:
|
93
|
+
_dict['entityUniqueId'] = 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
|
+
return _dict
|
101
|
+
|
102
|
+
@classmethod
|
103
|
+
def from_dict(cls, obj: dict) -> LusidEntityResult:
|
104
|
+
"""Create an instance of LusidEntityResult from a dict"""
|
105
|
+
if obj is None:
|
106
|
+
return None
|
107
|
+
|
108
|
+
if not isinstance(obj, dict):
|
109
|
+
return LusidEntityResult.parse_obj(obj)
|
110
|
+
|
111
|
+
_obj = LusidEntityResult.parse_obj({
|
112
|
+
"as_at": obj.get("asAt"),
|
113
|
+
"effective_at": obj.get("effectiveAt"),
|
114
|
+
"entity_type": obj.get("entityType"),
|
115
|
+
"scope": obj.get("scope"),
|
116
|
+
"identifier_key": obj.get("identifierKey"),
|
117
|
+
"identifier_value": obj.get("identifierValue"),
|
118
|
+
"entity_unique_id": obj.get("entityUniqueId"),
|
119
|
+
"display_name": obj.get("displayName")
|
120
|
+
})
|
121
|
+
return _obj
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
LUSID 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 Any, Dict, Optional
|
22
|
+
from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictInt
|
23
|
+
from lusid.models.lusid_entity_dataset import LusidEntityDataset
|
24
|
+
|
25
|
+
class RunCheckRequest(BaseModel):
|
26
|
+
"""
|
27
|
+
RunCheckRequest
|
28
|
+
"""
|
29
|
+
lusid_entity_dataset: Optional[LusidEntityDataset] = Field(None, alias="lusidEntityDataset")
|
30
|
+
limit_individual_breaches_per_rule: Optional[StrictInt] = Field(None, alias="limitIndividualBreachesPerRule", description="The maximum number of individual breaches to return per rule. Defaults to 100 if not specified.")
|
31
|
+
__properties = ["lusidEntityDataset", "limitIndividualBreachesPerRule"]
|
32
|
+
|
33
|
+
class Config:
|
34
|
+
"""Pydantic configuration"""
|
35
|
+
allow_population_by_field_name = True
|
36
|
+
validate_assignment = True
|
37
|
+
|
38
|
+
def __str__(self):
|
39
|
+
"""For `print` and `pprint`"""
|
40
|
+
return pprint.pformat(self.dict(by_alias=False))
|
41
|
+
|
42
|
+
def __repr__(self):
|
43
|
+
"""For `print` and `pprint`"""
|
44
|
+
return self.to_str()
|
45
|
+
|
46
|
+
def to_str(self) -> str:
|
47
|
+
"""Returns the string representation of the model using alias"""
|
48
|
+
return pprint.pformat(self.dict(by_alias=True))
|
49
|
+
|
50
|
+
def to_json(self) -> str:
|
51
|
+
"""Returns the JSON representation of the model using alias"""
|
52
|
+
return json.dumps(self.to_dict())
|
53
|
+
|
54
|
+
@classmethod
|
55
|
+
def from_json(cls, json_str: str) -> RunCheckRequest:
|
56
|
+
"""Create an instance of RunCheckRequest from a JSON string"""
|
57
|
+
return cls.from_dict(json.loads(json_str))
|
58
|
+
|
59
|
+
def to_dict(self):
|
60
|
+
"""Returns the dictionary representation of the model using alias"""
|
61
|
+
_dict = self.dict(by_alias=True,
|
62
|
+
exclude={
|
63
|
+
},
|
64
|
+
exclude_none=True)
|
65
|
+
# override the default output from pydantic by calling `to_dict()` of lusid_entity_dataset
|
66
|
+
if self.lusid_entity_dataset:
|
67
|
+
_dict['lusidEntityDataset'] = self.lusid_entity_dataset.to_dict()
|
68
|
+
return _dict
|
69
|
+
|
70
|
+
@classmethod
|
71
|
+
def from_dict(cls, obj: dict) -> RunCheckRequest:
|
72
|
+
"""Create an instance of RunCheckRequest from a dict"""
|
73
|
+
if obj is None:
|
74
|
+
return None
|
75
|
+
|
76
|
+
if not isinstance(obj, dict):
|
77
|
+
return RunCheckRequest.parse_obj(obj)
|
78
|
+
|
79
|
+
_obj = RunCheckRequest.parse_obj({
|
80
|
+
"lusid_entity_dataset": LusidEntityDataset.from_dict(obj.get("lusidEntityDataset")) if obj.get("lusidEntityDataset") is not None else None,
|
81
|
+
"limit_individual_breaches_per_rule": obj.get("limitIndividualBreachesPerRule")
|
82
|
+
})
|
83
|
+
return _obj
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
LUSID 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 Any, Dict, List, Optional
|
22
|
+
from pydantic.v1 import StrictStr, Field, BaseModel, Field, conlist
|
23
|
+
from lusid.models.data_quality_check_result import DataQualityCheckResult
|
24
|
+
|
25
|
+
class RunCheckResponse(BaseModel):
|
26
|
+
"""
|
27
|
+
Response containing the results of running data quality checks # noqa: E501
|
28
|
+
"""
|
29
|
+
data_quality_check_results: Optional[conlist(DataQualityCheckResult)] = Field(None, alias="dataQualityCheckResults", description="Collection of data quality check results")
|
30
|
+
__properties = ["dataQualityCheckResults"]
|
31
|
+
|
32
|
+
class Config:
|
33
|
+
"""Pydantic configuration"""
|
34
|
+
allow_population_by_field_name = True
|
35
|
+
validate_assignment = True
|
36
|
+
|
37
|
+
def __str__(self):
|
38
|
+
"""For `print` and `pprint`"""
|
39
|
+
return pprint.pformat(self.dict(by_alias=False))
|
40
|
+
|
41
|
+
def __repr__(self):
|
42
|
+
"""For `print` and `pprint`"""
|
43
|
+
return self.to_str()
|
44
|
+
|
45
|
+
def to_str(self) -> str:
|
46
|
+
"""Returns the string representation of the model using alias"""
|
47
|
+
return pprint.pformat(self.dict(by_alias=True))
|
48
|
+
|
49
|
+
def to_json(self) -> str:
|
50
|
+
"""Returns the JSON representation of the model using alias"""
|
51
|
+
return json.dumps(self.to_dict())
|
52
|
+
|
53
|
+
@classmethod
|
54
|
+
def from_json(cls, json_str: str) -> RunCheckResponse:
|
55
|
+
"""Create an instance of RunCheckResponse from a JSON string"""
|
56
|
+
return cls.from_dict(json.loads(json_str))
|
57
|
+
|
58
|
+
def to_dict(self):
|
59
|
+
"""Returns the dictionary representation of the model using alias"""
|
60
|
+
_dict = self.dict(by_alias=True,
|
61
|
+
exclude={
|
62
|
+
},
|
63
|
+
exclude_none=True)
|
64
|
+
# override the default output from pydantic by calling `to_dict()` of each item in data_quality_check_results (list)
|
65
|
+
_items = []
|
66
|
+
if self.data_quality_check_results:
|
67
|
+
for _item in self.data_quality_check_results:
|
68
|
+
if _item:
|
69
|
+
_items.append(_item.to_dict())
|
70
|
+
_dict['dataQualityCheckResults'] = _items
|
71
|
+
# set to None if data_quality_check_results (nullable) is None
|
72
|
+
# and __fields_set__ contains the field
|
73
|
+
if self.data_quality_check_results is None and "data_quality_check_results" in self.__fields_set__:
|
74
|
+
_dict['dataQualityCheckResults'] = None
|
75
|
+
|
76
|
+
return _dict
|
77
|
+
|
78
|
+
@classmethod
|
79
|
+
def from_dict(cls, obj: dict) -> RunCheckResponse:
|
80
|
+
"""Create an instance of RunCheckResponse from a dict"""
|
81
|
+
if obj is None:
|
82
|
+
return None
|
83
|
+
|
84
|
+
if not isinstance(obj, dict):
|
85
|
+
return RunCheckResponse.parse_obj(obj)
|
86
|
+
|
87
|
+
_obj = RunCheckResponse.parse_obj({
|
88
|
+
"data_quality_check_results": [DataQualityCheckResult.from_dict(_item) for _item in obj.get("dataQualityCheckResults")] if obj.get("dataQualityCheckResults") is not None else None
|
89
|
+
})
|
90
|
+
return _obj
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lusid-sdk
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.984
|
4
4
|
Summary: LUSID API
|
5
5
|
Home-page: https://github.com/finbourne/lusid-sdk-python
|
6
6
|
License: MIT
|
@@ -134,6 +134,7 @@ Class | Method | HTTP request | Description
|
|
134
134
|
*CheckDefinitionsApi* | [**delete_check_definition**](docs/CheckDefinitionsApi.md#delete_check_definition) | **DELETE** /api/dataquality/checkdefinitions/{scope}/{code} | [EXPERIMENTAL] DeleteCheckDefinition: Deletes a particular Check Definition
|
135
135
|
*CheckDefinitionsApi* | [**get_check_definition**](docs/CheckDefinitionsApi.md#get_check_definition) | **GET** /api/dataquality/checkdefinitions/{scope}/{code} | [EXPERIMENTAL] GetCheckDefinition: Get a single Check Definition by scope and code.
|
136
136
|
*CheckDefinitionsApi* | [**list_check_definitions**](docs/CheckDefinitionsApi.md#list_check_definitions) | **GET** /api/dataquality/checkdefinitions | [EXPERIMENTAL] ListCheckDefinitions: List Check Definitions
|
137
|
+
*CheckDefinitionsApi* | [**run_check_definition**](docs/CheckDefinitionsApi.md#run_check_definition) | **PUT** /api/dataquality/checkdefinitions/{scope}/{code}/$run | [EXPERIMENTAL] RunCheckDefinition: Runs a Check Definition against given dataset.
|
137
138
|
*CheckDefinitionsApi* | [**update_check_definition**](docs/CheckDefinitionsApi.md#update_check_definition) | **PUT** /api/dataquality/checkdefinitions/{scope}/{code} | [EXPERIMENTAL] UpdateCheckDefinition: Update Check Definition defined by scope and code
|
138
139
|
*ComplexMarketDataApi* | [**delete_complex_market_data**](docs/ComplexMarketDataApi.md#delete_complex_market_data) | **POST** /api/complexmarketdata/{scope}/$delete | DeleteComplexMarketData: Delete one or more items of complex market data, assuming they are present.
|
139
140
|
*ComplexMarketDataApi* | [**get_complex_market_data**](docs/ComplexMarketDataApi.md#get_complex_market_data) | **POST** /api/complexmarketdata/{scope}/$get | GetComplexMarketData: Get complex market data
|
@@ -1003,6 +1004,7 @@ Class | Method | HTTP request | Description
|
|
1003
1004
|
- [DataMapping](docs/DataMapping.md)
|
1004
1005
|
- [DataModelMembership](docs/DataModelMembership.md)
|
1005
1006
|
- [DataModelSummary](docs/DataModelSummary.md)
|
1007
|
+
- [DataQualityCheckResult](docs/DataQualityCheckResult.md)
|
1006
1008
|
- [DataScope](docs/DataScope.md)
|
1007
1009
|
- [DataType](docs/DataType.md)
|
1008
1010
|
- [DataTypeEntity](docs/DataTypeEntity.md)
|
@@ -1305,6 +1307,8 @@ Class | Method | HTTP request | Description
|
|
1305
1307
|
- [LoanPeriod](docs/LoanPeriod.md)
|
1306
1308
|
- [LoanPrincipalRepaymentEvent](docs/LoanPrincipalRepaymentEvent.md)
|
1307
1309
|
- [LockPeriodDiaryEntryRequest](docs/LockPeriodDiaryEntryRequest.md)
|
1310
|
+
- [LusidEntityDataset](docs/LusidEntityDataset.md)
|
1311
|
+
- [LusidEntityResult](docs/LusidEntityResult.md)
|
1308
1312
|
- [LusidInstrument](docs/LusidInstrument.md)
|
1309
1313
|
- [LusidProblemDetails](docs/LusidProblemDetails.md)
|
1310
1314
|
- [LusidTradeTicket](docs/LusidTradeTicket.md)
|
@@ -1719,6 +1723,8 @@ Class | Method | HTTP request | Description
|
|
1719
1723
|
- [RoundingConfigurationComponent](docs/RoundingConfigurationComponent.md)
|
1720
1724
|
- [RoundingConvention](docs/RoundingConvention.md)
|
1721
1725
|
- [RulesInterval](docs/RulesInterval.md)
|
1726
|
+
- [RunCheckRequest](docs/RunCheckRequest.md)
|
1727
|
+
- [RunCheckResponse](docs/RunCheckResponse.md)
|
1722
1728
|
- [ScalingMethodology](docs/ScalingMethodology.md)
|
1723
1729
|
- [Schedule](docs/Schedule.md)
|
1724
1730
|
- [ScheduleType](docs/ScheduleType.md)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
lusid/__init__.py,sha256=
|
1
|
+
lusid/__init__.py,sha256=EbQBMkuCMi064zl-N5pXaMvvKrVtj1dAu1IqXZn_D9o,147939
|
2
2
|
lusid/api/__init__.py,sha256=yCGwgeQBZ1RZovOUo7Jq24Txz4o6naRgnWAzQVGdHAk,6784
|
3
3
|
lusid/api/abor_api.py,sha256=EdyHrd5yRcz7MOffhFa1cgtcBaPuPJmbArHWIXv7tuQ,174322
|
4
4
|
lusid/api/abor_configuration_api.py,sha256=xQ9HcXm02eDFhCdWUHjqFRWl1oQMxm2LNObJ9kcLauU,84216
|
@@ -11,7 +11,7 @@ lusid/api/application_metadata_api.py,sha256=GdueWnWdBjIhbyb6gfBgLYqQ7_UerR0J68T
|
|
11
11
|
lusid/api/blocks_api.py,sha256=WvkS7tK4jY1R_SWV8FqjCr5zpF9Gx1basp62FBdyH_E,43230
|
12
12
|
lusid/api/calendars_api.py,sha256=Z1Zo2PDggpII8e6DyKlun1EZkCqU0I9MtqTsKfu5buI,141755
|
13
13
|
lusid/api/chart_of_accounts_api.py,sha256=cyLfNKPJpBuy61U1HqVGNh1bmwAoTDpaIGQ1SeuMU-I,404270
|
14
|
-
lusid/api/check_definitions_api.py,sha256=
|
14
|
+
lusid/api/check_definitions_api.py,sha256=TpMePfYFXB8NiUQYlqy7SWFIS-7ofxPGo3B97-Skg0U,70425
|
15
15
|
lusid/api/complex_market_data_api.py,sha256=kNH08g5rGYAMg7srkVhhqjzQ8oICqiTPFZJcFOV84EA,64940
|
16
16
|
lusid/api/compliance_api.py,sha256=zVn3TuZ97PqKKh-b666fHgs3mfVcDD9nELX7zTTsdz0,161480
|
17
17
|
lusid/api/configuration_recipe_api.py,sha256=1hdNB1imRjVzf8KAmqnNJE10jv883s1SCza5dl8fP9Q,99363
|
@@ -80,7 +80,7 @@ lusid/api/translation_api.py,sha256=xpRuTfwQvYBlWe6r_L2EI_uVpXqHFnEOim-i-kVQ85E,
|
|
80
80
|
lusid/api/workspace_api.py,sha256=0pCNi3ZCRbIo0NXKa85XE7vtq0WV5YOKcQKvFlcLUaY,120708
|
81
81
|
lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
|
82
82
|
lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
|
83
|
-
lusid/configuration.py,sha256=
|
83
|
+
lusid/configuration.py,sha256=yBlr_BYRXWOXRFy-tBqJGI5P1p_C-MHvJtQ5KbBf9jE,17980
|
84
84
|
lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
|
85
85
|
lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
|
86
86
|
lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
|
@@ -95,7 +95,7 @@ lusid/extensions/rest.py,sha256=dp-bD_LMR2zAL1tmC3-urhWKLomXx7r5iGN1VteMBVQ,1601
|
|
95
95
|
lusid/extensions/retry.py,sha256=EhW9OKJmGHipxN3H7eROH5DiMlAnfBVl95NQrttcsdg,14834
|
96
96
|
lusid/extensions/socket_keep_alive.py,sha256=eX5ICvGfVzUCGIm80Q2RknfFZrBQAdnrcpY61M29V_k,1997
|
97
97
|
lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
|
98
|
-
lusid/models/__init__.py,sha256=
|
98
|
+
lusid/models/__init__.py,sha256=9umlLCsRnEkWYXQjro550_MXVFVFbKEMwPzObwIt5HY,140123
|
99
99
|
lusid/models/a2_b_breakdown.py,sha256=-FXgILrvtZXQDmvS0ARaJVGBq5LJ4AH-o3HjujFVmS4,3198
|
100
100
|
lusid/models/a2_b_category.py,sha256=WunXUgx-dCnApPeLC8Qo5tVCX8Ywxkehib1vmNqNgNs,2957
|
101
101
|
lusid/models/a2_b_data_record.py,sha256=qANTmV1_HUEo4l72-F8qzZjlQxOe0Onc9WPz7h-WWuY,9993
|
@@ -404,6 +404,7 @@ lusid/models/data_map_key.py,sha256=Gxe4xysNghZtf5G9d6ROkGF1tJiV5DwjsyGqD-undvI,
|
|
404
404
|
lusid/models/data_mapping.py,sha256=xRTIttedYFaOM3uEOkMoNWUO5wd28igV-FeRmSI_WL8,3869
|
405
405
|
lusid/models/data_model_membership.py,sha256=LFZAVhRrWOLM6wCvVKSiao4oAiLQuKRT7Tb9nmZjGYw,3143
|
406
406
|
lusid/models/data_model_summary.py,sha256=UpqSS7hmnQI-53Ie8a8EB_Naj3SJI5-lJAYJINDump0,4103
|
407
|
+
lusid/models/data_quality_check_result.py,sha256=TFqBfAbOJ8FzbC5yuDOIXvAJwVZI-zBoEonuTcmr1c0,9348
|
407
408
|
lusid/models/data_scope.py,sha256=YPqqE1B6oL7uqqx0YohrqqiQhMYBBT3GsSjo-l4qUdE,2579
|
408
409
|
lusid/models/data_type.py,sha256=XYLnShK3ZT6EajnWw41dqrmABir6IaDqOaaRd8YEPB4,17901
|
409
410
|
lusid/models/data_type_entity.py,sha256=eVjZ1fRZMwjY0WSM7LBQPjJ8CJpCHU53xkbsFGIWRck,7612
|
@@ -433,7 +434,7 @@ lusid/models/deleted_entity_response.py,sha256=B11ZEZwBxb_PLgbykXdBdLo6Iu6O8Otzq
|
|
433
434
|
lusid/models/dependency_source_filter.py,sha256=4GKl5zFqKpWH4ob8beEW7AgSQ97NffrxUXVeRZZU8ec,5939
|
434
435
|
lusid/models/deposit_close_event.py,sha256=XSLQbANRq2ADWjZ9N4tkxBlMd4RHQHaOQg16OTpbs8o,11341
|
435
436
|
lusid/models/deposit_interest_payment_event.py,sha256=7gxsFwx1inGEEwSy0UGNoNxobTg67GASgoM8if031fw,11782
|
436
|
-
lusid/models/derivation_formula_explain_request.py,sha256=
|
437
|
+
lusid/models/derivation_formula_explain_request.py,sha256=aLS9Xf9GQ_GFRw3gdoMQJNDGhNyEYoYczTBJyzXQ4wE,5117
|
437
438
|
lusid/models/derived_property_component.py,sha256=ZGFCCt8fCprTvEoCWk-A8zsmHndZCf757kQyOI2xuf0,5490
|
438
439
|
lusid/models/described_address_key.py,sha256=UHxYHgYe3uM-6rQSTCzeEqft0ngze4TdCc-JesxCp_I,2932
|
439
440
|
lusid/models/dialect.py,sha256=oiXWtrDKwEoOa9yGObMfDLhH0QlJAaKOgCRraDYiim0,3227
|
@@ -706,6 +707,8 @@ lusid/models/loan_interest_repayment_event.py,sha256=uA3m7fBv5OjVDgn_IVrQyZ10Rgg
|
|
706
707
|
lusid/models/loan_period.py,sha256=aYoZLiXQRkjj0DWmXs4ihxHUxYW7Nc0-mfkFaSBAE4k,2383
|
707
708
|
lusid/models/loan_principal_repayment_event.py,sha256=KLplsHpXj5CSi8jXWe-0ooEMfcqG-iGZXFgkdQBJ_Dg,13770
|
708
709
|
lusid/models/lock_period_diary_entry_request.py,sha256=pqJQGtnL8Oy8WJ1St3QgA5HhESmvrunFPeBZ0fP9O3I,3126
|
710
|
+
lusid/models/lusid_entity_dataset.py,sha256=liQjIxxpwWPoOosVGiuQjd0GylhpgiEkXPsYHHU9Vmg,4706
|
711
|
+
lusid/models/lusid_entity_result.py,sha256=FcDEYQ-VyYsnfruavcwVwL8jxsQKURt9wfRAsPTr3ys,4934
|
709
712
|
lusid/models/lusid_instrument.py,sha256=d_wmtAY5dtD8vEaAoAjKtmAryC3W_7N03oENYjs7Ba0,11448
|
710
713
|
lusid/models/lusid_problem_details.py,sha256=BkzYYV7IX1vrdC8TZNika8RBXHp0s5HIUgq-Jh2Ohd0,4162
|
711
714
|
lusid/models/lusid_trade_ticket.py,sha256=CLvRuxyzxlMC9Lc4fS0She-41iMedrIIEsN7DiYtS_o,12704
|
@@ -1120,6 +1123,8 @@ lusid/models/rounding_configuration.py,sha256=omjrizntdNApbrOAlN-a1b3n8Y4tOwY_PR
|
|
1120
1123
|
lusid/models/rounding_configuration_component.py,sha256=UTD9vmAJSHzBsxG3YIpaJwVM1Gscf5zKh_-untK-Sg8,2320
|
1121
1124
|
lusid/models/rounding_convention.py,sha256=x_rQcvmU6IWuTAibUPKP_izyiV6FU601X5EaUKHrb18,4299
|
1122
1125
|
lusid/models/rules_interval.py,sha256=Bs3nL2xYdaaINdFZesQ0mfce5MeA95ose8aItQdCi1w,3003
|
1126
|
+
lusid/models/run_check_request.py,sha256=SteXDIntK3B27Ud85f2XSQq3thbt8zVjqvOmtdfzK2k,2881
|
1127
|
+
lusid/models/run_check_response.py,sha256=TUgY8poUxJPa9yEi8S2MF2AKu07a-0CRBCSYXIDbJiE,3179
|
1123
1128
|
lusid/models/scaling_methodology.py,sha256=rP8s-CkaG3rZGG9E9MxCJu3NzbKKool_r_fB-DxMlg0,699
|
1124
1129
|
lusid/models/schedule.py,sha256=cqHH_wfTBW4TXCab7IUf4Bs3GbGLyGQuoo2KTBMbKWE,7563
|
1125
1130
|
lusid/models/schedule_type.py,sha256=hdAqhI4A6L1z-Ipwd2xaecMiTCFqRN1Bz1Lc2BWXZTg,955
|
@@ -1395,6 +1400,6 @@ lusid/models/year_month_day.py,sha256=gwSoxFwlD_wffKdddo1wfvAcLq3Cht3FHQidiaHzAA
|
|
1395
1400
|
lusid/models/yield_curve_data.py,sha256=sifVmM0PAAB9wfI3aKf4dLbZS45bqiRv9ffZxQx7JRU,9663
|
1396
1401
|
lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1397
1402
|
lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
|
1398
|
-
lusid_sdk-2.1.
|
1399
|
-
lusid_sdk-2.1.
|
1400
|
-
lusid_sdk-2.1.
|
1403
|
+
lusid_sdk-2.1.984.dist-info/METADATA,sha256=wFhlUclppwT3BuRXQS4zwa4me2geJRe6FFp7ry9XKt0,235038
|
1404
|
+
lusid_sdk-2.1.984.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
1405
|
+
lusid_sdk-2.1.984.dist-info/RECORD,,
|
File without changes
|