finkrit 0.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 (394) hide show
  1. finkrit-0.3.0/.gitignore +262 -0
  2. finkrit-0.3.0/CHANGELOG.md +492 -0
  3. finkrit-0.3.0/LICENSE +202 -0
  4. finkrit-0.3.0/PKG-INFO +557 -0
  5. finkrit-0.3.0/README.md +530 -0
  6. finkrit-0.3.0/apps/finkritweb/.gitignore +23 -0
  7. finkrit-0.3.0/apps/finkritweb/.npmrc +1 -0
  8. finkrit-0.3.0/apps/finkritweb/.prettierignore +9 -0
  9. finkrit-0.3.0/apps/finkritweb/README.md +42 -0
  10. finkrit-0.3.0/apps/finkritweb/package-lock.json +1900 -0
  11. finkrit-0.3.0/apps/finkritweb/package.json +32 -0
  12. finkrit-0.3.0/apps/finkritweb/pnpm-workspace.yaml +3 -0
  13. finkrit-0.3.0/apps/finkritweb/prettier.config.js +12 -0
  14. finkrit-0.3.0/apps/finkritweb/src/api/client.ts +339 -0
  15. finkrit-0.3.0/apps/finkritweb/src/app.d.ts +13 -0
  16. finkrit-0.3.0/apps/finkritweb/src/app.html +15 -0
  17. finkrit-0.3.0/apps/finkritweb/src/components/chat/ChatDock.svelte +24 -0
  18. finkrit-0.3.0/apps/finkritweb/src/components/chat/ChatInput.svelte +71 -0
  19. finkrit-0.3.0/apps/finkritweb/src/components/chat/ChatMessage.svelte +163 -0
  20. finkrit-0.3.0/apps/finkritweb/src/components/chat/ChatPanel.svelte +167 -0
  21. finkrit-0.3.0/apps/finkritweb/src/components/chat/ChatProgress.svelte +146 -0
  22. finkrit-0.3.0/apps/finkritweb/src/components/layout/AppShell.svelte +58 -0
  23. finkrit-0.3.0/apps/finkritweb/src/components/layout/LeftSidebar.svelte +81 -0
  24. finkrit-0.3.0/apps/finkritweb/src/components/layout/SidebarItem.svelte +62 -0
  25. finkrit-0.3.0/apps/finkritweb/src/components/layout/SidebarSection.svelte +66 -0
  26. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/AllocationBar.svelte +96 -0
  27. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/HoldingRow.svelte +181 -0
  28. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/HoldingsTable.svelte +162 -0
  29. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/PortfolioSummary.svelte +49 -0
  30. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/PortfolioUpload.svelte +144 -0
  31. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/PortfolioView.svelte +172 -0
  32. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/PositionRow.svelte +173 -0
  33. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/ReviewNotes.svelte +29 -0
  34. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/RiskCard.svelte +39 -0
  35. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/RiskView.svelte +113 -0
  36. finkrit-0.3.0/apps/finkritweb/src/components/portfolio/Section.svelte +44 -0
  37. finkrit-0.3.0/apps/finkritweb/src/components/rebalance/RebalanceView.svelte +421 -0
  38. finkrit-0.3.0/apps/finkritweb/src/components/rebalance/StrategyCard.svelte +202 -0
  39. finkrit-0.3.0/apps/finkritweb/src/components/tax/SignalCard.svelte +136 -0
  40. finkrit-0.3.0/apps/finkritweb/src/components/tax/TaxView.svelte +287 -0
  41. finkrit-0.3.0/apps/finkritweb/src/components/ui/Button.svelte +58 -0
  42. finkrit-0.3.0/apps/finkritweb/src/components/ui/DownloadOverlay.svelte +151 -0
  43. finkrit-0.3.0/apps/finkritweb/src/components/ui/Icon.svelte +48 -0
  44. finkrit-0.3.0/apps/finkritweb/src/components/ui/MeterBar.svelte +30 -0
  45. finkrit-0.3.0/apps/finkritweb/src/components/ui/StatCard.svelte +62 -0
  46. finkrit-0.3.0/apps/finkritweb/src/lib/format.ts +45 -0
  47. finkrit-0.3.0/apps/finkritweb/src/lib/index.ts +1 -0
  48. finkrit-0.3.0/apps/finkritweb/src/lib/portfolio/metrics.ts +133 -0
  49. finkrit-0.3.0/apps/finkritweb/src/routes/+layout.svelte +10 -0
  50. finkrit-0.3.0/apps/finkritweb/src/routes/+layout.ts +3 -0
  51. finkrit-0.3.0/apps/finkritweb/src/routes/+page.svelte +20 -0
  52. finkrit-0.3.0/apps/finkritweb/src/stores/chat.svelte.ts +120 -0
  53. finkrit-0.3.0/apps/finkritweb/src/stores/dashdata.svelte.ts +24 -0
  54. finkrit-0.3.0/apps/finkritweb/src/stores/lots.svelte.ts +50 -0
  55. finkrit-0.3.0/apps/finkritweb/src/stores/portfolio.svelte.ts +40 -0
  56. finkrit-0.3.0/apps/finkritweb/src/stores/prefetch.svelte.ts +30 -0
  57. finkrit-0.3.0/apps/finkritweb/src/stores/ui.svelte.ts +29 -0
  58. finkrit-0.3.0/apps/finkritweb/src/theme/theme.css +121 -0
  59. finkrit-0.3.0/apps/finkritweb/src/utils/date.ts +16 -0
  60. finkrit-0.3.0/apps/finkritweb/static/logo/finkrit-avatar-1024.png +0 -0
  61. finkrit-0.3.0/apps/finkritweb/static/logo/finkrit-avatar-256.png +0 -0
  62. finkrit-0.3.0/apps/finkritweb/static/logo/finkrit-avatar-512.png +0 -0
  63. finkrit-0.3.0/apps/finkritweb/static/logo/finkrit-logo-horizontal-dark.png +0 -0
  64. finkrit-0.3.0/apps/finkritweb/static/logo/finkrit-logo-horizontal-light.png +0 -0
  65. finkrit-0.3.0/apps/finkritweb/static/logo/finkrit-mark-emerald.png +0 -0
  66. finkrit-0.3.0/apps/finkritweb/static/logo/finkrit-mark-white.png +0 -0
  67. finkrit-0.3.0/apps/finkritweb/static/robots.txt +3 -0
  68. finkrit-0.3.0/apps/finkritweb/svelte.config.js +28 -0
  69. finkrit-0.3.0/apps/finkritweb/tsconfig.json +20 -0
  70. finkrit-0.3.0/apps/finkritweb/vite.config.ts +16 -0
  71. finkrit-0.3.0/finkrit/__init__.py +18 -0
  72. finkrit-0.3.0/finkrit/cli.py +47 -0
  73. finkrit-0.3.0/finkrit/web.py +248 -0
  74. finkrit-0.3.0/packages/__init__.py +0 -0
  75. finkrit-0.3.0/packages/finagent/__init__.py +64 -0
  76. finkrit-0.3.0/packages/finagent/__main__.py +5 -0
  77. finkrit-0.3.0/packages/finagent/adapter/__init__.py +43 -0
  78. finkrit-0.3.0/packages/finagent/adapter/compiler.py +203 -0
  79. finkrit-0.3.0/packages/finagent/adapter/output.py +95 -0
  80. finkrit-0.3.0/packages/finagent/adapter/resolve.py +108 -0
  81. finkrit-0.3.0/packages/finagent/agent/__init__.py +35 -0
  82. finkrit-0.3.0/packages/finagent/agent/base.py +232 -0
  83. finkrit-0.3.0/packages/finagent/agent/optimization.py +65 -0
  84. finkrit-0.3.0/packages/finagent/agent/orchestrator.py +224 -0
  85. finkrit-0.3.0/packages/finagent/agent/performance.py +86 -0
  86. finkrit-0.3.0/packages/finagent/agent/risk.py +110 -0
  87. finkrit-0.3.0/packages/finagent/agent/tax.py +49 -0
  88. finkrit-0.3.0/packages/finagent/assistant.py +211 -0
  89. finkrit-0.3.0/packages/finagent/cli.py +610 -0
  90. finkrit-0.3.0/packages/finagent/conversation.py +270 -0
  91. finkrit-0.3.0/packages/finagent/deps.py +20 -0
  92. finkrit-0.3.0/packages/finagent/examples/portfolio.csv +17 -0
  93. finkrit-0.3.0/packages/finagent/ingest.py +84 -0
  94. finkrit-0.3.0/packages/finagent/logging_model.py +78 -0
  95. finkrit-0.3.0/packages/finagent/progress.py +228 -0
  96. finkrit-0.3.0/packages/finagent/provenance.py +292 -0
  97. finkrit-0.3.0/packages/finagent/tests/__init__.py +7 -0
  98. finkrit-0.3.0/packages/finagent/tests/adapter/__init__.py +2 -0
  99. finkrit-0.3.0/packages/finagent/tests/adapter/test_compiler.py +279 -0
  100. finkrit-0.3.0/packages/finagent/tests/adapter/test_output.py +70 -0
  101. finkrit-0.3.0/packages/finagent/tests/adapter/test_resolve.py +64 -0
  102. finkrit-0.3.0/packages/finagent/tests/agent/__init__.py +2 -0
  103. finkrit-0.3.0/packages/finagent/tests/agent/test_base.py +134 -0
  104. finkrit-0.3.0/packages/finagent/tests/agent/test_budget.py +157 -0
  105. finkrit-0.3.0/packages/finagent/tests/agent/test_optimization_agent.py +58 -0
  106. finkrit-0.3.0/packages/finagent/tests/agent/test_orchestrator.py +110 -0
  107. finkrit-0.3.0/packages/finagent/tests/agent/test_performance_agent.py +102 -0
  108. finkrit-0.3.0/packages/finagent/tests/agent/test_risk_agent.py +126 -0
  109. finkrit-0.3.0/packages/finagent/tests/test_assistant.py +199 -0
  110. finkrit-0.3.0/packages/finagent/tests/test_cli_csv.py +126 -0
  111. finkrit-0.3.0/packages/finagent/tests/test_cli_flags.py +74 -0
  112. finkrit-0.3.0/packages/finagent/tests/test_cli_steps.py +137 -0
  113. finkrit-0.3.0/packages/finagent/tests/test_conversation.py +329 -0
  114. finkrit-0.3.0/packages/finagent/tests/test_deps.py +31 -0
  115. finkrit-0.3.0/packages/finagent/tests/test_ingest.py +71 -0
  116. finkrit-0.3.0/packages/finagent/tests/test_language.py +65 -0
  117. finkrit-0.3.0/packages/finagent/tests/test_progress.py +253 -0
  118. finkrit-0.3.0/packages/finagent/tests/test_provenance.py +250 -0
  119. finkrit-0.3.0/packages/finkritcore/__init__.py +68 -0
  120. finkrit-0.3.0/packages/finkritcore/desk.py +196 -0
  121. finkrit-0.3.0/packages/finkritcore/ingest.py +224 -0
  122. finkrit-0.3.0/packages/finkritcore/report/__init__.py +70 -0
  123. finkrit-0.3.0/packages/finkritcore/report/composer.py +154 -0
  124. finkrit-0.3.0/packages/finkritcore/report/metric.py +40 -0
  125. finkrit-0.3.0/packages/finkritcore/report/performance.py +180 -0
  126. finkrit-0.3.0/packages/finkritcore/report/report.py +75 -0
  127. finkrit-0.3.0/packages/finkritcore/report/tax_signals.py +187 -0
  128. finkrit-0.3.0/packages/finkritcore/store/__init__.py +40 -0
  129. finkrit-0.3.0/packages/finkritcore/store/memory.py +98 -0
  130. finkrit-0.3.0/packages/finkritcore/store/protocol.py +35 -0
  131. finkrit-0.3.0/packages/finkritcore/tests/__init__.py +2 -0
  132. finkrit-0.3.0/packages/finkritcore/tests/fixtures.py +89 -0
  133. finkrit-0.3.0/packages/finkritcore/tests/report/__init__.py +2 -0
  134. finkrit-0.3.0/packages/finkritcore/tests/report/test_composer.py +144 -0
  135. finkrit-0.3.0/packages/finkritcore/tests/report/test_metric.py +38 -0
  136. finkrit-0.3.0/packages/finkritcore/tests/report/test_performance_composer.py +99 -0
  137. finkrit-0.3.0/packages/finkritcore/tests/report/test_report.py +150 -0
  138. finkrit-0.3.0/packages/finkritcore/tests/report/test_tax_signals.py +128 -0
  139. finkrit-0.3.0/packages/finkritcore/tests/store/__init__.py +2 -0
  140. finkrit-0.3.0/packages/finkritcore/tests/store/test_memory.py +109 -0
  141. finkrit-0.3.0/packages/finkritcore/tests/test_desk.py +106 -0
  142. finkrit-0.3.0/packages/finkritcore/tests/test_ingest.py +159 -0
  143. finkrit-0.3.0/packages/finkritintel/LICENSE +202 -0
  144. finkrit-0.3.0/packages/finkritintel/README.md +46 -0
  145. finkrit-0.3.0/packages/finkritintel/__init__.py +28 -0
  146. finkrit-0.3.0/packages/finkritintel/capability/__init__.py +19 -0
  147. finkrit-0.3.0/packages/finkritintel/capability/base.py +36 -0
  148. finkrit-0.3.0/packages/finkritintel/capability/optimization.py +31 -0
  149. finkrit-0.3.0/packages/finkritintel/capability/performance.py +28 -0
  150. finkrit-0.3.0/packages/finkritintel/capability/risk.py +32 -0
  151. finkrit-0.3.0/packages/finkritintel/capability/tax.py +24 -0
  152. finkrit-0.3.0/packages/finkritintel/integration/__init__.py +0 -0
  153. finkrit-0.3.0/packages/finkritintel/integration/finkritq/__init__.py +154 -0
  154. finkrit-0.3.0/packages/finkritintel/integration/finkritq/asset.py +106 -0
  155. finkrit-0.3.0/packages/finkritintel/integration/finkritq/asset_live.py +102 -0
  156. finkrit-0.3.0/packages/finkritintel/integration/finkritq/asset_schema.py +80 -0
  157. finkrit-0.3.0/packages/finkritintel/integration/finkritq/asset_schema_live.py +117 -0
  158. finkrit-0.3.0/packages/finkritintel/integration/finkritq/optimization_live.py +56 -0
  159. finkrit-0.3.0/packages/finkritintel/integration/finkritq/optimization_schema_live.py +32 -0
  160. finkrit-0.3.0/packages/finkritintel/integration/finkritq/performance.py +61 -0
  161. finkrit-0.3.0/packages/finkritintel/integration/finkritq/performance_live.py +112 -0
  162. finkrit-0.3.0/packages/finkritintel/integration/finkritq/performance_schema.py +47 -0
  163. finkrit-0.3.0/packages/finkritintel/integration/finkritq/performance_schema_live.py +68 -0
  164. finkrit-0.3.0/packages/finkritintel/integration/finkritq/portfolio.py +136 -0
  165. finkrit-0.3.0/packages/finkritintel/integration/finkritq/portfolio_live.py +240 -0
  166. finkrit-0.3.0/packages/finkritintel/integration/finkritq/portfolio_schema.py +95 -0
  167. finkrit-0.3.0/packages/finkritintel/integration/finkritq/portfolio_schema_live.py +138 -0
  168. finkrit-0.3.0/packages/finkritintel/integration/finkritq/rebalance_live.py +207 -0
  169. finkrit-0.3.0/packages/finkritintel/integration/finkritq/rebalance_schema_live.py +61 -0
  170. finkrit-0.3.0/packages/finkritintel/integration/finkritq/risk_live.py +368 -0
  171. finkrit-0.3.0/packages/finkritintel/integration/finkritq/risk_schema_live.py +50 -0
  172. finkrit-0.3.0/packages/finkritintel/integration/finkritq/tax_live.py +202 -0
  173. finkrit-0.3.0/packages/finkritintel/integration/finkritq/tax_schema_live.py +35 -0
  174. finkrit-0.3.0/packages/finkritintel/pyproject.toml +58 -0
  175. finkrit-0.3.0/packages/finkritintel/tests/__init__.py +0 -0
  176. finkrit-0.3.0/packages/finkritintel/tests/capability/__init__.py +0 -0
  177. finkrit-0.3.0/packages/finkritintel/tests/capability/test_capability.py +52 -0
  178. finkrit-0.3.0/packages/finkritintel/tests/capability/test_optimization.py +48 -0
  179. finkrit-0.3.0/packages/finkritintel/tests/capability/test_performance.py +46 -0
  180. finkrit-0.3.0/packages/finkritintel/tests/capability/test_risk.py +53 -0
  181. finkrit-0.3.0/packages/finkritintel/tests/integration/__init__.py +0 -0
  182. finkrit-0.3.0/packages/finkritintel/tests/integration/fixtures.py +134 -0
  183. finkrit-0.3.0/packages/finkritintel/tests/integration/test_asset.py +146 -0
  184. finkrit-0.3.0/packages/finkritintel/tests/integration/test_asset_live.py +122 -0
  185. finkrit-0.3.0/packages/finkritintel/tests/integration/test_portfolio.py +167 -0
  186. finkrit-0.3.0/packages/finkritintel/tests/integration/test_portfolio_live.py +145 -0
  187. finkrit-0.3.0/packages/finkritintel/tests/integration/test_rebalance_live.py +218 -0
  188. finkrit-0.3.0/packages/finkritintel/tests/integration/test_risk_live.py +300 -0
  189. finkrit-0.3.0/packages/finkritintel/tests/integration/test_tax_live.py +130 -0
  190. finkrit-0.3.0/packages/finkritintel/tests/test_public_api.py +18 -0
  191. finkrit-0.3.0/packages/finkritintel/tests/tool/__init__.py +0 -0
  192. finkrit-0.3.0/packages/finkritintel/tests/tool/test_asset.py +110 -0
  193. finkrit-0.3.0/packages/finkritintel/tests/tool/test_binding.py +98 -0
  194. finkrit-0.3.0/packages/finkritintel/tests/tool/test_binding_contract.py +55 -0
  195. finkrit-0.3.0/packages/finkritintel/tests/tool/test_contract.py +54 -0
  196. finkrit-0.3.0/packages/finkritintel/tests/tool/test_portfolio.py +140 -0
  197. finkrit-0.3.0/packages/finkritintel/tool/__init__.py +2 -0
  198. finkrit-0.3.0/packages/finkritintel/tool/asset.py +68 -0
  199. finkrit-0.3.0/packages/finkritintel/tool/binding.py +30 -0
  200. finkrit-0.3.0/packages/finkritintel/tool/contract.py +22 -0
  201. finkrit-0.3.0/packages/finkritintel/tool/optimization.py +36 -0
  202. finkrit-0.3.0/packages/finkritintel/tool/performance.py +84 -0
  203. finkrit-0.3.0/packages/finkritintel/tool/portfolio.py +82 -0
  204. finkrit-0.3.0/packages/finkritintel/tool/rebalance.py +57 -0
  205. finkrit-0.3.0/packages/finkritintel/tool/risk.py +50 -0
  206. finkrit-0.3.0/packages/finkritintel/tool/tax.py +50 -0
  207. finkrit-0.3.0/packages/finkritq/LICENSE +202 -0
  208. finkrit-0.3.0/packages/finkritq/README.md +56 -0
  209. finkrit-0.3.0/packages/finkritq/__init__.py +1 -0
  210. finkrit-0.3.0/packages/finkritq/__main__.py +6 -0
  211. finkrit-0.3.0/packages/finkritq/anal/__init__.py +9 -0
  212. finkrit-0.3.0/packages/finkritq/anal/performance/__init__.py +147 -0
  213. finkrit-0.3.0/packages/finkritq/anal/performance/annualized_return.py +135 -0
  214. finkrit-0.3.0/packages/finkritq/anal/performance/attribution.py +98 -0
  215. finkrit-0.3.0/packages/finkritq/anal/performance/calmar_ratio.py +142 -0
  216. finkrit-0.3.0/packages/finkritq/anal/performance/contribution.py +55 -0
  217. finkrit-0.3.0/packages/finkritq/anal/performance/fees.py +28 -0
  218. finkrit-0.3.0/packages/finkritq/anal/performance/flows.py +152 -0
  219. finkrit-0.3.0/packages/finkritq/anal/performance/information_ratio.py +165 -0
  220. finkrit-0.3.0/packages/finkritq/anal/performance/jensens_alpha.py +162 -0
  221. finkrit-0.3.0/packages/finkritq/anal/performance/sharpe_ratio.py +178 -0
  222. finkrit-0.3.0/packages/finkritq/anal/performance/sortino_ratio.py +176 -0
  223. finkrit-0.3.0/packages/finkritq/anal/performance/total_return.py +121 -0
  224. finkrit-0.3.0/packages/finkritq/anal/performance/treynor_ratio.py +159 -0
  225. finkrit-0.3.0/packages/finkritq/anal/risk/__init__.py +99 -0
  226. finkrit-0.3.0/packages/finkritq/anal/risk/beta.py +120 -0
  227. finkrit-0.3.0/packages/finkritq/anal/risk/componentrisk.py +28 -0
  228. finkrit-0.3.0/packages/finkritq/anal/risk/concentration.py +88 -0
  229. finkrit-0.3.0/packages/finkritq/anal/risk/conditionalvalueatrisk.py +184 -0
  230. finkrit-0.3.0/packages/finkritq/anal/risk/correlation.py +119 -0
  231. finkrit-0.3.0/packages/finkritq/anal/risk/covariance.py +174 -0
  232. finkrit-0.3.0/packages/finkritq/anal/risk/downside_deviation.py +147 -0
  233. finkrit-0.3.0/packages/finkritq/anal/risk/drawdown.py +217 -0
  234. finkrit-0.3.0/packages/finkritq/anal/risk/marginalrisk.py +41 -0
  235. finkrit-0.3.0/packages/finkritq/anal/risk/projection.py +129 -0
  236. finkrit-0.3.0/packages/finkritq/anal/risk/semivariance.py +139 -0
  237. finkrit-0.3.0/packages/finkritq/anal/risk/tracking_error.py +151 -0
  238. finkrit-0.3.0/packages/finkritq/anal/risk/valueatrisk.py +166 -0
  239. finkrit-0.3.0/packages/finkritq/anal/risk/variance.py +147 -0
  240. finkrit-0.3.0/packages/finkritq/anal/risk/volatility.py +102 -0
  241. finkrit-0.3.0/packages/finkritq/asset/__init__.py +7 -0
  242. finkrit-0.3.0/packages/finkritq/asset/asset.py +26 -0
  243. finkrit-0.3.0/packages/finkritq/asset/assetsnapshot.py +16 -0
  244. finkrit-0.3.0/packages/finkritq/asset/stock.py +19 -0
  245. finkrit-0.3.0/packages/finkritq/data/__init__.py +4 -0
  246. finkrit-0.3.0/packages/finkritq/data/interfaces/__init__.py +5 -0
  247. finkrit-0.3.0/packages/finkritq/data/interfaces/history.py +39 -0
  248. finkrit-0.3.0/packages/finkritq/data/interfaces/snapshot.py +13 -0
  249. finkrit-0.3.0/packages/finkritq/data/providers/__init__.py +7 -0
  250. finkrit-0.3.0/packages/finkritq/data/providers/memoizing.py +104 -0
  251. finkrit-0.3.0/packages/finkritq/data/providers/yfinanceprovider.py +133 -0
  252. finkrit-0.3.0/packages/finkritq/data/registry.py +53 -0
  253. finkrit-0.3.0/packages/finkritq/datatype/__init__.py +37 -0
  254. finkrit-0.3.0/packages/finkritq/datatype/assettype.py +9 -0
  255. finkrit-0.3.0/packages/finkritq/datatype/cashflow.py +26 -0
  256. finkrit-0.3.0/packages/finkritq/datatype/currency.py +17 -0
  257. finkrit-0.3.0/packages/finkritq/datatype/market.py +63 -0
  258. finkrit-0.3.0/packages/finkritq/datatype/pricehistory.py +185 -0
  259. finkrit-0.3.0/packages/finkritq/datatype/rebalance.py +24 -0
  260. finkrit-0.3.0/packages/finkritq/datatype/risk.py +122 -0
  261. finkrit-0.3.0/packages/finkritq/datatype/tax.py +27 -0
  262. finkrit-0.3.0/packages/finkritq/main.py +494 -0
  263. finkrit-0.3.0/packages/finkritq/optimize/__init__.py +124 -0
  264. finkrit-0.3.0/packages/finkritq/optimize/cashflow.py +144 -0
  265. finkrit-0.3.0/packages/finkritq/optimize/expected_returns.py +54 -0
  266. finkrit-0.3.0/packages/finkritq/optimize/harvest.py +177 -0
  267. finkrit-0.3.0/packages/finkritq/optimize/lotselection.py +219 -0
  268. finkrit-0.3.0/packages/finkritq/optimize/meanvariance.py +436 -0
  269. finkrit-0.3.0/packages/finkritq/optimize/rebalance.py +217 -0
  270. finkrit-0.3.0/packages/finkritq/optimize/taxrebalance.py +304 -0
  271. finkrit-0.3.0/packages/finkritq/policy/__init__.py +59 -0
  272. finkrit-0.3.0/packages/finkritq/policy/compliance.py +127 -0
  273. finkrit-0.3.0/packages/finkritq/policy/policy.py +148 -0
  274. finkrit-0.3.0/packages/finkritq/policy/scan.py +73 -0
  275. finkrit-0.3.0/packages/finkritq/policy/suitability.py +94 -0
  276. finkrit-0.3.0/packages/finkritq/portfolio/__init__.py +25 -0
  277. finkrit-0.3.0/packages/finkritq/portfolio/portfolio.py +139 -0
  278. finkrit-0.3.0/packages/finkritq/portfolio/portfoliodata.py +334 -0
  279. finkrit-0.3.0/packages/finkritq/portfolio/portfoliosnapshot.py +78 -0
  280. finkrit-0.3.0/packages/finkritq/portfolio/position.py +81 -0
  281. finkrit-0.3.0/packages/finkritq/portfolio/positionsnapshot.py +35 -0
  282. finkrit-0.3.0/packages/finkritq/portfolio/taxlot.py +76 -0
  283. finkrit-0.3.0/packages/finkritq/pyproject.toml +69 -0
  284. finkrit-0.3.0/packages/finkritq/tests/__init__.py +0 -0
  285. finkrit-0.3.0/packages/finkritq/tests/anal/__init__.py +0 -0
  286. finkrit-0.3.0/packages/finkritq/tests/anal/performance/__init__.py +2 -0
  287. finkrit-0.3.0/packages/finkritq/tests/anal/performance/conftest.py +27 -0
  288. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_annualized_return.py +135 -0
  289. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_attribution.py +105 -0
  290. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_calmar_ratio.py +123 -0
  291. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_contribution.py +59 -0
  292. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_fees.py +34 -0
  293. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_flows.py +134 -0
  294. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_information_ratio.py +107 -0
  295. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_jensens_alpha.py +112 -0
  296. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_sharpe_ratio.py +120 -0
  297. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_sortino_ratio.py +116 -0
  298. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_total_return.py +133 -0
  299. finkrit-0.3.0/packages/finkritq/tests/anal/performance/test_treynor_ratio.py +103 -0
  300. finkrit-0.3.0/packages/finkritq/tests/anal/risk/__init__.py +1 -0
  301. finkrit-0.3.0/packages/finkritq/tests/anal/risk/conftest.py +36 -0
  302. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_beta.py +97 -0
  303. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_componentrisk.py +45 -0
  304. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_concentration.py +98 -0
  305. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_conditionalvalueatrisk.py +197 -0
  306. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_correlation.py +158 -0
  307. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_covariance.py +182 -0
  308. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_downside_deviation.py +309 -0
  309. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_drawdown.py +383 -0
  310. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_marginalrisk.py +89 -0
  311. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_portfolio_beta.py +65 -0
  312. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_projection.py +50 -0
  313. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_semivariance.py +141 -0
  314. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_tracking_error.py +90 -0
  315. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_valueatrisk.py +147 -0
  316. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_variance.py +176 -0
  317. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_volatility.py +146 -0
  318. finkrit-0.3.0/packages/finkritq/tests/anal/risk/test_weighting_basis.py +124 -0
  319. finkrit-0.3.0/packages/finkritq/tests/asset/__init__.py +0 -0
  320. finkrit-0.3.0/packages/finkritq/tests/asset/test_asset.py +52 -0
  321. finkrit-0.3.0/packages/finkritq/tests/data/__init__.py +0 -0
  322. finkrit-0.3.0/packages/finkritq/tests/data/test_memoizing.py +129 -0
  323. finkrit-0.3.0/packages/finkritq/tests/data/test_yfinanceprovider.py +68 -0
  324. finkrit-0.3.0/packages/finkritq/tests/datatype/__init__.py +2 -0
  325. finkrit-0.3.0/packages/finkritq/tests/datatype/test_risk_metric.py +55 -0
  326. finkrit-0.3.0/packages/finkritq/tests/fixtures.py +123 -0
  327. finkrit-0.3.0/packages/finkritq/tests/optimize/__init__.py +0 -0
  328. finkrit-0.3.0/packages/finkritq/tests/optimize/test_cashflow.py +69 -0
  329. finkrit-0.3.0/packages/finkritq/tests/optimize/test_expected_returns.py +26 -0
  330. finkrit-0.3.0/packages/finkritq/tests/optimize/test_harvest.py +140 -0
  331. finkrit-0.3.0/packages/finkritq/tests/optimize/test_lotselection.py +163 -0
  332. finkrit-0.3.0/packages/finkritq/tests/optimize/test_meanvariance.py +210 -0
  333. finkrit-0.3.0/packages/finkritq/tests/optimize/test_portfolio_optimizers.py +100 -0
  334. finkrit-0.3.0/packages/finkritq/tests/optimize/test_rebalance.py +193 -0
  335. finkrit-0.3.0/packages/finkritq/tests/optimize/test_taxrebalance.py +242 -0
  336. finkrit-0.3.0/packages/finkritq/tests/policy/__init__.py +2 -0
  337. finkrit-0.3.0/packages/finkritq/tests/policy/conftest.py +51 -0
  338. finkrit-0.3.0/packages/finkritq/tests/policy/test_compliance.py +90 -0
  339. finkrit-0.3.0/packages/finkritq/tests/policy/test_policy.py +97 -0
  340. finkrit-0.3.0/packages/finkritq/tests/policy/test_scan.py +78 -0
  341. finkrit-0.3.0/packages/finkritq/tests/policy/test_suitability.py +52 -0
  342. finkrit-0.3.0/packages/finkritq/tests/portfolio/__init__.py +1 -0
  343. finkrit-0.3.0/packages/finkritq/tests/portfolio/conftest.py +64 -0
  344. finkrit-0.3.0/packages/finkritq/tests/portfolio/test_portfolio.py +177 -0
  345. finkrit-0.3.0/packages/finkritq/tests/portfolio/test_portfoliodata.py +90 -0
  346. finkrit-0.3.0/packages/finkritq/tests/portfolio/test_position.py +57 -0
  347. finkrit-0.3.0/packages/finkritq/tests/portfolio/test_taxlot.py +107 -0
  348. finkrit-0.3.0/packages/finkritq/tests/transform/__init__.py +1 -0
  349. finkrit-0.3.0/packages/finkritq/tests/transform/test_returns.py +151 -0
  350. finkrit-0.3.0/packages/finkritq/transform/__init__.py +14 -0
  351. finkrit-0.3.0/packages/finkritq/transform/returns.py +50 -0
  352. finkrit-0.3.0/pyproject.toml +134 -0
  353. finkrit-0.3.0/pytest.ini +16 -0
  354. finkrit-0.3.0/requirements.txt +38 -0
  355. finkrit-0.3.0/run +56 -0
  356. finkrit-0.3.0/scripts/run.py +19 -0
  357. finkrit-0.3.0/services/api/finkritserver/__init__.py +22 -0
  358. finkrit-0.3.0/services/api/finkritserver/app.py +403 -0
  359. finkrit-0.3.0/services/api/finkritserver/conversations.py +68 -0
  360. finkrit-0.3.0/services/api/finkritserver/portfolio.py +85 -0
  361. finkrit-0.3.0/services/api/finkritserver/private/add.md +1 -0
  362. finkrit-0.3.0/services/api/finkritserver/schemas.py +98 -0
  363. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/assets/0.B70MiVSS.css +1 -0
  364. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/assets/2.C6_S9gvj.css +1 -0
  365. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/chunks/BObq9qf4.js +1 -0
  366. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/chunks/Bjy-W4x2.js +81 -0
  367. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/chunks/DTg7blxK.js +3 -0
  368. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/chunks/Y5rm7kEY.js +4 -0
  369. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/chunks/xihTtKlq.js +1 -0
  370. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/entry/app.Bc9SUxz_.js +2 -0
  371. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/entry/start.DiemgNTB.js +1 -0
  372. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/nodes/0.CnFAwJQL.js +1 -0
  373. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/nodes/1.pG_LEswJ.js +1 -0
  374. finkrit-0.3.0/services/api/finkritserver/static/_app/immutable/nodes/2.s34X4f2_.js +5 -0
  375. finkrit-0.3.0/services/api/finkritserver/static/_app/version.json +1 -0
  376. finkrit-0.3.0/services/api/finkritserver/static/index.html +40 -0
  377. finkrit-0.3.0/services/api/finkritserver/static/logo/finkrit-avatar-1024.png +0 -0
  378. finkrit-0.3.0/services/api/finkritserver/static/logo/finkrit-avatar-256.png +0 -0
  379. finkrit-0.3.0/services/api/finkritserver/static/logo/finkrit-avatar-512.png +0 -0
  380. finkrit-0.3.0/services/api/finkritserver/static/logo/finkrit-logo-horizontal-dark.png +0 -0
  381. finkrit-0.3.0/services/api/finkritserver/static/logo/finkrit-logo-horizontal-light.png +0 -0
  382. finkrit-0.3.0/services/api/finkritserver/static/logo/finkrit-mark-emerald.png +0 -0
  383. finkrit-0.3.0/services/api/finkritserver/static/logo/finkrit-mark-white.png +0 -0
  384. finkrit-0.3.0/services/api/finkritserver/static/robots.txt +3 -0
  385. finkrit-0.3.0/services/api/finkritserver/tests/__init__.py +3 -0
  386. finkrit-0.3.0/services/api/finkritserver/tests/conftest.py +105 -0
  387. finkrit-0.3.0/services/api/finkritserver/tests/test_app.py +355 -0
  388. finkrit-0.3.0/services/api/finkritserver/tests/test_portfolio.py +125 -0
  389. finkrit-0.3.0/services/api/finkritserver/tests/test_spa.py +110 -0
  390. finkrit-0.3.0/services/api/finkritserver/tests/test_upload.py +205 -0
  391. finkrit-0.3.0/tests/__init__.py +1 -0
  392. finkrit-0.3.0/tests/test_layering.py +109 -0
  393. finkrit-0.3.0/tests/test_packaging.py +130 -0
  394. finkrit-0.3.0/tests/test_readme.py +128 -0
@@ -0,0 +1,262 @@
1
+ # Built Svelte SPA -- apps/finkritweb's `npm run build` output lands here
2
+ # directly (see apps/finkritweb/vite.config.ts adapter config). Regenerated
3
+ # at build/publish time, not source.
4
+
5
+ # ai
6
+ .claude
7
+
8
+ /services/api/finkritserver/static/
9
+
10
+ # Byte-compiled / optimized / DLL files
11
+ __pycache__/
12
+ *.py[codz]
13
+ *$py.class
14
+
15
+ # C extensions
16
+ *.so
17
+
18
+ # Distribution / packaging
19
+ .Python
20
+ build/
21
+ develop-eggs/
22
+ dist/
23
+ downloads/
24
+ eggs/
25
+ .eggs/
26
+ # Anchored to the repo root: these are Python distutils build artifacts. Left
27
+ # unanchored they also match apps/finkritweb/src/lib, the standard SvelteKit
28
+ # shared-code dir, and silently drop it from git.
29
+ /lib/
30
+ /lib64/
31
+ parts/
32
+ sdist/
33
+ var/
34
+ wheels/
35
+ share/python-wheels/
36
+ *.egg-info/
37
+ .installed.cfg
38
+ *.egg
39
+ MANIFEST
40
+
41
+ # PyInstaller
42
+ # Usually these files are written by a python script from a template
43
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
44
+ *.manifest
45
+ *.spec
46
+
47
+ # Installer logs
48
+ pip-log.txt
49
+ pip-delete-this-directory.txt
50
+
51
+ # Unit test / coverage reports
52
+ htmlcov/
53
+ .tox/
54
+ .nox/
55
+ .coverage
56
+ .coverage.*
57
+ .cache
58
+ nosetests.xml
59
+ coverage.xml
60
+ *.cover
61
+ *.py.cover
62
+ .hypothesis/
63
+ .pytest_cache/
64
+ cover/
65
+
66
+ # Translations
67
+ *.mo
68
+ *.pot
69
+
70
+ # Django stuff:
71
+ *.log
72
+ local_settings.py
73
+ db.sqlite3
74
+ db.sqlite3-journal
75
+
76
+ # Flask stuff:
77
+ instance/
78
+ .webassets-cache
79
+
80
+ # Scrapy stuff:
81
+ .scrapy
82
+
83
+ # Sphinx documentation
84
+ docs/_build/
85
+
86
+ # PyBuilder
87
+ .pybuilder/
88
+ target/
89
+
90
+ # Jupyter Notebook
91
+ .ipynb_checkpoints
92
+
93
+ # IPython
94
+ profile_default/
95
+ ipython_config.py
96
+
97
+ # pyenv
98
+ # For a library or package, you might want to ignore these files since the code is
99
+ # intended to run in multiple environments; otherwise, check them in:
100
+ # .python-version
101
+
102
+ # pipenv
103
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
104
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
105
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
106
+ # install all needed dependencies.
107
+ # Pipfile.lock
108
+
109
+ # UV
110
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
111
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
112
+ # commonly ignored for libraries.
113
+ # uv.lock
114
+
115
+ # poetry
116
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
117
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
118
+ # commonly ignored for libraries.
119
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
120
+ # poetry.lock
121
+ # poetry.toml
122
+
123
+ # pdm
124
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
125
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
126
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
127
+ # pdm.lock
128
+ # pdm.toml
129
+ .pdm-python
130
+ .pdm-build/
131
+
132
+ # pixi
133
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
134
+ # pixi.lock
135
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
136
+ # in the .venv directory. It is recommended not to include this directory in version control.
137
+ .pixi
138
+
139
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
140
+ __pypackages__/
141
+
142
+ # Celery stuff
143
+ celerybeat-schedule
144
+ celerybeat.pid
145
+
146
+ # Redis
147
+ *.rdb
148
+ *.aof
149
+ *.pid
150
+
151
+ # RabbitMQ
152
+ mnesia/
153
+ rabbitmq/
154
+ rabbitmq-data/
155
+
156
+ # ActiveMQ
157
+ activemq-data/
158
+
159
+ # SageMath parsed files
160
+ *.sage.py
161
+
162
+ # Environments
163
+ .env
164
+ .envrc
165
+ .venv
166
+ env/
167
+ venv/
168
+ ENV/
169
+ env.bak/
170
+ venv.bak/
171
+
172
+ # Spyder project settings
173
+ .spyderproject
174
+ .spyproject
175
+
176
+ # Rope project settings
177
+ .ropeproject
178
+
179
+ # mkdocs documentation
180
+ /site
181
+
182
+ # mypy
183
+ .mypy_cache/
184
+ .dmypy.json
185
+ dmypy.json
186
+
187
+ # Pyre type checker
188
+ .pyre/
189
+
190
+ # pytype static type analyzer
191
+ .pytype/
192
+
193
+ # Cython debug symbols
194
+ cython_debug/
195
+
196
+ # PyCharm
197
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
198
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
199
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
200
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
201
+ # .idea/
202
+
203
+ # Abstra
204
+ # Abstra is an AI-powered process automation framework.
205
+ # Ignore directories containing user credentials, local state, and settings.
206
+ # Learn more at https://abstra.io/docs
207
+ .abstra/
208
+
209
+ # Visual Studio Code
210
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
211
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
212
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
213
+ # you could uncomment the following to ignore the entire vscode folder
214
+ # .vscode/
215
+ # Temporary file for partial code execution
216
+ tempCodeRunnerFile.py
217
+
218
+ # Ruff stuff:
219
+ .ruff_cache/
220
+
221
+ # PyPI configuration file
222
+ .pypirc
223
+
224
+ # Marimo
225
+ marimo/_static/
226
+ marimo/_lsp/
227
+ __marimo__/
228
+
229
+ # Streamlit
230
+ .streamlit/secrets.toml
231
+
232
+ # macOS
233
+ .DS_Store
234
+ .AppleDouble
235
+ .LSOverride
236
+
237
+ # macOS resource forks
238
+ ._*
239
+
240
+ # Spotlight
241
+ .Spotlight-V100
242
+
243
+ # Trash
244
+ .Trashes
245
+
246
+ # Files that might appear on external disks
247
+ .DocumentRevisions-V100
248
+ .fseventsd
249
+ .VolumeIcon.icns
250
+ .TemporaryItems
251
+ .apdisk
252
+
253
+
254
+ # Private/local project files
255
+ /private/
256
+
257
+ # Bazel build outputs (symlinks created at workspace root)
258
+ /bazel-*
259
+ .bazel/
260
+
261
+ # Virtual environment
262
+ .finkritvenv/