skfolio

View on PyPIReverse Dependencies (4)

0.7.0 skfolio-0.7.0-py3-none-any.whl

Wheel Details

Project: skfolio
Version: 0.7.0
Filename: skfolio-0.7.0-py3-none-any.whl
Download: [link]
Size: 734545
MD5: 40e5886050b51717c0e4cf3a1580fa08
SHA256: b14b8fe2d7e7cb89d37f13a5719accb58d30a79c66e36ec517f27bc86451ac3f
Uploaded: 2025-01-01 16:11:39 +0000

dist-info

METADATA

Metadata-Version: 2.1
Name: skfolio
Version: 0.7.0
Summary: Portfolio optimization built on top of scikit-learn
Author-Email: Hugo Delatte <delatte.hugo[at]gmail.com>
Maintainer-Email: Hugo Delatte <delatte.hugo[at]gmail.com>, Matteo Manzi <matteomanzi09[at]gmail.com>
Project-Url: API Reference, https://www.skfolio.org/api_reference.html
Project-Url: Documentation, https://www.skfolio.org
Project-Url: Tutorials, https://www.skfolio.org
Project-Url: Repository, https://github.com/skfolio/skfolio
License: BSD 3-Clause License Copyright (c) 2007-2023 The skfolio developers. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Keywords: portfolio,optimization,optimisation,finance,asset,allocation,quantitative,quant,investment,strategy,machine-learning,scikit-learn,data-mining,data-science
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: Unix
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Topic :: Software Development
Requires-Python: >=3.10
Requires-Dist: numpy (>=1.23.4)
Requires-Dist: scipy (>=1.8.0)
Requires-Dist: pandas (>=1.4.1)
Requires-Dist: cvxpy (>=1.4.1)
Requires-Dist: scikit-learn (>=1.6.0)
Requires-Dist: joblib (>=1.3.2)
Requires-Dist: plotly (>=5.22.0)
Requires-Dist: cvxpy[SCIP] (<2.0.0,>=1.6.0); extra == "dev"
Requires-Dist: pytest (<9.0.0,>=8.3.4); extra == "dev"
Requires-Dist: pytest-cov (<7.0.0,>=6.0.0); extra == "dev"
Requires-Dist: ruff (<1.0.0,>=0.8.4); extra == "dev"
Requires-Dist: pre-commit (<4.2.0,>=4.0.0); extra == "dev"
Requires-Dist: cvxpy[SCIP]; extra == "docs"
Requires-Dist: Sphinx; extra == "docs"
Requires-Dist: sphinx-gallery; extra == "docs"
Requires-Dist: sphinx-design; extra == "docs"
Requires-Dist: pydata-sphinx-theme (==0.13.3); extra == "docs"
Requires-Dist: matplotlib; extra == "docs"
Requires-Dist: kaleido (==0.2.1); extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: numpydoc; extra == "docs"
Requires-Dist: sphinx-togglebutton; extra == "docs"
Requires-Dist: sphinx-favicon; extra == "docs"
Requires-Dist: sphinx-prompt; extra == "docs"
Requires-Dist: sphinxext.opengraph; extra == "docs"
Requires-Dist: sphinx-sitemap; extra == "docs"
Requires-Dist: jupyterlite-sphinx; extra == "docs"
Requires-Dist: jupyterlite-pyodide-kernel; extra == "docs"
Requires-Dist: nbformat; extra == "docs"
Provides-Extra: dev
Provides-Extra: docs
Description-Content-Type: text/x-rst
License-File: LICENSE
[Description omitted; length: 15529 characters]

WHEEL

Wheel-Version: 1.0
Generator: setuptools (75.6.0)
Root-Is-Purelib: true
Tag: py3-none-any

RECORD

Path Digest Size
skfolio/__init__.py sha256=FbnqIQGdiw2fg-jy2N--TnXGknEahle2zj7y47bxQkY 618
skfolio/exceptions.py sha256=poWfE5geF121AR9QqrG781KebGneIZ028161tV0YfS0 784
skfolio/typing.py sha256=SqYkUNbeq_go0pJaoIAFE-MNvHtHSGLzhNrhrRxkpfM 1378
skfolio/cluster/__init__.py sha256=5yp3qkvBoN0qNDmmPahjPMegc0oQXCJ1FPxwgEqJpiY 251
skfolio/cluster/_hierarchical.py sha256=i7ckFpKdxymzrqXZBc0AZj-Qcz65JuUoJQ7pYWfAo7E 12823
skfolio/datasets/__init__.py sha256=0tuS8CR26EUBqBFjyxgZ2L5PgZDy3AjK3qh4GV-fB1U 481
skfolio/datasets/_base.py sha256=ECeHHlNOb2U5hEE3kaK8yQtegcVYiuGTjMLJ3Dop0Ks 16073
skfolio/datasets/data/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
skfolio/datasets/data/factors_dataset.csv.gz sha256=brCJlT25DJo40yg1gnUXAakNtvWZZYR_1ksFeN5JcWE 36146
skfolio/datasets/data/sp500_dataset.csv.gz sha256=7iHKwovvsdCnOanOsiGE-ZU5RyaqDP3pohlB0awErA0 426065
skfolio/datasets/data/sp500_index.csv.gz sha256=iUw0QxwoT4aqZKRn4Xbio8m2l8hX65qzUAbC3VXT_fI 41898
skfolio/distance/__init__.py sha256=MnNOJOQTdt3e-MH_uXMaaogWzF7Ubymvc8I0Ks7VElU 547
skfolio/distance/_base.py sha256=jBgRk6lZrP1woSI9541fTfxBBkp4WCTLlRPmWcmA3j4 1326
skfolio/distance/_distance.py sha256=0x77Yf_Tukb2l8J1VmvPT3YWJxVzGQo4u5rNjjo9-1M 19097
skfolio/measures/__init__.py sha256=b4hcaWXTzgQjF80ex3G1YJurfjLiii-ggrqJCIXsJTE 1631
skfolio/measures/_enums.py sha256=NJcngwg9b2JMMiekwkWU9POfnDvgfUgtYtyV2VSFDVM 8934
skfolio/measures/_measures.py sha256=Z7XHSyM9xfecDgOqm-lJQJhvZxasF018-oFS4QjC4g0 16829
skfolio/metrics/__init__.py sha256=MomHJ5_bgjq4qUwGS2bfhNmG_ld0oQ4wK6y0Yy_Eonc 75
skfolio/metrics/_scorer.py sha256=h1VuZk-zzn4rIChHl9FvM7RxqVT3b-jR1CEB-cr9F2s 4306
skfolio/model_selection/__init__.py sha256=Hl90pxVZjxrEFrI8DCGmoR0CBo1rMGw1z-cR2scKyls 507
skfolio/model_selection/_combinatorial.py sha256=uf5DzklgyLhfMKm0kWHXl2QLlUOAoiaxNb7cafrHVIg 19062
skfolio/model_selection/_validation.py sha256=3eFYzPejjDZljc33vRehDuBQTEKCkrj-mZihMVuGA4s 10034
skfolio/model_selection/_walk_forward.py sha256=T57HhdFGjG31mAufujHQuRK1uKfAdkiBx9eucQZ-WG0 15043
skfolio/moments/__init__.py sha256=st8AYX3tHT2ZkqnnMNbS6CiwufvHq6Tl6nHtRVhtlq0 794
skfolio/moments/covariance/__init__.py sha256=twNNLP44sv4-3EgET27UdJ-8wbVgF2cYmIn8DERwFTk 1068
skfolio/moments/covariance/_base.py sha256=98o4YDFcOZ4X4hRFlrJAwWifULGzisEyRZaxFYW1qeA 3970
skfolio/moments/covariance/_denoise_covariance.py sha256=kp90Jey_0NMHqZObhadO0FymF1TXBO6J8gvXoDbv9dE 6986
skfolio/moments/covariance/_detone_covariance.py sha256=4hh-wvxLdNb61PJkF2_AHb5jDZogZiFRHtUoWuXywWw 6093
skfolio/moments/covariance/_empirical_covariance.py sha256=mndfugw9Yp1Kus8rPAYcAIUcDT-6yX7By4gHhxyj6iI 3544
skfolio/moments/covariance/_ew_covariance.py sha256=wqvErW0OfvWWSrz1-g_M5EdfA4ludAD3wbn-y3ec-gY 3716
skfolio/moments/covariance/_gerber_covariance.py sha256=B_H02D7kWuUGaLUB9E39Kxh4f9mQESsoFJvuvKNJ0Jk 5899
skfolio/moments/covariance/_graphical_lasso_cv.py sha256=_6WQ1sjYJRG8XDq8zb5YIPtDhpb8CmLhLBlfewBvqjM 6539
skfolio/moments/covariance/_implied_covariance.py sha256=dD-LT7vXYs3-GGgxkQon3xCVLmA8zUuWIaExqY4vtXA 17736
skfolio/moments/covariance/_ledoit_wolf.py sha256=iV92TpAopOAgQwa4zk7NF1rYdXkgm3uXn5ZZpbcMss0 4875
skfolio/moments/covariance/_oas.py sha256=ru8BNz7vQU75ARCuUbtJstmR2fy2fiD9OXLDlztUm5g 3684
skfolio/moments/covariance/_shrunk_covariance.py sha256=OOUahkiSdU3vFOb8i0iHtn8WU0AHl7o9pf8pFkG6Lv4 3095
skfolio/moments/expected_returns/__init__.py sha256=Bi3c4bok3SyktdYeFUs3VepTrtpmDITIk9GXPhIuDc0 504
skfolio/moments/expected_returns/_base.py sha256=xk9mzi48uCOHaMTGQBMr3FU7Ai_shxYhmGeOsVwjv9Q 871
skfolio/moments/expected_returns/_empirical_mu.py sha256=Gg1t4pEkVXGzCTXkATc5G1riMmIcMGqvPnIl2vnYF2k 1863
skfolio/moments/expected_returns/_equilibrium_mu.py sha256=x35nIc4aoLledFmFmKY00d5jesx8xfLU2Udh4JQIkEg 4407
skfolio/moments/expected_returns/_ew_mu.py sha256=hMjv9XJYftQ9X7RiEQWwAGZktPPFWc0_FFDEFhqC-fI 2109
skfolio/moments/expected_returns/_shrunk_mu.py sha256=UbLM2B3nwa2ndLR5Or1yetnj2dCAzKxqpr34JwXfvmo 8275
skfolio/optimization/__init__.py sha256=dx5S-xSsISCXO9s64jjcDSqSsUl6TVAaIICWOc8aHK4 1021
skfolio/optimization/_base.py sha256=LoRONJP70AwbFpdgqVS_g145pCx0JGkazjWvkQzT_iM 5748
skfolio/optimization/cluster/__init__.py sha256=5Ek5dlLq9TqoLNHJad3EpBb35csuV-ilcoaKnc73lQc 388
skfolio/optimization/cluster/_nco.py sha256=UQfWEdYVPU6cd-WBlp9uf44zDzpTrXDIvH82k5GOdh4 16413
skfolio/optimization/cluster/hierarchical/__init__.py sha256=hZ6GzND_uGO3_derqt3wkOJ-jTtOs_x8Ifgo173EDxw 405
skfolio/optimization/cluster/hierarchical/_base.py sha256=l8rJHCH_79FOPdDL2I0dmAWcVWnNkcXHtzt0U-L7BN8 16280
skfolio/optimization/cluster/hierarchical/_herc.py sha256=fFUk-NEbP7ltjeiYQwzmVvXoVYYjd3JY_RjHoWVq0lw 20401
skfolio/optimization/cluster/hierarchical/_hrp.py sha256=wUeTIwQxhV5yhqZ4UIr-61rgttTP7fPh91GtMaCNjPc 18158
skfolio/optimization/convex/__init__.py sha256=mii3YiVwzAjnTMpJNK44jHevZXrfFxB-4z-3ZJP9nSc 570
skfolio/optimization/convex/_base.py sha256=9-0aZ_nzU5F6CkxhjK-VTvyGz96xyFVuRG7lWRl_3i4 89430
skfolio/optimization/convex/_distributionally_robust.py sha256=32jVUn2PG1agwuTSfj9QlP9GyQo_26sJcIwSqv9zy2I 17933
skfolio/optimization/convex/_maximum_diversification.py sha256=T3-O4U6irJ7iU9IWzKWr5K4aHC8JxNyF6JW_IckVezM 19631
skfolio/optimization/convex/_mean_risk.py sha256=77Dhe9xN6mSwgkXvXen5pySX-uHo3rOhPvpSQOd8l_Q 49509
skfolio/optimization/convex/_risk_budgeting.py sha256=Lt13xD41PEMXjxa1yjnaIe7nEZ_bnUqeT3MLiUCfTWI 23631
skfolio/optimization/ensemble/__init__.py sha256=8TXxcxH2_gG3C1xtgQj9OHHr0Le8lhdejtlURL6T3ZY 158
skfolio/optimization/ensemble/_base.py sha256=GaNDQu6ivosYuwMrb-b0PhToCsNrmhSYyXkxeM8W4rU 3399
skfolio/optimization/ensemble/_stacking.py sha256=Y79cHEOBJbtMgkKbgPKfgL6H9qYHi4VDm0JR5ugVwr4 14176
skfolio/optimization/naive/__init__.py sha256=LNmqRIkGf4RLaOGLt2ZB7SHnBBraxxn0WbTkDQGCxd0 147
skfolio/optimization/naive/_naive.py sha256=tQG6XqQKfWnbixjwtUiGNivGXuTPAYErkJMYl-UPYxQ 6437
skfolio/population/__init__.py sha256=rsPPMUv95aTK7vmpPeQwF8NzFuBwk6RDo5g4HNaPzNM 80
skfolio/population/_population.py sha256=ej45tdk_CcMlNToCsx2VUk2YRktK3k4cRczGBpjlnDE 30427
skfolio/portfolio/__init__.py sha256=YeDSH0ZdyE-lcbDqpNw9IOltURtoM-ewAzzcec44Q5Q 586
skfolio/portfolio/_base.py sha256=6HPFbCUve11lAhyD3KanDrlLjwzhVp6tIBy03XGBAGs 39613
skfolio/portfolio/_multi_period_portfolio.py sha256=K2JfEwlPD9iGO58lOdk7WUbWuXZDWw2prPT5T7pOdto 24387
skfolio/portfolio/_portfolio.py sha256=MoVuCM8rQnlzI2SvKmu1EDrNJfFFZRIyyhrZuNSdou0 32778
skfolio/pre_selection/__init__.py sha256=gVrGZYwuQ--AZGlIZ2ddXst3n_wJluEUBXpysOH5DM0 482
skfolio/pre_selection/_drop_correlated.py sha256=dgDl4YCHAC1lECSzuQGjI6rLoPNxvJ5bhtmwqduZH8Y 3822
skfolio/pre_selection/_select_complete.py sha256=5xgy1c3jSXQHRIwWk1ZSuRw36WeEVIQNy55qCIl9nJY 3978
skfolio/pre_selection/_select_k_extremes.py sha256=FSpvYN5vSGqRREFxceQiRjgGl50lJodpYJV7u-d3esQ 3065
skfolio/pre_selection/_select_non_dominated.py sha256=q5kae1tpMrcbgKfkPQMy0RWaXknnWI0eJ5Ne-h9VKE8 5987
skfolio/pre_selection/_select_non_expiring.py sha256=asD4xK83je4oWvB2ISu_HeRaDJjJ6pq88etr7CPkwPs 5088
skfolio/preprocessing/__init__.py sha256=15A1bzfPsbfxxXgGP1gstf4R0E_347Wn18z5W5jH-hk 94
skfolio/preprocessing/_returns.py sha256=6mdNi7Dun5eNK4LdqKAxP4CCZEVfAEz40HXVrOiAaLA 4561
skfolio/prior/__init__.py sha256=ajpcpYe6qgnjoPE5Q3ofr4ckQ2WrBxUapED5VV0ShbA 446
skfolio/prior/_base.py sha256=u9GLCKJl-Txiem5rIO-qkH3VIyem3taD6T9kMzsYPRY 1941
skfolio/prior/_black_litterman.py sha256=rs0GKbVbDGG-Wdrfb8LVUqq4BE_j-DDLoPsC8sGQvBk 10390
skfolio/prior/_empirical.py sha256=sJkqb60XRt_VsVWTrqDgdhfRn0MMOpmLbFeBcEUGEVs 7250
skfolio/prior/_factor_model.py sha256=HiR6JdmusAB1RbjOGjFQgQaTCp_ctzrL5IzUCxgqGKA 11354
skfolio/uncertainty_set/__init__.py sha256=NhGmOhrmIgAA5DwPs0y48RQb-pVrfkdRRIlPgQjPvJc 617
skfolio/uncertainty_set/_base.py sha256=b2T0r8brV8h8gt96GcArFTEFNg3vKwN1qPmPN6QkdeU 4290
skfolio/uncertainty_set/_bootstrap.py sha256=BRD8LhGKULkqqCBjLqU1EtCAMBkLJKEXJygQT6WsaAY 11249
skfolio/uncertainty_set/_empirical.py sha256=ACqMVTBKibJm6E3IP4TOi3MYsxKMhiEoix5D_fp9X-w 9364
skfolio/utils/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
skfolio/utils/bootstrap.py sha256=3zY2kO_GQURKEcQMCasJOSByde9Mt2IAi3KJH0_a4mk 3550
skfolio/utils/equations.py sha256=9XFcRB6_UuxlAR-dWwf1XPxAHO9p5DfcC-bF5onr7Ws 15539
skfolio/utils/sorting.py sha256=lSjMvH2L-sSj-06B3MlwBrH1rtjCeGEe4hG894W7TE0 3504
skfolio/utils/stats.py sha256=OoePNjqBNGKGJzHTqzG9-i8JXVJcx7k-qCVCE9TL-pY 16995
skfolio/utils/tools.py sha256=m31oruGPMMTf5XYm3BruXyv1dv6I7rvhCpEVWUcusdE 20925
skfolio-0.7.0.dist-info/LICENSE sha256=F6Gi-ZJX5BlVzYK8R9NcvAkAsKa7KO29xB1OScbrH6Q 1526
skfolio-0.7.0.dist-info/METADATA sha256=uCACwU4Q--zy8DpkNlAANtkdrDQWTWEDBjfzpfD12U4 20109
skfolio-0.7.0.dist-info/WHEEL sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U 91
skfolio-0.7.0.dist-info/top_level.txt sha256=NXEaoS9Ms7t32gxkb867nV0OKlU0KmssL7IJBVo0fJs 8
skfolio-0.7.0.dist-info/RECORD

top_level.txt

skfolio