Skip to content

Commit ce6b41b

Browse files
mikelyncattack68
andauthored
CLN: remove legacy periods (#182) (#1104)
Co-authored-by: JHM Darbyshire (M1) <[email protected]>
1 parent 09f02f7 commit ce6b41b

File tree

17 files changed

+41
-9714
lines changed

17 files changed

+41
-9714
lines changed

python/rateslib/__init__.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,6 @@ def __exit__(self, *args) -> None: # type: ignore[no-untyped-def]
115115
FloatPeriod,
116116
FXCallPeriod,
117117
FXPutPeriod,
118-
IndexCashflow,
119-
IndexFixedPeriod,
120-
NonDeliverableCashflow,
121-
NonDeliverableFixedPeriod,
122118
)
123119
from rateslib.scheduling import (
124120
Adjuster,
@@ -224,12 +220,8 @@ def __exit__(self, *args) -> None: # type: ignore[no-untyped-def]
224220
"FixedPeriod",
225221
"FloatPeriod",
226222
"Cashflow",
227-
"IndexCashflow",
228-
"IndexFixedPeriod",
229223
"FXCallPeriod",
230224
"FXPutPeriod",
231-
"NonDeliverableCashflow",
232-
"NonDeliverableFixedPeriod",
233225
"CreditPremiumPeriod",
234226
"CreditProtectionPeriod",
235227
# legs.py

python/rateslib/instruments/components/bonds/bond_future.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
from rateslib.dual.utils import _dual_float
1212
from rateslib.enums.generics import NoInput, _drb
1313
from rateslib.instruments.components.protocols import _BaseInstrument, _KWArgs
14-
from rateslib.periods.utils import _get_fx_and_base
14+
from rateslib.periods.components.utils import (
15+
_maybe_local,
16+
)
1517
from rateslib.rs import Adjuster, Cal, RollDay
1618
from rateslib.scheduling import add_tenor
1719
from rateslib.scheduling.calendars import _get_years_and_months
@@ -1120,10 +1122,12 @@ def npv(
11201122
future_price = self.rate(
11211123
curves=curves, solver=solver, fx=fx, base=base, metric="future_price"
11221124
)
1123-
currency = self.kwargs.meta["currency"].lower() # type: ignore[union-attr]
1124-
fx_, base_ = _get_fx_and_base(currency, fx, base)
1125-
npv_ = future_price / 100 * -self.notional
1126-
if local:
1127-
return {currency: npv_}
1128-
else:
1129-
return npv_ * fx_
1125+
local_npv = future_price / 100 * -self.notional
1126+
return _maybe_local(
1127+
value=local_npv,
1128+
local=local,
1129+
currency=self.kwargs.meta["currency"].lower(),
1130+
fx=fx,
1131+
base=base,
1132+
forward=forward,
1133+
)

python/rateslib/instruments/components/fx_options/call_put.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
)
2525
from rateslib.legs.components import CustomLeg
2626
from rateslib.periods.components import Cashflow, FXCallPeriod, FXPutPeriod
27-
from rateslib.periods.utils import _validate_fx_as_forwards
27+
from rateslib.periods.components.utils import _validate_fx_as_forwards
2828
from rateslib.scheduling.frequency import _get_fx_expiry_and_delivery_and_payment
2929

3030
if TYPE_CHECKING:

python/rateslib/instruments/components/fx_vol_value.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
_maybe_get_fx_vol_maybe_from_solver,
1313
_Vol,
1414
)
15-
from rateslib.periods.utils import _validate_fx_as_forwards
15+
from rateslib.periods.components.utils import _validate_fx_as_forwards
1616

1717
if TYPE_CHECKING:
1818
from rateslib.typing import ( # pragma: no cover
Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
1-
from rateslib.periods.base import BasePeriod
2-
from rateslib.periods.cashflow import Cashflow, NonDeliverableCashflow
3-
from rateslib.periods.credit import CreditPremiumPeriod, CreditProtectionPeriod
4-
from rateslib.periods.fx_volatility import FXCallPeriod, FXOptionPeriod, FXPutPeriod
5-
from rateslib.periods.index import IndexCashflow, IndexFixedPeriod, IndexMixin
6-
from rateslib.periods.rates import FixedPeriod, FloatPeriod, NonDeliverableFixedPeriod
7-
8-
# from rateslib.periods.components import FixedPeriod
1+
from rateslib.periods.components import (
2+
Cashflow,
3+
CreditPremiumPeriod,
4+
CreditProtectionPeriod,
5+
FixedPeriod,
6+
FloatPeriod,
7+
FXCallPeriod,
8+
FXOptionPeriod,
9+
FXPutPeriod,
10+
)
911

1012
__all__ = [
11-
"BasePeriod",
1213
"FXOptionPeriod",
1314
"FXPutPeriod",
1415
"FXCallPeriod",
1516
"Cashflow",
16-
"NonDeliverableCashflow",
1717
"CreditPremiumPeriod",
1818
"CreditProtectionPeriod",
19-
"IndexCashflow",
20-
"IndexFixedPeriod",
2119
"FixedPeriod",
22-
"NonDeliverableFixedPeriod",
2320
"FloatPeriod",
24-
"IndexMixin",
2521
]

0 commit comments

Comments
 (0)