lusid-sdk 2.1.619__py3-none-any.whl → 2.1.620__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/configuration.py +1 -1
- lusid/models/cap_floor.py +19 -4
- lusid/models/complex_bond.py +10 -3
- lusid/models/fee_accrual.py +3 -1
- {lusid_sdk-2.1.619.dist-info → lusid_sdk-2.1.620.dist-info}/METADATA +1 -1
- {lusid_sdk-2.1.619.dist-info → lusid_sdk-2.1.620.dist-info}/RECORD +7 -7
- {lusid_sdk-2.1.619.dist-info → lusid_sdk-2.1.620.dist-info}/WHEEL +0 -0
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.7163\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/cap_floor.py
CHANGED
@@ -18,8 +18,9 @@ import re # noqa: F401
|
|
18
18
|
import json
|
19
19
|
|
20
20
|
|
21
|
-
from typing import Any, Dict, Optional, Union
|
22
|
-
from pydantic.v1 import Field, StrictBool, StrictFloat, StrictInt, StrictStr, constr, validator
|
21
|
+
from typing import Any, Dict, List, Optional, Union
|
22
|
+
from pydantic.v1 import Field, StrictBool, StrictFloat, StrictInt, StrictStr, conlist, constr, validator
|
23
|
+
from lusid.models.additional_payment import AdditionalPayment
|
23
24
|
from lusid.models.floating_leg import FloatingLeg
|
24
25
|
from lusid.models.lusid_instrument import LusidInstrument
|
25
26
|
|
@@ -32,9 +33,10 @@ class CapFloor(LusidInstrument):
|
|
32
33
|
floor_strike: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="floorStrike", description="Strike rate of the Floor.")
|
33
34
|
include_first_caplet: StrictBool = Field(..., alias="includeFirstCaplet", description="Include first caplet flag.")
|
34
35
|
underlying_floating_leg: FloatingLeg = Field(..., alias="underlyingFloatingLeg")
|
36
|
+
additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven equity swap. The dates must be distinct and either all payments are Pay or all payments are Receive.")
|
35
37
|
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")
|
36
38
|
additional_properties: Dict[str, Any] = {}
|
37
|
-
__properties = ["instrumentType", "capFloorType", "capStrike", "floorStrike", "includeFirstCaplet", "underlyingFloatingLeg"]
|
39
|
+
__properties = ["instrumentType", "capFloorType", "capStrike", "floorStrike", "includeFirstCaplet", "underlyingFloatingLeg", "additionalPayments"]
|
38
40
|
|
39
41
|
@validator('instrument_type')
|
40
42
|
def instrument_type_validate_enum(cls, value):
|
@@ -71,6 +73,13 @@ class CapFloor(LusidInstrument):
|
|
71
73
|
# override the default output from pydantic by calling `to_dict()` of underlying_floating_leg
|
72
74
|
if self.underlying_floating_leg:
|
73
75
|
_dict['underlyingFloatingLeg'] = self.underlying_floating_leg.to_dict()
|
76
|
+
# override the default output from pydantic by calling `to_dict()` of each item in additional_payments (list)
|
77
|
+
_items = []
|
78
|
+
if self.additional_payments:
|
79
|
+
for _item in self.additional_payments:
|
80
|
+
if _item:
|
81
|
+
_items.append(_item.to_dict())
|
82
|
+
_dict['additionalPayments'] = _items
|
74
83
|
# puts key-value pairs in additional_properties in the top level
|
75
84
|
if self.additional_properties is not None:
|
76
85
|
for _key, _value in self.additional_properties.items():
|
@@ -86,6 +95,11 @@ class CapFloor(LusidInstrument):
|
|
86
95
|
if self.floor_strike is None and "floor_strike" in self.__fields_set__:
|
87
96
|
_dict['floorStrike'] = None
|
88
97
|
|
98
|
+
# set to None if additional_payments (nullable) is None
|
99
|
+
# and __fields_set__ contains the field
|
100
|
+
if self.additional_payments is None and "additional_payments" in self.__fields_set__:
|
101
|
+
_dict['additionalPayments'] = None
|
102
|
+
|
89
103
|
return _dict
|
90
104
|
|
91
105
|
@classmethod
|
@@ -103,7 +117,8 @@ class CapFloor(LusidInstrument):
|
|
103
117
|
"cap_strike": obj.get("capStrike"),
|
104
118
|
"floor_strike": obj.get("floorStrike"),
|
105
119
|
"include_first_caplet": obj.get("includeFirstCaplet"),
|
106
|
-
"underlying_floating_leg": FloatingLeg.from_dict(obj.get("underlyingFloatingLeg")) if obj.get("underlyingFloatingLeg") is not None else None
|
120
|
+
"underlying_floating_leg": FloatingLeg.from_dict(obj.get("underlyingFloatingLeg")) if obj.get("underlyingFloatingLeg") is not None else None,
|
121
|
+
"additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None
|
107
122
|
})
|
108
123
|
# store additional fields in additional_properties
|
109
124
|
for _key in obj.keys():
|
lusid/models/complex_bond.py
CHANGED
@@ -18,8 +18,8 @@ import re # noqa: F401
|
|
18
18
|
import json
|
19
19
|
|
20
20
|
|
21
|
-
from typing import Any, Dict, List, Optional
|
22
|
-
from pydantic.v1 import Field, StrictBool, StrictStr, conlist, constr, validator
|
21
|
+
from typing import Any, Dict, List, Optional, Union
|
22
|
+
from pydantic.v1 import Field, StrictBool, StrictFloat, StrictInt, StrictStr, conlist, constr, validator
|
23
23
|
from lusid.models.lusid_instrument import LusidInstrument
|
24
24
|
from lusid.models.rounding_convention import RoundingConvention
|
25
25
|
from lusid.models.schedule import Schedule
|
@@ -32,13 +32,14 @@ class ComplexBond(LusidInstrument):
|
|
32
32
|
identifiers: Optional[Dict[str, StrictStr]] = Field(None, description="External market codes and identifiers for the bond, e.g. ISIN.")
|
33
33
|
calculation_type: Optional[constr(strict=True, max_length=50, min_length=0)] = Field(None, alias="calculationType", description="The calculation type applied to the bond coupon amount. This is required for bonds that have a particular type of computing the period coupon, such as simple compounding, irregular coupons etc. The default CalculationType is `Standard`, which returns a coupon amount equal to Principal * Coupon Rate / Coupon Frequency. Coupon Frequency is 12M / Payment Frequency. Payment Frequency can be 1M, 3M, 6M, 12M etc. So Coupon Frequency can be 12, 4, 2, 1 respectively. Supported string (enumeration) values are: [Standard, DayCountCoupon, NoCalculationFloater, BrazilFixedCoupon, StandardWithCappedAccruedInterest].")
|
34
34
|
schedules: Optional[conlist(Schedule)] = Field(None, description="schedules.")
|
35
|
+
original_issue_price: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="originalIssuePrice", description="The price the complex bond was issued at. This is to be entered as a percentage of par, for example a value of 98.5 would represent 98.5%.")
|
35
36
|
rounding_conventions: Optional[conlist(RoundingConvention)] = Field(None, alias="roundingConventions", description="Rounding conventions for analytics, if any.")
|
36
37
|
asset_backed: Optional[StrictBool] = Field(None, alias="assetBacked", description="If this flag is set to true, then the outstanding notional and principal repayments will be calculated based on pool factors in the quote store. Usually AssetBacked bonds also require a RollConvention setting of within the FlowConventions any given rates schedule (to ensure payment dates always happen on the same day of the month) and US Agency MBSs with Pay Delay features also require their rates schedules to include an ExDividendConfiguration to drive the lag between interest accrual and payment.")
|
37
38
|
asset_pool_identifier: Optional[constr(strict=True, max_length=50, min_length=0)] = Field(None, alias="assetPoolIdentifier", description="Identifier used to retrieve pool factor information about this bond from the quote store. This is typically the bond's ISIN, but can also be ClientInternal. Please ensure you align the MarketDataKeyRule with the correct Quote (Quote.ClientInternal.* or Quote.Isin.*)")
|
38
39
|
trading_conventions: Optional[TradingConventions] = Field(None, alias="tradingConventions")
|
39
40
|
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")
|
40
41
|
additional_properties: Dict[str, Any] = {}
|
41
|
-
__properties = ["instrumentType", "identifiers", "calculationType", "schedules", "roundingConventions", "assetBacked", "assetPoolIdentifier", "tradingConventions"]
|
42
|
+
__properties = ["instrumentType", "identifiers", "calculationType", "schedules", "originalIssuePrice", "roundingConventions", "assetBacked", "assetPoolIdentifier", "tradingConventions"]
|
42
43
|
|
43
44
|
@validator('instrument_type')
|
44
45
|
def instrument_type_validate_enum(cls, value):
|
@@ -109,6 +110,11 @@ class ComplexBond(LusidInstrument):
|
|
109
110
|
if self.schedules is None and "schedules" in self.__fields_set__:
|
110
111
|
_dict['schedules'] = None
|
111
112
|
|
113
|
+
# set to None if original_issue_price (nullable) is None
|
114
|
+
# and __fields_set__ contains the field
|
115
|
+
if self.original_issue_price is None and "original_issue_price" in self.__fields_set__:
|
116
|
+
_dict['originalIssuePrice'] = None
|
117
|
+
|
112
118
|
# set to None if rounding_conventions (nullable) is None
|
113
119
|
# and __fields_set__ contains the field
|
114
120
|
if self.rounding_conventions is None and "rounding_conventions" in self.__fields_set__:
|
@@ -140,6 +146,7 @@ class ComplexBond(LusidInstrument):
|
|
140
146
|
"identifiers": obj.get("identifiers"),
|
141
147
|
"calculation_type": obj.get("calculationType"),
|
142
148
|
"schedules": [Schedule.from_dict(_item) for _item in obj.get("schedules")] if obj.get("schedules") is not None else None,
|
149
|
+
"original_issue_price": obj.get("originalIssuePrice"),
|
143
150
|
"rounding_conventions": [RoundingConvention.from_dict(_item) for _item in obj.get("roundingConventions")] if obj.get("roundingConventions") is not None else None,
|
144
151
|
"asset_backed": obj.get("assetBacked"),
|
145
152
|
"asset_pool_identifier": obj.get("assetPoolIdentifier"),
|
lusid/models/fee_accrual.py
CHANGED
@@ -32,9 +32,10 @@ class FeeAccrual(BaseModel):
|
|
32
32
|
calculation_base: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="calculationBase", description="The result of the evaluating the fee's calculation base expression.")
|
33
33
|
amount: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="The result of applying the fee to the calculation base, and scaled down to a day.")
|
34
34
|
previous_accrual: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="previousAccrual", description="The previous valuation point's total accrual.")
|
35
|
+
previous_total_accrual: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="previousTotalAccrual", description="The previous valuation point's total accrual.")
|
35
36
|
total_accrual: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="totalAccrual", description="The sum of the PreviousAccrual and Amount.")
|
36
37
|
links: Optional[conlist(Link)] = None
|
37
|
-
__properties = ["effectiveAt", "code", "name", "calculationBase", "amount", "previousAccrual", "totalAccrual", "links"]
|
38
|
+
__properties = ["effectiveAt", "code", "name", "calculationBase", "amount", "previousAccrual", "previousTotalAccrual", "totalAccrual", "links"]
|
38
39
|
|
39
40
|
@validator('code')
|
40
41
|
def code_validate_regular_expression(cls, value):
|
@@ -97,6 +98,7 @@ class FeeAccrual(BaseModel):
|
|
97
98
|
"calculation_base": obj.get("calculationBase"),
|
98
99
|
"amount": obj.get("amount"),
|
99
100
|
"previous_accrual": obj.get("previousAccrual"),
|
101
|
+
"previous_total_accrual": obj.get("previousTotalAccrual"),
|
100
102
|
"total_accrual": obj.get("totalAccrual"),
|
101
103
|
"links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
|
102
104
|
})
|
@@ -72,7 +72,7 @@ lusid/api/translation_api.py,sha256=nIyuLncCvVC5k2d7Nm32zR8AQ1dkrVm1OThkmELY_OM,
|
|
72
72
|
lusid/api/workspace_api.py,sha256=Yox1q7TDY-_O3HF-N8g5kGuNgp4unWvlSZmRZ6MNZO0,196701
|
73
73
|
lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
|
74
74
|
lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
|
75
|
-
lusid/configuration.py,sha256=
|
75
|
+
lusid/configuration.py,sha256=1W9NsRldOrjadwepaxuTthpRgawAN2nkWt75lu-DkHk,17972
|
76
76
|
lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
|
77
77
|
lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
|
78
78
|
lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
|
@@ -200,7 +200,7 @@ lusid/models/cancel_placements_response.py,sha256=xe43QiiMvapew4BvR1C3wj5tYgn-zL
|
|
200
200
|
lusid/models/cancel_single_holding_adjustment_request.py,sha256=55NQVC3IsJqXN6Cmn7E2y7Pa8OobQc71Dlgl_5-4Hcg,3880
|
201
201
|
lusid/models/cancelled_order_result.py,sha256=ZAwAhNd7IouFTPRwwYvAflZqlYkbweSttNmJ6cHoIkw,2187
|
202
202
|
lusid/models/cancelled_placement_result.py,sha256=eW3lgoyFakoGKcFSp3WN11bpuJyJun9jm8rVS4hdxwg,3127
|
203
|
-
lusid/models/cap_floor.py,sha256=
|
203
|
+
lusid/models/cap_floor.py,sha256=l66x7biOKvqacInPheCBfTuBSLsLFrF5T4nxSozg7bw,7862
|
204
204
|
lusid/models/capital_distribution_event.py,sha256=odmRb5SUm-U4DOwNnZURknvtqu5GU8Mu_uz1zn9zwMU,8521
|
205
205
|
lusid/models/cash.py,sha256=_hsaJ_UwziEWxDMUY0DyTth2376VtU__Zrx8f-vA2gs,5099
|
206
206
|
lusid/models/cash_and_security_offer_election.py,sha256=9xxHftE8QRdsizLEXCyvxFdkPpm9KU3fxz8WNjJv430,3933
|
@@ -242,7 +242,7 @@ lusid/models/comparison_attribute_value_pair.py,sha256=4AYi8WddelHw2hQw-O8z6snCK
|
|
242
242
|
lusid/models/complete_portfolio.py,sha256=_y1LTAZ7pErx7ioQu20WLK_l3sy55JRoJo8c4yZb3jE,7827
|
243
243
|
lusid/models/complete_relation.py,sha256=T1Wd-knJ0m60ZV82FRinBboqaj0XioTUirK43ozT1q4,3908
|
244
244
|
lusid/models/complete_relationship.py,sha256=oO5LLSMYB6IXIsWZVoooboC0TEo3aaox6zLFdnn1wLk,5168
|
245
|
-
lusid/models/complex_bond.py,sha256=
|
245
|
+
lusid/models/complex_bond.py,sha256=S1J2TYxy6aBYsedlH_4GEuxFWSHDbwHw3u1Ld8OLq_A,11107
|
246
246
|
lusid/models/complex_market_data.py,sha256=p0lDUrbTUaRavdvUAqEWYQioKDkEc8gDXZMAT6DJ-Oo,5865
|
247
247
|
lusid/models/complex_market_data_id.py,sha256=Wy6TsnE2ismNdytM1lV6TxPgl92-wTsfohXYt-dN_yk,3964
|
248
248
|
lusid/models/compliance_breached_order_info.py,sha256=mz1wCMcqXM8dW4LvbPavNCGpXlU4MYg8oOwVK51WcR8,2970
|
@@ -428,7 +428,7 @@ lusid/models/expanded_group.py,sha256=e1fIiusdlI_VtjJlF4g5O_yg6A_5VDOg2LaW94CUyJ
|
|
428
428
|
lusid/models/expiry_event.py,sha256=ybsItvlBESIY4OJvH-F6lUKIADTw3P1LqUXa0yOJHdI,6577
|
429
429
|
lusid/models/external_fee_component_filter.py,sha256=MYonxkbn322SfeeMvNUZ4VvjZlqw24SuBPECUkw-1wk,3125
|
430
430
|
lusid/models/fee.py,sha256=QhQeSjYw4h7mpQ4d4bGSnu2WU_A1J8pMJwi8j8fm210,11945
|
431
|
-
lusid/models/fee_accrual.py,sha256=
|
431
|
+
lusid/models/fee_accrual.py,sha256=mDri5QECjlRtM3l2g1eGTbkgP0pmdtQNL7vOfpFX3-o,4587
|
432
432
|
lusid/models/fee_properties.py,sha256=Q92whmRw6aIwyxsgLVF9vntTY5WLwtrDdJMw9sSNoEQ,4232
|
433
433
|
lusid/models/fee_request.py,sha256=WiLPnFankXqmxVgg0tBZbFHxvXF-QZMa1TqJsMIUR5Q,10429
|
434
434
|
lusid/models/fee_rule.py,sha256=Ez0GUE-1FlzEO8VF1IbH3p2I6gjMaQ6arWzo3VCyi5Q,6070
|
@@ -1252,6 +1252,6 @@ lusid/models/workspace_update_request.py,sha256=uUXEpX-dJ5UiL9w1wMxIFeovSBiTJ-vi
|
|
1252
1252
|
lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
|
1253
1253
|
lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1254
1254
|
lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
|
1255
|
-
lusid_sdk-2.1.
|
1256
|
-
lusid_sdk-2.1.
|
1257
|
-
lusid_sdk-2.1.
|
1255
|
+
lusid_sdk-2.1.620.dist-info/METADATA,sha256=k5BAvz_PUkB24CINQOv8wP-MyEx9f7USkTQXhIrmuQo,213873
|
1256
|
+
lusid_sdk-2.1.620.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
1257
|
+
lusid_sdk-2.1.620.dist-info/RECORD,,
|
File without changes
|