lusid-sdk 2.1.743__py3-none-any.whl → 2.1.745__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 +2 -0
- lusid/api/configuration_recipe_api.py +14 -14
- lusid/configuration.py +1 -1
- lusid/models/__init__.py +2 -0
- lusid/models/equity.py +8 -2
- lusid/models/simple_instrument.py +8 -2
- lusid/models/time_zone_conventions.py +91 -0
- {lusid_sdk-2.1.743.dist-info → lusid_sdk-2.1.745.dist-info}/METADATA +9 -8
- {lusid_sdk-2.1.743.dist-info → lusid_sdk-2.1.745.dist-info}/RECORD +10 -9
- {lusid_sdk-2.1.743.dist-info → lusid_sdk-2.1.745.dist-info}/WHEEL +0 -0
lusid/__init__.py
CHANGED
@@ -1114,6 +1114,7 @@ from lusid.models.tender_event import TenderEvent
|
|
1114
1114
|
from lusid.models.term_deposit import TermDeposit
|
1115
1115
|
from lusid.models.term_deposit_interest_event import TermDepositInterestEvent
|
1116
1116
|
from lusid.models.term_deposit_principal_event import TermDepositPrincipalEvent
|
1117
|
+
from lusid.models.time_zone_conventions import TimeZoneConventions
|
1117
1118
|
from lusid.models.timeline import Timeline
|
1118
1119
|
from lusid.models.total_return_swap import TotalReturnSwap
|
1119
1120
|
from lusid.models.touch import Touch
|
@@ -2393,6 +2394,7 @@ __all__ = [
|
|
2393
2394
|
"TermDeposit",
|
2394
2395
|
"TermDepositInterestEvent",
|
2395
2396
|
"TermDepositPrincipalEvent",
|
2397
|
+
"TimeZoneConventions",
|
2396
2398
|
"Timeline",
|
2397
2399
|
"TotalReturnSwap",
|
2398
2400
|
"Touch",
|
@@ -231,7 +231,7 @@ class ConfigurationRecipeApi:
|
|
231
231
|
|
232
232
|
@validate_arguments
|
233
233
|
def delete_recipe_composer(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Recipe Composer to delete.")], code : Annotated[StrictStr, Field(..., description="The Recipe Composer to delete.")], async_req: Optional[bool]=None, **kwargs) -> Union[AnnulSingleStructuredDataResponse, Awaitable[AnnulSingleStructuredDataResponse]]: # noqa: E501
|
234
|
-
"""
|
234
|
+
"""DeleteRecipeComposer: Delete a Recipe Composer, assuming that it is present. # noqa: E501
|
235
235
|
|
236
236
|
Delete the specified Recipe Composer from a single scope. The response will return either detail of the deleted item, or an explanation (failure) as to why this did not succeed. It is important to always check for any unsuccessful response. # noqa: E501
|
237
237
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -264,7 +264,7 @@ class ConfigurationRecipeApi:
|
|
264
264
|
|
265
265
|
@validate_arguments
|
266
266
|
def delete_recipe_composer_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Recipe Composer to delete.")], code : Annotated[StrictStr, Field(..., description="The Recipe Composer to delete.")], **kwargs) -> ApiResponse: # noqa: E501
|
267
|
-
"""
|
267
|
+
"""DeleteRecipeComposer: Delete a Recipe Composer, assuming that it is present. # noqa: E501
|
268
268
|
|
269
269
|
Delete the specified Recipe Composer from a single scope. The response will return either detail of the deleted item, or an explanation (failure) as to why this did not succeed. It is important to always check for any unsuccessful response. # noqa: E501
|
270
270
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -562,7 +562,7 @@ class ConfigurationRecipeApi:
|
|
562
562
|
|
563
563
|
@validate_arguments
|
564
564
|
def get_derived_recipe(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Configuration Recipe or Recipe Composer to return.")], code : Annotated[StrictStr, Field(..., description="The code of the Configuration Recipe or Recipe Composer to return.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Configuration Recipe. Defaults to return the latest version if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[GetRecipeResponse, Awaitable[GetRecipeResponse]]: # noqa: E501
|
565
|
-
"""
|
565
|
+
"""GetDerivedRecipe: Get Configuration Recipe either from the store or expanded from a Recipe Composer. # noqa: E501
|
566
566
|
|
567
567
|
If scope-code is referring to a Configuration Recipe it is returned, if it refers to Recipe Composer, it is expanded into a Configuration Recipe and returned. # noqa: E501
|
568
568
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -597,7 +597,7 @@ class ConfigurationRecipeApi:
|
|
597
597
|
|
598
598
|
@validate_arguments
|
599
599
|
def get_derived_recipe_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Configuration Recipe or Recipe Composer to return.")], code : Annotated[StrictStr, Field(..., description="The code of the Configuration Recipe or Recipe Composer to return.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Configuration Recipe. Defaults to return the latest version if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
600
|
-
"""
|
600
|
+
"""GetDerivedRecipe: Get Configuration Recipe either from the store or expanded from a Recipe Composer. # noqa: E501
|
601
601
|
|
602
602
|
If scope-code is referring to a Configuration Recipe it is returned, if it refers to Recipe Composer, it is expanded into a Configuration Recipe and returned. # noqa: E501
|
603
603
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -733,7 +733,7 @@ class ConfigurationRecipeApi:
|
|
733
733
|
|
734
734
|
@validate_arguments
|
735
735
|
def get_recipe_composer(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Recipe Composer to retrieve.")], code : Annotated[StrictStr, Field(..., description="The name of the Recipe Composer to retrieve the data for.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Recipe Composer. Defaults to return the latest version if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[GetRecipeComposerResponse, Awaitable[GetRecipeComposerResponse]]: # noqa: E501
|
736
|
-
"""
|
736
|
+
"""GetRecipeComposer: Get Recipe Composer # noqa: E501
|
737
737
|
|
738
738
|
Get a Recipe Composer from a single scope. The response will return either the recipe composer that has been stored, or a failure explaining why the request was unsuccessful. It is important to always check for any unsuccessful requests (failures). # noqa: E501
|
739
739
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -768,7 +768,7 @@ class ConfigurationRecipeApi:
|
|
768
768
|
|
769
769
|
@validate_arguments
|
770
770
|
def get_recipe_composer_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Recipe Composer to retrieve.")], code : Annotated[StrictStr, Field(..., description="The name of the Recipe Composer to retrieve the data for.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Recipe Composer. Defaults to return the latest version if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
771
|
-
"""
|
771
|
+
"""GetRecipeComposer: Get Recipe Composer # noqa: E501
|
772
772
|
|
773
773
|
Get a Recipe Composer from a single scope. The response will return either the recipe composer that has been stored, or a failure explaining why the request was unsuccessful. It is important to always check for any unsuccessful requests (failures). # noqa: E501
|
774
774
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -904,7 +904,7 @@ class ConfigurationRecipeApi:
|
|
904
904
|
|
905
905
|
@validate_arguments
|
906
906
|
def get_recipe_composer_resolved_inline(self, upsert_recipe_composer_request : Annotated[UpsertRecipeComposerRequest, Field(..., description="Recipe composer used to expand into the Configuration Recipe.")], async_req: Optional[bool]=None, **kwargs) -> Union[GetRecipeResponse, Awaitable[GetRecipeResponse]]: # noqa: E501
|
907
|
-
"""
|
907
|
+
"""GetRecipeComposerResolvedInline: Given a Recipe Composer, this endpoint expands into a Configuration Recipe without persistence. Primarily used for testing purposes. # noqa: E501
|
908
908
|
|
909
909
|
Resolves an inline recipe composer into a ConfigurationRecipe. # noqa: E501
|
910
910
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -935,7 +935,7 @@ class ConfigurationRecipeApi:
|
|
935
935
|
|
936
936
|
@validate_arguments
|
937
937
|
def get_recipe_composer_resolved_inline_with_http_info(self, upsert_recipe_composer_request : Annotated[UpsertRecipeComposerRequest, Field(..., description="Recipe composer used to expand into the Configuration Recipe.")], **kwargs) -> ApiResponse: # noqa: E501
|
938
|
-
"""
|
938
|
+
"""GetRecipeComposerResolvedInline: Given a Recipe Composer, this endpoint expands into a Configuration Recipe without persistence. Primarily used for testing purposes. # noqa: E501
|
939
939
|
|
940
940
|
Resolves an inline recipe composer into a ConfigurationRecipe. # noqa: E501
|
941
941
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -1226,7 +1226,7 @@ class ConfigurationRecipeApi:
|
|
1226
1226
|
|
1227
1227
|
@validate_arguments
|
1228
1228
|
def list_derived_recipes(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the Configuration Recipes. Defaults to latest if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set, note this functionality is not yet enabled for this endpoint.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfGetRecipeResponse, Awaitable[ResourceListOfGetRecipeResponse]]: # noqa: E501
|
1229
|
-
"""
|
1229
|
+
"""ListDerivedRecipes: List the complete set of all Configuration Recipes, both from the configuration recipe store and also from expanded recipe composers. # noqa: E501
|
1230
1230
|
|
1231
1231
|
This endpoints returns a union of the output of ListConfigurationRecipes and the resolved Recipe Composers from the ListRecipeComposers endpoints. # noqa: E501
|
1232
1232
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -1259,7 +1259,7 @@ class ConfigurationRecipeApi:
|
|
1259
1259
|
|
1260
1260
|
@validate_arguments
|
1261
1261
|
def list_derived_recipes_with_http_info(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the Configuration Recipes. Defaults to latest if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set, note this functionality is not yet enabled for this endpoint.")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
1262
|
-
"""
|
1262
|
+
"""ListDerivedRecipes: List the complete set of all Configuration Recipes, both from the configuration recipe store and also from expanded recipe composers. # noqa: E501
|
1263
1263
|
|
1264
1264
|
This endpoints returns a union of the output of ListConfigurationRecipes and the resolved Recipe Composers from the ListRecipeComposers endpoints. # noqa: E501
|
1265
1265
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -1389,7 +1389,7 @@ class ConfigurationRecipeApi:
|
|
1389
1389
|
|
1390
1390
|
@validate_arguments
|
1391
1391
|
def list_recipe_composers(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the Recipes Composers. Defaults to latest if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set, note this functionality is not yet enabled for this endpoint.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfGetRecipeComposerResponse, Awaitable[ResourceListOfGetRecipeComposerResponse]]: # noqa: E501
|
1392
|
-
"""
|
1392
|
+
"""ListRecipeComposers: List the set of Recipe Composers # noqa: E501
|
1393
1393
|
|
1394
1394
|
List the set of Recipe Composers at the specified date/time and scope # noqa: E501
|
1395
1395
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -1422,7 +1422,7 @@ class ConfigurationRecipeApi:
|
|
1422
1422
|
|
1423
1423
|
@validate_arguments
|
1424
1424
|
def list_recipe_composers_with_http_info(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the Recipes Composers. Defaults to latest if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set, note this functionality is not yet enabled for this endpoint.")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
1425
|
-
"""
|
1425
|
+
"""ListRecipeComposers: List the set of Recipe Composers # noqa: E501
|
1426
1426
|
|
1427
1427
|
List the set of Recipe Composers at the specified date/time and scope # noqa: E501
|
1428
1428
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -1711,7 +1711,7 @@ class ConfigurationRecipeApi:
|
|
1711
1711
|
|
1712
1712
|
@validate_arguments
|
1713
1713
|
def upsert_recipe_composer(self, upsert_recipe_composer_request : Annotated[UpsertRecipeComposerRequest, Field(..., description="The Recipe Composer to update or insert")], async_req: Optional[bool]=None, **kwargs) -> Union[UpsertSingleStructuredDataResponse, Awaitable[UpsertSingleStructuredDataResponse]]: # noqa: E501
|
1714
|
-
"""
|
1714
|
+
"""UpsertRecipeComposer: Upsert a Recipe Composer. This creates or updates the data in Lusid. # noqa: E501
|
1715
1715
|
|
1716
1716
|
Update or insert one Recipe Composer in a single scope. An item will be updated if it already exists and inserted if it does not. The response will return the successfully updated or inserted Recipe Composer or failure message if unsuccessful It is important to always check to verify success (or failure). # noqa: E501
|
1717
1717
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -1742,7 +1742,7 @@ class ConfigurationRecipeApi:
|
|
1742
1742
|
|
1743
1743
|
@validate_arguments
|
1744
1744
|
def upsert_recipe_composer_with_http_info(self, upsert_recipe_composer_request : Annotated[UpsertRecipeComposerRequest, Field(..., description="The Recipe Composer to update or insert")], **kwargs) -> ApiResponse: # noqa: E501
|
1745
|
-
"""
|
1745
|
+
"""UpsertRecipeComposer: Upsert a Recipe Composer. This creates or updates the data in Lusid. # noqa: E501
|
1746
1746
|
|
1747
1747
|
Update or insert one Recipe Composer in a single scope. An item will be updated if it already exists and inserted if it does not. The response will return the successfully updated or inserted Recipe Composer or failure message if unsuccessful It is important to always check to verify success (or failure). # noqa: E501
|
1748
1748
|
This method makes a synchronous HTTP request by default. To make an
|
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.7556\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
@@ -1029,6 +1029,7 @@ from lusid.models.tender_event import TenderEvent
|
|
1029
1029
|
from lusid.models.term_deposit import TermDeposit
|
1030
1030
|
from lusid.models.term_deposit_interest_event import TermDepositInterestEvent
|
1031
1031
|
from lusid.models.term_deposit_principal_event import TermDepositPrincipalEvent
|
1032
|
+
from lusid.models.time_zone_conventions import TimeZoneConventions
|
1032
1033
|
from lusid.models.timeline import Timeline
|
1033
1034
|
from lusid.models.total_return_swap import TotalReturnSwap
|
1034
1035
|
from lusid.models.touch import Touch
|
@@ -2224,6 +2225,7 @@ __all__ = [
|
|
2224
2225
|
"TermDeposit",
|
2225
2226
|
"TermDepositInterestEvent",
|
2226
2227
|
"TermDepositPrincipalEvent",
|
2228
|
+
"TimeZoneConventions",
|
2227
2229
|
"Timeline",
|
2228
2230
|
"TotalReturnSwap",
|
2229
2231
|
"Touch",
|
lusid/models/equity.py
CHANGED
@@ -22,6 +22,7 @@ from typing import Any, Dict, Optional
|
|
22
22
|
from pydantic.v1 import StrictStr, Field, Field, StrictInt, StrictStr, validator
|
23
23
|
from lusid.models.equity_all_of_identifiers import EquityAllOfIdentifiers
|
24
24
|
from lusid.models.lusid_instrument import LusidInstrument
|
25
|
+
from lusid.models.time_zone_conventions import TimeZoneConventions
|
25
26
|
|
26
27
|
class Equity(LusidInstrument):
|
27
28
|
"""
|
@@ -30,9 +31,10 @@ class Equity(LusidInstrument):
|
|
30
31
|
identifiers: Optional[EquityAllOfIdentifiers] = None
|
31
32
|
dom_ccy: StrictStr = Field(...,alias="domCcy", description="The domestic currency of the instrument.")
|
32
33
|
lot_size: Optional[StrictInt] = Field(None, alias="lotSize", description="Equity LotSize, the minimum number of shares that can be bought at once. Optional, if set must be non-negative, if not set defaults to 1. Note this property does not impact valuation. From a LUSID analytics perspective, it is purely informational.")
|
34
|
+
time_zone_conventions: Optional[TimeZoneConventions] = Field(None, alias="timeZoneConventions")
|
33
35
|
instrument_type: StrictStr = Field(...,alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility, FlexibleDeposit")
|
34
36
|
additional_properties: Dict[str, Any] = {}
|
35
|
-
__properties = ["instrumentType", "identifiers", "domCcy", "lotSize"]
|
37
|
+
__properties = ["instrumentType", "identifiers", "domCcy", "lotSize", "timeZoneConventions"]
|
36
38
|
|
37
39
|
@validator('instrument_type')
|
38
40
|
def instrument_type_validate_enum(cls, value):
|
@@ -77,6 +79,9 @@ class Equity(LusidInstrument):
|
|
77
79
|
# override the default output from pydantic by calling `to_dict()` of identifiers
|
78
80
|
if self.identifiers:
|
79
81
|
_dict['identifiers'] = self.identifiers.to_dict()
|
82
|
+
# override the default output from pydantic by calling `to_dict()` of time_zone_conventions
|
83
|
+
if self.time_zone_conventions:
|
84
|
+
_dict['timeZoneConventions'] = self.time_zone_conventions.to_dict()
|
80
85
|
# puts key-value pairs in additional_properties in the top level
|
81
86
|
if self.additional_properties is not None:
|
82
87
|
for _key, _value in self.additional_properties.items():
|
@@ -102,7 +107,8 @@ class Equity(LusidInstrument):
|
|
102
107
|
"instrument_type": obj.get("instrumentType"),
|
103
108
|
"identifiers": EquityAllOfIdentifiers.from_dict(obj.get("identifiers")) if obj.get("identifiers") is not None else None,
|
104
109
|
"dom_ccy": obj.get("domCcy"),
|
105
|
-
"lot_size": obj.get("lotSize")
|
110
|
+
"lot_size": obj.get("lotSize"),
|
111
|
+
"time_zone_conventions": TimeZoneConventions.from_dict(obj.get("timeZoneConventions")) if obj.get("timeZoneConventions") is not None else None
|
106
112
|
})
|
107
113
|
# store additional fields in additional_properties
|
108
114
|
for _key in obj.keys():
|
@@ -21,6 +21,7 @@ from datetime import datetime
|
|
21
21
|
from typing import Any, Dict, List, Optional
|
22
22
|
from pydantic.v1 import StrictStr, Field, Field, StrictStr, conlist, constr, validator
|
23
23
|
from lusid.models.lusid_instrument import LusidInstrument
|
24
|
+
from lusid.models.time_zone_conventions import TimeZoneConventions
|
24
25
|
|
25
26
|
class SimpleInstrument(LusidInstrument):
|
26
27
|
"""
|
@@ -31,9 +32,10 @@ class SimpleInstrument(LusidInstrument):
|
|
31
32
|
asset_class: StrictStr = Field(...,alias="assetClass", description="The available values are: InterestRates, FX, Inflation, Equities, Credit, Commodities, Money, Unknown")
|
32
33
|
fgn_ccys: Optional[conlist(StrictStr)] = Field(None, alias="fgnCcys", description="The set of foreign currencies, if any (optional).")
|
33
34
|
simple_instrument_type: StrictStr = Field(...,alias="simpleInstrumentType", description="The Instrument type of the simple instrument.")
|
35
|
+
time_zone_conventions: Optional[TimeZoneConventions] = Field(None, alias="timeZoneConventions")
|
34
36
|
instrument_type: StrictStr = Field(...,alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility, FlexibleDeposit")
|
35
37
|
additional_properties: Dict[str, Any] = {}
|
36
|
-
__properties = ["instrumentType", "maturityDate", "domCcy", "assetClass", "fgnCcys", "simpleInstrumentType"]
|
38
|
+
__properties = ["instrumentType", "maturityDate", "domCcy", "assetClass", "fgnCcys", "simpleInstrumentType", "timeZoneConventions"]
|
37
39
|
|
38
40
|
@validator('asset_class')
|
39
41
|
def asset_class_validate_enum(cls, value):
|
@@ -82,6 +84,9 @@ class SimpleInstrument(LusidInstrument):
|
|
82
84
|
"additional_properties"
|
83
85
|
},
|
84
86
|
exclude_none=True)
|
87
|
+
# override the default output from pydantic by calling `to_dict()` of time_zone_conventions
|
88
|
+
if self.time_zone_conventions:
|
89
|
+
_dict['timeZoneConventions'] = self.time_zone_conventions.to_dict()
|
85
90
|
# puts key-value pairs in additional_properties in the top level
|
86
91
|
if self.additional_properties is not None:
|
87
92
|
for _key, _value in self.additional_properties.items():
|
@@ -109,7 +114,8 @@ class SimpleInstrument(LusidInstrument):
|
|
109
114
|
"dom_ccy": obj.get("domCcy"),
|
110
115
|
"asset_class": obj.get("assetClass"),
|
111
116
|
"fgn_ccys": obj.get("fgnCcys"),
|
112
|
-
"simple_instrument_type": obj.get("simpleInstrumentType")
|
117
|
+
"simple_instrument_type": obj.get("simpleInstrumentType"),
|
118
|
+
"time_zone_conventions": TimeZoneConventions.from_dict(obj.get("timeZoneConventions")) if obj.get("timeZoneConventions") is not None else None
|
113
119
|
})
|
114
120
|
# store additional fields in additional_properties
|
115
121
|
for _key in obj.keys():
|
@@ -0,0 +1,91 @@
|
|
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, constr, validator
|
23
|
+
|
24
|
+
class TimeZoneConventions(BaseModel):
|
25
|
+
"""
|
26
|
+
Provides information on the primary time zone of an instrument and optional cut labels for defining times to be used by instrument events. # noqa: E501
|
27
|
+
"""
|
28
|
+
primary_time_zone: StrictStr = Field(...,alias="primaryTimeZone", description="The IANA time zone code for the instrument.")
|
29
|
+
start_of_day: Optional[StrictStr] = Field(None,alias="startOfDay", description="A LUSID Cut Label code used for generating instrument events at a time other than local midnight.")
|
30
|
+
primary_market_open: Optional[StrictStr] = Field(None,alias="primaryMarketOpen", description="A LUSID Cut Label code used for delaying the transaction time of certain instrument events until market open.")
|
31
|
+
__properties = ["primaryTimeZone", "startOfDay", "primaryMarketOpen"]
|
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) -> TimeZoneConventions:
|
56
|
+
"""Create an instance of TimeZoneConventions 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
|
+
# set to None if start_of_day (nullable) is None
|
66
|
+
# and __fields_set__ contains the field
|
67
|
+
if self.start_of_day is None and "start_of_day" in self.__fields_set__:
|
68
|
+
_dict['startOfDay'] = None
|
69
|
+
|
70
|
+
# set to None if primary_market_open (nullable) is None
|
71
|
+
# and __fields_set__ contains the field
|
72
|
+
if self.primary_market_open is None and "primary_market_open" in self.__fields_set__:
|
73
|
+
_dict['primaryMarketOpen'] = None
|
74
|
+
|
75
|
+
return _dict
|
76
|
+
|
77
|
+
@classmethod
|
78
|
+
def from_dict(cls, obj: dict) -> TimeZoneConventions:
|
79
|
+
"""Create an instance of TimeZoneConventions from a dict"""
|
80
|
+
if obj is None:
|
81
|
+
return None
|
82
|
+
|
83
|
+
if not isinstance(obj, dict):
|
84
|
+
return TimeZoneConventions.parse_obj(obj)
|
85
|
+
|
86
|
+
_obj = TimeZoneConventions.parse_obj({
|
87
|
+
"primary_time_zone": obj.get("primaryTimeZone"),
|
88
|
+
"start_of_day": obj.get("startOfDay"),
|
89
|
+
"primary_market_open": obj.get("primaryMarketOpen")
|
90
|
+
})
|
91
|
+
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.745
|
4
4
|
Summary: LUSID API
|
5
5
|
Home-page: https://github.com/finbourne/lusid-sdk-python
|
6
6
|
License: MIT
|
@@ -144,16 +144,16 @@ Class | Method | HTTP request | Description
|
|
144
144
|
*ComplianceApi* | [**upsert_compliance_rule**](docs/ComplianceApi.md#upsert_compliance_rule) | **POST** /api/compliance/rules | [EARLY ACCESS] UpsertComplianceRule: Upsert a compliance rule.
|
145
145
|
*ComplianceApi* | [**upsert_compliance_run_summary**](docs/ComplianceApi.md#upsert_compliance_run_summary) | **POST** /api/compliance/runs/summary | [EARLY ACCESS] UpsertComplianceRunSummary: Upsert a compliance run summary.
|
146
146
|
*ConfigurationRecipeApi* | [**delete_configuration_recipe**](docs/ConfigurationRecipeApi.md#delete_configuration_recipe) | **DELETE** /api/recipes/{scope}/{code} | DeleteConfigurationRecipe: Delete a Configuration Recipe, assuming that it is present.
|
147
|
-
*ConfigurationRecipeApi* | [**delete_recipe_composer**](docs/ConfigurationRecipeApi.md#delete_recipe_composer) | **DELETE** /api/recipes/composer/{scope}/{code} |
|
147
|
+
*ConfigurationRecipeApi* | [**delete_recipe_composer**](docs/ConfigurationRecipeApi.md#delete_recipe_composer) | **DELETE** /api/recipes/composer/{scope}/{code} | DeleteRecipeComposer: Delete a Recipe Composer, assuming that it is present.
|
148
148
|
*ConfigurationRecipeApi* | [**get_configuration_recipe**](docs/ConfigurationRecipeApi.md#get_configuration_recipe) | **GET** /api/recipes/{scope}/{code} | GetConfigurationRecipe: Get Configuration Recipe
|
149
|
-
*ConfigurationRecipeApi* | [**get_derived_recipe**](docs/ConfigurationRecipeApi.md#get_derived_recipe) | **GET** /api/recipes/derived/{scope}/{code} |
|
150
|
-
*ConfigurationRecipeApi* | [**get_recipe_composer**](docs/ConfigurationRecipeApi.md#get_recipe_composer) | **GET** /api/recipes/composer/{scope}/{code} |
|
151
|
-
*ConfigurationRecipeApi* | [**get_recipe_composer_resolved_inline**](docs/ConfigurationRecipeApi.md#get_recipe_composer_resolved_inline) | **POST** /api/recipes/composer/resolvedinline$ |
|
149
|
+
*ConfigurationRecipeApi* | [**get_derived_recipe**](docs/ConfigurationRecipeApi.md#get_derived_recipe) | **GET** /api/recipes/derived/{scope}/{code} | GetDerivedRecipe: Get Configuration Recipe either from the store or expanded from a Recipe Composer.
|
150
|
+
*ConfigurationRecipeApi* | [**get_recipe_composer**](docs/ConfigurationRecipeApi.md#get_recipe_composer) | **GET** /api/recipes/composer/{scope}/{code} | GetRecipeComposer: Get Recipe Composer
|
151
|
+
*ConfigurationRecipeApi* | [**get_recipe_composer_resolved_inline**](docs/ConfigurationRecipeApi.md#get_recipe_composer_resolved_inline) | **POST** /api/recipes/composer/resolvedinline$ | GetRecipeComposerResolvedInline: Given a Recipe Composer, this endpoint expands into a Configuration Recipe without persistence. Primarily used for testing purposes.
|
152
152
|
*ConfigurationRecipeApi* | [**list_configuration_recipes**](docs/ConfigurationRecipeApi.md#list_configuration_recipes) | **GET** /api/recipes | ListConfigurationRecipes: List the set of Configuration Recipes
|
153
|
-
*ConfigurationRecipeApi* | [**list_derived_recipes**](docs/ConfigurationRecipeApi.md#list_derived_recipes) | **GET** /api/recipes/derived |
|
154
|
-
*ConfigurationRecipeApi* | [**list_recipe_composers**](docs/ConfigurationRecipeApi.md#list_recipe_composers) | **GET** /api/recipes/composer |
|
153
|
+
*ConfigurationRecipeApi* | [**list_derived_recipes**](docs/ConfigurationRecipeApi.md#list_derived_recipes) | **GET** /api/recipes/derived | ListDerivedRecipes: List the complete set of all Configuration Recipes, both from the configuration recipe store and also from expanded recipe composers.
|
154
|
+
*ConfigurationRecipeApi* | [**list_recipe_composers**](docs/ConfigurationRecipeApi.md#list_recipe_composers) | **GET** /api/recipes/composer | ListRecipeComposers: List the set of Recipe Composers
|
155
155
|
*ConfigurationRecipeApi* | [**upsert_configuration_recipe**](docs/ConfigurationRecipeApi.md#upsert_configuration_recipe) | **POST** /api/recipes | UpsertConfigurationRecipe: Upsert a Configuration Recipe. This creates or updates the data in Lusid.
|
156
|
-
*ConfigurationRecipeApi* | [**upsert_recipe_composer**](docs/ConfigurationRecipeApi.md#upsert_recipe_composer) | **POST** /api/recipes/composer |
|
156
|
+
*ConfigurationRecipeApi* | [**upsert_recipe_composer**](docs/ConfigurationRecipeApi.md#upsert_recipe_composer) | **POST** /api/recipes/composer | UpsertRecipeComposer: Upsert a Recipe Composer. This creates or updates the data in Lusid.
|
157
157
|
*ConventionsApi* | [**delete_cds_flow_conventions**](docs/ConventionsApi.md#delete_cds_flow_conventions) | **DELETE** /api/conventions/credit/conventions/{scope}/{code} | [BETA] DeleteCdsFlowConventions: Delete the CDS Flow Conventions of given scope and code, assuming that it is present.
|
158
158
|
*ConventionsApi* | [**delete_flow_conventions**](docs/ConventionsApi.md#delete_flow_conventions) | **DELETE** /api/conventions/rates/flowconventions/{scope}/{code} | [BETA] DeleteFlowConventions: Delete the Flow Conventions of given scope and code, assuming that it is present.
|
159
159
|
*ConventionsApi* | [**delete_index_convention**](docs/ConventionsApi.md#delete_index_convention) | **DELETE** /api/conventions/rates/indexconventions/{scope}/{code} | [BETA] DeleteIndexConvention: Delete the Index Convention of given scope and code, assuming that it is present.
|
@@ -1675,6 +1675,7 @@ Class | Method | HTTP request | Description
|
|
1675
1675
|
- [TermDeposit](docs/TermDeposit.md)
|
1676
1676
|
- [TermDepositInterestEvent](docs/TermDepositInterestEvent.md)
|
1677
1677
|
- [TermDepositPrincipalEvent](docs/TermDepositPrincipalEvent.md)
|
1678
|
+
- [TimeZoneConventions](docs/TimeZoneConventions.md)
|
1678
1679
|
- [Timeline](docs/Timeline.md)
|
1679
1680
|
- [TotalReturnSwap](docs/TotalReturnSwap.md)
|
1680
1681
|
- [Touch](docs/Touch.md)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
lusid/__init__.py,sha256=
|
1
|
+
lusid/__init__.py,sha256=kHlR516UijAajXglYteUjDH57twtZT_QorwujdyVxpQ,134967
|
2
2
|
lusid/api/__init__.py,sha256=b9BsX0qfl4jZSlEid6ihux1dyYgNwjtKQZk23veBuc0,6204
|
3
3
|
lusid/api/abor_api.py,sha256=oAvtx9mQGWa5ZQRKjhzkJJH110GiIqiPIefIYNoiT14,166017
|
4
4
|
lusid/api/abor_configuration_api.py,sha256=3Y3KwOOJqPsCsl7rfP-ScCYrKvVsQSP5adbsAsJ9G1s,74238
|
@@ -12,7 +12,7 @@ lusid/api/calendars_api.py,sha256=Z1Zo2PDggpII8e6DyKlun1EZkCqU0I9MtqTsKfu5buI,14
|
|
12
12
|
lusid/api/chart_of_accounts_api.py,sha256=IjcmZkafnygX94B-Efv43JzCBPVkrambPnOvAbhmOzk,404308
|
13
13
|
lusid/api/complex_market_data_api.py,sha256=zMbTs8l7LUVn7Zgv3nvf2C42D_b5WzQWvOXcWaW0l5Y,47893
|
14
14
|
lusid/api/compliance_api.py,sha256=mbq3E4h6nMQp7mowJussYN2f92YDIsjwYQw7wiTjHG4,147595
|
15
|
-
lusid/api/configuration_recipe_api.py,sha256=
|
15
|
+
lusid/api/configuration_recipe_api.py,sha256=UIiHuWdWVhe4tcHXYjQpAHqsOhEFYQIexIjDoA2Gii0,99181
|
16
16
|
lusid/api/conventions_api.py,sha256=dsvB_lAcR5oVQLTqVJj9_zruF7Tyn8aGzD9EmEKvfWY,104288
|
17
17
|
lusid/api/corporate_action_sources_api.py,sha256=7Js9dAFi_HOsYjZvYQew8SjK8x45x-Bi3VJxY-dhDKU,98350
|
18
18
|
lusid/api/counterparties_api.py,sha256=dvRW05miC9_DBYAvJavmNucbNY4ZDwFjqLNXSoP-05A,71156
|
@@ -74,7 +74,7 @@ lusid/api/translation_api.py,sha256=xpRuTfwQvYBlWe6r_L2EI_uVpXqHFnEOim-i-kVQ85E,
|
|
74
74
|
lusid/api/workspace_api.py,sha256=RplAKcky_SrK0V3nhh2K0UmWGeXggr6RQ4-g9Hqy7hw,190986
|
75
75
|
lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
|
76
76
|
lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
|
77
|
-
lusid/configuration.py,sha256=
|
77
|
+
lusid/configuration.py,sha256=ks65KUnPe054YZibq6ZVdw2YEcJWBC-FOXbX_c0lFfY,17972
|
78
78
|
lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
|
79
79
|
lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
|
80
80
|
lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
|
@@ -89,7 +89,7 @@ lusid/extensions/rest.py,sha256=dp-bD_LMR2zAL1tmC3-urhWKLomXx7r5iGN1VteMBVQ,1601
|
|
89
89
|
lusid/extensions/retry.py,sha256=EhW9OKJmGHipxN3H7eROH5DiMlAnfBVl95NQrttcsdg,14834
|
90
90
|
lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
|
91
91
|
lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
|
92
|
-
lusid/models/__init__.py,sha256=
|
92
|
+
lusid/models/__init__.py,sha256=aG-JNcd-oxp5HteVVe_fyWBlDigBatl5QEZc-yj6oVc,127731
|
93
93
|
lusid/models/a2_b_breakdown.py,sha256=-FXgILrvtZXQDmvS0ARaJVGBq5LJ4AH-o3HjujFVmS4,3198
|
94
94
|
lusid/models/a2_b_category.py,sha256=WunXUgx-dCnApPeLC8Qo5tVCX8Ywxkehib1vmNqNgNs,2957
|
95
95
|
lusid/models/a2_b_data_record.py,sha256=qANTmV1_HUEo4l72-F8qzZjlQxOe0Onc9WPz7h-WWuY,9993
|
@@ -423,7 +423,7 @@ lusid/models/election_specification.py,sha256=3VJre2H4qid96ZR5SXhXfPhvA5Oq_qqnN7
|
|
423
423
|
lusid/models/eligibility_calculation.py,sha256=97wEddIjii77XbgiFbEDj7W1J-t83eNMY_Vip_Qi2ZI,2558
|
424
424
|
lusid/models/empty_model_options.py,sha256=DJgB8uiXbH0oe1x7sr188clNFN67m6I0DoYgfvqHzKw,3429
|
425
425
|
lusid/models/entity_identifier.py,sha256=EQViVLb6TAjWij-L4_E6YsuhVJyOeoH0WpOT6Ry9s00,2862
|
426
|
-
lusid/models/equity.py,sha256=
|
426
|
+
lusid/models/equity.py,sha256=oQWJBzBpWevWB4ub0y82gmOjqtG5I1MJPL0tDhC2nvQ,6787
|
427
427
|
lusid/models/equity_all_of_identifiers.py,sha256=cGcoWnJWfKFLEfa_YNKZB5vEpSRA3eCJJK5Mp0ryW14,3967
|
428
428
|
lusid/models/equity_curve_by_prices_data.py,sha256=MGJsoOLV68lxkCwI4TTxmNoSkI8E_WyyVnA7JB8BlTM,5831
|
429
429
|
lusid/models/equity_curve_dependency.py,sha256=8McLjayIp6MejTJAakFZXMyIi8gUWtHESlNw2v1n3Jk,5161
|
@@ -1066,7 +1066,7 @@ lusid/models/side_definition.py,sha256=CvaBprb8Yfn4-RIGZwDe_6lbYrXqIoceHHSEraDqq
|
|
1066
1066
|
lusid/models/side_definition_request.py,sha256=82qCIEygo3CVGiiXcYK8cf6GDgimJTo-ilI_HlNci6c,3867
|
1067
1067
|
lusid/models/sides_definition_request.py,sha256=tM5Eo8aIEQoMy0qzv1WQZlst_yV3RwIemY-wlvbFqMU,2654
|
1068
1068
|
lusid/models/simple_cash_flow_loan.py,sha256=L3u3ds-fBRWZew_Pfa0y1bx4hisvDEQp4R3f32t_LQg,6742
|
1069
|
-
lusid/models/simple_instrument.py,sha256=
|
1069
|
+
lusid/models/simple_instrument.py,sha256=VjsvyfjTzFdP2pzcfpWu-hxy8x_1nzxrdRQl82eTsME,7791
|
1070
1070
|
lusid/models/simple_rounding_convention.py,sha256=txqtrVhoOfgLx5zQKvPJPl1lUNOQ95QYk4FPhkdDDbo,2996
|
1071
1071
|
lusid/models/sort_order.py,sha256=tx9hNHkrcdw2gQkSLTGQ-JED7cqZoFJ60abVdqkD-GM,644
|
1072
1072
|
lusid/models/specific_holding_pricing_info.py,sha256=dSwywkW-7xLyDND_JDzHrDDEbVeDNQC8AuDM0iUWaeM,2957
|
@@ -1105,6 +1105,7 @@ lusid/models/tender_event.py,sha256=Cqi4ZldVBx3fJvEVHMsTJiWYypru48xcCWyjeIuo19E,
|
|
1105
1105
|
lusid/models/term_deposit.py,sha256=1CKC5S9d2hl9bG3kLQ291taPE55_E3Yjm1EQSEAJr34,7126
|
1106
1106
|
lusid/models/term_deposit_interest_event.py,sha256=AT5U_b40jPSsw2kRIqnX0kQ4wPus_LD1GwyXCLWA4to,8054
|
1107
1107
|
lusid/models/term_deposit_principal_event.py,sha256=5LqCl7VbN2PP8EdIQ34StAmca_t9BH3b-9TWPhNxFbo,8074
|
1108
|
+
lusid/models/time_zone_conventions.py,sha256=ug2QOnAlo1cDO2zik4QcM0qOVQ4mfwZEtO_VveXpPHI,3390
|
1108
1109
|
lusid/models/timeline.py,sha256=y25DDxxywzxN8_0WFAxY1tIx_6KvMPn0xJkCsnrJykI,5582
|
1109
1110
|
lusid/models/total_return_swap.py,sha256=Lr_muodkJfU3MkQBIk0QV5EXeyxwzjlIGvgStY_fol0,8985
|
1110
1111
|
lusid/models/touch.py,sha256=989spNJsiwn74GJE3GPr8GNaP0MPnkMsFIWO67Wd6FQ,2966
|
@@ -1284,6 +1285,6 @@ lusid/models/workspace_update_request.py,sha256=ihKnBY685hfgs9uoyAXQNt1w7iOF-6Jc
|
|
1284
1285
|
lusid/models/yield_curve_data.py,sha256=eDxj1qjChju3anFaQzywjFOuchX5i0pOTh5N-zcvJzg,6540
|
1285
1286
|
lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1286
1287
|
lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
|
1287
|
-
lusid_sdk-2.1.
|
1288
|
-
lusid_sdk-2.1.
|
1289
|
-
lusid_sdk-2.1.
|
1288
|
+
lusid_sdk-2.1.745.dist-info/METADATA,sha256=Qb4P2DzEAnj0x4YciVtjyeUjIOd3Db63B9Tji_kOfjk,219183
|
1289
|
+
lusid_sdk-2.1.745.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
1290
|
+
lusid_sdk-2.1.745.dist-info/RECORD,,
|
File without changes
|