diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 9ed70b9..d3ca013 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.4.23 +current_version = 1.4.24 commit = False tag = False diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..2f6932f --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,64 @@ +name: publish +on: push + +env: + PYTHON_VERSION: 3.10.10 + POETRY_VERSION: 1.6.1 + +jobs: + pypi-publish: + name: Publish Python 🐍 distribution πŸ“¦ to PyPI + if: ${{ startsWith(github.ref, 'refs/tags') }} + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/muttlib + permissions: + id-token: write # Mandatory for trusted publishing + steps: + - uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: Install Poetry + run: pipx install poetry==${{ env.POETRY_VERSION }} + + - name: Install dependencies + run: poetry install + - name: Build package + run: poetry build + + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + + testpypi-publish: + name: Test publish Python 🐍 distribution πŸ“¦ to TestPyPI + if: ${{ ! startsWith(github.ref, 'refs/tags') }} + runs-on: ubuntu-latest + environment: + name: testpypi + url: https://test.pypi.org/p/muttlib + permissions: + id-token: write # Mandatory for trusted publishing + steps: + - uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: Install Poetry + run: pipx install poetry==${{ env.POETRY_VERSION }} + + - name: Install dependencies + run: poetry install + - name: Build package + run: poetry build + + - name: Publish distribution πŸ“¦ to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + skip-existing: true + repository-url: https://test.pypi.org/legacy/ diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1232bf6..82b08db 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,6 +2,7 @@ name: test on: [push] env: + POETRY_VERSION: 1.6.1 MIN_LINE_RATE: 0.2 jobs: @@ -14,8 +15,8 @@ jobs: run: | apt update apt install -qy libkrb5-dev libsasl2-dev - pip install poetry==1.3.2 - - uses: actions/checkout@v2 + pip install poetry==$POETRY_VERSION + - uses: actions/checkout@v3 - name: Install packages and extras run: poetry install --extras "forecast gsheets gdrive" --with dev - name: Test base imports @@ -29,7 +30,7 @@ jobs: - name: Test gdrive run: | poetry run python -c 'from muttlib import gdrive' - - name: Run nox + - name: Run tests with nox run: | poetry run nox --envdir $GITHUB_WORKSPACE/.nox --sessions tests @@ -42,11 +43,11 @@ jobs: run: | apt update apt install -y libkrb5-dev libsasl2-dev - pip install poetry==1.3.2 - - uses: actions/checkout@v2 + pip install poetry==$POETRY_VERSION + - uses: actions/checkout@v3 - name: Install package run: poetry install -vvv --with dev -E "gdrive gsheets forecast" - - name: Run nox + - name: Run pre-commit hooks with nox run: poetry run nox --envdir $GITHUB_WORKSPACE/.nox --sessions precommit_hooks docstr-cov: @@ -58,8 +59,8 @@ jobs: run: | apt update apt install -y libkrb5-dev libsasl2-dev - pip install poetry==1.3.2 - - uses: actions/checkout@v2 + pip install poetry==$POETRY_VERSION + - uses: actions/checkout@v3 - name: Install package run: poetry install -vvv --with dev - name: Run interrogate @@ -74,8 +75,8 @@ jobs: run: | apt update apt install -y libkrb5-dev libsasl2-dev - pip install poetry==1.3.2 - - uses: actions/checkout@v2 + pip install poetry==$POETRY_VERSION + - uses: actions/checkout@v3 - name: Install package run: poetry install -vvv --with dev - name: Run nox @@ -90,8 +91,8 @@ jobs: run: | apt update apt install -y libkrb5-dev libsasl2-dev - pip install poetry==1.3.2 - - uses: actions/checkout@v2 + pip install poetry==$POETRY_VERSION + - uses: actions/checkout@v3 - name: Install package run: poetry install -vvv --with dev - name: Run mypy and check lines diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 1ed317b..cf22039 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -1,6 +1,9 @@ name: validate on: [pull_request] +env: + POETRY_VERSION: 1.6.1 + jobs: check_version: if: github.base_ref == 'master' @@ -12,8 +15,8 @@ jobs: run: | apt update apt install -y libkrb5-dev libsasl2-dev - pip install poetry==1.3.2 - - uses: actions/checkout@v2 + pip install poetry==$POETRY_VERSION + - uses: actions/checkout@v3 - name: Install dependencies run: pip install packaging - name: Fetch source ref @@ -23,8 +26,10 @@ jobs: - name: Check version run: | lib_ver=$(git diff origin/$GITHUB_HEAD_REF origin/$GITHUB_BASE_REF -- .bumpversion.cfg | grep "current_version" | cut -d = -f 2 | xargs) - echo "lib_ver=$lib_ver" - python -c "import sys; from packaging import version; exit(not version.parse(sys.argv[1]) > version.parse(sys.argv[2]))" $lib_ver + ver_new=$(echo $lib_ver | cut -f1 -d' ') + ver_old=$(echo $lib_ver | cut -f2 -d' ') + echo "new version: $ver_new (vs) old version: $ver_old" + python -c "import sys; from packaging import version; exit(not version.parse(sys.argv[1]) > version.parse(sys.argv[2]))" $ver_new $ver_old exit_status=$? if [ $exit_status -eq 1 ]; then echo "Error comparing versions"; fi; exit $exit_status @@ -39,8 +44,8 @@ jobs: run: | apt update apt install -y libkrb5-dev libsasl2-dev - pip install poetry==1.3.2 - - uses: actions/checkout@v2 + pip install poetry==$POETRY_VERSION + - uses: actions/checkout@v3 - name: Fetch source ref run: git fetch origin $GITHUB_HEAD_REF - name: Fetch target ref @@ -48,4 +53,4 @@ jobs: - name: Check changed lines run: | added_lines=$(git diff --numstat origin/$GITHUB_BASE_REF origin/$GITHUB_HEAD_REF -- CHANGELOG.md | awk '{print $1}') - if [ -z $added_lines ] || [ $added_lines -eq 0 ]; then echo "Changelog has not been modified" && exit 1; else echo "Changelog has been modified" && exit 0; fi; + if [ -z $added_lines ] || [ $added_lines -eq 0 ]; then echo "Changelog has NOT been modified" && exit 1; else echo "Changelog has been modified" && exit 0; fi; diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml index ff10ad7..3e7a733 100644 --- a/.github/workflows/version.yml +++ b/.github/workflows/version.yml @@ -5,8 +5,11 @@ on: - closed branches: [master] +env: + POETRY_VERSION: 1.6.1 + jobs: - bump_version: + create_github_release: if: github.event.pull_request.merged == true runs-on: [self-hosted] container: @@ -16,8 +19,8 @@ jobs: run: | apt update apt install -y libkrb5-dev libsasl2-dev - pip install poetry==1.3.2 - - uses: actions/checkout@v2 + pip install poetry==$POETRY_VERSION + - uses: actions/checkout@v3 - name: Set tag output id: set-tag run: echo "::set-output name=tag_name::v$(grep current_version .bumpversion.cfg | cut -d= -f2 | xargs)" diff --git a/.gitlab/issue_templates/.TODO_migrate_to_github b/.gitlab/issue_templates/.TODO_migrate_to_github new file mode 100644 index 0000000..e69de29 diff --git a/CHANGELOG.md b/CHANGELOG.md index 38bfcf0..ef34406 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [1.4.23] - 2023-06-09 +## [1.4.24] - 2023-10-19 + +### CI + +- Automatic publishing to PyPI through GitHub Actions when a tag is pushed. + +### Chore + +- Use poetry 1.6.1. + +## [1.4.23] - 2023-10-10 ### Added diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index eea7cfc..3df11ad 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -76,7 +76,7 @@ On Fedora/CentOS: #### Poetry -`muttlib` is packaged and developed using [poetry](https://python-poetry.org). Follow [these steps](https://python-poetry.org/docs/#installation) to install it and get familiar with the [quickstart](https://python-poetry.org/docs/basic-usage/). Make sure to install version `1.3.2` or higher. +`muttlib` is packaged and developed using [poetry](https://python-poetry.org). Follow [these steps](https://python-poetry.org/docs/#installation) to install it and get familiar with the [quickstart](https://python-poetry.org/docs/basic-usage/). Make sure to install the version currently specified at the start of the lockfile (e.g. `1.6.1`). ### Installation @@ -188,7 +188,7 @@ Alternatively you can see the docs for the `master` branch [here.](https://mutt_ ## Versioning -`muttlib` uses [SemVer](https://semver.org). To keep things easy, we've included [bump2version](https://github.com/c4urself/bump2version/) as a dev dependency. You can use `poetry run bump2version minor` to increase the minor number. +`muttlib` uses [SemVer](https://semver.org). To keep things easy, we've included [bump2version](https://github.com/c4urself/bump2version/) as a dev dependency. For example, you can use `poetry run bump2version minor` to increase the minor number. Please remember to bump the version when submitting your PR! diff --git a/README.md b/README.md index ab23335..4e2c595 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,12 @@ # muttlib πŸΆπŸ“š -[![pypi version](https://img.shields.io/pypi/v/muttlib?color=blue)](https://pypi.org/project/muttlib/)[![pipeline status](https://gitlab.com/mutt_data/muttlib/badges/master/pipeline.svg)](https://gitlab.com/mutt_data/muttlib/-/commits/master)[![coverage report](https://gitlab.com/mutt_data/muttlib/badges/master/coverage.svg)](https://gitlab.com/mutt_data/muttlib/-/commits/master)[![docstring report](https://gitlab.com/mutt_data/muttlib/-/jobs/artifacts/master/raw/docs_coverage.svg?job=docstr-cov)](https://interrogate.readthedocs.io/en/latest/)[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/) - +[![pypi version](https://img.shields.io/pypi/v/muttlib?color=blue)](https://pypi.org/project/muttlib/) +[![pipeline status](https://gitlab.com/mutt_data/muttlib/badges/master/pipeline.svg)](https://gitlab.com/mutt_data/muttlib/-/commits/master) +[![coverage report](https://gitlab.com/mutt_data/muttlib/badges/master/coverage.svg)](https://gitlab.com/mutt_data/muttlib/-/commits/master) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/) + + ## Description @@ -30,11 +35,12 @@ Current modules: - [Contributing](#contributing) - [License](#license) -### Installing from PyPi +### Installing from PyPI -_Note:_ `muttlib` is packaged and developed using [poetry](https://python-poetry.org) v1.3.2. +_Note:_ `muttlib` is packaged and developed using [poetry](https://python-poetry.org). Base lib: + ```bash poetry add muttlib ``` @@ -42,16 +48,19 @@ poetry add muttlib Check below for available extras. Parquet and Feather support: + ```bash poetry add muttlib -E pyarrow ``` Forecast: + ```bash poetry add muttlib -E forecast ``` Misc DB support for dbconn: + ```bash poetry add muttlib -E oracle poetry add muttlib -E hive @@ -67,11 +76,13 @@ _Note:_ the `ibis` extra requires installing binary packages. Check [CONTRIBUTIN ### Installing custom branches from the repos From GitHub mirror: + ```bash poetry add -e git+https://github.com/MuttData/muttlib.git@AWESOME_FEATURE_BRANCH#egg=muttlib ``` From Gitlab main repo: + ```bash poetry add -e git+https://gitlab.com/mutt_data/muttlib.git@AWESOME_FEATURE_BRANCH#egg=muttlib ``` @@ -85,4 +96,5 @@ See the [documentation](https://mutt_data.gitlab.io/muttlib/) to get started wit We appreciate for considering to help out maintaining this project. If you'd like to contribute please read our [contributing guidelines](https://mutt_data.gitlab.io/muttlib/contributing.html). ## License + `muttlib` is licensed under the [Apache License 2.0](https://github.com/MuttData/muttlib/blob/master/LICENCE). diff --git a/poetry.lock b/poetry.lock index 8767786..18ff829 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry 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 = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -16,7 +15,6 @@ files = [ name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" -category = "main" optional = false python-versions = "*" files = [ @@ -28,7 +26,6 @@ files = [ name = "argcomplete" version = "1.12.3" description = "Bash tab completion for argparse" -category = "main" optional = false python-versions = "*" files = [ @@ -43,7 +40,6 @@ test = ["coverage", "flake8", "pexpect", "wheel"] name = "asn1crypto" version = "1.5.1" description = "Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP" -category = "main" optional = true python-versions = "*" files = [ @@ -55,7 +51,6 @@ files = [ name = "astroid" version = "2.11.7" description = "An abstract syntax tree for Python with inference support." -category = "dev" optional = false python-versions = ">=3.6.2" files = [ @@ -73,7 +68,6 @@ wrapt = ">=1.11,<2" name = "asttokens" version = "2.2.1" description = "Annotate AST trees with source code positions" -category = "main" optional = false python-versions = "*" files = [ @@ -91,7 +85,6 @@ test = ["astroid", "pytest"] name = "atomicwrites" version = "1.4.1" description = "Atomic file writes." -category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -102,7 +95,6 @@ files = [ name = "atpublic" version = "3.1.2" description = "Keep all y'all's __all__'s in sync" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -114,7 +106,6 @@ files = [ name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -133,7 +124,6 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "babel" version = "2.12.1" description = "Internationalization utilities" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -148,7 +138,6 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" -category = "main" optional = false python-versions = "*" files = [ @@ -160,7 +149,6 @@ files = [ name = "bandit" version = "1.7.5" description = "Security oriented static analyser for python code." -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -184,7 +172,6 @@ yaml = ["PyYAML"] name = "betamax" version = "0.8.1" description = "A VCR imitation for python-requests" -category = "main" optional = false python-versions = "*" files = [ @@ -199,7 +186,6 @@ requests = ">=2.0" name = "betamax-serializers" version = "0.2.1" description = "A set of third-party serializers for Betamax" -category = "main" optional = false python-versions = "*" files = [ @@ -217,7 +203,6 @@ yaml11 = ["PyYAML"] name = "bitarray" version = "2.7.4" description = "efficient arrays of booleans -- C extension" -category = "main" optional = true python-versions = "*" files = [ @@ -314,7 +299,6 @@ files = [ name = "black" version = "22.12.0" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -350,7 +334,6 @@ uvloop = ["uvloop (>=0.15.2)"] name = "bump2version" version = "1.0.1" description = "Version-bump your software with a single command!" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -362,7 +345,6 @@ files = [ name = "cachetools" version = "5.3.1" description = "Extensible memoizing collections and decorators" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -374,7 +356,6 @@ files = [ name = "certifi" version = "2023.5.7" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -386,7 +367,6 @@ files = [ name = "cffi" version = "1.15.1" description = "Foreign Function Interface for Python calling C code." -category = "main" optional = true python-versions = "*" files = [ @@ -463,7 +443,6 @@ pycparser = "*" name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." -category = "dev" optional = false python-versions = ">=3.6.1" files = [ @@ -475,7 +454,6 @@ files = [ name = "charset-normalizer" version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -490,7 +468,6 @@ unicode-backport = ["unicodedata2"] name = "click" version = "8.1.3" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -505,7 +482,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "cmdstanpy" version = "1.1.0" description = "Python interface to CmdStan" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -527,7 +503,6 @@ tests = ["flake8", "mypy", "pylint", "pytest", "pytest-cov", "pytest-order", "tq 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 = [ @@ -539,7 +514,6 @@ files = [ name = "colorlog" version = "6.7.0" description = "Add colours to the output of Python's logging module." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -557,7 +531,6 @@ development = ["black", "flake8", "mypy", "pytest", "types-colorama"] name = "commonmark" version = "0.9.1" description = "Python parser for the CommonMark Markdown spec" -category = "main" optional = true python-versions = "*" files = [ @@ -572,7 +545,6 @@ test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] name = "contourpy" version = "1.0.7" description = "Python library for calculating contours of 2D quadrilateral grids" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -647,7 +619,6 @@ test-no-images = ["pytest"] name = "convertdate" version = "2.4.0" description = "Converts between Gregorian dates and other calendar systems" -category = "main" optional = true python-versions = "<4,>=3.7" files = [ @@ -667,7 +638,6 @@ tests = ["coverage"] name = "coverage" version = "7.2.7" description = "Code coverage measurement for Python" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -743,7 +713,6 @@ toml = ["tomli"] name = "cryptography" version = "3.4.7" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -778,7 +747,6 @@ test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=6.0)" name = "cx-oracle" version = "8.3.0" description = "Python interface to Oracle" -category = "main" optional = true python-versions = "*" files = [ @@ -804,7 +772,6 @@ files = [ name = "cycler" version = "0.11.0" description = "Composable style cycles" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -816,7 +783,6 @@ files = [ name = "decorator" version = "5.1.1" description = "Decorators for Humans" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -828,7 +794,6 @@ files = [ name = "deprecated" version = "1.2.14" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -846,7 +811,6 @@ dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] name = "dill" version = "0.3.6" description = "serialize all of python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -861,7 +825,6 @@ graph = ["objgraph (>=1.7.2)"] name = "distlib" version = "0.3.6" description = "Distribution utilities" -category = "main" optional = false python-versions = "*" files = [ @@ -873,7 +836,6 @@ files = [ name = "docutils" version = "0.18.1" description = "Docutils -- Python Documentation Utilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -885,7 +847,6 @@ files = [ name = "ephem" version = "4.1.4" description = "Compute positions of the planets and stars" -category = "main" optional = true python-versions = "*" files = [ @@ -911,6 +872,17 @@ files = [ {file = "ephem-4.1.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8f9b27117e7a82f7f70db9cb23b5cc36d37b166a2f73c55e14d7225d0ab95afa"}, {file = "ephem-4.1.4-cp311-cp311-win32.whl", hash = "sha256:9bb21c0b117c9122c0141b0a71ee6fbbb087ed2aab4a7ab60f009e95e9f4a521"}, {file = "ephem-4.1.4-cp311-cp311-win_amd64.whl", hash = "sha256:55d7fb5c34b2e453e01fa4ca7ee375b19b438c9401ae8c4099ae4a3a37656972"}, + {file = "ephem-4.1.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f9e24aeea560dfcece3c2e313eb94e6be3e84888091455e541fa88f3a44da584"}, + {file = "ephem-4.1.4-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:653d99386932e5f78bb9cfc4495030ad9f3345eb4c2b32dca55547da8f1f0332"}, + {file = "ephem-4.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53786461a6d5799d5fffe76622ad51444b264d1c7263b92a6dfcac640c3da93a"}, + {file = "ephem-4.1.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:268f57f8768ccb0abbdf4cefb4781c7db812950019868f687b407b428513ee53"}, + {file = "ephem-4.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d630aa287255ea9fba6962f351e4e0729bb620570684d52fbfcc31b11527f09e"}, + {file = "ephem-4.1.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b5f229bbf62ecb4cd6bb3374b15d0f8ff7b3d970c2936fccd89bdf9d693907a2"}, + {file = "ephem-4.1.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:d60d56f182de54bd84fadd6ea2dd8e8ef6fdef6a698c7cafd404ecb6eeefa598"}, + {file = "ephem-4.1.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:404500c8d0030d75ec15bb6b98eee78ad163fd5252102c962ae6fb39c9488198"}, + {file = "ephem-4.1.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9fb020d6cc5ab1ad1cd9d3da4a6e2506beebb41d1b337d79cc20cc0a17f550f1"}, + {file = "ephem-4.1.4-cp312-cp312-win32.whl", hash = "sha256:29e71636ee4719419d03184abc85085f76989c79a61844f5e60acbf2513d2b42"}, + {file = "ephem-4.1.4-cp312-cp312-win_amd64.whl", hash = "sha256:549654f63d88e0ab6248ae25ac2939131474ab9f3a91bee6b68ca6f214747c2a"}, {file = "ephem-4.1.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:40067fc050c946c8d4c2d779805b61f063471a091e6124cbabcf61ac538011b2"}, {file = "ephem-4.1.4-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e2abe97aa2b091090012768b4d94793213cc01f0bf040dcc311a380ab08df69"}, {file = "ephem-4.1.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b2677d3a5b42aedc578de10b0eecdba6a50731f159cb28f7ad38c5f62143494"}, @@ -962,7 +934,6 @@ files = [ name = "execnet" version = "1.9.0" description = "execnet: rapid multi-Python deployment" -category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -977,7 +948,6 @@ testing = ["pre-commit"] name = "executing" version = "1.2.0" description = "Get the currently executing AST node of a frame, and other information" -category = "main" optional = false python-versions = "*" files = [ @@ -992,7 +962,6 @@ tests = ["asttokens", "littleutils", "pytest", "rich"] name = "filelock" version = "3.12.0" description = "A platform independent file lock." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1008,7 +977,6 @@ testing = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "diff-cover (>=7.5)", "p name = "fonttools" version = "4.39.4" description = "Tools to manipulate font files" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1034,7 +1002,6 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] name = "freezegun" version = "1.2.2" description = "Let your Python tests travel through time" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1049,7 +1016,6 @@ python-dateutil = ">=2.7" name = "fsspec" version = "2023.6.0" description = "File-system specification" -category = "main" optional = true python-versions = ">=3.8" files = [ @@ -1085,7 +1051,6 @@ tqdm = ["tqdm"] name = "future" version = "0.18.3" description = "Clean single-source support for Python 3 and 2" -category = "main" optional = true python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1096,7 +1061,6 @@ files = [ name = "gitdb" version = "4.0.10" description = "Git Object Database" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1111,7 +1075,6 @@ smmap = ">=3.0.1,<6" name = "gitpython" version = "3.1.31" description = "GitPython is a Python library used to interact with Git repositories" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1126,7 +1089,6 @@ gitdb = ">=4.0.1,<5" name = "google-api-core" version = "2.11.0" description = "Google API client core library" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1151,7 +1113,6 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0dev)"] name = "google-auth" version = "2.19.1" description = "Google Authentication Library" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1177,7 +1138,6 @@ requests = ["requests (>=2.20.0,<3.0.0dev)"] name = "google-auth-oauthlib" version = "1.0.0" description = "Google Authentication Library" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1196,7 +1156,6 @@ tool = ["click (>=6.0.0)"] name = "google-cloud-bigquery" version = "2.34.4" description = "Google BigQuery API client library" -category = "main" optional = true python-versions = ">=3.6, <3.11" files = [ @@ -1205,7 +1164,7 @@ files = [ ] [package.dependencies] -google-api-core = {version = ">=1.31.5,<2.0.0 || >2.3.0,<3.0.0dev", extras = ["grpc"]} +google-api-core = {version = ">=1.31.5,<2.0.dev0 || >2.3.0,<3.0.0dev", extras = ["grpc"]} google-cloud-core = ">=1.4.1,<3.0.0dev" google-resumable-media = ">=0.6.0,<3.0dev" grpcio = ">=1.38.1,<2.0dev" @@ -1229,7 +1188,6 @@ tqdm = ["tqdm (>=4.7.4,<5.0.0dev)"] name = "google-cloud-core" version = "2.3.2" description = "Google Cloud API client core library" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1238,7 +1196,7 @@ files = [ ] [package.dependencies] -google-api-core = ">=1.31.6,<2.0.0 || >2.3.0,<3.0.0dev" +google-api-core = ">=1.31.6,<2.0.dev0 || >2.3.0,<3.0.0dev" google-auth = ">=1.25.0,<3.0dev" [package.extras] @@ -1248,7 +1206,6 @@ grpc = ["grpcio (>=1.38.0,<2.0dev)"] name = "google-crc32c" version = "1.5.0" description = "A python wrapper of the C library 'Google CRC32C'" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1329,7 +1286,6 @@ testing = ["pytest"] name = "google-resumable-media" version = "2.5.0" description = "Utilities for Google Media Downloads and Resumable Uploads" -category = "main" optional = true python-versions = ">= 3.7" files = [ @@ -1348,7 +1304,6 @@ requests = ["requests (>=2.18.0,<3.0.0dev)"] name = "googleapis-common-protos" version = "1.59.0" description = "Common protobufs used in Google APIs" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1366,7 +1321,6 @@ grpc = ["grpcio (>=1.44.0,<2.0.0dev)"] name = "greenlet" version = "2.0.2" description = "Lightweight in-process concurrent programming" -category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" files = [ @@ -1444,7 +1398,6 @@ test = ["objgraph", "psutil"] name = "grpcio" version = "1.54.2" description = "HTTP/2-based RPC framework" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1502,7 +1455,6 @@ protobuf = ["grpcio-tools (>=1.54.2)"] name = "grpcio-status" version = "1.48.2" description = "Status proto mapping for gRPC" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1519,7 +1471,6 @@ protobuf = ">=3.12.0" name = "gspread" version = "4.0.1" description = "Google Spreadsheets Python API" -category = "main" optional = true python-versions = ">=3.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1535,7 +1486,6 @@ google-auth-oauthlib = ">=0.4.1" name = "gspread-pandas" version = "2.3.1" description = "A package to easily open an instance of a Google spreadsheet and interact with worksheets through Pandas DataFrames." -category = "main" optional = true python-versions = "*" files = [ @@ -1557,7 +1507,6 @@ dev = ["betamax", "betamax-serializers", "black", "bump2version", "coverage", "f name = "holidays" version = "0.26" description = "Generate and work with holidays in Python" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1572,7 +1521,6 @@ python-dateutil = "*" name = "httplib2" version = "0.22.0" description = "A comprehensive HTTP client library." -category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1587,7 +1535,6 @@ pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0 name = "ibis-framework" version = "3.2.0" description = "Productivity-centric Python Big Data Framework" -category = "main" optional = true python-versions = ">=3.8,<3.11" files = [ @@ -1629,7 +1576,6 @@ visualization = ["graphviz (>=0.16,<0.21)"] name = "identify" version = "2.5.24" description = "File identification library for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1644,7 +1590,6 @@ license = ["ukkonen"] name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1656,7 +1601,6 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1668,7 +1612,6 @@ files = [ name = "importlib-resources" version = "5.12.0" description = "Read resources from Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1687,7 +1630,6 @@ testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-chec name = "impyla" version = "0.18.0" description = "Python client for the Impala distributed query engine" -category = "main" optional = true python-versions = "*" files = [ @@ -1709,7 +1651,6 @@ kerberos = ["kerberos (>=1.3.0)"] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1721,7 +1662,6 @@ files = [ name = "interrogate" version = "1.5.0" description = "Interrogate a codebase for docstring coverage." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1747,7 +1687,6 @@ tests = ["pytest", "pytest-cov", "pytest-mock"] name = "ipython" version = "8.12.2" description = "IPython: Productive Interactive Computing" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1787,7 +1726,6 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa name = "isort" version = "5.12.0" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -1805,7 +1743,6 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "jedi" version = "0.18.2" description = "An autocompletion tool for Python that can be used for text editors." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1825,7 +1762,6 @@ testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] name = "jinja2" version = "3.0.3" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1843,7 +1779,6 @@ i18n = ["Babel (>=2.7)"] name = "jinjasql" version = "0.1.8" description = "Generate SQL Queries and Corresponding Bind Parameters using a Jinja2 Template" -category = "main" optional = false python-versions = "*" files = [ @@ -1858,7 +1793,6 @@ Jinja2 = ">=2.5" name = "joblib" version = "1.2.0" description = "Lightweight pipelining with Python functions" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1870,7 +1804,6 @@ files = [ name = "kerberos" version = "1.3.1" description = "Kerberos high-level interface" -category = "main" optional = true python-versions = "*" files = [ @@ -1884,7 +1817,6 @@ files = [ name = "kiwisolver" version = "1.4.4" description = "A fast implementation of the Cassowary constraint solver" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1962,7 +1894,6 @@ files = [ name = "lazy-object-proxy" version = "1.9.0" description = "A fast and thorough lazy object proxy." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2008,7 +1939,6 @@ files = [ name = "lunarcalendar" version = "0.0.9" description = "A lunar calendar converter, including a number of lunar and solar holidays, mainly from China." -category = "main" optional = true python-versions = ">=2.7, <4" files = [ @@ -2025,7 +1955,6 @@ pytz = "*" name = "lxml" version = "4.9.2" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" files = [ @@ -2118,7 +2047,6 @@ source = ["Cython (>=0.29.7)"] name = "m2r2" version = "0.3.2" description = "Markdown and reStructuredText in a single file." -category = "dev" optional = false python-versions = "*" files = [ @@ -2134,7 +2062,6 @@ mistune = "0.8.4" name = "markupsafe" version = "2.0.1" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2213,7 +2140,6 @@ files = [ name = "matplotlib" version = "3.7.1" description = "Python plotting package" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2276,7 +2202,6 @@ python-dateutil = ">=2.7" name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2291,7 +2216,6 @@ traitlets = "*" name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2303,7 +2227,6 @@ files = [ name = "mistune" version = "0.8.4" description = "The fastest markdown parser in pure Python" -category = "dev" optional = false python-versions = "*" files = [ @@ -2315,7 +2238,6 @@ files = [ name = "multipledispatch" version = "0.6.0" description = "Multiple dispatch" -category = "main" optional = true python-versions = "*" files = [ @@ -2331,7 +2253,6 @@ six = "*" name = "mypy" version = "1.3.0" description = "Optional static typing for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2378,7 +2299,6 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2390,7 +2310,6 @@ files = [ name = "nodeenv" version = "1.8.0" description = "Node.js virtual environment builder" -category = "dev" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" files = [ @@ -2405,7 +2324,6 @@ setuptools = "*" name = "nox" version = "2021.10.1" description = "Flexible test automation." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2427,7 +2345,6 @@ tox-to-nox = ["jinja2", "tox"] name = "nox-poetry" version = "0.9.0" description = "nox-poetry" -category = "dev" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -2444,7 +2361,6 @@ tomlkit = ">=0.7.0,<0.8.0" name = "numpy" version = "1.24.3" description = "Fundamental package for array computing in Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2482,7 +2398,6 @@ files = [ name = "oauth2client" version = "4.1.3" description = "OAuth 2.0 client library" -category = "main" optional = true python-versions = "*" files = [ @@ -2501,7 +2416,6 @@ six = ">=1.6.1" name = "oauthlib" version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -2518,7 +2432,6 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] name = "oscrypto" version = "1.3.0" description = "TLS (SSL) sockets, key generation, encryption, decryption, signing, verification and KDFs using the OS crypto libraries. Does not require a compiler, and relies on the OS for patching. Works on Windows, OS X and Linux/BSD." -category = "main" optional = true python-versions = "*" files = [ @@ -2533,7 +2446,6 @@ asn1crypto = ">=1.5.1" name = "packaging" version = "21.3" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2548,7 +2460,6 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" name = "pandas" version = "1.5.3" description = "Powerful data structures for data analysis, time series, and statistics" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2596,7 +2507,6 @@ test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] name = "parso" version = "0.8.3" description = "A Python Parser" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2612,7 +2522,6 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "parsy" version = "2.1" description = "Easy-to-use parser combinators, for parsing in pure Python" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2624,7 +2533,6 @@ files = [ name = "pathspec" version = "0.11.1" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2636,7 +2544,6 @@ files = [ name = "pbr" version = "5.11.1" description = "Python Build Reasonableness" -category = "main" optional = true python-versions = ">=2.6" files = [ @@ -2648,7 +2555,6 @@ files = [ name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." -category = "main" optional = false python-versions = "*" files = [ @@ -2663,7 +2569,6 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" -category = "main" optional = false python-versions = "*" files = [ @@ -2675,7 +2580,6 @@ files = [ name = "pillow" version = "9.5.0" description = "Python Imaging Library (Fork)" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2755,7 +2659,6 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa name = "platformdirs" version = "3.5.1" 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 = [ @@ -2771,7 +2674,6 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest- name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -2787,7 +2689,6 @@ testing = ["pytest", "pytest-benchmark"] name = "pre-commit" version = "2.2.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" optional = false python-versions = ">=3.6.1" files = [ @@ -2807,7 +2708,6 @@ virtualenv = ">=15.2" name = "progressbar2" version = "3.55.0" description = "A Python Progressbar library to provide visual (yet text based) progress to long running operations." -category = "main" optional = false python-versions = "*" files = [ @@ -2827,7 +2727,6 @@ tests = ["flake8 (>=3.7.7)", "freezegun (>=0.3.11)", "pytest (>=4.6.9)", "pytest name = "prompt-toolkit" version = "3.0.38" description = "Library for building powerful interactive command lines in Python" -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -2842,7 +2741,6 @@ wcwidth = "*" name = "prophet" version = "1.1.4" description = "Automatic Forecasting Procedure" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2873,7 +2771,6 @@ parallel = ["dask[dataframe]", "distributed"] name = "proto-plus" version = "1.22.2" description = "Beautiful, Pythonic protocol buffers." -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -2891,7 +2788,6 @@ testing = ["google-api-core[grpc] (>=1.31.5)"] name = "protobuf" version = "3.20.3" description = "Protocol Buffers" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2923,7 +2819,6 @@ files = [ name = "psycopg2-binary" version = "2.9.6" description = "psycopg2 - Python-PostgreSQL Database Adapter" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -2995,7 +2890,6 @@ files = [ name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" -category = "main" optional = false python-versions = "*" files = [ @@ -3007,7 +2901,6 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" -category = "main" optional = false python-versions = "*" files = [ @@ -3022,7 +2915,6 @@ tests = ["pytest"] name = "pure-sasl" version = "0.6.2" description = "Pure Python client SASL implementation" -category = "main" optional = true python-versions = "*" files = [ @@ -3037,7 +2929,6 @@ gssapi = ["kerberos (>=1.3.0)"] name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3049,7 +2940,6 @@ files = [ name = "pyarrow" version = "6.0.0" description = "Python library for Apache Arrow" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3098,7 +2988,6 @@ numpy = ">=1.16.6" name = "pyasn1" version = "0.5.0" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" -category = "main" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3110,7 +2999,6 @@ files = [ name = "pyasn1-modules" version = "0.3.0" description = "A collection of ASN.1-based protocols modules" -category = "main" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3125,7 +3013,6 @@ pyasn1 = ">=0.4.6,<0.6.0" name = "pycparser" version = "2.21" description = "C parser in Python" -category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3137,7 +3024,6 @@ files = [ name = "pycryptodome" version = "3.18.0" description = "Cryptographic library for Python" -category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3179,7 +3065,6 @@ files = [ name = "pycryptodomex" version = "3.18.0" description = "Cryptographic library for Python" -category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3221,7 +3106,6 @@ files = [ name = "pydantic" version = "1.10.9" description = "Data validation and settings management using python type hints" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3274,7 +3158,6 @@ email = ["email-validator (>=1.0.3)"] name = "pygments" version = "2.15.1" description = "Pygments is a syntax highlighting package written in Python." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3289,7 +3172,6 @@ plugins = ["importlib-metadata"] name = "pyhive" version = "0.6.5" description = "Python interface to Hive" -category = "main" optional = true python-versions = "*" files = [ @@ -3311,7 +3193,6 @@ trino = ["requests (>=1.0.0)"] name = "pyjwt" version = "2.7.0" description = "JSON Web Token implementation in Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3329,7 +3210,6 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] name = "pylint" version = "2.13.9" description = "python code static checker" -category = "dev" optional = false python-versions = ">=3.6.2" files = [ @@ -3354,7 +3234,6 @@ testutil = ["gitpython (>3)"] name = "pymeeus" version = "0.5.12" description = "Python implementation of Jean Meeus astronomical routines" -category = "main" optional = true python-versions = "*" files = [ @@ -3365,7 +3244,6 @@ files = [ name = "pymongo" version = "3.13.0" description = "Python driver for MongoDB " -category = "main" optional = true python-versions = "*" files = [ @@ -3494,7 +3372,6 @@ zstd = ["zstandard"] name = "pymssql" version = "2.2.7" description = "DB-API interface to Microsoft SQL Server for Python. (new Cython-based version)" -category = "main" optional = true python-versions = "*" files = [ @@ -3565,7 +3442,6 @@ files = [ name = "pymysql" version = "1.0.3" description = "Pure Python MySQL Driver" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3581,7 +3457,6 @@ rsa = ["cryptography"] name = "pyopenssl" version = "21.0.0" description = "Python wrapper module around the OpenSSL library" -category = "main" optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*" files = [ @@ -3601,7 +3476,6 @@ test = ["flaky", "pretend", "pytest (>=3.0.1)"] name = "pyparsing" version = "2.4.7" description = "Python parsing module" -category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3613,7 +3487,6 @@ files = [ name = "pytest" version = "6.2.5" description = "pytest: simple powerful testing with Python" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3638,7 +3511,6 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm name = "pytest-cov" version = "3.0.0" description = "Pytest plugin for measuring coverage." -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3657,7 +3529,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "pytest-forked" version = "1.6.0" description = "run tests in isolated forked subprocesses" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3673,7 +3544,6 @@ pytest = ">=3.10" name = "pytest-html" version = "3.2.0" description = "pytest plugin for generating HTML reports" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3690,7 +3560,6 @@ pytest-metadata = "*" name = "pytest-metadata" version = "2.0.4" description = "pytest plugin for test session metadata" -category = "main" optional = true python-versions = ">=3.7,<4.0" files = [ @@ -3705,7 +3574,6 @@ pytest = ">=3.0.0,<8.0.0" name = "pytest-mpl" version = "0.12.1" description = "pytest plugin to help with testing figures output from Matplotlib" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3724,7 +3592,6 @@ test = ["pytest-cov"] name = "pytest-xdist" version = "2.5.0" description = "pytest xdist plugin for distributed testing and loop-on-failing modes" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3746,7 +3613,6 @@ testing = ["filelock"] 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 = [ @@ -3761,7 +3627,6 @@ six = ">=1.5" name = "python-utils" version = "3.5.2" description = "Python Utils is a module with some convenient utilities not included with the standard Python install" -category = "main" optional = false python-versions = ">3.6.0" files = [ @@ -3778,7 +3643,6 @@ tests = ["flake8", "loguru", "pytest", "pytest-asyncio", "pytest-cov", "pytest-m name = "pytz" version = "2023.3" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -3790,7 +3654,6 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3840,7 +3703,6 @@ files = [ name = "regex" version = "2023.6.3" description = "Alternative regular expression module, to replace re." -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -3938,7 +3800,6 @@ files = [ name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3960,7 +3821,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "requests-oauthlib" version = "1.3.1" description = "OAuthlib authentication support for Requests." -category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3979,7 +3839,6 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] name = "rich" version = "12.6.0" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -category = "main" optional = true python-versions = ">=3.6.3,<4.0.0" files = [ @@ -3999,7 +3858,6 @@ jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] name = "rsa" version = "4.9" description = "Pure-Python RSA implementation" -category = "main" optional = true python-versions = ">=3.6,<4" files = [ @@ -4014,7 +3872,6 @@ pyasn1 = ">=0.1.3" name = "scikit-learn" version = "1.2.2" description = "A set of python modules for machine learning and data mining" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4057,7 +3914,6 @@ tests = ["black (>=22.3.0)", "flake8 (>=3.8.2)", "matplotlib (>=3.1.3)", "mypy ( 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 = [ @@ -4096,7 +3952,6 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo name = "setuptools" version = "67.8.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4113,7 +3968,6 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( 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 = [ @@ -4125,7 +3979,6 @@ files = [ name = "smmap" version = "5.0.0" description = "A pure Python implementation of a sliding window memory map manager" -category = "main" optional = true python-versions = ">=3.6" files = [ @@ -4137,7 +3990,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" optional = false python-versions = "*" files = [ @@ -4149,7 +4001,6 @@ files = [ name = "snowflake-connector-python" version = "2.9.0" description = "Snowflake Connector for Python" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -4202,7 +4053,6 @@ secure-local-storage = ["keyring (!=16.1.0,<24.0.0)"] name = "snowflake-sqlalchemy" version = "1.4.4" description = "Snowflake SQLAlchemy Dialect" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -4222,7 +4072,6 @@ pandas = ["snowflake-connector-python[pandas] (<3.0.0)"] name = "sphinx" version = "3.2.1" description = "Python documentation generator" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -4258,7 +4107,6 @@ test = ["cython", "html5lib", "pytest", "pytest-cov", "typed-ast"] name = "sphinx-rtd-theme" version = "1.2.2" description = "Read the Docs theme for Sphinx" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -4278,7 +4126,6 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] name = "sphinxcontrib-applehelp" version = "1.0.4" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4294,7 +4141,6 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -4310,7 +4156,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.1" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4326,7 +4171,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jquery" version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" -category = "dev" optional = false python-versions = ">=2.7" files = [ @@ -4341,7 +4185,6 @@ Sphinx = ">=1.8" name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -4356,7 +4199,6 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -4372,7 +4214,6 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -4388,7 +4229,6 @@ test = ["pytest"] name = "sqlalchemy" version = "1.4.48" description = "Database Abstraction Library" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -4463,7 +4303,6 @@ sqlcipher = ["sqlcipher3-binary"] name = "sqlalchemy-redshift" version = "0.8.6" description = "Amazon Redshift Dialect for sqlalchemy" -category = "main" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4479,7 +4318,6 @@ SQLAlchemy = ">=0.9.2,<2.0.0" name = "sqlglot" version = "6.3.5" description = "An easily customizable SQL parser and transpiler" -category = "main" optional = true python-versions = "*" files = [ @@ -4491,7 +4329,6 @@ files = [ name = "stack-data" version = "0.6.2" description = "Extract data from python stack frames and tracebacks for informative displays" -category = "main" optional = false python-versions = "*" files = [ @@ -4511,7 +4348,6 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "stevedore" version = "5.1.0" description = "Manage dynamic plugins for Python applications" -category = "main" optional = true python-versions = ">=3.8" files = [ @@ -4526,7 +4362,6 @@ pbr = ">=2.0.0,<2.1.0 || >2.1.0" name = "tabulate" version = "0.9.0" description = "Pretty-print tabular data" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4541,7 +4376,6 @@ widechars = ["wcwidth"] name = "teradatasql" version = "17.0.0.8" description = "Teradata SQL Driver for Python" -category = "main" optional = true python-versions = ">=3.4" files = [ @@ -4555,7 +4389,6 @@ pycryptodome = "*" name = "threadpoolctl" version = "3.1.0" description = "threadpoolctl" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4567,7 +4400,6 @@ files = [ name = "thrift" version = "0.16.0" description = "Python bindings for the Apache Thrift RPC system" -category = "main" optional = true python-versions = "*" files = [ @@ -4586,7 +4418,6 @@ twisted = ["twisted"] name = "thrift-sasl" version = "0.4.3" description = "Thrift SASL Python module that implements SASL transports for Thrift (`TSaslClientTransport`)." -category = "main" optional = true python-versions = "*" files = [ @@ -4603,7 +4434,6 @@ thrift = {version = ">=0.10.0", markers = "python_version >= \"3.0\""} name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -4615,7 +4445,6 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4627,7 +4456,6 @@ files = [ name = "tomlkit" version = "0.7.2" description = "Style preserving TOML library" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4639,7 +4467,6 @@ files = [ name = "toolz" version = "0.12.0" description = "List processing tools and functional utilities" -category = "main" optional = true python-versions = ">=3.5" files = [ @@ -4651,7 +4478,6 @@ files = [ name = "tqdm" version = "4.65.0" description = "Fast, Extensible Progress Meter" -category = "main" optional = true python-versions = ">=3.7" files = [ @@ -4672,7 +4498,6 @@ telegram = ["requests"] name = "traitlets" version = "5.9.0" description = "Traitlets Python configuration system" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4688,7 +4513,6 @@ test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] name = "trino" version = "0.320.0" description = "Client for the Trino distributed SQL Engine" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4712,7 +4536,6 @@ tests = ["black", "click", "httpretty (<1.1)", "isort", "pre-commit", "pytest", name = "types-pymysql" version = "1.0.19.7" description = "Typing stubs for PyMySQL" -category = "main" optional = false python-versions = "*" files = [ @@ -4724,7 +4547,6 @@ files = [ name = "types-requests" version = "2.31.0.1" description = "Typing stubs for requests" -category = "main" optional = false python-versions = "*" files = [ @@ -4739,7 +4561,6 @@ types-urllib3 = "*" name = "types-toml" version = "0.10.8.6" description = "Typing stubs for toml" -category = "dev" optional = false python-versions = "*" files = [ @@ -4751,7 +4572,6 @@ files = [ name = "types-urllib3" version = "1.26.25.13" description = "Typing stubs for urllib3" -category = "main" optional = false python-versions = "*" files = [ @@ -4763,7 +4583,6 @@ files = [ name = "typing-extensions" version = "4.6.3" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4775,7 +4594,6 @@ files = [ name = "ujson" version = "5.7.0" description = "Ultra fast JSON encoder and decoder for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4850,7 +4668,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 = [ @@ -4867,7 +4684,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "virtualenv" version = "20.23.0" description = "Virtual Python Environment builder" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4888,7 +4704,6 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "coverage-enable-subprocess name = "wcwidth" version = "0.2.6" description = "Measures the displayed width of unicode strings in a terminal" -category = "main" optional = false python-versions = "*" files = [ @@ -4900,7 +4715,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 = [ @@ -4985,7 +4799,6 @@ files = [ name = "zipp" version = "3.15.0" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4998,9 +4811,9 @@ docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [extras] -all = ["bandit", "betamax", "betamax-serializers", "cryptography", "cx-Oracle", "freezegun", "google-cloud-bigquery", "gspread-pandas", "holidays", "holidays", "ibis-framework", "interrogate", "nox", "oauth2client", "prophet", "psycopg2-binary", "psycopg2-binary", "pyarrow", "pyarrow", "pyarrow", "PyHive", "pymongo", "pymssql", "PyMySQL", "pyparsing", "pytest", "pytest-cov", "pytest-html", "pytest-mpl", "pytest-xdist", "requests", "snowflake-connector-python", "snowflake-sqlalchemy", "sqlalchemy-redshift", "teradatasql", "thrift"] +all = ["PyHive", "PyMySQL", "bandit", "betamax", "betamax-serializers", "cryptography", "cx-Oracle", "freezegun", "google-cloud-bigquery", "gspread-pandas", "holidays", "holidays", "ibis-framework", "interrogate", "nox", "oauth2client", "prophet", "psycopg2-binary", "psycopg2-binary", "pyarrow", "pyarrow", "pyarrow", "pymongo", "pymssql", "pyparsing", "pytest", "pytest-cov", "pytest-html", "pytest-mpl", "pytest-xdist", "requests", "snowflake-connector-python", "snowflake-sqlalchemy", "sqlalchemy-redshift", "teradatasql", "thrift"] bigquery = ["google-cloud-bigquery"] -forecast = ["prophet", "holidays"] +forecast = ["holidays", "prophet"] gdrive = ["oauth2client", "requests"] gsheets = ["gspread-pandas"] hive = ["PyHive", "thrift"] @@ -5010,11 +4823,11 @@ mysql = ["PyMySQL"] oracle = ["cx-Oracle"] postgres = ["psycopg2-binary"] pyarrow = ["pyarrow"] -redshift = ["sqlalchemy-redshift", "psycopg2-binary", "pyparsing"] -snowflake = ["snowflake-connector-python", "cryptography", "snowflake-sqlalchemy"] +redshift = ["psycopg2-binary", "pyparsing", "sqlalchemy-redshift"] +snowflake = ["cryptography", "snowflake-connector-python", "snowflake-sqlalchemy"] sqlserver = ["pymssql"] teradata = ["teradatasql"] -test = ["bandit", "freezegun", "interrogate", "nox", "pytest", "pytest-xdist", "pytest-cov", "pytest-html", "pytest-mpl", "betamax", "betamax-serializers", "pyarrow", "holidays"] +test = ["bandit", "betamax", "betamax-serializers", "freezegun", "holidays", "interrogate", "nox", "pyarrow", "pytest", "pytest-cov", "pytest-html", "pytest-mpl", "pytest-xdist"] trino = [] [metadata] diff --git a/pyproject.toml b/pyproject.toml index 1525f14..cdcc750 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,10 @@ [build-system] -requires = [ "poetry-core==1.5.0",] +requires = [ "poetry-core==1.7.0",] build-backend = "poetry.core.masonry.api" [tool.poetry] name = "muttlib" -version = "1.4.23" +version = "1.4.24" description = "Collection of helper modules by Mutt Data." readme = "README.md" authors = [ "Mutt Data ",]