mainsequence 3.3.0__tar.gz → 3.3.2__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.3.0 → mainsequence-3.3.2}/PKG-INFO +1 -1
  2. mainsequence-3.3.2/mainsequence/__init__.py +30 -0
  3. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/pricing_models/indices.py +20 -1
  4. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/settings.py +4 -1
  5. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence.egg-info/PKG-INFO +1 -1
  6. {mainsequence-3.3.0 → mainsequence-3.3.2}/pyproject.toml +1 -1
  7. mainsequence-3.3.0/mainsequence/virtualfundbuilder/resource_factory/__init__.py +0 -0
  8. {mainsequence-3.3.0 → mainsequence-3.3.2}/LICENSE +0 -0
  9. {mainsequence-3.3.0 → mainsequence-3.3.2}/README.md +0 -0
  10. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/__main__.py +0 -0
  11. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/cli/__init__.py +0 -0
  12. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/cli/api.py +0 -0
  13. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/cli/cli.py +0 -0
  14. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/cli/config.py +0 -0
  15. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/cli/ssh_utils.py +0 -0
  16. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/client/__init__.py +0 -0
  17. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/client/base.py +0 -0
  18. {mainsequence-3.3.0/mainsequence → mainsequence-3.3.2/mainsequence/client/data_sources_interfaces}/__init__.py +0 -0
  19. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
  20. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/client/data_sources_interfaces/timescale.py +0 -0
  21. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/client/exceptions.py +0 -0
  22. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/client/models_helpers.py +0 -0
  23. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/client/models_report_studio.py +0 -0
  24. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/client/models_tdag.py +0 -0
  25. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/client/models_vam.py +0 -0
  26. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/client/utils.py +0 -0
  27. {mainsequence-3.3.0/mainsequence/client/data_sources_interfaces → mainsequence-3.3.2/mainsequence/dashboards}/__init__.py +0 -0
  28. {mainsequence-3.3.0/mainsequence/dashboards → mainsequence-3.3.2/mainsequence/dashboards/streamlit}/__init__.py +0 -0
  29. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/dashboards/streamlit/assets/config.toml +0 -0
  30. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/dashboards/streamlit/assets/favicon.png +0 -0
  31. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/dashboards/streamlit/assets/image_1_base64.txt +0 -0
  32. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/dashboards/streamlit/assets/image_2_base64.txt +0 -0
  33. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/dashboards/streamlit/assets/image_3_base64.txt +0 -0
  34. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/dashboards/streamlit/assets/image_4_base64.txt +0 -0
  35. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/dashboards/streamlit/assets/image_5_base64.txt +0 -0
  36. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/dashboards/streamlit/assets/logo.png +0 -0
  37. {mainsequence-3.3.0/mainsequence/dashboards/streamlit → mainsequence-3.3.2/mainsequence/dashboards/streamlit/core}/__init__.py +0 -0
  38. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/dashboards/streamlit/core/theme.py +0 -0
  39. {mainsequence-3.3.0/mainsequence/dashboards/streamlit/core → mainsequence-3.3.2/mainsequence/dashboards/streamlit/pages}/__init__.py +0 -0
  40. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/dashboards/streamlit/scaffold.py +0 -0
  41. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instrumentation/__init__.py +0 -0
  42. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instrumentation/utils.py +0 -0
  43. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/__init__.py +0 -0
  44. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/data_interface/__init__.py +0 -0
  45. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/data_interface/data_interface.py +0 -0
  46. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments/__init__.py +0 -0
  47. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments/base_instrument.py +0 -0
  48. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments/bond.py +0 -0
  49. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments/european_option.py +0 -0
  50. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments/interest_rate_swap.py +0 -0
  51. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments/json_codec.py +0 -0
  52. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments/knockout_fx_option.py +0 -0
  53. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments/position.py +0 -0
  54. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments/ql_fields.py +0 -0
  55. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments/vanilla_fx_option.py +0 -0
  56. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/instruments.default.toml +0 -0
  57. {mainsequence-3.3.0/mainsequence/dashboards/streamlit/pages → mainsequence-3.3.2/mainsequence/instruments/pricing_models}/__init__.py +0 -0
  58. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/pricing_models/black_scholes.py +0 -0
  59. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/pricing_models/bond_pricer.py +0 -0
  60. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/pricing_models/fx_option_pricer.py +0 -0
  61. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/pricing_models/knockout_fx_pricer.py +0 -0
  62. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/pricing_models/swap_pricer.py +0 -0
  63. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/instruments/utils.py +0 -0
  64. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/logconf.py +0 -0
  65. {mainsequence-3.3.0/mainsequence/instruments/pricing_models → mainsequence-3.3.2/mainsequence/reportbuilder}/__init__.py +0 -0
  66. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/reportbuilder/__main__.py +0 -0
  67. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/reportbuilder/examples/ms_template_report.py +0 -0
  68. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/reportbuilder/model.py +0 -0
  69. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/reportbuilder/slide_templates.py +0 -0
  70. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/__init__.py +0 -0
  71. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/__main__.py +0 -0
  72. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/config.py +0 -0
  73. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/data_nodes/__init__.py +0 -0
  74. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/data_nodes/build_operations.py +0 -0
  75. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/data_nodes/data_nodes.py +0 -0
  76. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/data_nodes/persist_managers.py +0 -0
  77. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/data_nodes/run_operations.py +0 -0
  78. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/data_nodes/utils.py +0 -0
  79. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/future_registry.py +0 -0
  80. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/tdag/utils.py +0 -0
  81. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/__init__.py +0 -0
  82. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/agent_interface.py +0 -0
  83. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/config_handling.py +0 -0
  84. {mainsequence-3.3.0/mainsequence/reportbuilder → mainsequence-3.3.2/mainsequence/virtualfundbuilder/contrib}/__init__.py +0 -0
  85. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/__init__.py +0 -0
  86. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/etf_replicator_app.py +0 -0
  87. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/generate_report.py +0 -0
  88. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/load_external_portfolio.py +0 -0
  89. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/news_app.py +0 -0
  90. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/portfolio_report_app.py +0 -0
  91. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/portfolio_table.py +0 -0
  92. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/run_named_portfolio.py +0 -0
  93. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/run_portfolio.py +0 -0
  94. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/templates/base.html +0 -0
  95. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/apps/templates/report.html +0 -0
  96. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/__init__.py +0 -0
  97. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/external_weights.py +0 -0
  98. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/intraday_trend.py +0 -0
  99. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/market_cap.py +0 -0
  100. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/mock_signal.py +0 -0
  101. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/portfolio_replicator.py +0 -0
  102. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/prices/__init__.py +0 -0
  103. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/prices/data_nodes.py +0 -0
  104. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/prices/utils.py +0 -0
  105. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/rebalance_strategies/__init__.py +0 -0
  106. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/contrib/rebalance_strategies/rebalance_strategies.py +0 -0
  107. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/data_nodes.py +0 -0
  108. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/enums.py +0 -0
  109. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/models.py +0 -0
  110. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/notebook_handling.py +0 -0
  111. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/portfolio_interface.py +0 -0
  112. {mainsequence-3.3.0/mainsequence/virtualfundbuilder/contrib → mainsequence-3.3.2/mainsequence/virtualfundbuilder/resource_factory}/__init__.py +0 -0
  113. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/resource_factory/app_factory.py +0 -0
  114. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/resource_factory/base_factory.py +0 -0
  115. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/resource_factory/rebalance_factory.py +0 -0
  116. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/resource_factory/signal_factory.py +0 -0
  117. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence/virtualfundbuilder/utils.py +0 -0
  118. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence.egg-info/SOURCES.txt +0 -0
  119. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence.egg-info/dependency_links.txt +0 -0
  120. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence.egg-info/entry_points.txt +0 -0
  121. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence.egg-info/requires.txt +0 -0
  122. {mainsequence-3.3.0 → mainsequence-3.3.2}/mainsequence.egg-info/top_level.txt +0 -0
  123. {mainsequence-3.3.0 → mainsequence-3.3.2}/setup.cfg +0 -0
  124. {mainsequence-3.3.0 → mainsequence-3.3.2}/tests/test_agent.py +0 -0
  125. {mainsequence-3.3.0 → mainsequence-3.3.2}/tests/test_portfolio.py +0 -0
  126. {mainsequence-3.3.0 → mainsequence-3.3.2}/tests/test_replicator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 3.3.0
3
+ Version: 3.3.2
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
@@ -0,0 +1,30 @@
1
+
2
+
3
+ from mainsequence.client import Constant as _C
4
+
5
+
6
+ # -----------------------------
7
+ # Gurantee constants on any workflows
8
+ # -----------------------------
9
+
10
+ constants_to_seed = dict(
11
+ REFERENCE_RATE__TIIE_28="TIIE_28",
12
+ REFERENCE_RATE__TIIE_91="TIIE_91",
13
+ REFERENCE_RATE__TIIE_182="TIIE_182",
14
+ REFERENCE_RATE__TIIE_OVERNIGHT="TIIE_OVERNIGHT",
15
+
16
+ REFERENCE_RATE__CETE_28="CETE_28",
17
+ REFERENCE_RATE__CETE_91="CETE_91",
18
+ REFERENCE_RATE__CETE_182="CETE_182",
19
+ REFERENCE_RATE__TIIE_OVERNIGHT_BONDES="TIIE_OVERNIGHT_BONDES",
20
+
21
+
22
+
23
+ #curves
24
+ ZERO_CURVE__BANXICO_M_BONOS_OTR = "BANXICO_M_BONOS_OTR",
25
+ ZERO_CURVE__VALMER_TIIE_28 = "F_TIIE_28_VALMER",
26
+ ZERO_CURVE__POLYGON_UST_CMT_ZERO_CURVE_UID="POLYGON_UST_CMT_ZERO_CURVE",
27
+ FIXING_RATES_1D_TABLE_NAME="fixing_rates_1d"
28
+ )
29
+
30
+ _C.create_constants_if_not_exist(constants_to_seed)
@@ -32,6 +32,9 @@ from mainsequence.client import Constant as _C
32
32
  from mainsequence.instruments.data_interface import data_interface
33
33
  from mainsequence.instruments.utils import to_py_date, to_ql_date
34
34
 
35
+
36
+
37
+
35
38
  # ----------------------------- Cache (ONLY by identifier + date) ----------------------------- #
36
39
 
37
40
  # key: (index_identifier, target_date_py)
@@ -95,6 +98,20 @@ def _cete(period_days: int) -> Callable[[], dict[str, Any]]:
95
98
  )
96
99
  return factory
97
100
 
101
+ def _mx_gov_overnight(period_days: int) -> Callable[[], dict[str, Any]]:
102
+ def factory() -> dict[str, Any]:
103
+ return dict(
104
+ curve_uid=_const("ZERO_CURVE__BANXICO_M_BONOS_OTR"), # <- gov curve you requested
105
+ calendar=_mx_calendar(),
106
+ day_counter=ql.Actual360(),
107
+ currency=_mx_currency(),
108
+ period=ql.Period(period_days, ql.Days), # 1-day index period
109
+ settlement_days=1,
110
+ bdc=ql.ModifiedFollowing, # overnight/OIS-style
111
+ end_of_month=False,
112
+ )
113
+ return factory
114
+
98
115
  _INDEX_TEMPLATES: dict[str, Callable[[], dict[str, Any]]] = {
99
116
  # Symbolic name -> factory (resolved lazily)
100
117
  "REFERENCE_RATE__TIIE_28": _tiie(28),
@@ -106,6 +123,7 @@ _INDEX_TEMPLATES: dict[str, Callable[[], dict[str, Any]]] = {
106
123
  "REFERENCE_RATE__CETE_91": _cete(91),
107
124
  "REFERENCE_RATE__CETE_182": _cete(182),
108
125
 
126
+
109
127
  "REFERENCE_RATE__USD_SOFR": lambda: dict(
110
128
  curve_uid=_const("ZERO_CURVE__UST_CMT_ZERO_CURVE_UID"),
111
129
  calendar=ql.UnitedStates(ql.UnitedStates.FederalReserve),
@@ -288,7 +306,8 @@ def _default_curve_cached(
288
306
  ) -> ql.YieldTermStructureHandle:
289
307
  """Small cache for default curves, keyed only by (identifier, date)."""
290
308
  target_dt = datetime.datetime.combine(date_key, datetime.time())
291
- return build_zero_curve(target_dt, index_identifier)
309
+ zero_curve,effective_curve_date=build_zero_curve(target_dt, index_identifier)
310
+ return zero_curve
292
311
 
293
312
 
294
313
  def _default_curve(
@@ -3,9 +3,12 @@ from __future__ import annotations
3
3
 
4
4
  import os
5
5
  from types import SimpleNamespace
6
-
6
+ from mainsequence.client import Constant as _C
7
7
  ENV_PREFIX = "MSI"
8
8
 
9
9
 
10
10
  DATA_BACKEND = os.getenv(f"{ENV_PREFIX}_DATA_BACKEND", "mainsequence")
11
11
  data = SimpleNamespace(backend=DATA_BACKEND)
12
+
13
+
14
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 3.3.0
3
+ Version: 3.3.2
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mainsequence"
7
- version = "3.3.0"
7
+ version = "3.3.2"
8
8
  description = "Main Sequence SDK"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes
File without changes