From 6081deeaeaf4c0214df15a490cc7c4d332a740da Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Fri, 8 Sep 2023 10:32:09 +0100 Subject: [PATCH] fix econometrics not loading --- openbb_sdk/extensions/econometrics/README.md | 15 + .../extensions/econometrics/poetry.lock | 257 ++++----- .../extensions/econometrics/pyproject.toml | 3 +- openbb_sdk/openbb/package/__extensions__.py | 7 + openbb_sdk/openbb/package/econometrics.py | 519 ++++++++++++++++++ openbb_sdk/openbb/package/extension_map.json | 1 + openbb_sdk/openbb/package/module_map.json | 15 + openbb_sdk/sdk/core/openbb_core/app/router.py | 3 +- 8 files changed, 654 insertions(+), 166 deletions(-) create mode 100644 openbb_sdk/openbb/package/econometrics.py diff --git a/openbb_sdk/extensions/econometrics/README.md b/openbb_sdk/extensions/econometrics/README.md index e69de29bb2d..85d237f6ee5 100644 --- a/openbb_sdk/extensions/econometrics/README.md +++ b/openbb_sdk/extensions/econometrics/README.md @@ -0,0 +1,15 @@ +# Econometrics extension for OpenBB SDK + +This extension provides a set of econometrics tools. + +## Installation + +To install the extension, run the following command in this folder: + +```bash +pip install openbb-econometrics +``` + +For development please check [Contribution Guidelines](https://github.com/OpenBB-finance/OpenBBTerminal/blob/feature/openbb-sdk-v4/openbb_sdk/CONTRIBUTING.md). + +Documentation available [here](https://docs.openbb.co/sdk). diff --git a/openbb_sdk/extensions/econometrics/poetry.lock b/openbb_sdk/extensions/econometrics/poetry.lock index 335f94e55bc..98fa378537f 100644 --- a/openbb_sdk/extensions/econometrics/poetry.lock +++ b/openbb_sdk/extensions/econometrics/poetry.lock @@ -1,32 +1,30 @@ -# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. [[package]] name = "anyio" -version = "3.7.1" +version = "4.0.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "anyio-3.7.1-py3-none-any.whl", hash = "sha256:91dee416e570e92c64041bd18b900d1d6fa78dff7048769ce5ac5ddad004fbb5"}, - {file = "anyio-3.7.1.tar.gz", hash = "sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780"}, + {file = "anyio-4.0.0-py3-none-any.whl", hash = "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f"}, + {file = "anyio-4.0.0.tar.gz", hash = "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a"}, ] [package.dependencies] -exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" [package.extras] -doc = ["Sphinx", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.2.2)", "sphinxcontrib-jquery"] -test = ["anyio[trio]", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (<0.22)"] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.22)"] [[package]] name = "arch" version = "5.6.0" description = "ARCH for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -66,7 +64,6 @@ statsmodels = ">=0.11" name = "astor" version = "0.8.1" description = "Read/rewrite/write Python ASTs" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -78,7 +75,6 @@ files = [ name = "backoff" version = "2.2.1" description = "Function decoration for backoff and retry" -category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -90,7 +86,6 @@ files = [ name = "bcrypt" version = "4.0.1" description = "Modern password hashing for your software and your servers" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -125,7 +120,6 @@ typecheck = ["mypy"] name = "black" version = "23.7.0" description = "The uncompromising code formatter." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -172,7 +166,6 @@ uvloop = ["uvloop (>=0.15.2)"] name = "certifi" version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -184,7 +177,6 @@ files = [ name = "charset-normalizer" version = "3.2.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -269,7 +261,6 @@ files = [ name = "click" version = "8.1.7" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -284,7 +275,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -294,77 +284,75 @@ files = [ [[package]] name = "cython" -version = "3.0.1" +version = "3.0.2" description = "The Cython compiler for writing C extensions in the Python language." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ - {file = "Cython-3.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:119786513aad3bd8e483040d3757f11cec808e3f9d42c965c086db7fe62b69b1"}, - {file = "Cython-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5481c4ee02fd178e3ef1b2d98b0a828a79fda92998d9541088a00f70d83f9a7"}, - {file = "Cython-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08dc403e6fc2b105b83759c72980bc8d7b729b03dfe94c8345a5e999dfd07d15"}, - {file = "Cython-3.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1f7b8394cdf4d35a6d8129cdf3677642b9712793611850fbfb9cc7c4ef8d9cb"}, - {file = "Cython-3.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f8fde8dfec6a1fe5d9d035dbb740aacc1d7aea7f0dbcaa5ce61e9a8dea0c8888"}, - {file = "Cython-3.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f663c9206475675d5f1c086dcab0404bc7a732241f951a9c89258392601c26f8"}, - {file = "Cython-3.0.1-cp310-cp310-win32.whl", hash = "sha256:b57d5bda3cf15e59ab46fb541d448f1b52c0d8fe8bbed7baec613537e41161eb"}, - {file = "Cython-3.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:02e2cdaff5795875aa4441068c20a04edb727a145dd45518926f7ae692ec0061"}, - {file = "Cython-3.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5e544e91efa287de31014550aa6e8525507ea6d5727c36ff5f96e9dcf9c40133"}, - {file = "Cython-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:182ae584dbaa6fd73161a6f8cc7d350eeefc43c091cabc2b70fa1a802a7ef729"}, - {file = "Cython-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05dba6b214a12aa66421d810d24d0298ff37cb6036d00d4e851b61a54948540c"}, - {file = "Cython-3.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35c28fc53745e7ebabb54d13d6cd3d3659f65ef50d324dadd9146212adb236cc"}, - {file = "Cython-3.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6d9dbcecd61f4f22ae6a035628e803490af7f0e16fd91e97fec63face61873a5"}, - {file = "Cython-3.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4acd382eb6d8cd34df421c42f1bfc8c7c0c38cd213fa35222a65a2a988fe50da"}, - {file = "Cython-3.0.1-cp311-cp311-win32.whl", hash = "sha256:c43adbc5a3a1d678314734f69dba3eb4f24438ba668e08a438b8067ac5a6494e"}, - {file = "Cython-3.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:35701606862989d5db641cf8cb85f62eaab9beaafb09a102839aebe5a70a1060"}, - {file = "Cython-3.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dbdb0019304ec84c7209a967043fc4923ed2d911a37ed695c3d1548c99b1285"}, - {file = "Cython-3.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f0dda50c11770673c332603b52ce0cb4abf32f2562e53dbdc4b674b6be7faa"}, - {file = "Cython-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6f7ead11cfb2d6c6dd7a1fd1987ce221c5c1061b47d747b0bb84b5704045cf9"}, - {file = "Cython-3.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5936dd43207a3f0269d033463195e201072b9b594c9693ff142985c0c33cd2d2"}, - {file = "Cython-3.0.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:768044473afd9fca3ba65d92deb80f16aa10d2776c9c2a8f667dbb480a58c528"}, - {file = "Cython-3.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:79f3ea7233e8a8856e57acdb7a30e8548009732649ffabe94049b35e2e5d7b8a"}, - {file = "Cython-3.0.1-cp312-cp312-win32.whl", hash = "sha256:b0917b84af48616124dfead2235b36c64c0d024c4d19cefa1a5da2f106a0854a"}, - {file = "Cython-3.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:bde58bda00d4689eb51ad3129873b09c695a64d3b6b8573cbc450e177a87173a"}, - {file = "Cython-3.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e69223fb6b99addff8b6d8a3e9f5ae044438bbf48dc08a3495eb99b13e62273c"}, - {file = "Cython-3.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a51fa13b5fcace8389888542b7bf63728898a9fefcb471cbf9f7736ce057d8a"}, - {file = "Cython-3.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3194c330dc4c07c01f7d802868960ff053ef5c026aea17e03b025e307c9d94fe"}, - {file = "Cython-3.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49f13d342a810947685759597013e1e4fdc9875d74372fa6121cb190913100d4"}, - {file = "Cython-3.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:d9a510157a454bec22752713465d1698098b99351bc41be8938f3d526286aa6f"}, - {file = "Cython-3.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:6bfdce6a65b8587ed992af912107d9cf047ed14bfdddcba6bd7917feb93cb441"}, - {file = "Cython-3.0.1-cp36-cp36m-win32.whl", hash = "sha256:b76e3237b7c6e1cb53af2223c20f5b51ea1cc40d77966eb121187825657fb9cf"}, - {file = "Cython-3.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:db53e83bc793538ed00e8fe04d2a2469c8f18f636f3e9b26564b51d6b384015c"}, - {file = "Cython-3.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e7d42293809ff45d7743fb81bda64ecdb24a269d5bfcbd22cf74f2b8d112039f"}, - {file = "Cython-3.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8f0f4fc248e742d6a17fdbb646fff21d99e21b7ce5180f00dcf8a9588fbfb73"}, - {file = "Cython-3.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e88759313bffc67616ee10ff142a395b19a48789a5e20880e8fc8fd3208ab37"}, - {file = "Cython-3.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da7f41b170a70b5c0172795a487c7301b43c136918b23724aec8d1388cee668f"}, - {file = "Cython-3.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:db6a823a86a10532934f83b6445f07634b2ad872fe52577ab0861a0f074e3036"}, - {file = "Cython-3.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d322561a852fa77b4b47668b12265f4a6ae7aed232aad2e3d52379e16c4e1ece"}, - {file = "Cython-3.0.1-cp37-cp37m-win32.whl", hash = "sha256:f02fcd11da42739a6fe3b5e1a3b21e644e10d02fb47757b1be239cabe3312d51"}, - {file = "Cython-3.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:e02c1c06d2b0138effead19c6c352ac1b99b2c431d97b6379ff4e17c9348bf61"}, - {file = "Cython-3.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53883e5092eff175aea2811e987ae930723ee4657bd470f549b63c5fd738ada3"}, - {file = "Cython-3.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:402b05a42a516a53912d980de644fdc30b6702e5f8ebf984276e162cac4a12c5"}, - {file = "Cython-3.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fba7d0d5978a5ddb5e3cd59ce2b5bfeace6cabdad8aa7b5f740028e8b3126b88"}, - {file = "Cython-3.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:346232ecb90ade8ff456361b58e9ca21cf672a4191e26ae498993975980a615b"}, - {file = "Cython-3.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d12ab154d8bf68eadea69ff24f1bc90d7a332b20da4d9a3a82e737f6fc06091a"}, - {file = "Cython-3.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cf6c8c05075b510d4f53127a8239c43a5f148e1ba1c479cb3e21e15112c533cf"}, - {file = "Cython-3.0.1-cp38-cp38-win32.whl", hash = "sha256:9a12ac8f9cc2e8ed191f7b18e8661cd64d7ff2299e4566abc8c03e03721ba6ca"}, - {file = "Cython-3.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:dc65a9cdeb29b553bfcdc90499b672a75bc85ed7d4b212018e513463244f59ae"}, - {file = "Cython-3.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:934f236a1f002705f012b7ba7b068a092c0023a7b965d3139c8dc7e34f166dd1"}, - {file = "Cython-3.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5ad08fed2444a0168dbfe0589cd711091adf38d19ea4421ebe92886bf4e0c22"}, - {file = "Cython-3.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff571d41e2673678929ad1f5fee68e1757bd8e42c0082c3359138da56fc25263"}, - {file = "Cython-3.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:137ec3f7abda49f53621c8c7f427d93ad5ac33a5f4e112e04594c1aad0bd0613"}, - {file = "Cython-3.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fc1452139e1eb044b6e906a71c92e5580fec4deabe75cb440324d17b1163b038"}, - {file = "Cython-3.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:720e72474c55d33c245e0280ecb4b604dd301ed3851c78cede932f2c3d074224"}, - {file = "Cython-3.0.1-cp39-cp39-win32.whl", hash = "sha256:d63f67696df2caeac5c57a12485ff4c7f377bead430c3654145b57bc105ba3c6"}, - {file = "Cython-3.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:00f7378e1cd1c22076922489cb628ce63301c018231c67f1389cef803cc2b586"}, - {file = "Cython-3.0.1-py2.py3-none-any.whl", hash = "sha256:7894efe3b47231bfdf8be1a8a2852a2b07dd83cad16bbdf666591894198c82dd"}, - {file = "Cython-3.0.1.tar.gz", hash = "sha256:f3e49c4eaaa11345486ac0fa2b350636e44a4b45bd7521a6b133924c5ff20bba"}, + {file = "Cython-3.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8ccb91d2254e34724f1541b2a6fcdfacdb88284185b0097ae84e0ddf476c7a38"}, + {file = "Cython-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c298b1589205ecaaed0457ad05e0c8a43e7db2053607f48ed4a899cb6aa114df"}, + {file = "Cython-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e825e682cef76d0c33384f38b56b7e87c76152482a914dfc78faed6ff66ce05a"}, + {file = "Cython-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:77ec0134fc1b10aebef2013936a91c07bff2498ec283bc2eca099ee0cb94d12e"}, + {file = "Cython-3.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c90eeb94395315e65fd758a2f86b92904fce7b50060b4d45a878ef6767f9276e"}, + {file = "Cython-3.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:38085523fa7a299638d051ae08144222785639882f6291bd275c0b12db1034ff"}, + {file = "Cython-3.0.2-cp310-cp310-win32.whl", hash = "sha256:b032cb0c69082f0665b2c5fb416d041157062f1538336d0edf823b9ee500e39c"}, + {file = "Cython-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:067b2b9eb487bd61367b296f11b7c1c70a084b3eb7d5a572f607cd1fc5ca5586"}, + {file = "Cython-3.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:213ff9f95de319e54b520bf31edd6aa7a1fa4fbf617c2beb0f92362595e6476a"}, + {file = "Cython-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4bebbca13078125a35937966137af4bd0300a0c66fd7ae4ce36adc049b13bdf3"}, + {file = "Cython-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e5587128e8c2423aefcffa4ded4ddf60d44898938fbb7c0f236636a750a94f"}, + {file = "Cython-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78e2853d484643c6b7ac3bdb48392753442da1c71b689468fa3176b619bebe54"}, + {file = "Cython-3.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e722732e9aa9bde667ed6d87525234823eb7766ca234cfb19d7e0c095a2ef4"}, + {file = "Cython-3.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:989787fc24a95100a26918b6577d06e15a8868a3ed267009c5cfcf1a906179ac"}, + {file = "Cython-3.0.2-cp311-cp311-win32.whl", hash = "sha256:d21801981db44b7e9f9768f121317946461d56b51de1e6eff3c42e8914048696"}, + {file = "Cython-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:809617cf4825b2138ce0ec827e1f28e39668743c81ac8286373f8d148c05f088"}, + {file = "Cython-3.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5682293d344b7dbad97ce6eceb9e887aca6e53499709db9da726ca3424e5559d"}, + {file = "Cython-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e08ff5da5f5b969639784b1bffcd880a0c0f048d182aed7cba9945ee8b367c2"}, + {file = "Cython-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8850269ff59f77a1629e26d0576701925360d732011d6d3516ccdc5b2c2bc310"}, + {file = "Cython-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:550b3fbe9b3c555b44ded934f4822f9fcc04dfcee512167ebcbbd370ccede20e"}, + {file = "Cython-3.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4db017b104f47b1185237702f6ed2651839c8124614683efa7c489f3fa4e19d9"}, + {file = "Cython-3.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:75a2395cc7b78cff59be6e9b7f92bbb5d7b8d25203f6d3fb6f72bdb7d3f49777"}, + {file = "Cython-3.0.2-cp312-cp312-win32.whl", hash = "sha256:786b6034a91e886116bb562fe42f8bf0f97c3e00c02e56791d02675959ed65b1"}, + {file = "Cython-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc9d173ab8b167cae674f6deed8c65ba816574797a2bd6d8aa623277d1fa81ca"}, + {file = "Cython-3.0.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8948504338d7a140ce588333177dcabf0743a68dbc83b0174f214f5b959634d5"}, + {file = "Cython-3.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a51efba0e136b2af358e5a347bae09678b17460c35cf1eab24f0476820348991"}, + {file = "Cython-3.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05cb2a73810f045d328b7579cf98f550a9e601df5e282d1fea0512d8ad589011"}, + {file = "Cython-3.0.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22ba78e48bdb65977928ecb275ac8c82df7b0eefa075078a1363a5af4606b42e"}, + {file = "Cython-3.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:302281b927409b3e0ef8cd9251eab782cf1acd2578eab305519fbae5d184b7e9"}, + {file = "Cython-3.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:a1c3675394b81024aaf56e4f53c2b4f81d9a116c7049e9d4706f810899c9134e"}, + {file = "Cython-3.0.2-cp36-cp36m-win32.whl", hash = "sha256:34f7b014ebce5d325c8084e396c81cdafbd8d82be56780dffe6b67b28c891f1b"}, + {file = "Cython-3.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:477cd3549597f09a1608da7b05e16ba641e9aedd171b868533a5a07790ed886f"}, + {file = "Cython-3.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a49dde9f9e29ea82f29aaf3bb1a270b6eb90b75d627c7ff2f5dd3764540ae646"}, + {file = "Cython-3.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc1c8013fad0933f5201186eccc5f2be223cafd6a8dcd586d3f7bb6ba84dc845"}, + {file = "Cython-3.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b75e9c9d7ad7c9dd85d45241d1d4e3c5f66079c1f84eec91689c26d98bc3349"}, + {file = "Cython-3.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f43c4d3ecd9e3b8b7afe834e519f55cf4249b1088f96d11b96f02c55cbaeff7"}, + {file = "Cython-3.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:dab6a923e21e212aa3dc6dde9b22a190f5d7c449315a94e57ddc019ea74a979b"}, + {file = "Cython-3.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ae453cfa933b919c0a19d2cc5dc9fb28486268e95dc2ab7a11ab7f99cf8c3883"}, + {file = "Cython-3.0.2-cp37-cp37m-win32.whl", hash = "sha256:b1f023d36a3829069ed11017c670128be3f135a9c17bd64c35d3b3442243b05c"}, + {file = "Cython-3.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:011c4e0b75baee1843334562487eb4fbc0c59ddb2cc32a978b972a81eedcbdcc"}, + {file = "Cython-3.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:832bbee87bca760efeae248ddf19ccd77f9a2355cb6f8a64f20cc377e56957b3"}, + {file = "Cython-3.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fe806d154b6b7f0ab746dac36c022889e2e7cf47546ff9afdc29a62cfa692d0"}, + {file = "Cython-3.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e486331a29e7700b1ad5f4f753bef483c81412a5e64a873df46d6cb66f9a65de"}, + {file = "Cython-3.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54d41a1dfbaab74449873e7f8e6cd4239850fe7a50f7f784dd99a560927f3bac"}, + {file = "Cython-3.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4dca13c86d6cd523c7d8bbf8db1b2bbf8faedd0addedb229158d8015ad1819e1"}, + {file = "Cython-3.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:10cbfb37f31938371a6213cc8b5459c639954aed053efeded3c012d4c5915db9"}, + {file = "Cython-3.0.2-cp38-cp38-win32.whl", hash = "sha256:e663c237579c033deaa2cb362b74651da7712f56e441c11382510a8c4c4f2dd7"}, + {file = "Cython-3.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:2f84bd6cefa5130750c492038170c44f1cbd6f42e9ed85e168fd9cb453f85160"}, + {file = "Cython-3.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f37e4287f520f3748a06ad5eaae09ba4ac68f52e155d70de5f75780d83575c43"}, + {file = "Cython-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd30826ca8b27b2955a63c8ffe8aacc9f0779582b4bd154cf7b441ac10dae2cb"}, + {file = "Cython-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08d67c7225a09eeb77e090c8d4f60677165b052ccf76e3a57d8237064e5c2de2"}, + {file = "Cython-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e625eec8c5c9a8cb062a318b257cc469d301bed952c7daf86e38bbd3afe7c91"}, + {file = "Cython-3.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1b12a8f23270675b537d1c3b988f845bea4bbcc66ae0468857f5ede0526d4522"}, + {file = "Cython-3.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:62dd78afdf748a58dae9c9b9c42a1519ae30787b28ce5f84a0e1bb54144142ca"}, + {file = "Cython-3.0.2-cp39-cp39-win32.whl", hash = "sha256:d0d0cc4ecc05f41c5e02af14ac0083552d22efed976f79eb7bade55fed63b25d"}, + {file = "Cython-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:147cc1d3dda8b06de9d86df5e59cdf15f0a522620168b7349a5ec88b48104d7d"}, + {file = "Cython-3.0.2-py2.py3-none-any.whl", hash = "sha256:8f1c9e4b8e413da211dd7942440cf410ff0eafb081309e04e81f4fafbb146bf2"}, + {file = "Cython-3.0.2.tar.gz", hash = "sha256:9594818dca8bb22ae6580c5222da2bc5cc32334350bd2d294a00d8669bcc61b5"}, ] [[package]] name = "ecdsa" version = "0.18.0" description = "ECDSA cryptographic signature library (pure python)" -category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -383,7 +371,6 @@ gmpy2 = ["gmpy2"] name = "exceptiongroup" version = "1.1.3" description = "Backport of PEP 654 (exception groups)" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -398,7 +385,6 @@ test = ["pytest (>=6)"] name = "fastapi" version = "0.100.1" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -418,7 +404,6 @@ all = ["email-validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)" name = "formulaic" version = "0.6.4" description = "An implementation of Wilkinson formulas." -category = "main" optional = false python-versions = ">=3.7.2" files = [ @@ -444,7 +429,6 @@ calculus = ["sympy (>=1.3,!=1.10)"] name = "graphlib-backport" version = "1.0.3" description = "Backport of the Python 3.9 graphlib module for Python 3.6+" -category = "main" optional = false python-versions = ">=3.6,<4.0" files = [ @@ -456,7 +440,6 @@ files = [ name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -468,7 +451,6 @@ files = [ name = "html5lib" version = "1.1" description = "HTML parser based on the WHATWG HTML specification" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -490,7 +472,6 @@ lxml = ["lxml"] name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -502,7 +483,6 @@ files = [ name = "importlib-metadata" version = "6.8.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -522,7 +502,6 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "interface-meta" version = "1.3.0" description = "`interface_meta` provides a convenient way to expose an extensible API with enforced method signatures and consistent documentation." -category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -534,7 +513,6 @@ files = [ name = "linearmodels" version = "4.31" description = "Linear Panel, Instrumental Variable, Asset Pricing, and System Regression models for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -579,7 +557,6 @@ statsmodels = ">=0.11" name = "monotonic" version = "1.6" description = "An implementation of time.monotonic() for Python 2 & < 3.3" -category = "main" optional = false python-versions = "*" files = [ @@ -591,7 +568,6 @@ files = [ name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -603,7 +579,6 @@ files = [ name = "numpy" version = "1.24.4" description = "Fundamental package for array computing in Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -641,7 +616,6 @@ files = [ name = "numpy" version = "1.25.2" description = "Fundamental package for array computing in Python" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -674,9 +648,8 @@ files = [ [[package]] name = "openbb-core" -version = "0.2.0" -description = "" -category = "main" +version = "0.1.0a1" +description = "OpenBB package with core functionality" optional = false python-versions = "^3.8" files = [] @@ -687,16 +660,13 @@ bcrypt = "^4.0.1" black = "^23.7.0" fastapi = "^0.100.1" html5lib = "^1.1" -importlib_metadata = "^6.8.0" -openbb-provider = {path = "../provider"} -pandas = ">1.5.3" +openbb-provider = "^0.1.0a1" +pandas = ">=1.5.3" passlib = "^1.7.4" posthog = "^3.0.1" python-jose = "^3.3.0" python-multipart = "^0.0.6" -requests = "^2.28.2" ruff = "0.0.256" -urllib3 = "<2.0.0" uuid7 = "^0.1.0" uvicorn = "^0.20.0" websockets = "^10.4" @@ -707,29 +677,25 @@ url = "../../sdk/core" [[package]] name = "openbb-provider" -version = "0.2.0" -description = "" -category = "main" +version = "0.1.0a1" +description = "OpenBB package to execute queries to financial data providers" optional = false -python-versions = "^3.8" -files = [] -develop = false +python-versions = ">=3.8,<4.0" +files = [ + {file = "openbb_provider-0.1.0a1-py3-none-any.whl", hash = "sha256:a571fd6c4282143adb99cc6af6c3d5651539bc4ef5f7bff6fb8853c1f9caa0ef"}, + {file = "openbb_provider-0.1.0a1.tar.gz", hash = "sha256:0db56bf2889b40159bc448c29439ed2356d0e7ee461421351bbc87b39d599177"}, +] [package.dependencies] -importlib-metadata = "^6.8.0" -pydantic = {version = "^1.10", extras = ["dotenv"]} -requests = "^2.31.0" +importlib-metadata = ">=6.8.0,<7.0.0" +pydantic = {version = ">=1.10,<2.0", extras = ["dotenv"]} +requests = ">=2.31.0,<3.0.0" urllib3 = "<2.0.0" -[package.source] -type = "directory" -url = "../../sdk/provider" - [[package]] name = "packaging" version = "23.1" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -741,7 +707,6 @@ files = [ name = "pandas" version = "2.0.3" description = "Powerful data structures for data analysis, time series, and statistics" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -774,8 +739,8 @@ files = [ [package.dependencies] numpy = [ + {version = ">=1.21.0", markers = "python_version >= \"3.10\" and python_version < \"3.11\""}, {version = ">=1.20.3", markers = "python_version < \"3.10\""}, - {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, ] python-dateutil = ">=2.8.2" @@ -809,7 +774,6 @@ xml = ["lxml (>=4.6.3)"] name = "passlib" version = "1.7.4" description = "comprehensive password hashing framework supporting over 30 schemes" -category = "main" optional = false python-versions = "*" files = [ @@ -827,7 +791,6 @@ totp = ["cryptography"] name = "pathspec" version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -839,7 +802,6 @@ files = [ name = "patsy" version = "0.5.3" description = "A Python package for describing statistical models and for building design matrices." -category = "main" optional = false python-versions = "*" files = [ @@ -858,7 +820,6 @@ test = ["pytest", "pytest-cov", "scipy"] name = "platformdirs" version = "3.10.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -874,7 +835,6 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co name = "posthog" version = "3.0.2" description = "Integrate PostHog into any python application." -category = "main" optional = false python-versions = "*" files = [ @@ -898,7 +858,6 @@ test = ["coverage", "flake8", "freezegun (==0.3.15)", "mock (>=2.0.0)", "pylint" name = "property-cached" version = "1.6.4" description = "A decorator for caching properties in classes (forked from cached-property)." -category = "main" optional = false python-versions = ">= 3.5" files = [ @@ -910,7 +869,6 @@ files = [ name = "pyasn1" version = "0.5.0" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -922,7 +880,6 @@ files = [ name = "pydantic" version = "1.10.12" description = "Data validation and settings management using python type hints" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -976,7 +933,6 @@ email = ["email-validator (>=1.0.3)"] name = "pyhdfe" version = "0.2.0" description = "High dimensional fixed effect absorption with Python 3" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -996,7 +952,6 @@ tests = ["pytest", "pytest-xdist"] name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -1011,7 +966,6 @@ six = ">=1.5" name = "python-dotenv" version = "1.0.0" description = "Read key-value pairs from a .env file and set them as environment variables" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1026,7 +980,6 @@ cli = ["click (>=5.0)"] name = "python-jose" version = "3.3.0" description = "JOSE implementation in Python" -category = "main" optional = false python-versions = "*" files = [ @@ -1048,7 +1001,6 @@ pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"] name = "python-multipart" version = "0.0.6" description = "A streaming multipart parser for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1061,21 +1013,19 @@ dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatc [[package]] name = "pytz" -version = "2023.3" +version = "2023.3.post1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ - {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, - {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, ] [[package]] name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1097,7 +1047,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rsa" version = "4.9" description = "Pure-Python RSA implementation" -category = "main" optional = false python-versions = ">=3.6,<4" files = [ @@ -1112,7 +1061,6 @@ pyasn1 = ">=0.1.3" name = "ruff" version = "0.0.256" description = "An extremely fast Python linter, written in Rust." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1139,7 +1087,6 @@ files = [ name = "scipy" version = "1.10.1" description = "Fundamental algorithms for scientific computing in Python" -category = "main" optional = false python-versions = "<3.12,>=3.8" files = [ @@ -1176,26 +1123,24 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo [[package]] name = "setuptools" -version = "68.1.2" +version = "68.2.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-68.1.2-py3-none-any.whl", hash = "sha256:3d8083eed2d13afc9426f227b24fd1659489ec107c0e86cec2ffdde5c92e790b"}, - {file = "setuptools-68.1.2.tar.gz", hash = "sha256:3d4dfa6d95f1b101d695a6160a7626e15583af71a5f52176efa5d39a054d475d"}, + {file = "setuptools-68.2.0-py3-none-any.whl", hash = "sha256:af3d5949030c3f493f550876b2fd1dd5ec66689c4ee5d5344f009746f71fd5a8"}, + {file = "setuptools-68.2.0.tar.gz", hash = "sha256:00478ca80aeebeecb2f288d3206b0de568df5cd2b8fada1209843cc9a8d88a48"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5,<=7.1.2)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "setuptools-scm" version = "7.1.0" description = "the blessed package to manage your versions by scm tags" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1220,7 +1165,6 @@ toml = ["setuptools (>=42)"] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1232,7 +1176,6 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1244,7 +1187,6 @@ files = [ name = "starlette" version = "0.27.0" description = "The little ASGI library that shines." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1263,7 +1205,6 @@ full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyam name = "statsmodels" version = "0.14.0" description = "Statistical computations and models for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1292,8 +1233,8 @@ files = [ [package.dependencies] numpy = [ - {version = ">=1.18", markers = "python_version != \"3.10\" or platform_system != \"Windows\" or platform_python_implementation == \"PyPy\""}, {version = ">=1.22.3", markers = "python_version == \"3.10\" and platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""}, + {version = ">=1.18", markers = "python_version != \"3.10\" or platform_system != \"Windows\" or platform_python_implementation == \"PyPy\""}, ] packaging = ">=21.3" pandas = ">=1.0" @@ -1309,7 +1250,6 @@ docs = ["ipykernel", "jupyter-client", "matplotlib", "nbconvert", "nbformat", "n name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1321,7 +1261,6 @@ files = [ name = "typing-extensions" version = "4.7.1" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1333,7 +1272,6 @@ files = [ name = "tzdata" version = "2023.3" description = "Provider of IANA time zone data" -category = "main" optional = false python-versions = ">=2" files = [ @@ -1345,7 +1283,6 @@ files = [ name = "urllib3" version = "1.26.16" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -1362,7 +1299,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "uuid7" version = "0.1.0" description = "UUID version 7, generating time-sorted UUIDs with 200ns time resolution and 48 bits of randomness" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1374,7 +1310,6 @@ files = [ name = "uvicorn" version = "0.20.0" description = "The lightning-fast ASGI server." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1393,7 +1328,6 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" -category = "main" optional = false python-versions = "*" files = [ @@ -1405,7 +1339,6 @@ files = [ name = "websockets" version = "10.4" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1484,7 +1417,6 @@ files = [ name = "wrapt" version = "1.15.0" description = "Module for decorators, wrappers and monkey patching." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -1569,7 +1501,6 @@ files = [ name = "zipp" version = "3.16.2" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1583,5 +1514,5 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" -python-versions = ">=3.8,<3.12" # scipy forces python <4.0 explicitly -content-hash = "b84672464cd5a3febab844e1066860eb803bff49eb83ee93cc46977e320499ec" +python-versions = ">=3.8,<3.12" +content-hash = "7a068732995c4e291eb6708b81538bcdb0f132b07f21fae4c0eab709061f5727" diff --git a/openbb_sdk/extensions/econometrics/pyproject.toml b/openbb_sdk/extensions/econometrics/pyproject.toml index e5391cb04fa..f99d596ad40 100644 --- a/openbb_sdk/extensions/econometrics/pyproject.toml +++ b/openbb_sdk/extensions/econometrics/pyproject.toml @@ -8,12 +8,11 @@ packages = [{ include = "openbb_econometrics" }] [tool.poetry.dependencies] python = ">=3.8,<3.12" # scipy forces python <4.0 explicitly -openbb-core = { path = "../../sdk/core" } scipy = "^1.10.1" statsmodels = "^0.14.0" arch = "^5.5.0" linearmodels = "^4.25" -pandas = ">=1.5.3" +openbb-core = { path = "../../sdk/core" } [build-system] requires = ["poetry-core"] diff --git a/openbb_sdk/openbb/package/__extensions__.py b/openbb_sdk/openbb/package/__extensions__.py index b72edde1849..445cb6fa972 100644 --- a/openbb_sdk/openbb/package/__extensions__.py +++ b/openbb_sdk/openbb/package/__extensions__.py @@ -7,6 +7,7 @@ from openbb_core.app.static.container import Container class Extensions(Container): """ /crypto + /econometrics /economy /fixedincome /forex @@ -26,6 +27,12 @@ class Extensions(Container): return crypto.CLASS_crypto(command_runner=self._command_runner) + @property + def econometrics(self): # route = "/econometrics" + from . import econometrics + + return econometrics.CLASS_econometrics(command_runner=self._command_runner) + @property def economy(self): # route = "/economy" from . import economy diff --git a/openbb_sdk/openbb/package/econometrics.py b/openbb_sdk/openbb/package/econometrics.py new file mode 100644 index 00000000000..62f7f350f5b --- /dev/null +++ b/openbb_sdk/openbb/package/econometrics.py @@ -0,0 +1,519 @@ +### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ### + +from typing import Dict, List, Literal, Union + +import openbb_provider +import openbb_provider.abstract.data +import pandas +import pydantic +import pydantic.types +from openbb_core.app.model.obbject import OBBject +from openbb_core.app.static.container import Container +from openbb_core.app.static.filters import filter_inputs +from pydantic import validate_arguments + + +class CLASS_econometrics(Container): + """/econometrics + bgot + coint + corr + dwat + granger + ols + ols_summary + panelbols + panelfd + panelfmac + panelols + panelpols + panelre + unitroot + """ + + def __repr__(self) -> str: + return self.__doc__ or "" + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def bgot( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_columns: List[str], + lags: pydantic.types.PositiveInt = 1, + ) -> OBBject[openbb_provider.abstract.data.Data]: + """Perform Breusch-Godfrey Lagrange Multiplier tests for residual autocorrelation. + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_columns: str + List of columns to use as exogenous variables. + lags: PositiveInt + Number of lags to use in the test. + Returns + ------- + OBBject[Data] + OBBject with the results being the score from the test. + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_columns=x_columns, + lags=lags, + ) + + return self._command_runner.run( + "/econometrics/bgot", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def coint( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + columns: List[str], + ) -> OBBject[openbb_provider.abstract.data.Data]: + """Show co-integration between two timeseries using the two step Engle-Granger test. + + Parameters + ---------- + data: List[Data] + Input dataset. + columns: List[str] + Data columns to check cointegration + maxlag: PositiveInt + Number of lags to use in the test. + Returns + ------- + OBBject[Data] + OBBject with the results being the score from the test. + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + columns=columns, + ) + + return self._command_runner.run( + "/econometrics/coint", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def corr( + self, data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame] + ) -> OBBject[List]: + """Get the corrlelation matrix of an input dataset. + + Parameters + ---------- + data : List[Data] + Input dataset. + + Returns + ------- + OBBject[List[Data]] + Correlation matrix. + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + ) + + return self._command_runner.run( + "/econometrics/corr", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def dwat( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_columns: List[str], + ) -> OBBject[Dict]: + """Perform Durbin-Watson test for autocorrelation + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_columns: str + List of columns to use as exogenous variables. + + Returns + ------- + OBBject[Data] + OBBject with the results being the score from the test. + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_columns=x_columns, + ) + + return self._command_runner.run( + "/econometrics/dwat", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def granger( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_column: str, + lag: pydantic.types.PositiveInt = 3, + ) -> OBBject[openbb_provider.abstract.data.Data]: + """Perform Granger causality test to determine if X "causes" y. + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_column: str + Columns to use as exogenous variables. + lag: PositiveInt + Number of lags to use in the test. + Returns + ------- + OBBject[Data] + OBBject with the results being the score from the test. + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_column=x_column, + lag=lag, + ) + + return self._command_runner.run( + "/econometrics/granger", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def ols( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_columns: List[str], + ) -> OBBject[Dict]: + """Perform OLS regression. This returns the model and results objects from statsmodels. + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_columns: str + List of columns to use as exogenous variables. + + Returns + ------- + OBBject[Dict] + OBBject with the results being model and results objects. + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_columns=x_columns, + ) + + return self._command_runner.run( + "/econometrics/ols", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def ols_summary( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_columns: List[str], + ) -> OBBject[openbb_provider.abstract.data.Data]: + """Perform OLS regression. This returns the summary object from statsmodels. + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_columns: str + List of columns to use as exogenous variables. + + Returns + ------- + OBBject[Dict] + OBBject with the results being summary object. + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_columns=x_columns, + ) + + return self._command_runner.run( + "/econometrics/ols_summary", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def panelbols( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_columns: List[str], + ) -> OBBject[Dict]: + """Perform a Between estimator regression on panel data + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_columns: str + List of columns to use as exogenous variables. + + Returns + ------- + OBBject[Dict] + OBBject with the fit model returned + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_columns=x_columns, + ) + + return self._command_runner.run( + "/econometrics/panelbols", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def panelfd( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_columns: List[str], + ) -> OBBject[Dict]: + """Perform a first-difference estimate for panel data + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_columns: str + List of columns to use as exogenous variables. + + Returns + ------- + OBBject[Dict] + OBBject with the fit model returned + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_columns=x_columns, + ) + + return self._command_runner.run( + "/econometrics/panelfd", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def panelfmac( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_columns: List[str], + ) -> OBBject[Dict]: + """Fama-MacBeth estimator for panel data + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_columns: str + List of columns to use as exogenous variables. + + Returns + ------- + OBBject[Dict] + OBBject with the fit model returned + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_columns=x_columns, + ) + + return self._command_runner.run( + "/econometrics/panelfmac", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def panelols( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_columns: List[str], + ) -> OBBject[Dict]: + """One- and two-way fixed effects estimator for panel data + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_columns: str + List of columns to use as exogenous variables. + + Returns + ------- + OBBject[Dict] + OBBject with the fit model returned + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_columns=x_columns, + ) + + return self._command_runner.run( + "/econometrics/panelols", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def panelpols( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_columns: List[str], + ) -> OBBject[Dict]: + """Perform a Pooled coefficvient estimator regression on panel data + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_columns: str + List of columns to use as exogenous variables. + + Returns + ------- + OBBject[Dict] + OBBject with the fit model returned + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_columns=x_columns, + ) + + return self._command_runner.run( + "/econometrics/panelpols", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def panelre( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + y_column: str, + x_columns: List[str], + ) -> OBBject[Dict]: + """Perform One-way Random Effects model for panel data + + Parameters + ---------- + data: List[Data] + Input dataset. + y_column: str + Target column. + x_columns: str + List of columns to use as exogenous variables. + + Returns + ------- + OBBject[Dict] + OBBject with the fit model returned + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + y_column=y_column, + x_columns=x_columns, + ) + + return self._command_runner.run( + "/econometrics/panelre", + **inputs, + ) + + @validate_arguments(config=dict(arbitrary_types_allowed=True)) + def unitroot( + self, + data: Union[List[openbb_provider.abstract.data.Data], pandas.DataFrame], + column: str, + regression: Literal["c", "ct", "ctt"] = "c", + ) -> OBBject[openbb_provider.abstract.data.Data]: + """Perform Augmented Dickey-Fuller unit root test. + + Parameters + ---------- + data: List[Data] + Input dataset. + column: str + Data columns to check unit root + regression: str + Regression type to use in the test. Either "c" for constant only, "ct" for constant and trend, or "ctt" for + constant, trend, and trend-squared. + Returns + ------- + OBBject[Data] + OBBject with the results being the score from the test. + """ # noqa: E501 + + inputs = filter_inputs( + data=data, + column=column, + regression=regression, + ) + + return self._command_runner.run( + "/econometrics/unitroot", + **inputs, + ) diff --git a/openbb_sdk/openbb/package/extension_map.json b/openbb_sdk/openbb/package/extension_map.json index 219e4094004..aaea832b3b1 100644 --- a/openbb_sdk/openbb/package/extension_map.json +++ b/openbb_sdk/openbb/package/extension_map.json @@ -1,6 +1,7 @@ { "openbb_core_extension": [ "crypto@0.1.0a0", + "econometrics@0.1.0", "economy@0.1.0a0", "fixedincome@0.1.0a0", "forex@0.1.0a0", diff --git a/openbb_sdk/openbb/package/module_map.json b/openbb_sdk/openbb/package/module_map.json index a75cc7694c9..c407a2f8167 100644 --- a/openbb_sdk/openbb/package/module_map.json +++ b/openbb_sdk/openbb/package/module_map.json @@ -2,6 +2,21 @@ "__extensions__": "", "crypto": "/crypto", "crypto_load": "/crypto/load", + "econometrics": "/econometrics", + "econometrics_bgot": "/econometrics/bgot", + "econometrics_coint": "/econometrics/coint", + "econometrics_corr": "/econometrics/corr", + "econometrics_dwat": "/econometrics/dwat", + "econometrics_granger": "/econometrics/granger", + "econometrics_ols": "/econometrics/ols", + "econometrics_ols_summary": "/econometrics/ols_summary", + "econometrics_panelbols": "/econometrics/panelbols", + "econometrics_panelfd": "/econometrics/panelfd", + "econometrics_panelfmac": "/econometrics/panelfmac", + "econometrics_panelols": "/econometrics/panelols", + "econometrics_panelpols": "/econometrics/panelpols", + "econometrics_panelre": "/econometrics/panelre", + "econometrics_unitroot": "/econometrics/unitroot", "economy": "/economy", "economy_available_indices": "/economy/available_indices", "economy_const": "/economy/const", diff --git a/openbb_sdk/sdk/core/openbb_core/app/router.py b/openbb_sdk/sdk/core/openbb_core/app/router.py index 607c8458b36..65009b29b68 100644 --- a/openbb_sdk/sdk/core/openbb_core/app/router.py +++ b/openbb_sdk/sdk/core/openbb_core/app/router.py @@ -314,9 +314,10 @@ class SignatureInspector: is_list = get_origin(results_type) == list args = get_args(results_type) inner_type = args[0] if is_list and args else results_type + inner_type_name = getattr(inner_type, "__name__", inner_type) func.__annotations__["return"].__doc__ = "OBBject" - func.__annotations__["return"].__name__ = f"OBBject[{inner_type.__name__}]" + func.__annotations__["return"].__name__ = f"OBBject[{inner_type_name}]" return func