diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 720275b91225..415b068ab614 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -45,7 +45,7 @@ jobs: restore-keys: ${{ runner.os }}-linting-${{ hashFiles('**/poetry.lock') }} - run: | - pip install bandit black codespell mypy==1.0.0 pylint==2.15.2 ruff==0.0.247 + pip install bandit black codespell mypy==1.1.1 pylint==2.17.0 ruff==0.0.256 pip install types-pytz types-requests types-termcolor types-tabulate types-PyYAML types-python-dateutil types-setuptools types-six - run: bandit -x ./tests -r . || true - run: black --diff --check . diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cb9243c0062b..b72ae4f24949 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,11 +14,11 @@ repos: hooks: - id: black - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: 'v0.0.247' + rev: 'v0.0.256' hooks: - id: ruff - repo: https://github.com/codespell-project/codespell - rev: v2.2.2 + rev: v2.2.4 hooks: - id: codespell entry: codespell @@ -47,7 +47,7 @@ repos: hooks: - id: pylint name: pylint - entry: pylint openbb_terminal terminal.py tests -j 4 + entry: pylint openbb_terminal terminal.py tests -j 0 language: system types: [python] - repo: https://github.com/Yelp/detect-secrets diff --git a/.pylintrc b/.pylintrc index 2505093f97b0..b4c9edee6fc6 100644 --- a/.pylintrc +++ b/.pylintrc @@ -54,7 +54,7 @@ confidence= # disable=import-error,print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call # disable=too-many-instance-attributes,len-as-condition,too-few-public-methods,anomalous-backslash-in-string,no-else-return,simplifiable-if-statement,too-many-arguments,duplicate-code,no-name-in-module,no-member,print-statement,parameter-unpacking,unpacking-in-except,old-raise-syntax,backtick,long-suffix,old-ne-operator,old-octal-literal,import-star-module-level,raw-checker-failed,bad-inline-option,locally-disabled,locally-enabled,file-ignored,suppressed-message,useless-suppression,deprecated-pragma,apply-builtin,basestring-builtin,buffer-builtin,cmp-builtin,coerce-builtin,execfile-builtin,file-builtin,long-builtin,raw_input-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,no-absolute-import,old-division,dict-iter-method,dict-view-method,next-method-called,metaclass-assignment,indexing-exception,raising-string,reload-builtin,oct-method,hex-method,nonzero-method,cmp-method,input-builtin,round-builtin,intern-builtin,unichr-builtin,map-builtin-not-iterating,zip-builtin-not-iterating,range-builtin-not-iterating,filter-builtin-not-iterating,using-cmp-argument,eq-without-hash,div-method,idiv-method,rdiv-method,exception-message-attribute,invalid-str-codec,sys-max-int,bad-python3-import,deprecated-string-function,deprecated-str-translate-call,import-error,missing-docstring,invalid-name,bad-whitespace,consider-using-enumerate,unexpected-keyword-arg -disable=useless-return,missing-docstring,invalid-name,import-error,broad-except,unnecessary-lambda,missing-timeout,duplicate-code,consider-using-generator,unbalanced-tuple-unpacking,use-list-literal,no-name-in-module,use-sequence-for-iteration,use-dict-literal,unspecified-encoding,unsubscriptable-object +disable=useless-return,missing-docstring,invalid-name,import-error,broad-except,unnecessary-lambda,missing-timeout,duplicate-code,consider-using-generator,unbalanced-tuple-unpacking,use-list-literal,no-name-in-module,use-sequence-for-iteration,use-dict-literal,unspecified-encoding,unsubscriptable-object,broad-exception-raised # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option @@ -395,4 +395,5 @@ min-public-methods=1 # Exceptions that will emit a warning when being caught. Defaults to # "Exception" -overgeneral-exceptions=Exception +overgeneral-exceptions=builtins.BaseException, + builtins.Exception diff --git a/openbb_terminal/alternative/realestate/landRegistry_model.py b/openbb_terminal/alternative/realestate/landRegistry_model.py index 61ed6a4efdce..71015de3862b 100644 --- a/openbb_terminal/alternative/realestate/landRegistry_model.py +++ b/openbb_terminal/alternative/realestate/landRegistry_model.py @@ -138,11 +138,11 @@ def get_towns_sold_prices( prefix skos: prefix lrcommon: - SELECT ?paon ?saon ?street ?county ?postcode ?amount ?date ?category + SELECT ?paon ?saon ?street ?county ?postcode ?amount ?date ?category WHERE {{ VALUES ?town {{"{town}"^^xsd:string}} - + ?addr lrcommon:town ?town ; lrcommon:postcode ?postcode. @@ -150,7 +150,7 @@ def get_towns_sold_prices( lrppi:pricePaid ?amount ; lrppi:transactionDate ?date ; lrppi:transactionCategory/skos:prefLabel ?category. - + FILTER ( ?date > "{start_date}"^^xsd:date && ?date < "{end_date}"^^xsd:date @@ -220,13 +220,13 @@ def get_region_stats( prefix skos: prefix lrcommon: - SELECT ?month ?avgPrice ?avgPriceCash ?totalSalesVolume ?avgPriceExistingProperty - ?avgPriceFirstTimeBuyer - ?avgPriceDetached ?hpi ?detachedhpi ?newbuildhpi + SELECT ?month ?avgPrice ?avgPriceCash ?totalSalesVolume ?avgPriceExistingProperty + ?avgPriceFirstTimeBuyer + ?avgPriceDetached ?hpi ?detachedhpi ?newbuildhpi {{ values ?refRegion {{}} ?region ukhpi:refPeriodStart ?month ; - ukhpi:housePriceIndex ?hpi ; + ukhpi:housePriceIndex ?hpi ; ukhpi:refRegion ?refRegion ; ukhpi:averagePrice ?avgPrice ; ukhpi:averagePriceCash ?avgPriceCash ; @@ -242,7 +242,7 @@ def get_region_stats( ?month > "{start_date}"^^xsd:date && ?month < "{end_date}"^^xsd:date ) - + OPTIONAL {{?region ukhpi:housePriceIndexDetached ?detachedhpi}} OPTIONAL {{?region ukhpi:housePriceIndexNewBuild ?newbuildhpi }} OPTIONAL {{?region ukhpi:averagePrice ?averagePrice }} diff --git a/openbb_terminal/core/plots/plotly_helper.py b/openbb_terminal/core/plots/plotly_helper.py index c6425fbe7742..ecbdbe882589 100644 --- a/openbb_terminal/core/plots/plotly_helper.py +++ b/openbb_terminal/core/plots/plotly_helper.py @@ -1,5 +1,5 @@ """Chart and style helpers for Plotly.""" -# pylint: disable=C0302,R0902 +# pylint: disable=C0302,R0902,W3301 import json import os import textwrap diff --git a/openbb_terminal/core/session/current_user.py b/openbb_terminal/core/session/current_user.py index e606c968ec53..898d7457da61 100644 --- a/openbb_terminal/core/session/current_user.py +++ b/openbb_terminal/core/session/current_user.py @@ -23,8 +23,8 @@ __profile = ProfileModel() __local_user = UserModel( # type: ignore - credentials=__credentials, - preferences=__preferences, + credentials=__credentials, # type: ignore + preferences=__preferences, # type: ignore profile=__profile, ) __current_user = __local_user @@ -101,8 +101,8 @@ def set_preference( Preference value """ current_user = get_current_user() - updated_preferences = dataclasses.replace(current_user.preferences, **{name: value}) - updated_user = dataclasses.replace(current_user, preferences=updated_preferences) + updated_preferences = dataclasses.replace(current_user.preferences, **{name: value}) # type: ignore + updated_user = dataclasses.replace(current_user, preferences=updated_preferences) # type: ignore set_current_user(updated_user) @@ -117,6 +117,6 @@ def set_credential(name: str, value: str): Credential value """ current_user = get_current_user() - updated_credentials = dataclasses.replace(current_user.credentials, **{name: value}) - updated_user = dataclasses.replace(current_user, credentials=updated_credentials) + updated_credentials = dataclasses.replace(current_user.credentials, **{name: value}) # type: ignore + updated_user = dataclasses.replace(current_user, credentials=updated_credentials) # type: ignore set_current_user(updated_user) diff --git a/openbb_terminal/keys_model.py b/openbb_terminal/keys_model.py index 847f4d2c8a42..f5a5e83f520c 100644 --- a/openbb_terminal/keys_model.py +++ b/openbb_terminal/keys_model.py @@ -119,6 +119,7 @@ def __str__(self): return self.value def colorize(self): + c = "" if self.name == self.DEFINED_TEST_FAILED.name: c = "red" elif self.name == self.NOT_DEFINED.name: diff --git a/poetry.lock b/poetry.lock index 5fe5dc8cc276..2168f85f5e51 100644 --- a/poetry.lock +++ b/poetry.lock @@ -445,14 +445,14 @@ files = [ [[package]] name = "astroid" -version = "2.13.5" +version = "2.15.0" description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false python-versions = ">=3.7.2" files = [ - {file = "astroid-2.13.5-py3-none-any.whl", hash = "sha256:6891f444625b6edb2ac798829b689e95297e100ddf89dbed5a8c610e34901501"}, - {file = "astroid-2.13.5.tar.gz", hash = "sha256:df164d5ac811b9f44105a72b8f9d5edfb7b5b2d7e979b04ea377a77b3229114a"}, + {file = "astroid-2.15.0-py3-none-any.whl", hash = "sha256:e3e4d0ffc2d15d954065579689c36aac57a339a4679a679579af6401db4d3fdb"}, + {file = "astroid-2.15.0.tar.gz", hash = "sha256:525f126d5dc1b8b0b6ee398b33159105615d92dc4a17f2cd064125d57f6186fa"}, ] [package.dependencies] @@ -6291,20 +6291,20 @@ files = [ [[package]] name = "pylint" -version = "2.15.2" +version = "2.17.0" description = "python code static checker" category = "dev" optional = false python-versions = ">=3.7.2" files = [ - {file = "pylint-2.15.2-py3-none-any.whl", hash = "sha256:cc3da458ba810c49d330e09013dec7ced5217772dec8f043ccdd34dae648fde8"}, - {file = "pylint-2.15.2.tar.gz", hash = "sha256:f63404a2547edb5247da263748771ac9a806ed1de4174cda01293c08ddbc2999"}, + {file = "pylint-2.17.0-py3-none-any.whl", hash = "sha256:e097d8325f8c88e14ad12844e3fe2d963d3de871ea9a8f8ad25ab1c109889ddc"}, + {file = "pylint-2.17.0.tar.gz", hash = "sha256:1460829b6397cb5eb0cdb0b4fc4b556348e515cdca32115f74a1eb7c20b896b4"}, ] [package.dependencies] -astroid = ">=2.12.9,<=2.14.0-dev0" +astroid = ">=2.15.0,<=2.17.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -dill = ">=0.2" +dill = {version = ">=0.2", markers = "python_version < \"3.11\""} isort = ">=4.2.5,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" @@ -7586,29 +7586,29 @@ files = [ [[package]] name = "ruff" -version = "0.0.247" +version = "0.0.256" description = "An extremely fast Python linter, written in Rust." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.0.247-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:0151face9ef0e09c0d09166eae5f6df9d61ed7b1686086092d56164b790d1adf"}, - {file = "ruff-0.0.247-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:0abffda0039dc0eec18d624a48a725c414587c816194d1c9889eceba82e87ad0"}, - {file = "ruff-0.0.247-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e34ce0a12a9c7ac25fcfd8a9a25ade778f4e54df37f7ce58c406c36f9d5a1e3"}, - {file = "ruff-0.0.247-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c31adc9f08e1652acb6c1b6d494a3e52895e341398b5dcaffe3325688f70de87"}, - {file = "ruff-0.0.247-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ebc3b3077a880ea8af9f17c5614f606d6c1a15db6823501f4b8d3daf51f78782"}, - {file = "ruff-0.0.247-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:403f67452655923d0775c6c3854750e77c9c97eb875ea979ad515d3c75a45cff"}, - {file = "ruff-0.0.247-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:53dd6124c6b822c27ee23965ce9d8c5fbc76a97ecc209daef0bbfbe8f905cb18"}, - {file = "ruff-0.0.247-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1483c7435db4926da3793a89f6bbb68dedf2990aeddef01407d8c47953403e0"}, - {file = "ruff-0.0.247-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ce619be01206ab71054c9f492a803cc81be678222379c69a0d60aa66c30e4a2"}, - {file = "ruff-0.0.247-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:172c0a8fb295259d9e12e43c39cf3bd006ae85eae89b8e9ca6ece7252241b603"}, - {file = "ruff-0.0.247-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:0cda3a13e67adaf5198c69847a2f04011434bdfbfdca05ac32c101991dd56162"}, - {file = "ruff-0.0.247-py3-none-musllinux_1_2_i686.whl", hash = "sha256:4481b5b6103dffc09156f2fea79a9a9282a72c0109ca4ab74828ae1089ec8c7e"}, - {file = "ruff-0.0.247-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:8c835b703cebb0f23d59ec3d83ff498c5290fae51f98df548aacbb9ff85cc93c"}, - {file = "ruff-0.0.247-py3-none-win32.whl", hash = "sha256:3695f5fd2f4ad44030799a6021b2626442e8d92e432d646aadeefd4a1fceab12"}, - {file = "ruff-0.0.247-py3-none-win_amd64.whl", hash = "sha256:3e22f08bc403d3b4f32488ea52cd69fc3cb343b2c99431fd969cda1c83f4bc2f"}, - {file = "ruff-0.0.247-py3-none-win_arm64.whl", hash = "sha256:737b7fd25d2523b7c526830a3670364a953cb6c6bbf9912c78cba06bbf0ca125"}, - {file = "ruff-0.0.247.tar.gz", hash = "sha256:cce9566cea1cb348bb2dec99f810d846d112627fa52bf3a554773ce4737a061b"}, + {file = "ruff-0.0.256-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:eb8e949f6e7fb16f9aa163fcc13318e2b7910577513468417e5b003b984410a1"}, + {file = "ruff-0.0.256-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:48a42f0ec4c5a3c3b062e947b2a5f8f7a4264761653fb0ee656a9b535ae6d8d7"}, + {file = "ruff-0.0.256-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36ca633cfc335869643a13e2006f13a63bc4cb94073aa9508ceb08a1e3afe3af"}, + {file = "ruff-0.0.256-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:80fa5d3a40dd0b65c6d6adea4f825984d5d3a215a25d90cc6139978cb22ea1cd"}, + {file = "ruff-0.0.256-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0f88839b886db3577136375865bd080b9ed6f9b85bb990d897780e5a30ca3c2"}, + {file = "ruff-0.0.256-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:fe6d77a43b2d52f45ee42f6f682198ed1c34cd0165812e276648981dfd50ad36"}, + {file = "ruff-0.0.256-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3878593507b281b2615702ece06426e8b27076e8fedf658bf0c5e1e5e2ad1b40"}, + {file = "ruff-0.0.256-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e052ec4d5c92663caa662b68fe1902ec10eddac2783229b1c5f20f3df62a865"}, + {file = "ruff-0.0.256-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2116bd67e52ade9f90e5a3a3aa511a9b179c699690221bdd5bb267dbf7e94b22"}, + {file = "ruff-0.0.256-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3c6e93d7818a75669328e49a0f7070c40e18676ca8e56ca9c566633bef4d8d05"}, + {file = "ruff-0.0.256-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7ebb7de4e62d751b65bb15418a83ac5d555afb3eaa3ad549dea21744da34ae86"}, + {file = "ruff-0.0.256-py3-none-musllinux_1_2_i686.whl", hash = "sha256:f310bfc76c0404a487759c8904f57bf51653c46e686c800efc1ff1d165a59a04"}, + {file = "ruff-0.0.256-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:93a0cfec812b2ba57bff22b176901e0ddf44e4d42a9bd7da7ffb5e53df13fd6e"}, + {file = "ruff-0.0.256-py3-none-win32.whl", hash = "sha256:d63e5320bc2d91e94925cd1863e381a48edf087041035967faf2614bb36a6a0d"}, + {file = "ruff-0.0.256-py3-none-win_amd64.whl", hash = "sha256:859c8ffb1801895fe043a2b85a45cd0ff35667ddea4b465ba2a29d275550814a"}, + {file = "ruff-0.0.256-py3-none-win_arm64.whl", hash = "sha256:64b276149e86c3d234608d3fe1da77535865e03debd3a1d5d04576f7f5031bbb"}, + {file = "ruff-0.0.256.tar.gz", hash = "sha256:f9a96b34a4870ee8cf2f3779cd7854620d1788a83b52374771266cf800541bb7"}, ] [[package]] @@ -10243,4 +10243,4 @@ optimization = ["Riskfolio-Lib"] [metadata] lock-version = "2.0" python-versions = "^3.8,<3.11, !=3.9.7" -content-hash = "08c9147c1d8b70071894e83400bc819f157af4751a0e96e90df0b3d5d0b94602" +content-hash = "a82d968078d8da8fa9a73d02ac11387477a68290dc21ed7e4044046025a8365d" diff --git a/pyproject.toml b/pyproject.toml index 84db1783c77a..ae276042a73b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -132,10 +132,10 @@ doc = ["docstring-parser"] [tool.poetry.group.dev.dependencies] pytest-xdist = "^3.2.0" pytest = "^6.2.2" -pylint = "2.15.2" -mypy = "^1.0.0" +pylint = "2.17.0" +mypy = "^1.1.1" mock = "^4.0.3" -codespell = "^2.0.0" +codespell = "^2.2.4" pydocstyle = "^6.3.0" sphinx = "^4.5.0" myst-parser = "^0.15.2" @@ -154,7 +154,7 @@ pre-commit = "^2.16.0" pytest-cov = "^3.0.0" types-six = "^1.16.12" nbmake = ">0.5.0" -ruff = "^0.0.247" +ruff = "^0.0.256" pytest-timeout = "^2.1.0" [build-system] @@ -174,7 +174,7 @@ target-version = "py38" # All options here: https://github.com/charliermarsh/ruff#supported-rules select = ["E", "W", "F", "Q", "S", "UP", "I", "PLC", "PLE", "PLR", "PLW", "SIM"] # These ignores should be seen as temporary solutions to problems that will NEED fixed -ignore = ["S105", "S106", "S107", "S110", "PLR2004", "PLR0911", "PLR0913", "PLR0912", "PLR0915", "SIM114", "SIM105", "SIM117"] +ignore = ["S105", "S106", "S107", "S110", "PLR2004", "PLR0911", "PLR0913", "PLR0912", "PLR0915", "SIM114", "SIM105", "SIM117", "PLC1901", "PLR5501","PLW2901","PLW0603"] [tool.ruff.per-file-ignores] "tests/*" = ["S101"] diff --git a/requirements-full.txt b/requirements-full.txt index d2ff4f48a1cd..453a225fbcc3 100644 --- a/requirements-full.txt +++ b/requirements-full.txt @@ -18,7 +18,7 @@ argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_full_version ! argon2-cffi==21.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" ascii-magic==1.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" astor==0.8.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" -astroid==2.13.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" +astroid==2.15.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" astropy==5.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" asttokens==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" async-timeout==4.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" @@ -251,7 +251,7 @@ pygments==2.14.0 ; python_version >= "3.8" and python_full_version != "3.9.7" an pyhdfe==0.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" pyinstaller-hooks-contrib==2023.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" pyinstaller==4.10 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" -pylint==2.15.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" +pylint==2.17.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" pyluach==2.2.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" pymeeus==0.5.12 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" pympler==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" @@ -301,7 +301,7 @@ robin-stocks==2.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" rsa==4.9 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.11" and python_version >= "3.8" and python_full_version != "3.9.7" ruamel-yaml==0.17.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" -ruff==0.0.247 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" +ruff==0.0.256 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" scikit-learn==1.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" scipy==1.10.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" screeninfo==0.6.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"