fin-infra 0.2.0__py3-none-any.whl → 0.2.2__py3-none-any.whl

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 (43) hide show
  1. fin_infra/analytics/__init__.py +2 -2
  2. fin_infra/analytics/add.py +3 -3
  3. fin_infra/analytics/portfolio.py +12 -12
  4. fin_infra/banking/history.py +4 -4
  5. fin_infra/brokerage/__init__.py +7 -7
  6. fin_infra/categorization/__init__.py +1 -1
  7. fin_infra/categorization/engine.py +1 -1
  8. fin_infra/categorization/llm_layer.py +4 -4
  9. fin_infra/chat/planning.py +1 -1
  10. fin_infra/cli/cmds/scaffold_cmds.py +6 -6
  11. fin_infra/credit/experian/parser.py +5 -5
  12. fin_infra/crypto/__init__.py +2 -2
  13. fin_infra/goals/management.py +3 -3
  14. fin_infra/goals/milestones.py +6 -6
  15. fin_infra/goals/models.py +2 -2
  16. fin_infra/investments/__init__.py +2 -2
  17. fin_infra/investments/providers/base.py +4 -4
  18. fin_infra/investments/scaffold_templates/README.md +17 -17
  19. fin_infra/markets/__init__.py +2 -2
  20. fin_infra/net_worth/__init__.py +6 -6
  21. fin_infra/net_worth/aggregator.py +1 -1
  22. fin_infra/net_worth/calculator.py +1 -1
  23. fin_infra/net_worth/insights.py +7 -7
  24. fin_infra/normalization/__init__.py +2 -2
  25. fin_infra/normalization/currency_converter.py +3 -3
  26. fin_infra/normalization/providers/static_mappings.py +1 -1
  27. fin_infra/obs/classifier.py +2 -2
  28. fin_infra/providers/brokerage/alpaca.py +1 -1
  29. fin_infra/recurring/add.py +1 -1
  30. fin_infra/recurring/detectors_llm.py +5 -5
  31. fin_infra/recurring/ease.py +4 -4
  32. fin_infra/recurring/insights.py +14 -14
  33. fin_infra/recurring/normalizer.py +6 -6
  34. fin_infra/recurring/normalizers.py +26 -26
  35. fin_infra/scaffold/goals.py +4 -4
  36. fin_infra/security/pii_filter.py +10 -10
  37. fin_infra/tax/add.py +2 -2
  38. fin_infra/tax/tlh.py +5 -5
  39. {fin_infra-0.2.0.dist-info → fin_infra-0.2.2.dist-info}/METADATA +15 -12
  40. {fin_infra-0.2.0.dist-info → fin_infra-0.2.2.dist-info}/RECORD +43 -43
  41. {fin_infra-0.2.0.dist-info → fin_infra-0.2.2.dist-info}/LICENSE +0 -0
  42. {fin_infra-0.2.0.dist-info → fin_infra-0.2.2.dist-info}/WHEEL +0 -0
  43. {fin_infra-0.2.0.dist-info → fin_infra-0.2.2.dist-info}/entry_points.txt +0 -0
@@ -1,20 +1,20 @@
1
1
  fin_infra/__init__.py,sha256=7oL-CCsALNifBODAn9LriicaIrzgJkmVPvE-9duP0mw,1574
2
2
  fin_infra/__main__.py,sha256=1qNP7j0ffw0wFs1dBwDcJ9TNXlC6FcYuulzoV87pMi8,262
3
- fin_infra/analytics/__init__.py,sha256=zjAOFkI9xjg76ozZStYBXEPNwIsioj5fUBltja5JLyc,2327
4
- fin_infra/analytics/add.py,sha256=-iAqKdvf9t0gQjjo3uOO56qA_ei4omKYDOynxb4SZPI,12654
3
+ fin_infra/analytics/__init__.py,sha256=-OsQUqLgOdafSNzbcIHy3G37nX2OwD0OzGj8C2Aiufs,2325
4
+ fin_infra/analytics/add.py,sha256=OdITXA5CjijhbBzokV3xlTcJCTiMLBDuUJ8OH9Pwkhw,12651
5
5
  fin_infra/analytics/cash_flow.py,sha256=VSsQHwTi6r6VFoScH9nu9Fj8XHC4O4B9TkAI8Alobm4,10284
6
6
  fin_infra/analytics/ease.py,sha256=aTAPc-Lmh6XP7REPVlAom38MtKCqeS-auNW-rpXRZJs,14282
7
7
  fin_infra/analytics/models.py,sha256=XFHeVZoPE0PcSFj59dNsdxISFVwdrTLU4sDCtExumrg,8193
8
- fin_infra/analytics/portfolio.py,sha256=d39sZGa3TQVX1xN2nplPHuxhsE-rahuiyzd612DeZ_Y,26417
8
+ fin_infra/analytics/portfolio.py,sha256=3xP34nQXvLdj_6Bpz5sufRoND5hpGDnmespWAixgh80,26405
9
9
  fin_infra/analytics/projections.py,sha256=T7LLG0Pe5f-WwgfDITdTMk-l8cCLZTM9cEC_Vxf6mkc,9154
10
10
  fin_infra/analytics/rebalancing.py,sha256=VM8MgoJofmrCXPK1rbmVqWGB4FauNmHCL5HOEbrZR2g,14610
11
11
  fin_infra/analytics/savings.py,sha256=n3rGNFP8TU5mW-uz9kOuqX_mDiVnDyAeDN06Q7Abotw,7570
12
12
  fin_infra/analytics/scenarios.py,sha256=LE_dZVkbxxAx5sxitGhiOhZfWTlYtVbIvS9pEXkijLc,12246
13
13
  fin_infra/analytics/spending.py,sha256=ogLcfF5ZOLMkBIj02RISnA3hiY_PsLWZ2_AAzA7FenY,26209
14
14
  fin_infra/banking/__init__.py,sha256=6wwGNITzyehC9MBQc5jy0ewSTuNetyQu2AdND51O55w,22450
15
- fin_infra/banking/history.py,sha256=BYvKLI_F198TBrtP7vMCCcBcszzFxZkmD-ClCezSVW8,10575
15
+ fin_infra/banking/history.py,sha256=YB-v9A03IZ_qki6A6mA-RO5Y4imlqk1CyP0W482ufdQ,10563
16
16
  fin_infra/banking/utils.py,sha256=HhxZbeaA8zqVttgMiJGnShTo_r_0DaD7T3IMq8n8340,15252
17
- fin_infra/brokerage/__init__.py,sha256=wJpgdOMWNxKt01eUIbu2oSmcFlL189nlWR0-PhLLVFc,17154
17
+ fin_infra/brokerage/__init__.py,sha256=IXm5ko5T607LodexYSbKNZc6I_2CQGaOwQUlb-w9-ks,17137
18
18
  fin_infra/budgets/__init__.py,sha256=GgfujfgdVld6_yUf8bhkW-bsIXBLb4THlJMocVpA4mM,3986
19
19
  fin_infra/budgets/add.py,sha256=i7Av--Z14sYQDJHETiF9VL71ouWBZcs3H3VZ62gqFEo,13508
20
20
  fin_infra/budgets/alerts.py,sha256=XDSUPpRR1LNgSQU0Szlht0bLWI7RRBh1ElbcwGexbPs,9701
@@ -29,20 +29,20 @@ fin_infra/budgets/templates.py,sha256=V1Hfh0P_6iMdaSLtnFm9iEvXDUyFb7yqBObat98hDj
29
29
  fin_infra/budgets/tracker.py,sha256=RDPfYhOLSAp-RFlTWFTpYaB5mysu3QfQhhcqJzmVWUU,16444
30
30
  fin_infra/cashflows/__init__.py,sha256=N9ZGKwIrQs-eiZZxqCow2aLBhW1MKcJoasQjGtyV6l4,8517
31
31
  fin_infra/cashflows/core.py,sha256=YWvF0DVOfBkvO_MuDODjE-V_g52H2ixFRH_TjMXExDE,541
32
- fin_infra/categorization/__init__.py,sha256=efLje12AW-ec9Vs5ynb41r4XCIWx5a-Z9WoGb3kQdIE,2030
32
+ fin_infra/categorization/__init__.py,sha256=p5uEFX0piPI5QmYtQ4lTrr0Cph5r01XpHDOi4RwwVv4,2027
33
33
  fin_infra/categorization/add.py,sha256=-I-V7R8vWj2-B8yjtFn_pNryQV5uascFR18a1Ltcqm0,6247
34
34
  fin_infra/categorization/ease.py,sha256=gvlVb_TL7kwm5oM_gWdrhZt4cJOSvYEgGipNJKK8CpM,5820
35
- fin_infra/categorization/engine.py,sha256=u1ZYDmuB0gZeJHn-CKvvwd7Z1HFiB-S91YuV_ZrK_Rc,12117
36
- fin_infra/categorization/llm_layer.py,sha256=CSe6q-cKQgnKUKSItdDQwzMd8K1dsp-Mwua7SWZ9Ux0,12670
35
+ fin_infra/categorization/engine.py,sha256=tZ-WTkPUUcKe6rDFoCSu5BF_gezcjJfx8Yn9eUX4lDQ,12114
36
+ fin_infra/categorization/llm_layer.py,sha256=hCqTfF3LPy7xs_7wJgBbwG4hYkoY2TtRSs_XWyihHuI,12665
37
37
  fin_infra/categorization/models.py,sha256=A8m3hAIbsUUV3eNjXpTiPWD1sYGjSdXEByTS3ZZASEA,5894
38
38
  fin_infra/categorization/rules.py,sha256=IpDnHBeuykRdu5vs3Lph4Y9-3RseIjjleQ5hZphQvNk,12849
39
39
  fin_infra/categorization/taxonomy.py,sha256=p-tSOwJ0O-rFZ1LIlHSYdaYdSc65084j0fdMI_6LW84,13251
40
40
  fin_infra/chat/__init__.py,sha256=-gufQz-rOZVXkcTUcCcXdG2oGL8csJBxwSuOMN_5aVc,6324
41
41
  fin_infra/chat/ease.py,sha256=8T0BQUkWQVpaTooD5-ZtinackkciqGargXnzWzayj3M,3113
42
- fin_infra/chat/planning.py,sha256=Vc3_58XxCnpT-347Q4BV0OY-xNINX79W7hFes4gou60,19915
42
+ fin_infra/chat/planning.py,sha256=goXAHQFv-du89wAHw_X_vm8aF7-HGBeRlyiA_BWx5xw,19912
43
43
  fin_infra/cli/__init__.py,sha256=7M8gKULnui4__9kXRKRHgETuFwZlacK9xrq5rSZ31CM,376
44
44
  fin_infra/cli/cmds/__init__.py,sha256=BvL3wRoUl3cO5wesv1Cqoatup7VeYMhq82tS19iNZHE,136
45
- fin_infra/cli/cmds/scaffold_cmds.py,sha256=CDEg1Ak_2DT6iHtpMk2RfC-BUfP8zDNDA6Ekwa03Pl4,7574
45
+ fin_infra/cli/cmds/scaffold_cmds.py,sha256=bbVSNmnePOS5lqPH1Wq0ohiQWV3UnX_uTIjQkAr5qjs,7564
46
46
  fin_infra/clients/__init__.py,sha256=CL_NUNxLAKFvG7wL_F-rAhUucp6pm0sNHVtvCzVvLcw,708
47
47
  fin_infra/clients/base.py,sha256=fZebDGIfQQybqeXpFpORlDZ6wSKf33aIAkUUpmyvZrA,979
48
48
  fin_infra/clients/plaid.py,sha256=0_kV95vDgasbWyVQe3OEqtVXkF4Q6SNmvHwXXY0gzh8,816
@@ -52,10 +52,10 @@ fin_infra/credit/add.py,sha256=8mYshzS8VGlnI_2b5WxXU5QFBrI-iEPfN1RDNz0apcA,8556
52
52
  fin_infra/credit/experian/__init__.py,sha256=g3IJGvDOMsnB0er0Uwdvl6hGKKTOazqJxSDnB2oIBm0,761
53
53
  fin_infra/credit/experian/auth.py,sha256=1TfT0wnqjAs-RCzDZKF_NH8LjTPDi8uMq7uyNPLJmS4,5612
54
54
  fin_infra/credit/experian/client.py,sha256=jNvfiBM7Qn9w8J_ZqQReDa4ACymyoFVgopQpdznTI-o,8645
55
- fin_infra/credit/experian/parser.py,sha256=7ptdLyTWWqHWqCo1CXn6L7XaIn9ZRRuOaATbFmMZZ64,7489
55
+ fin_infra/credit/experian/parser.py,sha256=KFLQd4_R_tXhQkJPJrDbdD1-GlGdJy6cAToVxKoZHcY,7484
56
56
  fin_infra/credit/experian/provider.py,sha256=a_BLyfc4wLUUqt8rkcbpHJuDB_DjFhS2kTZ-loVLdhM,13680
57
57
  fin_infra/credit/mock.py,sha256=xKWZk3fhuIYRfiZkNc9fbHUNViNKjmOLSj0MTI1f4ik,5356
58
- fin_infra/crypto/__init__.py,sha256=VTi2vjiDrlg0lU9H9tM3X-scRN-Z7QJ9UpdYIOeQcaw,8262
58
+ fin_infra/crypto/__init__.py,sha256=Qv-Herm67r2dFJz2GA7ljemT_1shv2ZeWM3w6osY5HI,8260
59
59
  fin_infra/crypto/insights.py,sha256=cgMsjdrR7vOTKvEDbFCXpS7O7I8dMs1oz6cIbtrJWZI,11393
60
60
  fin_infra/documents/__init__.py,sha256=Ub1hbX3PTrBSsBdcbL8PFf6oq8jSH4pYxW45-qOYPqs,1909
61
61
  fin_infra/documents/add.py,sha256=2RSf_i39-JUT6c_jVsEQwW3FfQSlH4H9Z0t_H0vz86U,8091
@@ -68,9 +68,9 @@ fin_infra/exceptions.py,sha256=k7L3vfXcONM2-AqmqNhQvOHobVBrLPTYp44cMUxuP3o,16951
68
68
  fin_infra/goals/__init__.py,sha256=iiy7qkPazSSAmPFhy2EXkfJvOBfb7ymrqS1eXBNiaQc,2130
69
69
  fin_infra/goals/add.py,sha256=zobcqEsEzsmd9itSPyPmzpkzFQYZlETo9d17bU9s3mc,20534
70
70
  fin_infra/goals/funding.py,sha256=Fw6hUvb8yNWineEbRXFYgw4_ZRnGrBSChBjkb7Qozrs,9303
71
- fin_infra/goals/management.py,sha256=nf1Es-rdQcp8bAM1FNWonX94CvGMBS1Nis4Q1CWgY0c,33868
72
- fin_infra/goals/milestones.py,sha256=mQHDn9FXVI0HJ9qBHGW25HRwyBjp_MOxjDml7z2kgiw,9996
73
- fin_infra/goals/models.py,sha256=5X0BddvK9FBsXMTXBQn8YFBNLtIbXue9a4VdLH3rWR8,10173
71
+ fin_infra/goals/management.py,sha256=1Ur76J6-EoxIbLZVnyfw64F4wwTq8Sp5e-YWDk5qVP4,33859
72
+ fin_infra/goals/milestones.py,sha256=1Sq-ZbW_H9Makw-kz4ekuw5kFGeDBNgnyTy-1Lr9TQo,9972
73
+ fin_infra/goals/models.py,sha256=SUBaQ9PaKsvWVmyT4qWdFxHsoJxevleTg9O6Qho03Zk,10171
74
74
  fin_infra/goals/scaffold_templates/README.md,sha256=CoE_3I2K32orOFH6CvfVBaJBTGDYIESd5-48V7vU1FI,9974
75
75
  fin_infra/goals/scaffold_templates/__init__.py,sha256=rLFam-mRsj8LvJu5kRBEIJtw9rFUof7KApgD2IRE56c,107
76
76
  fin_infra/goals/scaffold_templates/models.py.tmpl,sha256=b23Nlwm05MFMQE4qkrylTPXqulsN6cuFzNev2liY7DI,5714
@@ -79,20 +79,20 @@ fin_infra/goals/scaffold_templates/schemas.py.tmpl,sha256=M1hS1pK9UDXcNqPW-NGu98
79
79
  fin_infra/insights/__init__.py,sha256=fFYymoAY2zd7eooE-RqyFifXB_J-vVkHjyMak7o4wnQ,3984
80
80
  fin_infra/insights/aggregator.py,sha256=HtaJipSA-O_HVComBcyQdkGs6guoW81sYwRYHXGdBJI,10251
81
81
  fin_infra/insights/models.py,sha256=xov_YV8oBLJt3YdyVjbryRfcXqmGeGiPvZsZHSbvtl8,3202
82
- fin_infra/investments/__init__.py,sha256=DQJa32LdXspbtxydric-AfT3o5iDkqIByAsSriSfGak,6729
82
+ fin_infra/investments/__init__.py,sha256=hJDHlKNXG0Hr3zsJeXdTEyvxL9PkVR8NkS2ULKnELWY,6727
83
83
  fin_infra/investments/add.py,sha256=UV2_99z1p8cUiifVFJXOF0lGd0ucMgZ5s9N7IFyE_NY,17193
84
84
  fin_infra/investments/ease.py,sha256=s716nYv5kzkJ-vGbVeIumqAN0-TEl1ai-If84uP9h68,9474
85
85
  fin_infra/investments/models.py,sha256=Es1GdrB640k50gtdzTtfh_66nxvYxORq0xbtXryoRGo,18319
86
86
  fin_infra/investments/providers/__init__.py,sha256=V1eIzz6EnGJ-pq-9L3S2-evmcExF-YdZfd5P6JMyDtc,383
87
- fin_infra/investments/providers/base.py,sha256=1plM-o_fV6jQyyPnpZT5q8ir96oyxvh0zwA3qpiVIFY,9810
87
+ fin_infra/investments/providers/base.py,sha256=T9XC47hQ55rL0RG9r00PZsKS68wlXJacXudwPVf19Qs,9806
88
88
  fin_infra/investments/providers/plaid.py,sha256=X42cMpsHNcOPcYvl73jrP8x7nQ399n2_it3Ko9UIkI0,18751
89
89
  fin_infra/investments/providers/snaptrade.py,sha256=Hs5uM3F31mGzSONgVXLlL2BR86mjOWs8OhcpLiUeaAo,23251
90
- fin_infra/investments/scaffold_templates/README.md,sha256=PhgxfMLrro2Jz83b7XEnBi7lexiWKqlMrd2UU2Rbs8A,12149
90
+ fin_infra/investments/scaffold_templates/README.md,sha256=q9xB__7xqSK5JTvzsDDHMsFirwWV-7TNn45R0k9F2aE,12081
91
91
  fin_infra/investments/scaffold_templates/__init__.py,sha256=iR0oiAzXFYXHBnVJjaEnAzk6omncYOLg0TKMJ7xomBc,82
92
92
  fin_infra/investments/scaffold_templates/models.py.tmpl,sha256=5inP5-jw-qEfPYxSN71tn4AojZ9PesOIeuHTw181N-c,5849
93
93
  fin_infra/investments/scaffold_templates/repository.py.tmpl,sha256=XwOEpQZfuXut1WLiq-GSSvv0oX0iYCW54eJNL0Cav94,14656
94
94
  fin_infra/investments/scaffold_templates/schemas.py.tmpl,sha256=knWmn-Kyr7AdgPD4ZPMb6T49ZuPXeuOMqmjYNyA0CA0,5451
95
- fin_infra/markets/__init__.py,sha256=Ba9iUTfDkkla8GwPo3gULTJYUDQh5gSgGN15BxHINpo,9865
95
+ fin_infra/markets/__init__.py,sha256=pVPtfOZxIeHsPuCDOCydmJjdsOc44R9B2d5EbCZNhRU,9863
96
96
  fin_infra/models/__init__.py,sha256=y94RJ_1-bzgNUCxqE76X56WIOk3-El_Jueqy7uB0rb8,860
97
97
  fin_infra/models/accounts.py,sha256=m_HdYHOe_m0GLnc_f5njo9n-zscWu-C0rJB6SAd5-aY,1098
98
98
  fin_infra/models/brokerage.py,sha256=TV5KMe78e-ttjcUbZIfdGo3x0NisAQ3puwv_ehtgSHc,8312
@@ -102,34 +102,34 @@ fin_infra/models/money.py,sha256=63pdGD1WBMHicJ1w7pbU1g5fqt4gIzPuqQQ2-NSlBuc,401
102
102
  fin_infra/models/quotes.py,sha256=-YBzgnjjCihRAprUdaPRtfwKrgliDIGgqAnaM69VbDU,521
103
103
  fin_infra/models/tax.py,sha256=as40J9h24BB7LmeaIfay509UaYEctmk5CPW9CfcjWZc,15657
104
104
  fin_infra/models/transactions.py,sha256=gzc6hLKKU6VUWGshqw2WChU_x0qyXhdvOGwmj9H_H3I,790
105
- fin_infra/net_worth/__init__.py,sha256=4LzVM2Y0OkBlZoD5FUAbLwtORp1okYcsYc4zj0P8C7k,3452
105
+ fin_infra/net_worth/__init__.py,sha256=hAxX5nM9jCf-rA0WF42Fkt6_dZLjcAZZH5KBkMhr9Ak,3444
106
106
  fin_infra/net_worth/add.py,sha256=QWfHIHJs2CV99WRBqjQ2OteiOrn5cR9nurmxTF9v5rg,23191
107
- fin_infra/net_worth/aggregator.py,sha256=9Kx2vUR71QwqYZdGaCfmYrJ1hNxzd1EEuAdWJoNjqTI,12780
108
- fin_infra/net_worth/calculator.py,sha256=SQJGJDok5HgvoAhKBxeeqt8vhGMchABU3zPmNRpqNy4,13139
107
+ fin_infra/net_worth/aggregator.py,sha256=Zlb0-Z7xdHMzjvmxc90KeYwwr8zNkybX2ra9oAFi6UM,12779
108
+ fin_infra/net_worth/calculator.py,sha256=l13BWEtJNCWau0M7J97ek8WVQN3_9NVXnJkmit0CcLU,13138
109
109
  fin_infra/net_worth/ease.py,sha256=ERdFrUjjb5l5BRp_c2tEfE1obTpRc_-FA9LnV7BTiEw,15883
110
110
  fin_infra/net_worth/goals.py,sha256=BJGxdsMjvgQDELFEJo-ai3DvsAzUNXvzMXkwovHr8yQ,1238
111
- fin_infra/net_worth/insights.py,sha256=LJ-EI0jQuBVqoFthgDq2PAmwRGorx0dP2Rsm4yNvquY,25221
111
+ fin_infra/net_worth/insights.py,sha256=RlCp247kFZ73xBlU-1LYTXs0R6sg4FvL0SidLwFz-6M,25206
112
112
  fin_infra/net_worth/models.py,sha256=sZv3dGw5zwckE2XQ7n5ehK7sv4jdGCo9c2g4ZtZHwCI,26880
113
113
  fin_infra/net_worth/scaffold_templates/README.md,sha256=Wqd6ksqFjmtNdDFOWVV_duuAcePWwiu3_YgkVM9N_WY,14363
114
114
  fin_infra/net_worth/scaffold_templates/__init__.py,sha256=OKeMCC_JNw6m8rBWr_wesOIJ1OR9LCBeIkXKahbCGC4,132
115
115
  fin_infra/net_worth/scaffold_templates/models.py.tmpl,sha256=9BKsoD08RZbSdOm0wFTbx5OzKfAEtuA1NcWyS1Aywx4,5934
116
116
  fin_infra/net_worth/scaffold_templates/repository.py.tmpl,sha256=DSErnNxeAe4pWeefARRK3bU0hHltqdIFffENfVwdd7c,12798
117
117
  fin_infra/net_worth/scaffold_templates/schemas.py.tmpl,sha256=VkFsxyZx4DFDhXDhn-7KT0IgrXCvgaS5ZdWbjyezWj0,4709
118
- fin_infra/normalization/__init__.py,sha256=O-8YvPbKWgfdC6E2qzXuCFLJ6cM-CS8GmBO8TDcJ9X0,6246
119
- fin_infra/normalization/currency_converter.py,sha256=dhiSAYD7onQgCiT17TtGzL4czeX_qJ9_yW2zsvvBErg,7018
118
+ fin_infra/normalization/__init__.py,sha256=7PWJn_T-8O464cvM4BeA5krOS2YaJXhCmEV9ZtQqbB0,6244
119
+ fin_infra/normalization/currency_converter.py,sha256=YIi7EgeE_Oe2qiXaCLnmgj9AKHvKBO0eLm_7bkHMFJM,7015
120
120
  fin_infra/normalization/models.py,sha256=h8zC2n642WwVWC1yvx_VCILDOgUwPDrZwjb0QIbA8cE,1873
121
121
  fin_infra/normalization/providers/__init__.py,sha256=LFU1tB2hVO42Yrkw-IDpPexD4mIlxob9lRrJEeGYqpE,559
122
122
  fin_infra/normalization/providers/exchangerate.py,sha256=I_2TK_LLOcYCy3HcN9Nut3UwqTWEOX26GktmX3cczvY,6340
123
- fin_infra/normalization/providers/static_mappings.py,sha256=m14VHmTZipbqrgyE0ABToabVx-pDcyB577LNWrACEUM,6809
123
+ fin_infra/normalization/providers/static_mappings.py,sha256=X8eSXLU_9qwXLcSL84nNR81c_H_95-saJhwnp0h_sgE,6808
124
124
  fin_infra/normalization/symbol_resolver.py,sha256=UAfhxmiINpQhE8tPLh-GMCfDZGmK5wf2DwtYZP3sSUo,8093
125
125
  fin_infra/obs/__init__.py,sha256=kMMVl0fdwtJtZeKiusTuw0iO61Jo9-HNXsLmn3ffLRE,631
126
- fin_infra/obs/classifier.py,sha256=JasWCqSkYjllJNZ5Gwbrd53ZhLwhYNZ0i2nbTcklEog,5155
126
+ fin_infra/obs/classifier.py,sha256=S7kSphgHN1O4GiMUdr3IjuXpoXU0XgGq132_U-njXX4,5153
127
127
  fin_infra/providers/__init__.py,sha256=jxhQm79T6DVXf7Wpy7luL-p50cE_IMUbjt4o3apzJQU,768
128
128
  fin_infra/providers/banking/base.py,sha256=KeNU4ur3zLKHVsBF1LQifcs2AKX06IEE-Rx_SetFeAs,102
129
129
  fin_infra/providers/banking/plaid_client.py,sha256=8Nvd9Ow_v6Scnw79R86uSvRcBRHPgc3ytsQze50E7aM,6524
130
130
  fin_infra/providers/banking/teller_client.py,sha256=733Eq-o9Yt7Sm_aWOeunJU4EWYRAaZNS7vgDVGqR0W4,10279
131
131
  fin_infra/providers/base.py,sha256=Tqjl5_hSTShgYLrSiKzeDbnL_I-dji-G_itkumm15IM,7722
132
- fin_infra/providers/brokerage/alpaca.py,sha256=X37cKou4jhekY-EHB4WKOa8K66Vkb4m5riDcuVdv7wc,9926
132
+ fin_infra/providers/brokerage/alpaca.py,sha256=BObiI_dFQZ3fOpTfmZMkri8sVrsz5uW6i5ZVUb0etCU,9923
133
133
  fin_infra/providers/brokerage/base.py,sha256=JJFH0Cqca4Rg4rmxfiwcQt-peRoBf4JpG3g6jx8DVks,106
134
134
  fin_infra/providers/credit/experian.py,sha256=r7lpFecgOdNEhb_Lxz2Z-BG8R3p2n0XlqDKL7y8NZ-0,482
135
135
  fin_infra/providers/identity/stripe_identity.py,sha256=JQGJRuQdWP5dWDcROgtz1RrmpkytRv95H6Fn-x1kifU,501
@@ -145,37 +145,37 @@ fin_infra/providers/tax/mock.py,sha256=-6VD9F3usfoxU-KqAj8jC3Q1xsnJ4o5ZT1W5Ze7X6
145
145
  fin_infra/providers/tax/taxbit.py,sha256=Lp3eH64oUrqwVT5P8oPxa01LFAmhhlfbquDFiiiDcz8,4271
146
146
  fin_infra/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
147
  fin_infra/recurring/__init__.py,sha256=lYeMdpgxq52x7siFp62_xVqzUx84vMNKrTuiaT2JTi4,2308
148
- fin_infra/recurring/add.py,sha256=Kc5Wv-4XshS8ET1wuydDJfRz6fQAkbZ2uQ1qFAJ0X5w,19055
148
+ fin_infra/recurring/add.py,sha256=l_VsqJNAs-s5VZ7WFA3wfXJtjib2eqBhMJofTYgDR2w,19053
149
149
  fin_infra/recurring/detector.py,sha256=MCq_48V6o9Ig9lTTHM054KNh2I_udEjWBmV_iF361ac,20131
150
- fin_infra/recurring/detectors_llm.py,sha256=MB9hGUTo8WEa-lpevOkrp0OQOXnatskzW02l_EfwTPo,11486
151
- fin_infra/recurring/ease.py,sha256=8t0lXMqNxHZkO0fw29sEn_lQjitDq0UxebtqA74tag0,11157
152
- fin_infra/recurring/insights.py,sha256=-SgskqHqOlkDwCfj4NsPMwlq1bHY2J5gM-1c_t0bSv0,15853
150
+ fin_infra/recurring/detectors_llm.py,sha256=2EMBQTIHvmxJR6gqvhlg6VNj2-eDTJiJULMxTCZMnJw,11481
151
+ fin_infra/recurring/ease.py,sha256=jaBFMul1LxjY2TAkSsmyaK6Kkflj8EfxwWPbyRGA8mw,11151
152
+ fin_infra/recurring/insights.py,sha256=zHHcD7jEYJF39TI9-5LSgjh-zHhXjxuKfLyKI6SIA8Y,15839
153
153
  fin_infra/recurring/models.py,sha256=o0N8G-QhVb4zILEyry6M1VZ7liFJIOHwlejvn6p4K8M,8894
154
- fin_infra/recurring/normalizer.py,sha256=mihqV84Dd5AJ9JYU6KW3W8nH3TCU8FiKpPicipuClPM,9760
155
- fin_infra/recurring/normalizers.py,sha256=4DGy0RGHz5NameRpZC-QYbS2PkZc9UqjtjTuVQ_OJHA,15914
154
+ fin_infra/recurring/normalizer.py,sha256=sU4qCJ7_wVDugY0R0Td63Ol8asJNpMOHAPX92J9XJhY,9754
155
+ fin_infra/recurring/normalizers.py,sha256=oGxCTDGUixORwXiC424wN5QYxTPdJu2rSrSG84QkVlA,15888
156
156
  fin_infra/recurring/summary.py,sha256=wQshznaswIbGUPIMyayubRcRfUvVNBtyzmYx50-nqs0,14621
157
157
  fin_infra/scaffold/__init__.py,sha256=IfL_CHHMpQB1efqY37BlIu07356tLaeVI2Mv3C0qYDs,827
158
158
  fin_infra/scaffold/budgets.py,sha256=qLnyPh-a-ZrslstaxRtR__Bpwlz0EncSdVnCM7fDBI4,9481
159
- fin_infra/scaffold/goals.py,sha256=C1mexWRbWV3aRdmiT65LpKMMWzhTWTX_upeCcsjTcWw,9684
159
+ fin_infra/scaffold/goals.py,sha256=0iCUJI242sExlVttd1xb2HZCuAgzhKI_URrYnSfxrRg,9680
160
160
  fin_infra/security/__init__.py,sha256=wM341EZioKtfTawpFCciaFh0FlpHHkoEoviW9pGYqpI,1363
161
161
  fin_infra/security/add.py,sha256=SIMBlSQ4FWCNiBfzgbzeVpRoo2JS3dqW-51uvq3hQU0,2715
162
162
  fin_infra/security/audit.py,sha256=nb4H2Jq7XwalHLOx6LqleUtSXkBRz6u65LJ7lyuQNDo,3276
163
163
  fin_infra/security/encryption.py,sha256=Cr_9xhBiUvYx1tDjCiLTzyY9NRTlqljWGgswqXT499Y,6139
164
164
  fin_infra/security/models.py,sha256=s8dsvpxP-7DThUZl3Fvr3S6KVAfL5r3TKcd4uj_hCTE,1689
165
- fin_infra/security/pii_filter.py,sha256=nVqzbG_-Z6m8fzzS1KBy9yFwaZ8eRrU00Q72fSkVyU8,8307
165
+ fin_infra/security/pii_filter.py,sha256=DF95mSMkk8CTGAEYtEnR-CCoOIUwE7D-9voQ-Koa3j4,8297
166
166
  fin_infra/security/pii_patterns.py,sha256=SM-o7cL6NdgkOmtBedsN2nJZ5QPbeYehZdYmAujk8Y8,3070
167
167
  fin_infra/security/token_store.py,sha256=FsfoAkIMQ2NRfkBuyG1eH30nnfO3w_V5tDPAZwUj9Os,6041
168
168
  fin_infra/settings.py,sha256=11JgIhjGwWnwixV-hveEWpoWd_JC0ixLnOQoLWCiwNo,1387
169
169
  fin_infra/tax/__init__.py,sha256=U0EUKQwbDqnAYwU8WRx6AD07TaB-ELdKGISOQ-904lw,6103
170
- fin_infra/tax/add.py,sha256=dYigcgQFEP38NLoNuhh7vpSoy07sWX6Z_DTp1tWFJXw,14553
171
- fin_infra/tax/tlh.py,sha256=3khtiEkGKIIHi2mbMM0ss-GKQ8vM3FS6hly8R00qseY,21482
170
+ fin_infra/tax/add.py,sha256=d17Zuoi-xMjuJNykDHzQXnAUVzd_41BUMHQdqm23jJ8,14547
171
+ fin_infra/tax/tlh.py,sha256=rUglLeq09XxEbC2W7aJ9G0E8kj9g5QdG4ymSL4z8RK0,21477
172
172
  fin_infra/utils/__init__.py,sha256=x_FUlv7FONdTPHwXTbPWY-EEOBwWnm-y8TPJ1W1PrXM,944
173
173
  fin_infra/utils/deprecation.py,sha256=DTcqv7ECnrWOOwoA07JOnRci4Hqqo9YtKSSmoS-DVPY,5187
174
174
  fin_infra/utils/http.py,sha256=rDEgYsEBrEe75ml5RA-iSs3xeU5W-3j-czJlT7WbrM4,632
175
175
  fin_infra/utils/retry.py,sha256=YiyTgy26eJ1ah7fE2_-ZPa4hv4bIT4OzjYolkNWb5j0,1057
176
176
  fin_infra/version.py,sha256=4t_crzhrLum--oyowUMxtjBTzUtWp7oRTF22ewEvJG4,49
177
- fin_infra-0.2.0.dist-info/LICENSE,sha256=wK-Ya7Ylxa38dSIZRhvNj1ZVLIrHC-BAI8v38PNADiA,1061
178
- fin_infra-0.2.0.dist-info/METADATA,sha256=vyjoC9hF7JvN-j8UD8prJDXtirs__hLsfDU9cpXIVjs,10711
179
- fin_infra-0.2.0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
180
- fin_infra-0.2.0.dist-info/entry_points.txt,sha256=Sr1uikvALZMeKm-DIkeKG4L9c4SNqysXGO_IRF8_9eU,53
181
- fin_infra-0.2.0.dist-info/RECORD,,
177
+ fin_infra-0.2.2.dist-info/LICENSE,sha256=wK-Ya7Ylxa38dSIZRhvNj1ZVLIrHC-BAI8v38PNADiA,1061
178
+ fin_infra-0.2.2.dist-info/METADATA,sha256=q4UDtFCwgUSeK3o93LDT5BeMK227AnqkQS_PaR7OZuE,10842
179
+ fin_infra-0.2.2.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
180
+ fin_infra-0.2.2.dist-info/entry_points.txt,sha256=Sr1uikvALZMeKm-DIkeKG4L9c4SNqysXGO_IRF8_9eU,53
181
+ fin_infra-0.2.2.dist-info/RECORD,,