mainsequence 3.2.0__tar.gz → 3.3.0__tar.gz

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.
Files changed (126) hide show
  1. {mainsequence-3.2.0 → mainsequence-3.3.0}/PKG-INFO +1 -1
  2. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/models_tdag.py +33 -0
  3. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/models_vam.py +3 -0
  4. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/utils.py +1 -0
  5. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/instruments/__init__.py +1 -1
  6. mainsequence-3.3.0/mainsequence/instruments/instruments/bond.py +969 -0
  7. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/instruments/position.py +1 -1
  8. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/pricing_models/indices.py +8 -3
  9. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/data_nodes/data_nodes.py +10 -6
  10. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/data_nodes/persist_managers.py +16 -1
  11. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence.egg-info/PKG-INFO +1 -1
  12. {mainsequence-3.2.0 → mainsequence-3.3.0}/pyproject.toml +1 -1
  13. mainsequence-3.2.0/mainsequence/instruments/instruments/bond.py +0 -480
  14. {mainsequence-3.2.0 → mainsequence-3.3.0}/LICENSE +0 -0
  15. {mainsequence-3.2.0 → mainsequence-3.3.0}/README.md +0 -0
  16. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/__init__.py +0 -0
  17. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/__main__.py +0 -0
  18. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/cli/__init__.py +0 -0
  19. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/cli/api.py +0 -0
  20. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/cli/cli.py +0 -0
  21. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/cli/config.py +0 -0
  22. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/cli/ssh_utils.py +0 -0
  23. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/__init__.py +0 -0
  24. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/base.py +0 -0
  25. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
  26. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
  27. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/data_sources_interfaces/timescale.py +0 -0
  28. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/exceptions.py +0 -0
  29. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/models_helpers.py +0 -0
  30. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/client/models_report_studio.py +0 -0
  31. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/__init__.py +0 -0
  32. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/__init__.py +0 -0
  33. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/assets/config.toml +0 -0
  34. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/assets/favicon.png +0 -0
  35. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/assets/image_1_base64.txt +0 -0
  36. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/assets/image_2_base64.txt +0 -0
  37. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/assets/image_3_base64.txt +0 -0
  38. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/assets/image_4_base64.txt +0 -0
  39. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/assets/image_5_base64.txt +0 -0
  40. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/assets/logo.png +0 -0
  41. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/core/__init__.py +0 -0
  42. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/core/theme.py +0 -0
  43. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/pages/__init__.py +0 -0
  44. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/dashboards/streamlit/scaffold.py +0 -0
  45. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instrumentation/__init__.py +0 -0
  46. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instrumentation/utils.py +0 -0
  47. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/__init__.py +0 -0
  48. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/data_interface/__init__.py +0 -0
  49. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/data_interface/data_interface.py +0 -0
  50. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/instruments/base_instrument.py +0 -0
  51. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/instruments/european_option.py +0 -0
  52. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/instruments/interest_rate_swap.py +0 -0
  53. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/instruments/json_codec.py +0 -0
  54. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/instruments/knockout_fx_option.py +0 -0
  55. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/instruments/ql_fields.py +0 -0
  56. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/instruments/vanilla_fx_option.py +0 -0
  57. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/instruments.default.toml +0 -0
  58. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/pricing_models/__init__.py +0 -0
  59. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/pricing_models/black_scholes.py +0 -0
  60. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/pricing_models/bond_pricer.py +0 -0
  61. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/pricing_models/fx_option_pricer.py +0 -0
  62. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/pricing_models/knockout_fx_pricer.py +0 -0
  63. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/pricing_models/swap_pricer.py +0 -0
  64. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/settings.py +0 -0
  65. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/instruments/utils.py +0 -0
  66. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/logconf.py +0 -0
  67. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/reportbuilder/__init__.py +0 -0
  68. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/reportbuilder/__main__.py +0 -0
  69. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/reportbuilder/examples/ms_template_report.py +0 -0
  70. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/reportbuilder/model.py +0 -0
  71. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/reportbuilder/slide_templates.py +0 -0
  72. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/__init__.py +0 -0
  73. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/__main__.py +0 -0
  74. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/config.py +0 -0
  75. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/data_nodes/__init__.py +0 -0
  76. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/data_nodes/build_operations.py +0 -0
  77. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/data_nodes/run_operations.py +0 -0
  78. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/data_nodes/utils.py +0 -0
  79. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/future_registry.py +0 -0
  80. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/tdag/utils.py +0 -0
  81. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/__init__.py +0 -0
  82. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/agent_interface.py +0 -0
  83. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/config_handling.py +0 -0
  84. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/__init__.py +0 -0
  85. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/__init__.py +0 -0
  86. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/etf_replicator_app.py +0 -0
  87. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/generate_report.py +0 -0
  88. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/load_external_portfolio.py +0 -0
  89. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/news_app.py +0 -0
  90. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/portfolio_report_app.py +0 -0
  91. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/portfolio_table.py +0 -0
  92. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/run_named_portfolio.py +0 -0
  93. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/run_portfolio.py +0 -0
  94. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/templates/base.html +0 -0
  95. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/apps/templates/report.html +0 -0
  96. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/data_nodes/__init__.py +0 -0
  97. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/data_nodes/external_weights.py +0 -0
  98. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/data_nodes/intraday_trend.py +0 -0
  99. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/data_nodes/market_cap.py +0 -0
  100. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/data_nodes/mock_signal.py +0 -0
  101. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/data_nodes/portfolio_replicator.py +0 -0
  102. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/prices/__init__.py +0 -0
  103. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/prices/data_nodes.py +0 -0
  104. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/prices/utils.py +0 -0
  105. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/rebalance_strategies/__init__.py +0 -0
  106. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/contrib/rebalance_strategies/rebalance_strategies.py +0 -0
  107. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/data_nodes.py +0 -0
  108. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/enums.py +0 -0
  109. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/models.py +0 -0
  110. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/notebook_handling.py +0 -0
  111. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/portfolio_interface.py +0 -0
  112. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/resource_factory/__init__.py +0 -0
  113. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/resource_factory/app_factory.py +0 -0
  114. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/resource_factory/base_factory.py +0 -0
  115. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/resource_factory/rebalance_factory.py +0 -0
  116. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/resource_factory/signal_factory.py +0 -0
  117. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence/virtualfundbuilder/utils.py +0 -0
  118. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence.egg-info/SOURCES.txt +0 -0
  119. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence.egg-info/dependency_links.txt +0 -0
  120. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence.egg-info/entry_points.txt +0 -0
  121. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence.egg-info/requires.txt +0 -0
  122. {mainsequence-3.2.0 → mainsequence-3.3.0}/mainsequence.egg-info/top_level.txt +0 -0
  123. {mainsequence-3.2.0 → mainsequence-3.3.0}/setup.cfg +0 -0
  124. {mainsequence-3.2.0 → mainsequence-3.3.0}/tests/test_agent.py +0 -0
  125. {mainsequence-3.2.0 → mainsequence-3.3.0}/tests/test_portfolio.py +0 -0
  126. {mainsequence-3.2.0 → mainsequence-3.3.0}/tests/test_replicator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 3.2.0
3
+ Version: 3.3.0
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License: MainSequence GmbH SDK License Agreement
@@ -1035,6 +1035,39 @@ class DataNodeStorage(BasePydanticModel, BaseObjectOrm):
1035
1035
  ) from err
1036
1036
  # Filter the data based on time_index_name and last_time_index_value
1037
1037
 
1038
+ def get_last_observation(self,unique_identifier_list:List[str],timeout=None):
1039
+ base_url = self.get_object_url()
1040
+ payload = {"json": {"unique_identifier_list":unique_identifier_list}}
1041
+ s = self.build_session()
1042
+ url = f"{base_url}/{self.id}/get_last_observation/"
1043
+ r = make_request(
1044
+ r_type="POST",
1045
+ url=url,
1046
+ payload=payload,
1047
+ s=s,
1048
+ loaders=self.LOADERS,
1049
+ )
1050
+ if r.status_code != 200:
1051
+ raise Exception(f"Error in request {r.text}")
1052
+ df=pd.DataFrame(r.json())
1053
+ stc = self.sourcetableconfiguration
1054
+ try:
1055
+ df[stc.time_index_name] = pd.to_datetime(df[stc.time_index_name], format="ISO8601")
1056
+ except Exception as e:
1057
+ raise e
1058
+ columns_to_loop =stc.column_dtypes_map.keys()
1059
+ for c, c_type in stc.column_dtypes_map.items():
1060
+ if c not in columns_to_loop:
1061
+ continue
1062
+ if c != stc.time_index_name:
1063
+ if c_type == "object":
1064
+ c_type = "str"
1065
+ df[c] = df[c].astype(c_type)
1066
+ df = df.set_index(stc.index_names)
1067
+ return df
1068
+
1069
+
1070
+
1038
1071
  def get_data_between_dates_from_api(
1039
1072
  self,
1040
1073
  start_date: datetime.datetime = None,
@@ -1710,6 +1710,9 @@ class Portfolio(BaseObjectOrm, BasePydanticModel):
1710
1710
  if r.status_code != 200:
1711
1711
  raise RuntimeError(f"PATCH {url} failed: {r.status_code} {r.text}")
1712
1712
 
1713
+
1714
+
1715
+
1713
1716
  def get_latest_weights(self, timeout=None) -> dict[str, float]:
1714
1717
  url = f"{self.get_object_url()}/{self.id}/get_latest_weights/"
1715
1718
  r = make_request(
@@ -18,6 +18,7 @@ DATE_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"
18
18
 
19
19
  class DataFrequency(str, Enum):
20
20
  one_m = "1m"
21
+ one_min="1m"
21
22
  five_m = "5m"
22
23
  one_d = "1d"
23
24
  one_w = "1w"
@@ -1,3 +1,3 @@
1
1
  from .base_instrument import InstrumentModel as Instrument
2
- from .bond import FixedRateBond, FloatingRateBond
2
+ from .bond import FixedRateBond, FloatingRateBond,ZeroCouponBond
3
3
  from .position import Position, PositionLine