Coverage for rivapy / pricing / __init__.py: 62%

24 statements  

« prev     ^ index     » next       coverage.py v7.12.0, created at 2025-11-27 14:36 +0000

1# from pyvacon.pricing import * 

2# del price 

3 

4# __all__ = ['pricer', 'pricing_data', 'pricing_request'] 

5from rivapy.pricing.bond_pricing import * 

6from rivapy import _pyvacon_available 

7 

8# if _pyvacon_available: 

9# from rivapy.pricing.pricing_data import CDSPricingData 

10# from rivapy.pricing.pricing_data import Black76PricingData, ResultType, AmericanPdePricingData 

11 

12# from rivapy.tools.factory import _factory 

13from rivapy.pricing.factory import _factory 

14from rivapy.pricing.deposit_pricing import DepositPricer 

15from rivapy.pricing.fra_pricing import ForwardRateAgreementPricer 

16from rivapy.pricing.interest_rate_swap_pricing import InterestRateSwapPricer 

17 

18 

19if _pyvacon_available: 

20 # from pyvacon.finance.pricing import * 

21 from pyvacon.finance.pricing import BasePricer 

22 

23 def price(pr_data): 

24 if hasattr(pr_data, "price"): 

25 return pr_data.price() 

26 else: 

27 return BasePricer.price(pr_data) 

28 

29else: 

30 

31 def price(pr_data): 

32 if hasattr(pr_data, "price"): 

33 return pr_data.price() 

34 raise Exception("Pricing of " + type(pr_data).__name__ + " not possible without pyvacon.") 

35 

36 

37def _add_to_factory(cls): 

38 factory_entries = _factory() 

39 factory_entries[cls.__name__] = cls 

40 

41 

42_add_to_factory(DepositPricer) 

43_add_to_factory(ForwardRateAgreementPricer) 

44_add_to_factory(InterestRateSwapPricer) 

45 

46if __name__ == "__main__": 

47 pass