vade 0.1.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 (234) hide show
  1. vade-0.1.0/.github/workflows/publish.yml +73 -0
  2. vade-0.1.0/.gitignore +23 -0
  3. vade-0.1.0/.mdformat.toml +2 -0
  4. vade-0.1.0/Cargo.lock +762 -0
  5. vade-0.1.0/Cargo.toml +29 -0
  6. vade-0.1.0/PKG-INFO +214 -0
  7. vade-0.1.0/README.md +202 -0
  8. vade-0.1.0/docs/api/autodiff.md +173 -0
  9. vade-0.1.0/docs/api/calendar.md +232 -0
  10. vade-0.1.0/docs/api/cashflows.md +492 -0
  11. vade-0.1.0/docs/api/context.md +210 -0
  12. vade-0.1.0/docs/api/credit/index.md +14 -0
  13. vade-0.1.0/docs/api/credit/instruments.md +1746 -0
  14. vade-0.1.0/docs/api/fx/fx-rates.md +286 -0
  15. vade-0.1.0/docs/api/fx/index.md +19 -0
  16. vade-0.1.0/docs/api/fx/instruments.md +433 -0
  17. vade-0.1.0/docs/api/index.md +19 -0
  18. vade-0.1.0/docs/api/numerical.md +70 -0
  19. vade-0.1.0/docs/api/rates/curves.md +1064 -0
  20. vade-0.1.0/docs/api/rates/index.md +15 -0
  21. vade-0.1.0/docs/api/rates/instruments.md +674 -0
  22. vade-0.1.0/docs/api/rates/solver.md +298 -0
  23. vade-0.1.0/docs/conventions.md +106 -0
  24. vade-0.1.0/docs/getting-started/architecture.md +272 -0
  25. vade-0.1.0/docs/getting-started/conftest.py +34 -0
  26. vade-0.1.0/docs/getting-started/installation.md +35 -0
  27. vade-0.1.0/docs/getting-started/type-system.md +183 -0
  28. vade-0.1.0/docs/guides/calibration.md +238 -0
  29. vade-0.1.0/docs/guides/conftest.py +303 -0
  30. vade-0.1.0/docs/guides/credit/bonds.md +297 -0
  31. vade-0.1.0/docs/guides/credit/callable-bonds.md +130 -0
  32. vade-0.1.0/docs/guides/credit/credit-curves-cds.md +51 -0
  33. vade-0.1.0/docs/guides/credit/fitted-curves.md +141 -0
  34. vade-0.1.0/docs/guides/credit/index.md +47 -0
  35. vade-0.1.0/docs/guides/credit/spread-analytics.md +155 -0
  36. vade-0.1.0/docs/guides/fx/cross-currency.md +36 -0
  37. vade-0.1.0/docs/guides/fx/fx-rates-forwards.md +55 -0
  38. vade-0.1.0/docs/guides/fx/index.md +44 -0
  39. vade-0.1.0/docs/guides/fx/non-deliverable.md +267 -0
  40. vade-0.1.0/docs/guides/market-context.md +200 -0
  41. vade-0.1.0/docs/guides/quick-start.md +212 -0
  42. vade-0.1.0/docs/guides/rates/bootstrap-parametric.md +150 -0
  43. vade-0.1.0/docs/guides/rates/capfloor.md +166 -0
  44. vade-0.1.0/docs/guides/rates/curve-building.md +248 -0
  45. vade-0.1.0/docs/guides/rates/index.md +49 -0
  46. vade-0.1.0/docs/guides/rates/pricing.md +181 -0
  47. vade-0.1.0/docs/guides/rates/risk.md +216 -0
  48. vade-0.1.0/docs/guides/serialization.md +150 -0
  49. vade-0.1.0/docs/index.md +133 -0
  50. vade-0.1.0/docs/roadmap.md +102 -0
  51. vade-0.1.0/pyproject.toml +30 -0
  52. vade-0.1.0/python/tests/__init__.py +0 -0
  53. vade-0.1.0/python/tests/conftest.py +33 -0
  54. vade-0.1.0/python/tests/test_asset_swap.py +177 -0
  55. vade-0.1.0/python/tests/test_bonds.py +853 -0
  56. vade-0.1.0/python/tests/test_callable_bond.py +143 -0
  57. vade-0.1.0/python/tests/test_cashflows.py +475 -0
  58. vade-0.1.0/python/tests/test_cds.py +323 -0
  59. vade-0.1.0/python/tests/test_context.py +897 -0
  60. vade-0.1.0/python/tests/test_curves.py +467 -0
  61. vade-0.1.0/python/tests/test_data_registries.py +295 -0
  62. vade-0.1.0/python/tests/test_dual.py +200 -0
  63. vade-0.1.0/python/tests/test_fitted_curve.py +142 -0
  64. vade-0.1.0/python/tests/test_fx.py +214 -0
  65. vade-0.1.0/python/tests/test_implied_curve.py +135 -0
  66. vade-0.1.0/python/tests/test_imports.py +193 -0
  67. vade-0.1.0/python/tests/test_instruments.py +584 -0
  68. vade-0.1.0/python/tests/test_ndf.py +493 -0
  69. vade-0.1.0/python/tests/test_ndirs.py +409 -0
  70. vade-0.1.0/python/tests/test_ndxcs.py +331 -0
  71. vade-0.1.0/python/tests/test_parametric_curves.py +202 -0
  72. vade-0.1.0/python/tests/test_risk.py +140 -0
  73. vade-0.1.0/python/tests/test_root_finders.py +36 -0
  74. vade-0.1.0/python/tests/test_schedule.py +291 -0
  75. vade-0.1.0/python/tests/test_serialization.py +219 -0
  76. vade-0.1.0/python/tests/test_solver.py +580 -0
  77. vade-0.1.0/python/tests/test_transforms.py +151 -0
  78. vade-0.1.0/python/tests/test_xcs.py +215 -0
  79. vade-0.1.0/python/vade/__init__.py +110 -0
  80. vade-0.1.0/python/vade/__init__.pyi +169 -0
  81. vade-0.1.0/python/vade/autodiff/__init__.py +5 -0
  82. vade-0.1.0/python/vade/autodiff/__init__.pyi +138 -0
  83. vade-0.1.0/python/vade/calendar/__init__.py +17 -0
  84. vade-0.1.0/python/vade/calendar/__init__.pyi +147 -0
  85. vade-0.1.0/python/vade/cashflows/__init__.py +35 -0
  86. vade-0.1.0/python/vade/cashflows/__init__.pyi +340 -0
  87. vade-0.1.0/python/vade/cashflows/dataframe.py +128 -0
  88. vade-0.1.0/python/vade/context.py +676 -0
  89. vade-0.1.0/python/vade/curves/__init__.py +36 -0
  90. vade-0.1.0/python/vade/curves/__init__.pyi +340 -0
  91. vade-0.1.0/python/vade/fixings.py +110 -0
  92. vade-0.1.0/python/vade/fx/__init__.py +8 -0
  93. vade-0.1.0/python/vade/fx/__init__.pyi +43 -0
  94. vade-0.1.0/python/vade/indices.py +456 -0
  95. vade-0.1.0/python/vade/instruments/__init__.py +50 -0
  96. vade-0.1.0/python/vade/instruments/__init__.pyi +820 -0
  97. vade-0.1.0/python/vade/instruments/_helpers.py +129 -0
  98. vade-0.1.0/python/vade/instruments/credit.py +1937 -0
  99. vade-0.1.0/python/vade/instruments/fx.py +802 -0
  100. vade-0.1.0/python/vade/instruments/rates.py +874 -0
  101. vade-0.1.0/python/vade/instruments/specs/__init__.py +100 -0
  102. vade-0.1.0/python/vade/instruments/specs/credit.py +247 -0
  103. vade-0.1.0/python/vade/instruments/specs/fx.py +304 -0
  104. vade-0.1.0/python/vade/instruments/specs/rates.py +634 -0
  105. vade-0.1.0/python/vade/lib_vade_rs.dylib.dSYM/Contents/Info.plist +20 -0
  106. vade-0.1.0/python/vade/lib_vade_rs.dylib.dSYM/Contents/Resources/Relocations/aarch64/lib_vade_rs.dylib.yml +24957 -0
  107. vade-0.1.0/python/vade/marketcurves/__init__.py +31 -0
  108. vade-0.1.0/python/vade/marketcurves/__init__.pyi +258 -0
  109. vade-0.1.0/python/vade/numerical/__init__.py +5 -0
  110. vade-0.1.0/python/vade/numerical/__init__.pyi +55 -0
  111. vade-0.1.0/python/vade/solver/__init__.py +305 -0
  112. vade-0.1.0/python/vade/solver/__init__.pyi +101 -0
  113. vade-0.1.0/rust/autodiff/dual.rs +439 -0
  114. vade-0.1.0/rust/autodiff/enums.rs +387 -0
  115. vade-0.1.0/rust/autodiff/linalg.rs +404 -0
  116. vade-0.1.0/rust/autodiff/mod.rs +15 -0
  117. vade-0.1.0/rust/autodiff/ops/add.rs +98 -0
  118. vade-0.1.0/rust/autodiff/ops/convert.rs +133 -0
  119. vade-0.1.0/rust/autodiff/ops/div.rs +143 -0
  120. vade-0.1.0/rust/autodiff/ops/math_funcs.rs +268 -0
  121. vade-0.1.0/rust/autodiff/ops/mod.rs +8 -0
  122. vade-0.1.0/rust/autodiff/ops/mul.rs +132 -0
  123. vade-0.1.0/rust/autodiff/ops/neg.rs +79 -0
  124. vade-0.1.0/rust/autodiff/ops/pow.rs +89 -0
  125. vade-0.1.0/rust/autodiff/ops/sub.rs +80 -0
  126. vade-0.1.0/rust/autodiff/py.rs +279 -0
  127. vade-0.1.0/rust/calendar/adjuster.rs +166 -0
  128. vade-0.1.0/rust/calendar/cal.rs +336 -0
  129. vade-0.1.0/rust/calendar/convention.rs +310 -0
  130. vade-0.1.0/rust/calendar/dateroll.rs +119 -0
  131. vade-0.1.0/rust/calendar/frequency.rs +167 -0
  132. vade-0.1.0/rust/calendar/mod.rs +15 -0
  133. vade-0.1.0/rust/calendar/named/bjs.rs +17267 -0
  134. vade-0.1.0/rust/calendar/named/fed.rs +2480 -0
  135. vade-0.1.0/rust/calendar/named/jak.rs +900 -0
  136. vade-0.1.0/rust/calendar/named/ldn.rs +1857 -0
  137. vade-0.1.0/rust/calendar/named/mex.rs +2556 -0
  138. vade-0.1.0/rust/calendar/named/mnl.rs +768 -0
  139. vade-0.1.0/rust/calendar/named/mod.rs +20 -0
  140. vade-0.1.0/rust/calendar/named/mum.rs +1706 -0
  141. vade-0.1.0/rust/calendar/named/nsw.rs +2318 -0
  142. vade-0.1.0/rust/calendar/named/nyc.rs +2711 -0
  143. vade-0.1.0/rust/calendar/named/osl.rs +2547 -0
  144. vade-0.1.0/rust/calendar/named/sao.rs +855 -0
  145. vade-0.1.0/rust/calendar/named/sel.rs +938 -0
  146. vade-0.1.0/rust/calendar/named/stk.rs +2778 -0
  147. vade-0.1.0/rust/calendar/named/syd.rs +1856 -0
  148. vade-0.1.0/rust/calendar/named/tai.rs +592 -0
  149. vade-0.1.0/rust/calendar/named/tgt.rs +1392 -0
  150. vade-0.1.0/rust/calendar/named/tro.rs +2696 -0
  151. vade-0.1.0/rust/calendar/named/tyo.rs +4354 -0
  152. vade-0.1.0/rust/calendar/named/wlg.rs +2810 -0
  153. vade-0.1.0/rust/calendar/named/zur.rs +2316 -0
  154. vade-0.1.0/rust/calendar/py.rs +360 -0
  155. vade-0.1.0/rust/calendar/schedule.rs +910 -0
  156. vade-0.1.0/rust/calendar/tenor.rs +164 -0
  157. vade-0.1.0/rust/cashflows/amortization.rs +76 -0
  158. vade-0.1.0/rust/cashflows/credit_leg.rs +339 -0
  159. vade-0.1.0/rust/cashflows/credit_period.rs +508 -0
  160. vade-0.1.0/rust/cashflows/fixing.rs +540 -0
  161. vade-0.1.0/rust/cashflows/leg.rs +686 -0
  162. vade-0.1.0/rust/cashflows/mod.rs +7 -0
  163. vade-0.1.0/rust/cashflows/period.rs +992 -0
  164. vade-0.1.0/rust/cashflows/py.rs +1119 -0
  165. vade-0.1.0/rust/instruments/credit/asset_swap.rs +472 -0
  166. vade-0.1.0/rust/instruments/credit/bond.rs +4405 -0
  167. vade-0.1.0/rust/instruments/credit/callable_bond.rs +439 -0
  168. vade-0.1.0/rust/instruments/credit/cds.rs +508 -0
  169. vade-0.1.0/rust/instruments/credit/mod.rs +10 -0
  170. vade-0.1.0/rust/instruments/credit/py.rs +598 -0
  171. vade-0.1.0/rust/instruments/fx/forward.rs +739 -0
  172. vade-0.1.0/rust/instruments/fx/mod.rs +6 -0
  173. vade-0.1.0/rust/instruments/fx/py.rs +664 -0
  174. vade-0.1.0/rust/instruments/fx/xcs.rs +977 -0
  175. vade-0.1.0/rust/instruments/mod.rs +773 -0
  176. vade-0.1.0/rust/instruments/py.rs +85 -0
  177. vade-0.1.0/rust/instruments/py_utils.rs +343 -0
  178. vade-0.1.0/rust/instruments/rates/cap_floor.rs +447 -0
  179. vade-0.1.0/rust/instruments/rates/deposit.rs +233 -0
  180. vade-0.1.0/rust/instruments/rates/fra.rs +189 -0
  181. vade-0.1.0/rust/instruments/rates/future.rs +407 -0
  182. vade-0.1.0/rust/instruments/rates/irs.rs +758 -0
  183. vade-0.1.0/rust/instruments/rates/mod.rs +17 -0
  184. vade-0.1.0/rust/instruments/rates/ois.rs +269 -0
  185. vade-0.1.0/rust/instruments/rates/py.rs +797 -0
  186. vade-0.1.0/rust/instruments/rates/sbs.rs +204 -0
  187. vade-0.1.0/rust/instruments/rates/zcs.rs +169 -0
  188. vade-0.1.0/rust/lib.rs +47 -0
  189. vade-0.1.0/rust/marketcurves/composite.rs +326 -0
  190. vade-0.1.0/rust/marketcurves/credit.rs +315 -0
  191. vade-0.1.0/rust/marketcurves/curve.rs +590 -0
  192. vade-0.1.0/rust/marketcurves/fitted.rs +799 -0
  193. vade-0.1.0/rust/marketcurves/forward_curve.rs +708 -0
  194. vade-0.1.0/rust/marketcurves/fx/forwards.rs +333 -0
  195. vade-0.1.0/rust/marketcurves/fx/mod.rs +4 -0
  196. vade-0.1.0/rust/marketcurves/fx/pair.rs +133 -0
  197. vade-0.1.0/rust/marketcurves/fx/py.rs +246 -0
  198. vade-0.1.0/rust/marketcurves/fx/rates.rs +530 -0
  199. vade-0.1.0/rust/marketcurves/fx_implied.rs +336 -0
  200. vade-0.1.0/rust/marketcurves/implied.rs +437 -0
  201. vade-0.1.0/rust/marketcurves/interpolation/convex_monotone.rs +620 -0
  202. vade-0.1.0/rust/marketcurves/interpolation/cubic_spline.rs +353 -0
  203. vade-0.1.0/rust/marketcurves/interpolation/flat_backward.rs +100 -0
  204. vade-0.1.0/rust/marketcurves/interpolation/flat_forward.rs +100 -0
  205. vade-0.1.0/rust/marketcurves/interpolation/hermite.rs +301 -0
  206. vade-0.1.0/rust/marketcurves/interpolation/linear.rs +104 -0
  207. vade-0.1.0/rust/marketcurves/interpolation/linear_zero_rate.rs +128 -0
  208. vade-0.1.0/rust/marketcurves/interpolation/log_cubic.rs +196 -0
  209. vade-0.1.0/rust/marketcurves/interpolation/log_linear.rs +106 -0
  210. vade-0.1.0/rust/marketcurves/interpolation/mod.rs +611 -0
  211. vade-0.1.0/rust/marketcurves/interpolation/monotone_cubic.rs +390 -0
  212. vade-0.1.0/rust/marketcurves/interpolation/natural_cubic.rs +234 -0
  213. vade-0.1.0/rust/marketcurves/interpolation/utils.rs +179 -0
  214. vade-0.1.0/rust/marketcurves/mod.rs +19 -0
  215. vade-0.1.0/rust/marketcurves/nelson_siegel.rs +374 -0
  216. vade-0.1.0/rust/marketcurves/nodes.rs +506 -0
  217. vade-0.1.0/rust/marketcurves/py.rs +1648 -0
  218. vade-0.1.0/rust/marketcurves/smith_wilson.rs +311 -0
  219. vade-0.1.0/rust/marketcurves/spline.rs +664 -0
  220. vade-0.1.0/rust/marketcurves/spread_curve.rs +341 -0
  221. vade-0.1.0/rust/marketcurves/transforms.rs +589 -0
  222. vade-0.1.0/rust/marketcurves/turn_of_year.rs +350 -0
  223. vade-0.1.0/rust/models/black.rs +109 -0
  224. vade-0.1.0/rust/models/hull_white.rs +552 -0
  225. vade-0.1.0/rust/models/mod.rs +4 -0
  226. vade-0.1.0/rust/numerical/brent.rs +147 -0
  227. vade-0.1.0/rust/numerical/mod.rs +6 -0
  228. vade-0.1.0/rust/numerical/newton.rs +98 -0
  229. vade-0.1.0/rust/numerical/py.rs +43 -0
  230. vade-0.1.0/rust/solver/bootstrap.rs +688 -0
  231. vade-0.1.0/rust/solver/mod.rs +1480 -0
  232. vade-0.1.0/rust/solver/py.rs +536 -0
  233. vade-0.1.0/rust/solver/result.rs +26 -0
  234. vade-0.1.0/rust/solver/risk.rs +443 -0
@@ -0,0 +1,73 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ build-sdist:
13
+ name: Build sdist
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: PyO3/maturin-action@v1
18
+ with:
19
+ command: sdist
20
+ args: --out dist
21
+ - uses: actions/upload-artifact@v4
22
+ with:
23
+ name: dist-sdist
24
+ path: dist/*.tar.gz
25
+
26
+ build-wheels:
27
+ name: Build wheels (${{ matrix.target }} - ${{ matrix.os }})
28
+ runs-on: ${{ matrix.os }}
29
+ strategy:
30
+ fail-fast: false
31
+ matrix:
32
+ include:
33
+ # Linux x86_64
34
+ - os: ubuntu-latest
35
+ target: x86_64
36
+ # Linux aarch64
37
+ - os: ubuntu-latest
38
+ target: aarch64
39
+ # macOS x86_64 (cross-compiled from ARM)
40
+ - os: macos-latest
41
+ target: x86_64
42
+ # macOS Apple Silicon
43
+ - os: macos-14
44
+ target: aarch64
45
+ # Windows x86_64
46
+ - os: windows-latest
47
+ target: x64
48
+ steps:
49
+ - uses: actions/checkout@v4
50
+ - uses: PyO3/maturin-action@v1
51
+ with:
52
+ target: ${{ matrix.target }}
53
+ args: --release --out dist
54
+ manylinux: auto
55
+ - uses: actions/upload-artifact@v4
56
+ with:
57
+ name: dist-${{ matrix.os }}-${{ matrix.target }}
58
+ path: dist/*.whl
59
+
60
+ publish:
61
+ name: Publish to PyPI
62
+ runs-on: ubuntu-latest
63
+ needs: [build-sdist, build-wheels]
64
+ environment: pypi
65
+ permissions:
66
+ id-token: write
67
+ steps:
68
+ - uses: actions/download-artifact@v4
69
+ with:
70
+ pattern: dist-*
71
+ path: dist
72
+ merge-multiple: true
73
+ - uses: pypa/gh-action-pypi-publish@release/v1
vade-0.1.0/.gitignore ADDED
@@ -0,0 +1,23 @@
1
+ target/
2
+ .venv/
3
+ *.so
4
+ *.dylib
5
+ __pycache__/
6
+ *.egg-info/
7
+ .planning/
8
+ uv.lock
9
+ .claude/
10
+ .claude_cache/
11
+ .claude_cache_*
12
+ target/
13
+ .pytest_cache/
14
+ .mypy_cache/
15
+ .coverage
16
+ target/
17
+ dist/
18
+ build/
19
+ *.egg-info/
20
+ *.egg
21
+ *.log
22
+ *.tmp
23
+ .planning
@@ -0,0 +1,2 @@
1
+ wrap = "no"
2
+ end_of_line = "lf"