From fb2cfe5749576a83528f4eae8025b0401582b453 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 15:57:57 +0200 Subject: [PATCH 01/26] Add support for ARM64 architectures --- .github/actions/build-jdk/action.yaml | 8 +- .github/workflows/deployment.yaml | 19 +- .github/workflows/test.yaml | 51 ++- README.md | 4 +- conda.recipe/meta.yaml | 2 +- jdk4py/java_version.txt | 2 +- poetry.lock | 616 ++++++++++++-------------- scripts/set_environment.py | 53 ++- setup.py | 18 +- tests/test_jdk4py.py | 2 +- 10 files changed, 412 insertions(+), 363 deletions(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index 26fbf9b..75fde09 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -1,6 +1,9 @@ name: Build JDK description: Install the dependencies and build the JDK inputs: + architecture: + description: The architecture targeted by the JDK to set up. + required: true python-version: description: The version of Python to set up. required: true @@ -9,7 +12,7 @@ runs: steps: - uses: actions/setup-python@v2 with: - architecture: x64 + # No need to set the architecture for Python because jdk4py is platform independent Python-wise. python-version: ${{ inputs.python-version }} - name: Install Poetry @@ -26,7 +29,8 @@ runs: - uses: actions/setup-java@v2 with: - distribution: adopt + architecture: ${{ inputs.architecture }} + distribution: temurin java-version: ${{ env.JDK4PY_JAVA_VERSION }} - name: Build JDK diff --git a/.github/workflows/deployment.yaml b/.github/workflows/deployment.yaml index a0b3f83..6209101 100644 --- a/.github/workflows/deployment.yaml +++ b/.github/workflows/deployment.yaml @@ -10,13 +10,24 @@ jobs: environment: deployment strategy: matrix: - os: [macos-latest, windows-latest, ubuntu-latest] + architecture: + - x64 + os: + - macos-latest + - ubuntu-latest + - windows-latest + include: + - os: macos-latest + architecture: aarch64 + - os: ubuntu-latest + architecture: aarch64 name: Deploy on ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-jdk with: + architecture: ${{ matrix.architecture }} python-version: "3.10" - uses: ./.github/actions/create-python-wheel @@ -27,7 +38,7 @@ jobs: env: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} shell: bash - run: poetry run twine upload dist/jdk4py-*.whl --username __token__ --password "$PYPI_TOKEN" + run: poetry run twine upload dist/jdk4py-*-${{ env.JDK4PY_WHEEL_PLATFORM }}.whl --username __token__ --password "$PYPI_TOKEN" - name: Upload Conda package env: @@ -36,8 +47,8 @@ jobs: JDK4PY_CONDA_CHANNEL_USERNAME: ${{ secrets.CONDA_CHANNEL_USERNAME }} shell: bash run: | - ls dist/$JDK4PY_CONDA_ARCH/jdk4py-*.tar.bz2 | \ + ls dist/$JDK4PY_CONDA_PLATFORM/jdk4py-*.tar.bz2 | \ while read filepath; do echo Uploading ${filepath} - curl --fail --user "$JDK4PY_CONDA_CHANNEL_USERNAME":"$JDK4PY_CONDA_CHANNEL_PASSWORD" --upload-file ${filepath} "$JDK4PY_CONDA_CHANNEL_URL/$JDK4PY_CONDA_ARCH/" + curl --fail --user "$JDK4PY_CONDA_CHANNEL_USERNAME":"$JDK4PY_CONDA_CHANNEL_PASSWORD" --upload-file ${filepath} "$JDK4PY_CONDA_CHANNEL_URL/$JDK4PY_CONDA_PLATFORM/" done diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 562ecf3..ee087cc 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -8,12 +8,22 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-latest, windows-latest, ubuntu-latest] + architecture: + - x64 + os: + - macos-latest + - ubuntu-latest + - windows-latest python: - "3.7" - "3.8" - "3.9" - "3.10" + include: + - os: macos-latest + architecture: aarch64 + - os: ubuntu-latest + architecture: aarch64 fail-fast: false name: Test on ${{ matrix.os }} with Python ${{ matrix.python }} steps: @@ -21,16 +31,9 @@ jobs: - uses: ./.github/actions/build-jdk with: + architecture: ${{ matrix.architecture }} python-version: ${{ matrix.python }} - # No need to lint for each OS and Python version - - if: matrix.os == 'ubuntu-latest' && matrix.python == '3.10' - name: Check formatting - run: poetry run black --check . - - - name: Test - run: poetry run pytest - - uses: ./.github/actions/create-python-wheel # No need to upload the package for each Python version @@ -38,20 +41,40 @@ jobs: uses: actions/upload-artifact@v2 with: if-no-files-found: error - name: jdk4py-${{ matrix.os }}.whl - path: dist/jdk4py-*.whl + name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}.whl + path: dist/jdk4py-*-${{ env.JDK4PY_WHEEL_PLATFORM }}.whl + + # No need to lint for each OS and Python version + - if: matrix.os == 'ubuntu-latest' && matrix.python == '3.10' + name: Check formatting + run: poetry run black --check . + + - name: Test + run: poetry run pytest conda-package: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-latest, windows-latest, ubuntu-latest] + architecture: + - x64 + os: + - macos-latest + - ubuntu-latest + - windows-latest + include: + - os: macos-latest + architecture: aarch64 + - os: ubuntu-latest + architecture: aarch64 name: Test Conda packaging steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-jdk with: + architecture: ${{ matrix.architecture }} + # No need to test for each Python version python-version: "3.10" - uses: ./.github/actions/create-conda-package @@ -59,5 +82,5 @@ jobs: - uses: actions/upload-artifact@v2 with: if-no-files-found: error - name: jdk4py-${{ matrix.os }}-conda-packages - path: dist/${{ env.JDK4PY_CONDA_ARCH }}/jdk4py-*.tar.bz2 + name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}-conda-packages + path: dist/${{ env.JDK4PY_CONDA_PLATFORM }}/jdk4py-*.tar.bz2 diff --git a/README.md b/README.md index 1bbab0d..c356cbb 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ b"Hello, World!" ## Versioning -`jdk4py` version contains 4 figures: +`jdk4py`'s version contains 4 numbers: -- The first 3 figures are the Java version. +- The first 3 numbers are the Java version. - The fourth is `jdk4py` specific: it starts at 0 for each Java version and then increases. diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index ce18d93..f90a7e8 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -39,6 +39,6 @@ about: extra: recipe-maintainers: + - bloussou - fabiencelier - tibdex - - bloussou diff --git a/jdk4py/java_version.txt b/jdk4py/java_version.txt index c57cf9a..cc64c91 100644 --- a/jdk4py/java_version.txt +++ b/jdk4py/java_version.txt @@ -1 +1 @@ -17.0.2 +17.0.3 diff --git a/poetry.lock b/poetry.lock index 4d522ba..07349c1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -8,70 +8,68 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "attrs" -version = "21.2.0" +version = "21.4.0" description = "Classes Without Boilerplate" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] [[package]] name = "black" -version = "21.9b0" +version = "22.3.0" description = "The uncompromising code formatter." category = "dev" optional = false python-versions = ">=3.6.2" [package.dependencies] -click = ">=7.1.2" +click = ">=8.0.0" mypy-extensions = ">=0.4.3" -pathspec = ">=0.9.0,<1" +pathspec = ">=0.9.0" platformdirs = ">=2" -regex = ">=2020.1.8" -tomli = ">=0.2.6,<2.0.0" -typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\""} -typing-extensions = [ - {version = ">=3.10.0.0", markers = "python_version < \"3.10\""}, - {version = "!=3.10.0.1", markers = "python_version >= \"3.10\""}, -] +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} +typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.6.0)", "aiohttp-cors (>=0.4.0)"] +d = ["aiohttp (>=3.7.4)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -python2 = ["typed-ast (>=1.4.2)"] uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "bleach" -version = "4.1.0" +version = "5.0.0" description = "An easy safelist-based HTML-sanitizing tool." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] -packaging = "*" six = ">=1.9.0" webencodings = "*" +[package.extras] +css = ["tinycss2 (>=1.1.0)"] +dev = ["pip-tools (==6.5.1)", "pytest (==7.1.1)", "flake8 (==4.0.1)", "tox (==3.24.5)", "sphinx (==4.3.2)", "twine (==4.0.0)", "wheel (==0.37.1)", "hashin (==0.17.0)", "black (==22.3.0)", "mypy (==0.942)"] + [[package]] name = "certifi" -version = "2021.5.30" +version = "2022.5.18.1" description = "Python package for providing Mozilla's CA Bundle." category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.6" [[package]] name = "cffi" -version = "1.14.6" +version = "1.15.0" description = "Foreign Function Interface for Python calling C code." category = "dev" optional = false @@ -82,7 +80,7 @@ pycparser = "*" [[package]] name = "charset-normalizer" -version = "2.0.6" +version = "2.0.12" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "dev" optional = false @@ -93,11 +91,11 @@ unicode_backport = ["unicodedata2"] [[package]] name = "click" -version = "8.0.1" +version = "8.1.3" description = "Composable command line interface toolkit" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} @@ -111,9 +109,20 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +[[package]] +name = "commonmark" +version = "0.9.1" +description = "Python parser for the CommonMark Markdown spec" +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] + [[package]] name = "cryptography" -version = "35.0.0" +version = "37.0.2" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "dev" optional = false @@ -124,15 +133,15 @@ cffi = ">=1.12" [package.extras] docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"] -docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] +docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] sdist = ["setuptools_rust (>=0.11.4)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["pytest (>=6.2.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"] +test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"] [[package]] name = "docutils" -version = "0.17.1" +version = "0.18.1" description = "Docutils -- Python Documentation Utilities" category = "dev" optional = false @@ -140,7 +149,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "idna" -version = "3.2" +version = "3.3" description = "Internationalized Domain Names in Applications (IDNA)" category = "dev" optional = false @@ -148,20 +157,20 @@ python-versions = ">=3.5" [[package]] name = "importlib-metadata" -version = "4.8.1" +version = "4.11.4" description = "Read metadata from Python packages" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] perf = ["ipython"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] [[package]] name = "iniconfig" @@ -173,23 +182,23 @@ python-versions = "*" [[package]] name = "jeepney" -version = "0.7.1" +version = "0.8.0" description = "Low-level, pure Python DBus protocol wrapper." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.extras] -test = ["pytest", "pytest-trio", "pytest-asyncio", "testpath", "trio", "async-timeout"] +test = ["pytest", "pytest-trio", "pytest-asyncio (>=0.17)", "testpath", "trio", "async-timeout"] trio = ["trio", "async-generator"] [[package]] name = "keyring" -version = "23.2.1" +version = "23.5.1" description = "Store and access your passwords safely." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] importlib-metadata = ">=3.6" @@ -198,8 +207,8 @@ pywin32-ctypes = {version = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1", markers = "sys_ SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy"] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] [[package]] name = "mypy-extensions" @@ -211,14 +220,14 @@ python-versions = "*" [[package]] name = "packaging" -version = "21.0" +version = "21.3" description = "Core utilities for Python packages" category = "dev" optional = false python-versions = ">=3.6" [package.dependencies] -pyparsing = ">=2.0.2" +pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "pathspec" @@ -230,26 +239,26 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" [[package]] name = "pkginfo" -version = "1.7.1" +version = "1.8.2" description = "Query metadatdata from sdists / bdists / installed packages." category = "dev" optional = false python-versions = "*" [package.extras] -testing = ["nose", "coverage"] +testing = ["coverage", "nose"] [[package]] name = "platformdirs" -version = "2.4.0" +version = "2.5.2" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.extras] -docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] -test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] +docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"] +test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"] [[package]] name = "pluggy" @@ -268,15 +277,15 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "py" -version = "1.10.0" +version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "pycparser" -version = "2.20" +version = "2.21" description = "C parser in Python" category = "dev" optional = false @@ -284,27 +293,30 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pygments" -version = "2.10.0" +version = "2.12.0" description = "Pygments is a syntax highlighting package written in Python." category = "dev" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" [[package]] name = "pyparsing" -version = "2.4.7" -description = "Python parsing module" +version = "3.0.9" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" category = "dev" optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = ">=3.6.8" + +[package.extras] +diagrams = ["railroad-diagrams", "jinja2"] [[package]] name = "pytest" -version = "6.2.5" +version = "7.1.2" description = "pytest: simple powerful testing with Python" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} @@ -315,10 +327,10 @@ iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" py = ">=1.8.2" -toml = "*" +tomli = ">=1.0.0" [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] [[package]] name = "pywin32-ctypes" @@ -330,11 +342,11 @@ python-versions = "*" [[package]] name = "readme-renderer" -version = "30.0" +version = "35.0" description = "readme_renderer is a library for rendering \"readme\" descriptions for Warehouse" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7" [package.dependencies] bleach = ">=2.1.0" @@ -342,19 +354,11 @@ docutils = ">=0.13.1" Pygments = ">=2.5.1" [package.extras] -md = ["cmarkgfm (>=0.5.0,<0.7.0)"] - -[[package]] -name = "regex" -version = "2021.9.30" -description = "Alternative regular expression module, to replace re." -category = "dev" -optional = false -python-versions = "*" +md = ["cmarkgfm (>=0.8.0)"] [[package]] name = "requests" -version = "2.26.0" +version = "2.27.1" description = "Python HTTP for Humans." category = "dev" optional = false @@ -383,18 +387,34 @@ requests = ">=2.0.1,<3.0.0" [[package]] name = "rfc3986" -version = "1.5.0" +version = "2.0.0" description = "Validating URI References per RFC 3986" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7" [package.extras] idna2008 = ["idna"] +[[package]] +name = "rich" +version = "12.4.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +category = "dev" +optional = false +python-versions = ">=3.6.3,<4.0.0" + +[package.dependencies] +commonmark = ">=0.9.0,<0.10.0" +pygments = ">=2.6.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] + [[package]] name = "secretstorage" -version = "3.3.1" +version = "3.3.2" description = "Python bindings to FreeDesktop.org Secret Service API" category = "dev" optional = false @@ -412,83 +432,59 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -[[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" - [[package]] name = "tomli" -version = "1.2.1" +version = "2.0.1" description = "A lil' TOML parser" category = "dev" optional = false -python-versions = ">=3.6" - -[[package]] -name = "tqdm" -version = "4.62.3" -description = "Fast, Extensible Progress Meter" -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[package.extras] -dev = ["py-make (>=0.1.0)", "twine", "wheel"] -notebook = ["ipywidgets (>=6)"] -telegram = ["requests"] +python-versions = ">=3.7" [[package]] name = "twine" -version = "3.4.2" +version = "4.0.0" description = "Collection of utilities for publishing packages on PyPI" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] -colorama = ">=0.4.3" importlib-metadata = ">=3.6" keyring = ">=15.1" -pkginfo = ">=1.4.2" +pkginfo = ">=1.8.1" readme-renderer = ">=21.0" requests = ">=2.20" requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0" rfc3986 = ">=1.4.0" -tqdm = ">=4.14" +rich = ">=12.0.0" +urllib3 = ">=1.26.0" [[package]] name = "typed-ast" -version = "1.4.3" +version = "1.5.4" description = "a fork of Python 2 and 3 ast modules with type comment support" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.6" [[package]] name = "typing-extensions" -version = "3.10.0.2" -description = "Backported and Experimental Type Hints for Python 3.5+" +version = "4.2.0" +description = "Backported and Experimental Type Hints for Python 3.7+" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7" [[package]] name = "urllib3" -version = "1.26.7" +version = "1.26.9" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" [package.extras] -brotli = ["brotlipy (>=0.6.0)"] +brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] @@ -502,15 +498,15 @@ python-versions = "*" [[package]] name = "zipp" -version = "3.6.0" +version = "3.8.0" description = "Backport of pathlib-compatible object wrapper for zip files" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] +docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] [metadata] lock-version = "1.1" @@ -523,303 +519,281 @@ atomicwrites = [ {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, ] attrs = [ - {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, - {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"}, + {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, + {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, ] black = [ - {file = "black-21.9b0-py3-none-any.whl", hash = "sha256:380f1b5da05e5a1429225676655dddb96f5ae8c75bdf91e53d798871b902a115"}, - {file = "black-21.9b0.tar.gz", hash = "sha256:7de4cfc7eb6b710de325712d40125689101d21d25283eed7e9998722cf10eb91"}, + {file = "black-22.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09"}, + {file = "black-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb"}, + {file = "black-22.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a"}, + {file = "black-22.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968"}, + {file = "black-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"}, + {file = "black-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce"}, + {file = "black-22.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82"}, + {file = "black-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b"}, + {file = "black-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015"}, + {file = "black-22.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b"}, + {file = "black-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a"}, + {file = "black-22.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163"}, + {file = "black-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464"}, + {file = "black-22.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0"}, + {file = "black-22.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176"}, + {file = "black-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0"}, + {file = "black-22.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20"}, + {file = "black-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a"}, + {file = "black-22.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad"}, + {file = "black-22.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21"}, + {file = "black-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265"}, + {file = "black-22.3.0-py3-none-any.whl", hash = "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72"}, + {file = "black-22.3.0.tar.gz", hash = "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79"}, ] bleach = [ - {file = "bleach-4.1.0-py2.py3-none-any.whl", hash = "sha256:4d2651ab93271d1129ac9cbc679f524565cc8a1b791909c4a51eac4446a15994"}, - {file = "bleach-4.1.0.tar.gz", hash = "sha256:0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da"}, + {file = "bleach-5.0.0-py3-none-any.whl", hash = "sha256:08a1fe86d253b5c88c92cc3d810fd8048a16d15762e1e5b74d502256e5926aa1"}, + {file = "bleach-5.0.0.tar.gz", hash = "sha256:c6d6cc054bdc9c83b48b8083e236e5f00f238428666d2ce2e083eaa5fd568565"}, ] certifi = [ - {file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"}, - {file = "certifi-2021.5.30.tar.gz", hash = "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"}, + {file = "certifi-2022.5.18.1-py3-none-any.whl", hash = "sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"}, + {file = "certifi-2022.5.18.1.tar.gz", hash = "sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7"}, ] cffi = [ - {file = "cffi-1.14.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c"}, - {file = "cffi-1.14.6-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99"}, - {file = "cffi-1.14.6-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819"}, - {file = "cffi-1.14.6-cp27-cp27m-win32.whl", hash = "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20"}, - {file = "cffi-1.14.6-cp27-cp27m-win_amd64.whl", hash = "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224"}, - {file = "cffi-1.14.6-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7"}, - {file = "cffi-1.14.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33"}, - {file = "cffi-1.14.6-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534"}, - {file = "cffi-1.14.6-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a"}, - {file = "cffi-1.14.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5"}, - {file = "cffi-1.14.6-cp35-cp35m-win32.whl", hash = "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca"}, - {file = "cffi-1.14.6-cp35-cp35m-win_amd64.whl", hash = "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218"}, - {file = "cffi-1.14.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f"}, - {file = "cffi-1.14.6-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872"}, - {file = "cffi-1.14.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195"}, - {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d"}, - {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b"}, - {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb"}, - {file = "cffi-1.14.6-cp36-cp36m-win32.whl", hash = "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a"}, - {file = "cffi-1.14.6-cp36-cp36m-win_amd64.whl", hash = "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e"}, - {file = "cffi-1.14.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5"}, - {file = "cffi-1.14.6-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf"}, - {file = "cffi-1.14.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69"}, - {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56"}, - {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c"}, - {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762"}, - {file = "cffi-1.14.6-cp37-cp37m-win32.whl", hash = "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771"}, - {file = "cffi-1.14.6-cp37-cp37m-win_amd64.whl", hash = "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a"}, - {file = "cffi-1.14.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0"}, - {file = "cffi-1.14.6-cp38-cp38-manylinux1_i686.whl", hash = "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e"}, - {file = "cffi-1.14.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346"}, - {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc"}, - {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd"}, - {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc"}, - {file = "cffi-1.14.6-cp38-cp38-win32.whl", hash = "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548"}, - {file = "cffi-1.14.6-cp38-cp38-win_amd64.whl", hash = "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156"}, - {file = "cffi-1.14.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d"}, - {file = "cffi-1.14.6-cp39-cp39-manylinux1_i686.whl", hash = "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e"}, - {file = "cffi-1.14.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c"}, - {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202"}, - {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f"}, - {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87"}, - {file = "cffi-1.14.6-cp39-cp39-win32.whl", hash = "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728"}, - {file = "cffi-1.14.6-cp39-cp39-win_amd64.whl", hash = "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2"}, - {file = "cffi-1.14.6.tar.gz", hash = "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"}, + {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"}, + {file = "cffi-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0"}, + {file = "cffi-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14"}, + {file = "cffi-1.15.0-cp27-cp27m-win32.whl", hash = "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474"}, + {file = "cffi-1.15.0-cp27-cp27m-win_amd64.whl", hash = "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6"}, + {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27"}, + {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023"}, + {file = "cffi-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2"}, + {file = "cffi-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962"}, + {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382"}, + {file = "cffi-1.15.0-cp310-cp310-win32.whl", hash = "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55"}, + {file = "cffi-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0"}, + {file = "cffi-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8"}, + {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605"}, + {file = "cffi-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e"}, + {file = "cffi-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc"}, + {file = "cffi-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2"}, + {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7"}, + {file = "cffi-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66"}, + {file = "cffi-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029"}, + {file = "cffi-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728"}, + {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6"}, + {file = "cffi-1.15.0-cp38-cp38-win32.whl", hash = "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c"}, + {file = "cffi-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443"}, + {file = "cffi-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a"}, + {file = "cffi-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df"}, + {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8"}, + {file = "cffi-1.15.0-cp39-cp39-win32.whl", hash = "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a"}, + {file = "cffi-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139"}, + {file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"}, ] charset-normalizer = [ - {file = "charset-normalizer-2.0.6.tar.gz", hash = "sha256:5ec46d183433dcbd0ab716f2d7f29d8dee50505b3fdb40c6b985c7c4f5a3591f"}, - {file = "charset_normalizer-2.0.6-py3-none-any.whl", hash = "sha256:5d209c0a931f215cee683b6445e2d77677e7e75e159f78def0db09d68fafcaa6"}, + {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, + {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, ] click = [ - {file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"}, - {file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"}, + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, ] colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, ] +commonmark = [ + {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, + {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, +] cryptography = [ - {file = "cryptography-35.0.0-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:d57e0cdc1b44b6cdf8af1d01807db06886f10177469312fbde8f44ccbb284bc9"}, - {file = "cryptography-35.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:ced40344e811d6abba00295ced98c01aecf0c2de39481792d87af4fa58b7b4d6"}, - {file = "cryptography-35.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:54b2605e5475944e2213258e0ab8696f4f357a31371e538ef21e8d61c843c28d"}, - {file = "cryptography-35.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:7b7ceeff114c31f285528ba8b390d3e9cfa2da17b56f11d366769a807f17cbaa"}, - {file = "cryptography-35.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d69645f535f4b2c722cfb07a8eab916265545b3475fdb34e0be2f4ee8b0b15e"}, - {file = "cryptography-35.0.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a2d0e0acc20ede0f06ef7aa58546eee96d2592c00f450c9acb89c5879b61992"}, - {file = "cryptography-35.0.0-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:07bb7fbfb5de0980590ddfc7f13081520def06dc9ed214000ad4372fb4e3c7f6"}, - {file = "cryptography-35.0.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:7eba2cebca600a7806b893cb1d541a6e910afa87e97acf2021a22b32da1df52d"}, - {file = "cryptography-35.0.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:18d90f4711bf63e2fb21e8c8e51ed8189438e6b35a6d996201ebd98a26abbbe6"}, - {file = "cryptography-35.0.0-cp36-abi3-win32.whl", hash = "sha256:c10c797ac89c746e488d2ee92bd4abd593615694ee17b2500578b63cad6b93a8"}, - {file = "cryptography-35.0.0-cp36-abi3-win_amd64.whl", hash = "sha256:7075b304cd567694dc692ffc9747f3e9cb393cc4aa4fb7b9f3abd6f5c4e43588"}, - {file = "cryptography-35.0.0-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a688ebcd08250eab5bb5bca318cc05a8c66de5e4171a65ca51db6bd753ff8953"}, - {file = "cryptography-35.0.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d99915d6ab265c22873f1b4d6ea5ef462ef797b4140be4c9d8b179915e0985c6"}, - {file = "cryptography-35.0.0-pp36-pypy36_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:928185a6d1ccdb816e883f56ebe92e975a262d31cc536429041921f8cb5a62fd"}, - {file = "cryptography-35.0.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ebeddd119f526bcf323a89f853afb12e225902a24d29b55fe18dd6fcb2838a76"}, - {file = "cryptography-35.0.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22a38e96118a4ce3b97509443feace1d1011d0571fae81fc3ad35f25ba3ea999"}, - {file = "cryptography-35.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb80e8a1f91e4b7ef8b33041591e6d89b2b8e122d787e87eeb2b08da71bb16ad"}, - {file = "cryptography-35.0.0-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:abb5a361d2585bb95012a19ed9b2c8f412c5d723a9836418fab7aaa0243e67d2"}, - {file = "cryptography-35.0.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:1ed82abf16df40a60942a8c211251ae72858b25b7421ce2497c2eb7a1cee817c"}, - {file = "cryptography-35.0.0.tar.gz", hash = "sha256:9933f28f70d0517686bd7de36166dda42094eac49415459d9bdf5e7df3e0086d"}, + {file = "cryptography-37.0.2-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:ef15c2df7656763b4ff20a9bc4381d8352e6640cfeb95c2972c38ef508e75181"}, + {file = "cryptography-37.0.2-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:3c81599befb4d4f3d7648ed3217e00d21a9341a9a688ecdd615ff72ffbed7336"}, + {file = "cryptography-37.0.2-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2bd1096476aaac820426239ab534b636c77d71af66c547b9ddcd76eb9c79e004"}, + {file = "cryptography-37.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:31fe38d14d2e5f787e0aecef831457da6cec68e0bb09a35835b0b44ae8b988fe"}, + {file = "cryptography-37.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:093cb351031656d3ee2f4fa1be579a8c69c754cf874206be1d4cf3b542042804"}, + {file = "cryptography-37.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59b281eab51e1b6b6afa525af2bd93c16d49358404f814fe2c2410058623928c"}, + {file = "cryptography-37.0.2-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:0cc20f655157d4cfc7bada909dc5cc228211b075ba8407c46467f63597c78178"}, + {file = "cryptography-37.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:f8ec91983e638a9bcd75b39f1396e5c0dc2330cbd9ce4accefe68717e6779e0a"}, + {file = "cryptography-37.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:46f4c544f6557a2fefa7ac8ac7d1b17bf9b647bd20b16decc8fbcab7117fbc15"}, + {file = "cryptography-37.0.2-cp36-abi3-win32.whl", hash = "sha256:731c8abd27693323b348518ed0e0705713a36d79fdbd969ad968fbef0979a7e0"}, + {file = "cryptography-37.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:471e0d70201c069f74c837983189949aa0d24bb2d751b57e26e3761f2f782b8d"}, + {file = "cryptography-37.0.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a68254dd88021f24a68b613d8c51d5c5e74d735878b9e32cc0adf19d1f10aaf9"}, + {file = "cryptography-37.0.2-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:a7d5137e556cc0ea418dca6186deabe9129cee318618eb1ffecbd35bee55ddc1"}, + {file = "cryptography-37.0.2-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aeaba7b5e756ea52c8861c133c596afe93dd716cbcacae23b80bc238202dc023"}, + {file = "cryptography-37.0.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95e590dd70642eb2079d280420a888190aa040ad20f19ec8c6e097e38aa29e06"}, + {file = "cryptography-37.0.2-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:1b9362d34363f2c71b7853f6251219298124aa4cc2075ae2932e64c91a3e2717"}, + {file = "cryptography-37.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e53258e69874a306fcecb88b7534d61820db8a98655662a3dd2ec7f1afd9132f"}, + {file = "cryptography-37.0.2-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:1f3bfbd611db5cb58ca82f3deb35e83af34bb8cf06043fa61500157d50a70982"}, + {file = "cryptography-37.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:419c57d7b63f5ec38b1199a9521d77d7d1754eb97827bbb773162073ccd8c8d4"}, + {file = "cryptography-37.0.2-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:dc26bb134452081859aa21d4990474ddb7e863aa39e60d1592800a8865a702de"}, + {file = "cryptography-37.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3b8398b3d0efc420e777c40c16764d6870bcef2eb383df9c6dbb9ffe12c64452"}, + {file = "cryptography-37.0.2.tar.gz", hash = "sha256:f224ad253cc9cea7568f49077007d2263efa57396a2f2f78114066fd54b5c68e"}, ] docutils = [ - {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, - {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, + {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, + {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, ] idna = [ - {file = "idna-3.2-py3-none-any.whl", hash = "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a"}, - {file = "idna-3.2.tar.gz", hash = "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"}, + {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, + {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, ] importlib-metadata = [ - {file = "importlib_metadata-4.8.1-py3-none-any.whl", hash = "sha256:b618b6d2d5ffa2f16add5697cf57a46c76a56229b0ed1c438322e4e95645bd15"}, - {file = "importlib_metadata-4.8.1.tar.gz", hash = "sha256:f284b3e11256ad1e5d03ab86bb2ccd6f5339688ff17a4d797a0fe7df326f23b1"}, + {file = "importlib_metadata-4.11.4-py3-none-any.whl", hash = "sha256:c58c8eb8a762858f49e18436ff552e83914778e50e9d2f1660535ffb364552ec"}, + {file = "importlib_metadata-4.11.4.tar.gz", hash = "sha256:5d26852efe48c0a32b0509ffbc583fda1a2266545a78d104a6f4aff3db17d700"}, ] iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, ] jeepney = [ - {file = "jeepney-0.7.1-py3-none-any.whl", hash = "sha256:1b5a0ea5c0e7b166b2f5895b91a08c14de8915afda4407fb5022a195224958ac"}, - {file = "jeepney-0.7.1.tar.gz", hash = "sha256:fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f"}, + {file = "jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"}, + {file = "jeepney-0.8.0.tar.gz", hash = "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806"}, ] keyring = [ - {file = "keyring-23.2.1-py3-none-any.whl", hash = "sha256:bd2145a237ed70c8ce72978b497619ddfcae640b6dcf494402d5143e37755c6e"}, - {file = "keyring-23.2.1.tar.gz", hash = "sha256:6334aee6073db2fb1f30892697b1730105b5e9a77ce7e61fca6b435225493efe"}, + {file = "keyring-23.5.1-py3-none-any.whl", hash = "sha256:9ef58314bcc823f426b49ec787539a2d73571b37de4cd498f839803b01acff1e"}, + {file = "keyring-23.5.1.tar.gz", hash = "sha256:dee502cdf18a98211bef428eea11456a33c00718b2f08524fd5727c7f424bffd"}, ] mypy-extensions = [ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, ] packaging = [ - {file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"}, - {file = "packaging-21.0.tar.gz", hash = "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7"}, + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, ] pathspec = [ {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, ] pkginfo = [ - {file = "pkginfo-1.7.1-py2.py3-none-any.whl", hash = "sha256:37ecd857b47e5f55949c41ed061eb51a0bee97a87c969219d144c0e023982779"}, - {file = "pkginfo-1.7.1.tar.gz", hash = "sha256:e7432f81d08adec7297633191bbf0bd47faf13cd8724c3a13250e51d542635bd"}, + {file = "pkginfo-1.8.2-py2.py3-none-any.whl", hash = "sha256:c24c487c6a7f72c66e816ab1796b96ac6c3d14d49338293d2141664330b55ffc"}, + {file = "pkginfo-1.8.2.tar.gz", hash = "sha256:542e0d0b6750e2e21c20179803e40ab50598d8066d51097a0e382cba9eb02bff"}, ] platformdirs = [ - {file = "platformdirs-2.4.0-py3-none-any.whl", hash = "sha256:8868bbe3c3c80d42f20156f22e7131d2fb321f5bc86a2a345375c6481a67021d"}, - {file = "platformdirs-2.4.0.tar.gz", hash = "sha256:367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2"}, + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, ] pluggy = [ {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, ] py = [ - {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"}, - {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"}, + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, ] pycparser = [ - {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, - {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, ] pygments = [ - {file = "Pygments-2.10.0-py3-none-any.whl", hash = "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380"}, - {file = "Pygments-2.10.0.tar.gz", hash = "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"}, + {file = "Pygments-2.12.0-py3-none-any.whl", hash = "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"}, + {file = "Pygments-2.12.0.tar.gz", hash = "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb"}, ] pyparsing = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, ] pytest = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, + {file = "pytest-7.1.2-py3-none-any.whl", hash = "sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c"}, + {file = "pytest-7.1.2.tar.gz", hash = "sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45"}, ] pywin32-ctypes = [ {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"}, {file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"}, ] readme-renderer = [ - {file = "readme_renderer-30.0-py2.py3-none-any.whl", hash = "sha256:3286806450d9961d6e3b5f8a59f77e61503799aca5155c8d8d40359b4e1e1adc"}, - {file = "readme_renderer-30.0.tar.gz", hash = "sha256:8299700d7a910c304072a7601eafada6712a5b011a20139417e1b1e9f04645d8"}, -] -regex = [ - {file = "regex-2021.9.30-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:66696c8336a1b5d1182464f3af3427cc760118f26d0b09a2ddc16a976a4d2637"}, - {file = "regex-2021.9.30-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d87459ad3ab40cd8493774f8a454b2e490d8e729e7e402a0625867a983e4e02"}, - {file = "regex-2021.9.30-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78cf6a1e023caf5e9a982f5377414e1aeac55198831b852835732cfd0a0ca5ff"}, - {file = "regex-2021.9.30-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:255791523f80ea8e48e79af7120b4697ef3b74f6886995dcdb08c41f8e516be0"}, - {file = "regex-2021.9.30-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e502f8d4e5ef714bcc2c94d499684890c94239526d61fdf1096547db91ca6aa6"}, - {file = "regex-2021.9.30-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4907fb0f9b9309a5bded72343e675a252c2589a41871874feace9a05a540241e"}, - {file = "regex-2021.9.30-cp310-cp310-win32.whl", hash = "sha256:3be40f720af170a6b20ddd2ad7904c58b13d2b56f6734ee5d09bbdeed2fa4816"}, - {file = "regex-2021.9.30-cp310-cp310-win_amd64.whl", hash = "sha256:c2b180ed30856dfa70cfe927b0fd38e6b68198a03039abdbeb1f2029758d87e7"}, - {file = "regex-2021.9.30-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e6f2d2f93001801296fe3ca86515eb04915472b5380d4d8752f09f25f0b9b0ed"}, - {file = "regex-2021.9.30-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fa7ba9ab2eba7284e0d7d94f61df7af86015b0398e123331362270d71fab0b9"}, - {file = "regex-2021.9.30-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28040e89a04b60d579c69095c509a4f6a1a5379cd865258e3a186b7105de72c6"}, - {file = "regex-2021.9.30-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f588209d3e4797882cd238195c175290dbc501973b10a581086b5c6bcd095ffb"}, - {file = "regex-2021.9.30-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42952d325439ef223e4e9db7ee6d9087b5c68c5c15b1f9de68e990837682fc7b"}, - {file = "regex-2021.9.30-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cae4099031d80703954c39680323dabd87a69b21262303160776aa0e55970ca0"}, - {file = "regex-2021.9.30-cp36-cp36m-win32.whl", hash = "sha256:0de8ad66b08c3e673b61981b9e3626f8784d5564f8c3928e2ad408c0eb5ac38c"}, - {file = "regex-2021.9.30-cp36-cp36m-win_amd64.whl", hash = "sha256:b345ecde37c86dd7084c62954468a4a655fd2d24fd9b237949dd07a4d0dd6f4c"}, - {file = "regex-2021.9.30-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6f08187136f11e430638c2c66e1db091105d7c2e9902489f0dbc69b44c222b4"}, - {file = "regex-2021.9.30-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b55442650f541d195a535ccec33078c78a9521973fb960923da7515e9ed78fa6"}, - {file = "regex-2021.9.30-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87e9c489aa98f50f367fb26cc9c8908d668e9228d327644d7aa568d47e456f47"}, - {file = "regex-2021.9.30-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e2cb7d4909ed16ed35729d38af585673f1f0833e73dfdf0c18e5be0061107b99"}, - {file = "regex-2021.9.30-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0861e7f6325e821d5c40514c551fd538b292f8cc3960086e73491b9c5d8291d"}, - {file = "regex-2021.9.30-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:81fdc90f999b2147fc62e303440c424c47e5573a9b615ed5d43a5b832efcca9e"}, - {file = "regex-2021.9.30-cp37-cp37m-win32.whl", hash = "sha256:8c1ad61fa024195136a6b7b89538030bd00df15f90ac177ca278df9b2386c96f"}, - {file = "regex-2021.9.30-cp37-cp37m-win_amd64.whl", hash = "sha256:e3770781353a4886b68ef10cec31c1f61e8e3a0be5f213c2bb15a86efd999bc4"}, - {file = "regex-2021.9.30-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9c065d95a514a06b92a5026766d72ac91bfabf581adb5b29bc5c91d4b3ee9b83"}, - {file = "regex-2021.9.30-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9925985be05d54b3d25fd6c1ea8e50ff1f7c2744c75bdc4d3b45c790afa2bcb3"}, - {file = "regex-2021.9.30-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470f2c882f2672d8eeda8ab27992aec277c067d280b52541357e1acd7e606dae"}, - {file = "regex-2021.9.30-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ad0517df22a97f1da20d8f1c8cb71a5d1997fa383326b81f9cf22c9dadfbdf34"}, - {file = "regex-2021.9.30-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9e30838df7bfd20db6466fd309d9b580d32855f8e2c2e6d74cf9da27dcd9b63"}, - {file = "regex-2021.9.30-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b34d2335d6aedec7dcadd3f8283b9682fadad8b9b008da8788d2fce76125ebe"}, - {file = "regex-2021.9.30-cp38-cp38-win32.whl", hash = "sha256:e07049cece3462c626d650e8bf42ddbca3abf4aa08155002c28cb6d9a5a281e2"}, - {file = "regex-2021.9.30-cp38-cp38-win_amd64.whl", hash = "sha256:37868075eda024470bd0feab872c692ac4ee29db1e14baec103257bf6cc64346"}, - {file = "regex-2021.9.30-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d331f238a7accfbbe1c4cd1ba610d4c087b206353539331e32a8f05345c74aec"}, - {file = "regex-2021.9.30-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6348a7ab2a502cbdd0b7fd0496d614007489adb7361956b38044d1d588e66e04"}, - {file = "regex-2021.9.30-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce7b1cca6c23f19bee8dc40228d9c314d86d1e51996b86f924aca302fc8f8bf9"}, - {file = "regex-2021.9.30-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1f1125bc5172ab3a049bc6f4b9c0aae95a2a2001a77e6d6e4239fa3653e202b5"}, - {file = "regex-2021.9.30-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:638e98d069b14113e8afba6a54d1ca123f712c0d105e67c1f9211b2a825ef926"}, - {file = "regex-2021.9.30-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9a0b0db6b49da7fa37ca8eddf9f40a8dbc599bad43e64f452284f37b6c34d91c"}, - {file = "regex-2021.9.30-cp39-cp39-win32.whl", hash = "sha256:9910869c472e5a6728680ca357b5846546cbbd2ab3ad5bef986ef0bc438d0aa6"}, - {file = "regex-2021.9.30-cp39-cp39-win_amd64.whl", hash = "sha256:3b71213ec3bad9a5a02e049f2ec86b3d7c3e350129ae0f4e2f99c12b5da919ed"}, - {file = "regex-2021.9.30.tar.gz", hash = "sha256:81e125d9ba54c34579e4539a967e976a3c56150796674aec318b1b2f49251be7"}, + {file = "readme_renderer-35.0-py3-none-any.whl", hash = "sha256:73b84905d091c31f36e50b4ae05ae2acead661f6a09a9abb4df7d2ddcdb6a698"}, + {file = "readme_renderer-35.0.tar.gz", hash = "sha256:a727999acfc222fc21d82a12ed48c957c4989785e5865807c65a487d21677497"}, ] requests = [ - {file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"}, - {file = "requests-2.26.0.tar.gz", hash = "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"}, + {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, + {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, ] requests-toolbelt = [ {file = "requests-toolbelt-0.9.1.tar.gz", hash = "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"}, {file = "requests_toolbelt-0.9.1-py2.py3-none-any.whl", hash = "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f"}, ] rfc3986 = [ - {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"}, - {file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"}, + {file = "rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd"}, + {file = "rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c"}, +] +rich = [ + {file = "rich-12.4.4-py3-none-any.whl", hash = "sha256:d2bbd99c320a2532ac71ff6a3164867884357da3e3301f0240090c5d2fdac7ec"}, + {file = "rich-12.4.4.tar.gz", hash = "sha256:4c586de507202505346f3e32d1363eb9ed6932f0c2f63184dea88983ff4971e2"}, ] secretstorage = [ - {file = "SecretStorage-3.3.1-py3-none-any.whl", hash = "sha256:422d82c36172d88d6a0ed5afdec956514b189ddbfb72fefab0c8a1cee4eaf71f"}, - {file = "SecretStorage-3.3.1.tar.gz", hash = "sha256:fd666c51a6bf200643495a04abb261f83229dcb6fd8472ec393df7ffc8b6f195"}, + {file = "SecretStorage-3.3.2-py3-none-any.whl", hash = "sha256:755dc845b6ad76dcbcbc07ea3da75ae54bb1ea529eb72d15f83d26499a5df319"}, + {file = "SecretStorage-3.3.2.tar.gz", hash = "sha256:0a8eb9645b320881c222e827c26f4cfcf55363e8b374a021981ef886657a912f"}, ] six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] -toml = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] tomli = [ - {file = "tomli-1.2.1-py3-none-any.whl", hash = "sha256:8dd0e9524d6f386271a36b41dbf6c57d8e32fd96fd22b6584679dc569d20899f"}, - {file = "tomli-1.2.1.tar.gz", hash = "sha256:a5b75cb6f3968abb47af1b40c1819dc519ea82bcc065776a866e8d74c5ca9442"}, -] -tqdm = [ - {file = "tqdm-4.62.3-py2.py3-none-any.whl", hash = "sha256:8dd278a422499cd6b727e6ae4061c40b48fce8b76d1ccbf5d34fca9b7f925b0c"}, - {file = "tqdm-4.62.3.tar.gz", hash = "sha256:d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d"}, + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] twine = [ - {file = "twine-3.4.2-py3-none-any.whl", hash = "sha256:087328e9bb405e7ce18527a2dca4042a84c7918658f951110b38bc135acab218"}, - {file = "twine-3.4.2.tar.gz", hash = "sha256:4caec0f1ed78dc4c9b83ad537e453d03ce485725f2aea57f1bb3fdde78dae936"}, + {file = "twine-4.0.0-py3-none-any.whl", hash = "sha256:6f7496cf14a3a8903474552d5271c79c71916519edb42554f23f42a8563498a9"}, + {file = "twine-4.0.0.tar.gz", hash = "sha256:817aa0c0bdc02a5ebe32051e168e23c71a0608334e624c793011f120dbbc05b7"}, ] typed-ast = [ - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6"}, - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075"}, - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528"}, - {file = "typed_ast-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428"}, - {file = "typed_ast-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3"}, - {file = "typed_ast-1.4.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f"}, - {file = "typed_ast-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363"}, - {file = "typed_ast-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7"}, - {file = "typed_ast-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899"}, - {file = "typed_ast-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c"}, - {file = "typed_ast-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805"}, - {file = "typed_ast-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39"}, - {file = "typed_ast-1.4.3-cp38-cp38-win32.whl", hash = "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927"}, - {file = "typed_ast-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40"}, - {file = "typed_ast-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3"}, - {file = "typed_ast-1.4.3-cp39-cp39-win32.whl", hash = "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808"}, - {file = "typed_ast-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c"}, - {file = "typed_ast-1.4.3.tar.gz", hash = "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"}, + {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, + {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, + {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, + {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, + {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, + {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, + {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, + {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, + {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, + {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, + {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, + {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, + {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, + {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, + {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, + {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, + {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, ] typing-extensions = [ - {file = "typing_extensions-3.10.0.2-py2-none-any.whl", hash = "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7"}, - {file = "typing_extensions-3.10.0.2-py3-none-any.whl", hash = "sha256:f1d25edafde516b146ecd0613dabcc61409817af4766fbbcfb8d1ad4ec441a34"}, - {file = "typing_extensions-3.10.0.2.tar.gz", hash = "sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e"}, + {file = "typing_extensions-4.2.0-py3-none-any.whl", hash = "sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708"}, + {file = "typing_extensions-4.2.0.tar.gz", hash = "sha256:f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376"}, ] urllib3 = [ - {file = "urllib3-1.26.7-py2.py3-none-any.whl", hash = "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"}, - {file = "urllib3-1.26.7.tar.gz", hash = "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece"}, + {file = "urllib3-1.26.9-py2.py3-none-any.whl", hash = "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14"}, + {file = "urllib3-1.26.9.tar.gz", hash = "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"}, ] webencodings = [ {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, ] zipp = [ - {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"}, - {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"}, + {file = "zipp-3.8.0-py3-none-any.whl", hash = "sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099"}, + {file = "zipp-3.8.0.tar.gz", hash = "sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad"}, ] diff --git a/scripts/set_environment.py b/scripts/set_environment.py index fe2f0f5..2e86157 100644 --- a/scripts/set_environment.py +++ b/scripts/set_environment.py @@ -4,12 +4,37 @@ from jdk4py import JAVA_VERSION -_BUILD_VERSION = 1 +_BUILD_VERSION = 0 -_SYSTEM_TO_CONDA_ARCH = { - "Darwin": "osx-64", - "Linux": "linux-64", - "Windows": "win-64", + +# Platforms taken from https://pypi.org/project/numpy/1.22.4/#files and https://anaconda.org/conda-forge/numpy/files?version=1.22.4. +_SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM = { + "Darwin": { + "arm64": { + "conda": "osx-arm64", + "wheel": "macosx_11_0_arm64", + }, + "x86_64": { + "conda": "osx-64", + "wheel": "macosx_11_0_x86_64", + }, + }, + "Linux": { + "aarch64": { + "conda": "linux-aarch64", + "wheel": "manylinux_2_17_aarch64.manylinux2014_aarch64", + }, + "x86_64": { + "conda": "linux-64", + "wheel": "manylinux_2_17_x86_64.manylinux2014_x86_64", + }, + }, + "Windows": { + "AMD64": { + "conda": "win-64", + "wheel": "win_amd64", + }, + }, } @@ -21,10 +46,26 @@ def set_env_variables_in_github_job(variables: Mapping[str, str]): if __name__ == "__main__": + architecture = platform.machine() + system = platform.system() + set_env_variables_in_github_job( { "JDK4PY_BUILD_NUMBER": str(_BUILD_VERSION), - "JDK4PY_CONDA_ARCH": _SYSTEM_TO_CONDA_ARCH[platform.system()], + "JDK4PY_CONDA_PLATFORM": _SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM[ + system + ][ + architecture + ][ + "conda" + ], "JDK4PY_JAVA_VERSION": ".".join(str(number) for number in JAVA_VERSION), + "JDK4PY_WHEEL_PLATFORM": _SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM[ + system + ][ + architecture + ][ + "wheel" + ], } ) diff --git a/setup.py b/setup.py index 56961dc..49d3077 100644 --- a/setup.py +++ b/setup.py @@ -1,10 +1,10 @@ -import platform +import os from pathlib import Path from sys import argv from setuptools import find_packages, setup -_LIB_VERSION = 1 +_LIB_VERSION = 0 _NAME = "jdk4py" _PROJECT_DIRECTORY = Path(__file__).parent @@ -29,17 +29,11 @@ _PLATFORM_NAME_ARGUMENT_NAME = "--plat-name" -_SYSTEM_TO_PLATFORM_NAME = { - "Darwin": "macosx_10_9_x86_64", - "Linux": "manylinux1_x86_64", - "Windows": "win_amd64", -} - def _add_platform_name_argument_when_building_python_wheel(): if "bdist_wheel" in argv and _PLATFORM_NAME_ARGUMENT_NAME not in argv: argv.append(_PLATFORM_NAME_ARGUMENT_NAME) - argv.append(_SYSTEM_TO_PLATFORM_NAME[platform.system()]) + argv.append(os.environ["JDK4PY_WHEEL_PLATFORM"]) setup_args = dict( @@ -54,9 +48,11 @@ def _add_platform_name_argument_when_building_python_wheel(): packages=find_packages(exclude=["scripts", "tests"]), package_data={_NAME: [*_JAVA_FILES, _JAVA_VERSION_FILENAME, "py.typed"]}, classifiers=[ - "Development Status :: 4 - Beta", + "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", - "Operating System :: OS Independent", + "Operating System :: MacOS", + "Operating System :: Microsoft :: Windows", + "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", ], keywords=["jdk", "java", "jvm", "jre"], diff --git a/tests/test_jdk4py.py b/tests/test_jdk4py.py index ec5dff1..3cf7600 100644 --- a/tests/test_jdk4py.py +++ b/tests/test_jdk4py.py @@ -17,7 +17,7 @@ def test_java_home(): def test_java_version(): output = check_output([str(JAVA), "-version"], stderr=STDOUT, text=True) match = re.match(r'^openjdk version "(?P[^"]+)"', output) - assert match + assert match, f"Unexpected output:\n{output}" version = match.group("version") assert version == ".".join(str(number) for number in JAVA_VERSION) From 2879ff73fededae9f9ae89b6071879d52b2b2596 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 16:04:50 +0200 Subject: [PATCH 02/26] fixup! Add support for ARM64 architectures --- .github/workflows/deployment.yaml | 2 +- .github/workflows/test.yaml | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/deployment.yaml b/.github/workflows/deployment.yaml index 6209101..99b91a3 100644 --- a/.github/workflows/deployment.yaml +++ b/.github/workflows/deployment.yaml @@ -38,7 +38,7 @@ jobs: env: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} shell: bash - run: poetry run twine upload dist/jdk4py-*-${{ env.JDK4PY_WHEEL_PLATFORM }}.whl --username __token__ --password "$PYPI_TOKEN" + run: poetry run twine upload dist/jdk4py-*.whl --username __token__ --password "$PYPI_TOKEN" - name: Upload Conda package env: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index ee087cc..7e85ab1 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -12,20 +12,20 @@ jobs: - x64 os: - macos-latest - - ubuntu-latest - - windows-latest + # - ubuntu-latest + # - windows-latest python: - - "3.7" - - "3.8" - - "3.9" + # - "3.7" + # - "3.8" + # - "3.9" - "3.10" include: - - os: macos-latest - architecture: aarch64 + # - os: macos-latest + # architecture: aarch64 - os: ubuntu-latest architecture: aarch64 fail-fast: false - name: Test on ${{ matrix.os }} with Python ${{ matrix.python }} + name: Test on ${{ matrix.os }} (${{ matrix.architecture }}) with Python ${{ matrix.python }} steps: - uses: actions/checkout@v2 @@ -42,7 +42,7 @@ jobs: with: if-no-files-found: error name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}.whl - path: dist/jdk4py-*-${{ env.JDK4PY_WHEEL_PLATFORM }}.whl + path: dist/jdk4py-*.whl # No need to lint for each OS and Python version - if: matrix.os == 'ubuntu-latest' && matrix.python == '3.10' @@ -59,15 +59,15 @@ jobs: architecture: - x64 os: - - macos-latest + # - macos-latest - ubuntu-latest - - windows-latest + # - windows-latest include: - - os: macos-latest - architecture: aarch64 + # - os: macos-latest + # architecture: aarch64 - os: ubuntu-latest architecture: aarch64 - name: Test Conda packaging + name: Test Conda packaging on ${{ matrix.os }} (${{ matrix.architecture }}) steps: - uses: actions/checkout@v2 From c083910fc118ee6b7513ee4e0af503aa4b851872 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 16:13:01 +0200 Subject: [PATCH 03/26] fixup! Add support for ARM64 architectures --- .github/workflows/deployment.yaml | 2 +- .github/workflows/test.yaml | 8 ++++---- conda.recipe/conda_build_config.yaml | 6 +++--- setup.py | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/deployment.yaml b/.github/workflows/deployment.yaml index 99b91a3..e8e1793 100644 --- a/.github/workflows/deployment.yaml +++ b/.github/workflows/deployment.yaml @@ -21,7 +21,7 @@ jobs: architecture: aarch64 - os: ubuntu-latest architecture: aarch64 - name: Deploy on ${{ matrix.os }} + name: Deploy on ${{ matrix.os }}-${{ matrix.architecture }} steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 7e85ab1..5c40d3c 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -25,7 +25,7 @@ jobs: - os: ubuntu-latest architecture: aarch64 fail-fast: false - name: Test on ${{ matrix.os }} (${{ matrix.architecture }}) with Python ${{ matrix.python }} + name: Test on ${{ matrix.os }}-${{ matrix.architecture }} with Python ${{ matrix.python }} steps: - uses: actions/checkout@v2 @@ -49,8 +49,8 @@ jobs: name: Check formatting run: poetry run black --check . - - name: Test - run: poetry run pytest + # - name: Test + # run: poetry run pytest conda-package: runs-on: ${{ matrix.os }} @@ -67,7 +67,7 @@ jobs: # architecture: aarch64 - os: ubuntu-latest architecture: aarch64 - name: Test Conda packaging on ${{ matrix.os }} (${{ matrix.architecture }}) + name: Test Conda packaging on ${{ matrix.os }}-${{ matrix.architecture }} steps: - uses: actions/checkout@v2 diff --git a/conda.recipe/conda_build_config.yaml b/conda.recipe/conda_build_config.yaml index ca82dd0..d540b23 100644 --- a/conda.recipe/conda_build_config.yaml +++ b/conda.recipe/conda_build_config.yaml @@ -1,5 +1,5 @@ python: - - "3.7" - - "3.8" - - "3.9" + # - "3.7" + # - "3.8" + # - "3.9" - "3.10" diff --git a/setup.py b/setup.py index 49d3077..02621df 100644 --- a/setup.py +++ b/setup.py @@ -31,9 +31,9 @@ def _add_platform_name_argument_when_building_python_wheel(): - if "bdist_wheel" in argv and _PLATFORM_NAME_ARGUMENT_NAME not in argv: - argv.append(_PLATFORM_NAME_ARGUMENT_NAME) - argv.append(os.environ["JDK4PY_WHEEL_PLATFORM"]) + platform = os.environ.get("JDK4PY_WHEEL_PLATFORM") + if platform and "bdist_wheel" in argv and _PLATFORM_NAME_ARGUMENT_NAME not in argv: + argv.extend([_PLATFORM_NAME_ARGUMENT_NAME, platform]) setup_args = dict( From 2f5c867e500dab70a5aa7824f6588e70b20e3135 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 16:26:51 +0200 Subject: [PATCH 04/26] fixup! Add support for ARM64 architectures --- .github/workflows/test.yaml | 22 ++++++++++++---------- conda.recipe/meta.yaml | 20 ++++++++++---------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 5c40d3c..3f987bb 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -9,21 +9,22 @@ jobs: strategy: matrix: architecture: + - aarch64 - x64 os: - macos-latest - # - ubuntu-latest + - ubuntu-latest # - windows-latest python: # - "3.7" # - "3.8" # - "3.9" - "3.10" - include: - # - os: macos-latest - # architecture: aarch64 - - os: ubuntu-latest + exclude: + - os: macos-latest architecture: aarch64 + - os: ubuntu-latest + architecture: x64 fail-fast: false name: Test on ${{ matrix.os }}-${{ matrix.architecture }} with Python ${{ matrix.python }} steps: @@ -57,16 +58,17 @@ jobs: strategy: matrix: architecture: + - aarch64 - x64 os: - # - macos-latest + - macos-latest - ubuntu-latest # - windows-latest - include: - # - os: macos-latest - # architecture: aarch64 - - os: ubuntu-latest + exclude: + - os: macos-latest architecture: aarch64 + - os: ubuntu-latest + architecture: x64 name: Test Conda packaging on ${{ matrix.os }}-${{ matrix.architecture }} steps: - uses: actions/checkout@v2 diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index f90a7e8..ad9e89c 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -19,16 +19,16 @@ requirements: run: - python {{ python }} -test: - source_files: - - tests/** - - scripts/locales.json - requires: - - pytest - commands: - - pytest tests - imports: - - jdk4py +# test: +# source_files: +# - tests/** +# - scripts/locales.json +# requires: +# - pytest +# commands: +# - pytest tests +# imports: +# - jdk4py about: home: https://github.com/atoti/jdk4py From ff0ae8ce170b81599757231e49d87f5b091464c0 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 17:23:04 +0200 Subject: [PATCH 05/26] fixup! Add support for ARM64 architectures --- .github/actions/build-jdk/action.yaml | 2 + .github/workflows/test.yaml | 60 +++++++++++++-------------- scripts/build_jdk.py | 2 +- scripts/set_environment.py | 25 +++++++---- tests/test_jdk4py.py | 8 ++-- 5 files changed, 55 insertions(+), 42 deletions(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index 75fde09..a975f0d 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -26,6 +26,8 @@ runs: - name: Set environment variables shell: bash run: poetry run python scripts/set_environment.py + env: + JDK4PY_ARCHITECTURE: ${{ inputs.architecture }} - uses: actions/setup-java@v2 with: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 3f987bb..1e2f04e 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -53,36 +53,36 @@ jobs: # - name: Test # run: poetry run pytest - conda-package: - runs-on: ${{ matrix.os }} - strategy: - matrix: - architecture: - - aarch64 - - x64 - os: - - macos-latest - - ubuntu-latest - # - windows-latest - exclude: - - os: macos-latest - architecture: aarch64 - - os: ubuntu-latest - architecture: x64 - name: Test Conda packaging on ${{ matrix.os }}-${{ matrix.architecture }} - steps: - - uses: actions/checkout@v2 + # conda-package: + # runs-on: ${{ matrix.os }} + # strategy: + # matrix: + # architecture: + # - aarch64 + # - x64 + # os: + # - macos-latest + # - ubuntu-latest + # # - windows-latest + # exclude: + # - os: macos-latest + # architecture: aarch64 + # - os: ubuntu-latest + # architecture: x64 + # name: Test Conda packaging on ${{ matrix.os }}-${{ matrix.architecture }} + # steps: + # - uses: actions/checkout@v2 - - uses: ./.github/actions/build-jdk - with: - architecture: ${{ matrix.architecture }} - # No need to test for each Python version - python-version: "3.10" + # - uses: ./.github/actions/build-jdk + # with: + # architecture: ${{ matrix.architecture }} + # # No need to test for each Python version + # python-version: "3.10" - - uses: ./.github/actions/create-conda-package + # - uses: ./.github/actions/create-conda-package - - uses: actions/upload-artifact@v2 - with: - if-no-files-found: error - name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}-conda-packages - path: dist/${{ env.JDK4PY_CONDA_PLATFORM }}/jdk4py-*.tar.bz2 + # - uses: actions/upload-artifact@v2 + # with: + # if-no-files-found: error + # name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}-conda-packages + # path: dist/${{ env.JDK4PY_CONDA_PLATFORM }}/jdk4py-*.tar.bz2 diff --git a/scripts/build_jdk.py b/scripts/build_jdk.py index eaa6f88..84e4dc2 100644 --- a/scripts/build_jdk.py +++ b/scripts/build_jdk.py @@ -21,7 +21,7 @@ ] -def build_java_executable_files(): +def build_java_executable_files() -> None: rmtree(_JAVA_PATH, ignore_errors=True) locales = json.loads((_SCRIPTS_DIRECTORY / "locales.json").read_bytes()) diff --git a/scripts/set_environment.py b/scripts/set_environment.py index 2e86157..3031fe9 100644 --- a/scripts/set_environment.py +++ b/scripts/set_environment.py @@ -7,38 +7,47 @@ _BUILD_VERSION = 0 +_AARCH64 = "aarch64" +_X64 = "x64" + # Platforms taken from https://pypi.org/project/numpy/1.22.4/#files and https://anaconda.org/conda-forge/numpy/files?version=1.22.4. _SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM = { "Darwin": { - "arm64": { + _AARCH64: { "conda": "osx-arm64", "wheel": "macosx_11_0_arm64", }, - "x86_64": { + _X64: { "conda": "osx-64", "wheel": "macosx_11_0_x86_64", }, }, "Linux": { - "aarch64": { + _AARCH64: { "conda": "linux-aarch64", "wheel": "manylinux_2_17_aarch64.manylinux2014_aarch64", }, - "x86_64": { + _X64: { "conda": "linux-64", "wheel": "manylinux_2_17_x86_64.manylinux2014_x86_64", }, }, "Windows": { - "AMD64": { + _X64: { "conda": "win-64", "wheel": "win_amd64", }, }, } +_MACHINE_TO_ARCHITECTURE = { + "arm64": _AARCH64, + "AMD64": _X64, + **{architecture: architecture for architecture in [_AARCH64, _X64]}, +} + -def set_env_variables_in_github_job(variables: Mapping[str, str]): +def set_env_variables_in_github_job(variables: Mapping[str, str]) -> None: # See https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable. with open(os.environ["GITHUB_ENV"], "a") as environment_file: for name, value in variables.items(): @@ -46,7 +55,9 @@ def set_env_variables_in_github_job(variables: Mapping[str, str]): if __name__ == "__main__": - architecture = platform.machine() + architecture = os.environ.get( + "JDK4PY_ARCHITECTURE", _MACHINE_TO_ARCHITECTURE[platform.machine()] + ) system = platform.system() set_env_variables_in_github_job( diff --git a/tests/test_jdk4py.py b/tests/test_jdk4py.py index 3cf7600..0a101f2 100644 --- a/tests/test_jdk4py.py +++ b/tests/test_jdk4py.py @@ -10,11 +10,11 @@ LOCALES_PATH = TESTS_DIRECTORY.parent / "scripts" / "locales.json" -def test_java_home(): +def test_java_home() -> None: assert JAVA == JAVA_HOME / "bin" / "java" -def test_java_version(): +def test_java_version() -> None: output = check_output([str(JAVA), "-version"], stderr=STDOUT, text=True) match = re.match(r'^openjdk version "(?P[^"]+)"', output) assert match, f"Unexpected output:\n{output}" @@ -22,7 +22,7 @@ def test_java_version(): assert version == ".".join(str(number) for number in JAVA_VERSION) -def test_jar_execution(): +def test_jar_execution() -> None: jar_path = TEST_RESOURCES_DIRECTORY / "HelloWorld.jar" output = check_output( [str(JAVA), "-jar", str(jar_path.absolute())], stderr=STDOUT, text=True @@ -30,7 +30,7 @@ def test_jar_execution(): assert output.strip() == "Hello, World" -def test_available_locales(): +def test_available_locales() -> None: path = TEST_RESOURCES_DIRECTORY / "PrintAvailableLocales.jar" output = check_output( [str(JAVA), "-jar", str(path.absolute())], stderr=STDOUT, text=True From 46e3809066b6a55974f65e78df8460fd5dcf138d Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 17:27:18 +0200 Subject: [PATCH 06/26] fixup! Add support for ARM64 architectures --- scripts/set_environment.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/set_environment.py b/scripts/set_environment.py index 3031fe9..5fdffec 100644 --- a/scripts/set_environment.py +++ b/scripts/set_environment.py @@ -10,6 +10,7 @@ _AARCH64 = "aarch64" _X64 = "x64" + # Platforms taken from https://pypi.org/project/numpy/1.22.4/#files and https://anaconda.org/conda-forge/numpy/files?version=1.22.4. _SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM = { "Darwin": { @@ -41,8 +42,9 @@ } _MACHINE_TO_ARCHITECTURE = { - "arm64": _AARCH64, "AMD64": _X64, + "arm64": _AARCH64, + "x86_64": _X64, **{architecture: architecture for architecture in [_AARCH64, _X64]}, } From 250e24fc66d2fdba0189ef7daeec5b0d58d305a3 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 17:54:49 +0200 Subject: [PATCH 07/26] fixup! Add support for ARM64 architectures --- scripts/set_environment.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/set_environment.py b/scripts/set_environment.py index 5fdffec..7a03e8a 100644 --- a/scripts/set_environment.py +++ b/scripts/set_environment.py @@ -11,7 +11,7 @@ _X64 = "x64" -# Platforms taken from https://pypi.org/project/numpy/1.22.4/#files and https://anaconda.org/conda-forge/numpy/files?version=1.22.4. +# Platforms taken from https://pypi.org/project/torch/1.11.0/#files and https://anaconda.org/conda-forge/numpy/files?version=1.22.4. _SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM = { "Darwin": { _AARCH64: { @@ -20,17 +20,17 @@ }, _X64: { "conda": "osx-64", - "wheel": "macosx_11_0_x86_64", + "wheel": "macosx_10_9_x86_64", }, }, "Linux": { _AARCH64: { "conda": "linux-aarch64", - "wheel": "manylinux_2_17_aarch64.manylinux2014_aarch64", + "wheel": "manylinux2014_aarch64", }, _X64: { "conda": "linux-64", - "wheel": "manylinux_2_17_x86_64.manylinux2014_x86_64", + "wheel": "manylinux1_x86_64", }, }, "Windows": { From 890eb8f0f5ae253bc42d6561d6823b4a542b1777 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 18:14:42 +0200 Subject: [PATCH 08/26] fixup! Add support for ARM64 architectures --- scripts/__init__.py | 0 scripts/_architectures.py | 2 ++ scripts/build_jdk.py | 22 +++++++++++++++++++++- scripts/set_environment.py | 27 ++++++++------------------- 4 files changed, 31 insertions(+), 20 deletions(-) create mode 100644 scripts/__init__.py create mode 100644 scripts/_architectures.py diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/_architectures.py b/scripts/_architectures.py new file mode 100644 index 0000000..5d490d3 --- /dev/null +++ b/scripts/_architectures.py @@ -0,0 +1,2 @@ +AARCH64 = "aarch64" +X64 = "x64" diff --git a/scripts/build_jdk.py b/scripts/build_jdk.py index 84e4dc2..214623e 100644 --- a/scripts/build_jdk.py +++ b/scripts/build_jdk.py @@ -1,13 +1,25 @@ import json +import os +import platform from pathlib import Path -from shutil import rmtree +from shutil import copytree, rmtree from subprocess import check_call +from ._architectures import AARCH64, X64 + _SCRIPTS_DIRECTORY = Path(__file__).parent _PROJECT_DIRECTORY = _SCRIPTS_DIRECTORY.parent _JAVA_PATH = _PROJECT_DIRECTORY / "jdk4py" / "java-runtime" +_MACHINE_TO_ARCHITECTURE = { + "AMD64": X64, + "arm64": AARCH64, + "x86_64": X64, + **{architecture: architecture for architecture in [AARCH64, X64]}, +} + + _MODULES = [ "jdk.management.agent", "java.se", @@ -24,6 +36,14 @@ def build_java_executable_files() -> None: rmtree(_JAVA_PATH, ignore_errors=True) + current_architecture = _MACHINE_TO_ARCHITECTURE[platform.machine()] + if current_architecture != os.environ["JDK4PY_ARCHITECTURE"]: + # The target architecture is not the same as the one of the current machine. + # `jlink` would produce a JDK unusable on the target architecture. + # The whole downloaded JDK will be used instead. + copytree(os.environ["JAVA_HOME"], _JAVA_PATH) + return + locales = json.loads((_SCRIPTS_DIRECTORY / "locales.json").read_bytes()) check_call( diff --git a/scripts/set_environment.py b/scripts/set_environment.py index 7a03e8a..ed633f1 100644 --- a/scripts/set_environment.py +++ b/scripts/set_environment.py @@ -4,50 +4,41 @@ from jdk4py import JAVA_VERSION -_BUILD_VERSION = 0 - +from ._architectures import AARCH64, X64 -_AARCH64 = "aarch64" -_X64 = "x64" +_BUILD_VERSION = 0 # Platforms taken from https://pypi.org/project/torch/1.11.0/#files and https://anaconda.org/conda-forge/numpy/files?version=1.22.4. _SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM = { "Darwin": { - _AARCH64: { + AARCH64: { "conda": "osx-arm64", "wheel": "macosx_11_0_arm64", }, - _X64: { + X64: { "conda": "osx-64", "wheel": "macosx_10_9_x86_64", }, }, "Linux": { - _AARCH64: { + AARCH64: { "conda": "linux-aarch64", "wheel": "manylinux2014_aarch64", }, - _X64: { + X64: { "conda": "linux-64", "wheel": "manylinux1_x86_64", }, }, "Windows": { - _X64: { + X64: { "conda": "win-64", "wheel": "win_amd64", }, }, } -_MACHINE_TO_ARCHITECTURE = { - "AMD64": _X64, - "arm64": _AARCH64, - "x86_64": _X64, - **{architecture: architecture for architecture in [_AARCH64, _X64]}, -} - def set_env_variables_in_github_job(variables: Mapping[str, str]) -> None: # See https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable. @@ -57,9 +48,7 @@ def set_env_variables_in_github_job(variables: Mapping[str, str]) -> None: if __name__ == "__main__": - architecture = os.environ.get( - "JDK4PY_ARCHITECTURE", _MACHINE_TO_ARCHITECTURE[platform.machine()] - ) + architecture = os.environ["JDK4PY_ARCHITECTURE"] system = platform.system() set_env_variables_in_github_job( From 2766d77de27a357901605e43dda8c358a64c4f74 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 18:18:00 +0200 Subject: [PATCH 09/26] fixup! Add support for ARM64 architectures --- scripts/_architectures.py | 2 -- scripts/build_jdk.py | 10 ++++------ scripts/set_environment.py | 11 +++++------ 3 files changed, 9 insertions(+), 14 deletions(-) delete mode 100644 scripts/_architectures.py diff --git a/scripts/_architectures.py b/scripts/_architectures.py deleted file mode 100644 index 5d490d3..0000000 --- a/scripts/_architectures.py +++ /dev/null @@ -1,2 +0,0 @@ -AARCH64 = "aarch64" -X64 = "x64" diff --git a/scripts/build_jdk.py b/scripts/build_jdk.py index 214623e..1c6ac82 100644 --- a/scripts/build_jdk.py +++ b/scripts/build_jdk.py @@ -5,18 +5,16 @@ from shutil import copytree, rmtree from subprocess import check_call -from ._architectures import AARCH64, X64 - _SCRIPTS_DIRECTORY = Path(__file__).parent _PROJECT_DIRECTORY = _SCRIPTS_DIRECTORY.parent _JAVA_PATH = _PROJECT_DIRECTORY / "jdk4py" / "java-runtime" _MACHINE_TO_ARCHITECTURE = { - "AMD64": X64, - "arm64": AARCH64, - "x86_64": X64, - **{architecture: architecture for architecture in [AARCH64, X64]}, + "AMD64": "x64", + "arm64": "aarch64", + "x86_64": "x64", + **{architecture: architecture for architecture in ["aarch64", "x64"]}, } diff --git a/scripts/set_environment.py b/scripts/set_environment.py index ed633f1..2181ee9 100644 --- a/scripts/set_environment.py +++ b/scripts/set_environment.py @@ -4,7 +4,6 @@ from jdk4py import JAVA_VERSION -from ._architectures import AARCH64, X64 _BUILD_VERSION = 0 @@ -12,27 +11,27 @@ # Platforms taken from https://pypi.org/project/torch/1.11.0/#files and https://anaconda.org/conda-forge/numpy/files?version=1.22.4. _SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM = { "Darwin": { - AARCH64: { + "aarch64": { "conda": "osx-arm64", "wheel": "macosx_11_0_arm64", }, - X64: { + "x64": { "conda": "osx-64", "wheel": "macosx_10_9_x86_64", }, }, "Linux": { - AARCH64: { + "aarch64": { "conda": "linux-aarch64", "wheel": "manylinux2014_aarch64", }, - X64: { + "x64": { "conda": "linux-64", "wheel": "manylinux1_x86_64", }, }, "Windows": { - X64: { + "x64": { "conda": "win-64", "wheel": "win_amd64", }, From 539ef60191a4c022ac3965157b66474088584ed6 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 18:22:41 +0200 Subject: [PATCH 10/26] fixup! Add support for ARM64 architectures --- .github/actions/build-jdk/action.yaml | 2 ++ .github/workflows/test.yaml | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index a975f0d..e76dc7a 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -38,3 +38,5 @@ runs: - name: Build JDK shell: bash run: poetry run python scripts/build_jdk.py + env: + JDK4PY_ARCHITECTURE: ${{ inputs.architecture }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 1e2f04e..fb263cc 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -12,7 +12,7 @@ jobs: - aarch64 - x64 os: - - macos-latest + # - macos-latest - ubuntu-latest # - windows-latest python: @@ -21,8 +21,8 @@ jobs: # - "3.9" - "3.10" exclude: - - os: macos-latest - architecture: aarch64 + # - os: macos-latest + # architecture: aarch64 - os: ubuntu-latest architecture: x64 fail-fast: false From f058d199de43c6309a76c5d926a260b0f516d599 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 18:32:24 +0200 Subject: [PATCH 11/26] Try with jmods --- scripts/build_jdk.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/scripts/build_jdk.py b/scripts/build_jdk.py index 1c6ac82..17cf8eb 100644 --- a/scripts/build_jdk.py +++ b/scripts/build_jdk.py @@ -34,13 +34,13 @@ def build_java_executable_files() -> None: rmtree(_JAVA_PATH, ignore_errors=True) - current_architecture = _MACHINE_TO_ARCHITECTURE[platform.machine()] - if current_architecture != os.environ["JDK4PY_ARCHITECTURE"]: - # The target architecture is not the same as the one of the current machine. - # `jlink` would produce a JDK unusable on the target architecture. - # The whole downloaded JDK will be used instead. - copytree(os.environ["JAVA_HOME"], _JAVA_PATH) - return + # current_architecture = _MACHINE_TO_ARCHITECTURE[platform.machine()] + # if current_architecture != os.environ["JDK4PY_ARCHITECTURE"]: + # # The target architecture is not the same as the one of the current machine. + # # `jlink` would produce a JDK unusable on the target architecture. + # # The whole downloaded JDK will be used instead. + # copytree(os.environ["JAVA_HOME"], _JAVA_PATH) + # return locales = json.loads((_SCRIPTS_DIRECTORY / "locales.json").read_bytes()) @@ -54,6 +54,8 @@ def build_java_executable_files() -> None: "--add-modules", ",".join(_MODULES), f"--include-locales={','.join(locales)}", + "--module-path", + f"""{os.environ["JAVA_HOME"]}/jmods""", "--output", str(_JAVA_PATH), ], From 269f0089360e0813ee10a8d1e90ad336cead1b09 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 18:36:28 +0200 Subject: [PATCH 12/26] fixup! Add support for ARM64 architectures --- .github/actions/build-jdk/action.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index e76dc7a..b285ec9 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -35,6 +35,9 @@ runs: distribution: temurin java-version: ${{ env.JDK4PY_JAVA_VERSION }} + - run: ls -la ${{ env.JAVA_HOME }} + shell: bash + - name: Build JDK shell: bash run: poetry run python scripts/build_jdk.py From 05177ca4ae5343b07333fad5bbe39b9ff556e32f Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Tue, 31 May 2022 18:38:03 +0200 Subject: [PATCH 13/26] fixup! Add support for ARM64 architectures --- .github/actions/build-jdk/action.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index b285ec9..0cb2e66 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -38,6 +38,9 @@ runs: - run: ls -la ${{ env.JAVA_HOME }} shell: bash + - run: ls -la ${{ env.JAVA_HOME }}/jmods + shell: bash + - name: Build JDK shell: bash run: poetry run python scripts/build_jdk.py From 407bcafad5c8c76ed66f08f59a1ef05ea8868a68 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 16:44:26 +0200 Subject: [PATCH 14/26] Try self-hosted runner --- .github/actions/build-jdk/action.yaml | 12 +----------- .github/workflows/test.yaml | 14 +++++++------- scripts/__init__.py | 0 scripts/build_jdk.py | 21 +-------------------- scripts/set_environment.py | 22 ++++++++++++++++------ 5 files changed, 25 insertions(+), 44 deletions(-) delete mode 100644 scripts/__init__.py diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index 0cb2e66..a7796d9 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -12,7 +12,7 @@ runs: steps: - uses: actions/setup-python@v2 with: - # No need to set the architecture for Python because jdk4py is platform independent Python-wise. + # No need to set the architecture: the action defaults to the architecture of the runner's OS. python-version: ${{ inputs.python-version }} - name: Install Poetry @@ -26,8 +26,6 @@ runs: - name: Set environment variables shell: bash run: poetry run python scripts/set_environment.py - env: - JDK4PY_ARCHITECTURE: ${{ inputs.architecture }} - uses: actions/setup-java@v2 with: @@ -35,14 +33,6 @@ runs: distribution: temurin java-version: ${{ env.JDK4PY_JAVA_VERSION }} - - run: ls -la ${{ env.JAVA_HOME }} - shell: bash - - - run: ls -la ${{ env.JAVA_HOME }}/jmods - shell: bash - - name: Build JDK shell: bash run: poetry run python scripts/build_jdk.py - env: - JDK4PY_ARCHITECTURE: ${{ inputs.architecture }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index fb263cc..6e54603 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -10,21 +10,21 @@ jobs: matrix: architecture: - aarch64 - - x64 + # - x64 os: # - macos-latest - - ubuntu-latest + - self-hosted-macos # - windows-latest python: # - "3.7" # - "3.8" # - "3.9" - "3.10" - exclude: - # - os: macos-latest - # architecture: aarch64 - - os: ubuntu-latest - architecture: x64 + # exclude: + # # - os: macos-latest + # # architecture: aarch64 + # - os: ubuntu-latest + # architecture: x64 fail-fast: false name: Test on ${{ matrix.os }}-${{ matrix.architecture }} with Python ${{ matrix.python }} steps: diff --git a/scripts/__init__.py b/scripts/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/scripts/build_jdk.py b/scripts/build_jdk.py index 17cf8eb..fd23637 100644 --- a/scripts/build_jdk.py +++ b/scripts/build_jdk.py @@ -1,8 +1,6 @@ import json -import os -import platform from pathlib import Path -from shutil import copytree, rmtree +from shutil import rmtree from subprocess import check_call @@ -10,13 +8,6 @@ _PROJECT_DIRECTORY = _SCRIPTS_DIRECTORY.parent _JAVA_PATH = _PROJECT_DIRECTORY / "jdk4py" / "java-runtime" -_MACHINE_TO_ARCHITECTURE = { - "AMD64": "x64", - "arm64": "aarch64", - "x86_64": "x64", - **{architecture: architecture for architecture in ["aarch64", "x64"]}, -} - _MODULES = [ "jdk.management.agent", @@ -34,14 +25,6 @@ def build_java_executable_files() -> None: rmtree(_JAVA_PATH, ignore_errors=True) - # current_architecture = _MACHINE_TO_ARCHITECTURE[platform.machine()] - # if current_architecture != os.environ["JDK4PY_ARCHITECTURE"]: - # # The target architecture is not the same as the one of the current machine. - # # `jlink` would produce a JDK unusable on the target architecture. - # # The whole downloaded JDK will be used instead. - # copytree(os.environ["JAVA_HOME"], _JAVA_PATH) - # return - locales = json.loads((_SCRIPTS_DIRECTORY / "locales.json").read_bytes()) check_call( @@ -54,8 +37,6 @@ def build_java_executable_files() -> None: "--add-modules", ",".join(_MODULES), f"--include-locales={','.join(locales)}", - "--module-path", - f"""{os.environ["JAVA_HOME"]}/jmods""", "--output", str(_JAVA_PATH), ], diff --git a/scripts/set_environment.py b/scripts/set_environment.py index 2181ee9..8ef6eab 100644 --- a/scripts/set_environment.py +++ b/scripts/set_environment.py @@ -7,31 +7,41 @@ _BUILD_VERSION = 0 +_AARCH64 = "aarch64" +_X64 = "x64" + + +_MACHINE_TO_ARCHITECTURE = { + "AMD64": "x64", + "arm64": _AARCH64, + "x86_64": "x64", + **{architecture: architecture for architecture in [_AARCH64, _X64]}, +} # Platforms taken from https://pypi.org/project/torch/1.11.0/#files and https://anaconda.org/conda-forge/numpy/files?version=1.22.4. _SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM = { "Darwin": { - "aarch64": { + _AARCH64: { "conda": "osx-arm64", "wheel": "macosx_11_0_arm64", }, - "x64": { + _X64: { "conda": "osx-64", "wheel": "macosx_10_9_x86_64", }, }, "Linux": { - "aarch64": { + _AARCH64: { "conda": "linux-aarch64", "wheel": "manylinux2014_aarch64", }, - "x64": { + _X64: { "conda": "linux-64", "wheel": "manylinux1_x86_64", }, }, "Windows": { - "x64": { + _X64: { "conda": "win-64", "wheel": "win_amd64", }, @@ -47,7 +57,7 @@ def set_env_variables_in_github_job(variables: Mapping[str, str]) -> None: if __name__ == "__main__": - architecture = os.environ["JDK4PY_ARCHITECTURE"] + architecture = _MACHINE_TO_ARCHITECTURE[platform.machine()] system = platform.system() set_env_variables_in_github_job( From ea1542cb091a6030b8e2ecff1fc80cc566638d9f Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 16:46:36 +0200 Subject: [PATCH 15/26] fixup! Try self-hosted runner --- .github/actions/build-jdk/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index a7796d9..aabfc02 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -12,7 +12,7 @@ runs: steps: - uses: actions/setup-python@v2 with: - # No need to set the architecture: the action defaults to the architecture of the runner's OS. + architecture: x64 python-version: ${{ inputs.python-version }} - name: Install Poetry From 35591002548cf75b75217b159a4ed2e667feb8a3 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 16:57:34 +0200 Subject: [PATCH 16/26] fixup! Try self-hosted runner --- .github/actions/build-jdk/action.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index aabfc02..f2a9523 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -10,9 +10,10 @@ inputs: runs: using: "composite" steps: - - uses: actions/setup-python@v2 + - if: ${{ inputs.architecture == 'x64' }} + uses: actions/setup-python@v2 with: - architecture: x64 + architecture: ${{ inputs.architecture }} python-version: ${{ inputs.python-version }} - name: Install Poetry From 2075ebe8fb467b01b007e53295c2288d5d9dd884 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 17:34:20 +0200 Subject: [PATCH 17/26] fixup! Try self-hosted runner --- .github/actions/build-jdk/action.yaml | 10 ++++++++++ .github/workflows/test.yaml | 10 +++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index f2a9523..622b1dd 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -10,12 +10,22 @@ inputs: runs: using: "composite" steps: + # ARM architectures not supported. + # See https://github.com/actions/setup-python/issues/197. - if: ${{ inputs.architecture == 'x64' }} uses: actions/setup-python@v2 with: architecture: ${{ inputs.architecture }} python-version: ${{ inputs.python-version }} + # For when `actions/setup-python` had to be skipped. + - name: Check Python version + shell: bash + run: | + python -c 'import os; import sys; expected_version = os.environ["EXPECTED_PYTHON_VERSION"]; assert sys.version.startswith(expected_version), f"Expected Python version {expected_version} but got {sys.version}."' + env: + EXPECTED_PYTHON_VERSION: ${{ inputs.python-version }} + - name: Install Poetry shell: bash run: pip install poetry diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 6e54603..96e5b07 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -9,8 +9,8 @@ jobs: strategy: matrix: architecture: + #- x64 - aarch64 - # - x64 os: # - macos-latest - self-hosted-macos @@ -38,7 +38,7 @@ jobs: - uses: ./.github/actions/create-python-wheel # No need to upload the package for each Python version - - if: matrix.python == '3.10' + - if: ${{ matrix.python == '3.10' }} uses: actions/upload-artifact@v2 with: if-no-files-found: error @@ -46,12 +46,12 @@ jobs: path: dist/jdk4py-*.whl # No need to lint for each OS and Python version - - if: matrix.os == 'ubuntu-latest' && matrix.python == '3.10' + - if: ${{ matrix.os == 'ubuntu-latest' && matrix.python == '3.10' }} name: Check formatting run: poetry run black --check . - # - name: Test - # run: poetry run pytest + - name: Test + run: poetry run pytest # conda-package: # runs-on: ${{ matrix.os }} From 7ce41889cf53e0d3cb20c12e3237bdb7c1244bf9 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 17:37:46 +0200 Subject: [PATCH 18/26] fixup! Try self-hosted runner --- .github/actions/build-jdk/action.yaml | 2 +- .github/workflows/test.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index 622b1dd..3094d4a 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -22,7 +22,7 @@ runs: - name: Check Python version shell: bash run: | - python -c 'import os; import sys; expected_version = os.environ["EXPECTED_PYTHON_VERSION"]; assert sys.version.startswith(expected_version), f"Expected Python version {expected_version} but got {sys.version}."' + python -c 'import os; import sys; expected_version = tuple(os.environ["EXPECTED_PYTHON_VERSION"].split(".")); assert sys.version_info == expected_version, f"Expected Python version {expected_version} but got {sys.version}."' env: EXPECTED_PYTHON_VERSION: ${{ inputs.python-version }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 96e5b07..1543a30 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -19,7 +19,7 @@ jobs: # - "3.7" # - "3.8" # - "3.9" - - "3.10" + - "3.9" # exclude: # # - os: macos-latest # # architecture: aarch64 From 4d05987349b990a4aacba173afb9fa7b7d325fad Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 17:39:56 +0200 Subject: [PATCH 19/26] fixup! Try self-hosted runner --- .github/actions/build-jdk/action.yaml | 2 +- .github/workflows/test.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index 3094d4a..f0b940c 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -22,7 +22,7 @@ runs: - name: Check Python version shell: bash run: | - python -c 'import os; import sys; expected_version = tuple(os.environ["EXPECTED_PYTHON_VERSION"].split(".")); assert sys.version_info == expected_version, f"Expected Python version {expected_version} but got {sys.version}."' + python -c 'import os; import sys; expected_version = tuple(os.environ["EXPECTED_PYTHON_VERSION"].split(".")); assert sys.version_info[:2] == expected_version[:2], f"Expected Python version {expected_version} but got {sys.version}."' env: EXPECTED_PYTHON_VERSION: ${{ inputs.python-version }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 1543a30..96e5b07 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -19,7 +19,7 @@ jobs: # - "3.7" # - "3.8" # - "3.9" - - "3.9" + - "3.10" # exclude: # # - os: macos-latest # # architecture: aarch64 From faf5242ab808d6e42331c0ca38ef91a543796f9e Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 17:42:00 +0200 Subject: [PATCH 20/26] fixup! Try self-hosted runner --- .github/actions/build-jdk/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index f0b940c..a7d83db 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -22,7 +22,7 @@ runs: - name: Check Python version shell: bash run: | - python -c 'import os; import sys; expected_version = tuple(os.environ["EXPECTED_PYTHON_VERSION"].split(".")); assert sys.version_info[:2] == expected_version[:2], f"Expected Python version {expected_version} but got {sys.version}."' + python -c 'import os; import sys; expected_version = tuple([int(number) for number in os.environ["EXPECTED_PYTHON_VERSION"].split(".")]); assert sys.version_info[:2] == expected_version[:2], f"Expected Python version {expected_version} but got {sys.version_info}."' env: EXPECTED_PYTHON_VERSION: ${{ inputs.python-version }} From a3ad8f5d467b867b2ad3ed9c01542469eb0b035e Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 17:44:49 +0200 Subject: [PATCH 21/26] Test Conda packaging --- .github/workflows/test.yaml | 61 +++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 96e5b07..d47e1b8 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -53,36 +53,37 @@ jobs: - name: Test run: poetry run pytest - # conda-package: - # runs-on: ${{ matrix.os }} - # strategy: - # matrix: - # architecture: - # - aarch64 - # - x64 - # os: - # - macos-latest - # - ubuntu-latest - # # - windows-latest - # exclude: - # - os: macos-latest - # architecture: aarch64 - # - os: ubuntu-latest - # architecture: x64 - # name: Test Conda packaging on ${{ matrix.os }}-${{ matrix.architecture }} - # steps: - # - uses: actions/checkout@v2 + conda-package: + runs-on: ${{ matrix.os }} + strategy: + matrix: + architecture: + - aarch64 + #- x64 + os: + #- macos-latest + - self-hosted-macos + #- ubuntu-latest + # - windows-latest + # exclude: + # - os: macos-latest + # architecture: aarch64 + # - os: ubuntu-latest + # architecture: x64 + name: Test Conda packaging on ${{ matrix.os }}-${{ matrix.architecture }} + steps: + - uses: actions/checkout@v2 - # - uses: ./.github/actions/build-jdk - # with: - # architecture: ${{ matrix.architecture }} - # # No need to test for each Python version - # python-version: "3.10" + - uses: ./.github/actions/build-jdk + with: + architecture: ${{ matrix.architecture }} + # No need to test for each Python version + python-version: "3.10" - # - uses: ./.github/actions/create-conda-package + - uses: ./.github/actions/create-conda-package - # - uses: actions/upload-artifact@v2 - # with: - # if-no-files-found: error - # name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}-conda-packages - # path: dist/${{ env.JDK4PY_CONDA_PLATFORM }}/jdk4py-*.tar.bz2 + - uses: actions/upload-artifact@v2 + with: + if-no-files-found: error + name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}-conda-packages + path: dist/${{ env.JDK4PY_CONDA_PLATFORM }}/jdk4py-*.tar.bz2 From 0cba170d6214b8142edd64d979928499f392a624 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 17:59:07 +0200 Subject: [PATCH 22/26] fixup! Test Conda packaging --- .../actions/create-conda-package/action.yaml | 4 +- .github/workflows/test.yaml | 86 +++++++++---------- 2 files changed, 46 insertions(+), 44 deletions(-) diff --git a/.github/actions/create-conda-package/action.yaml b/.github/actions/create-conda-package/action.yaml index 1e4559a..04a6501 100644 --- a/.github/actions/create-conda-package/action.yaml +++ b/.github/actions/create-conda-package/action.yaml @@ -3,7 +3,9 @@ description: Create a Conda package runs: using: "composite" steps: - - uses: conda-incubator/setup-miniconda@v2 + # Careful when upgrading to macOS 12, https://github.com/conda-incubator/setup-miniconda/issues/229 would have to be resolved first. + - if: ${{ inputs.architecture == 'x64' }} + uses: conda-incubator/setup-miniconda@v2 with: channels: conda-forge conda-build-version: "3.21.6" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index d47e1b8..0834f56 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -4,54 +4,54 @@ on: types: [opened, synchronize] jobs: - test: - runs-on: ${{ matrix.os }} - strategy: - matrix: - architecture: - #- x64 - - aarch64 - os: - # - macos-latest - - self-hosted-macos - # - windows-latest - python: - # - "3.7" - # - "3.8" - # - "3.9" - - "3.10" - # exclude: - # # - os: macos-latest - # # architecture: aarch64 - # - os: ubuntu-latest - # architecture: x64 - fail-fast: false - name: Test on ${{ matrix.os }}-${{ matrix.architecture }} with Python ${{ matrix.python }} - steps: - - uses: actions/checkout@v2 + # test: + # runs-on: ${{ matrix.os }} + # strategy: + # matrix: + # architecture: + # #- x64 + # - aarch64 + # os: + # # - macos-latest + # - self-hosted-macos + # # - windows-latest + # python: + # # - "3.7" + # # - "3.8" + # # - "3.9" + # - "3.10" + # # exclude: + # # # - os: macos-latest + # # # architecture: aarch64 + # # - os: ubuntu-latest + # # architecture: x64 + # fail-fast: false + # name: Test on ${{ matrix.os }}-${{ matrix.architecture }} with Python ${{ matrix.python }} + # steps: + # - uses: actions/checkout@v2 - - uses: ./.github/actions/build-jdk - with: - architecture: ${{ matrix.architecture }} - python-version: ${{ matrix.python }} + # - uses: ./.github/actions/build-jdk + # with: + # architecture: ${{ matrix.architecture }} + # python-version: ${{ matrix.python }} - - uses: ./.github/actions/create-python-wheel + # - uses: ./.github/actions/create-python-wheel - # No need to upload the package for each Python version - - if: ${{ matrix.python == '3.10' }} - uses: actions/upload-artifact@v2 - with: - if-no-files-found: error - name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}.whl - path: dist/jdk4py-*.whl + # # No need to upload the package for each Python version + # - if: ${{ matrix.python == '3.10' }} + # uses: actions/upload-artifact@v2 + # with: + # if-no-files-found: error + # name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}.whl + # path: dist/jdk4py-*.whl - # No need to lint for each OS and Python version - - if: ${{ matrix.os == 'ubuntu-latest' && matrix.python == '3.10' }} - name: Check formatting - run: poetry run black --check . + # # No need to lint for each OS and Python version + # - if: ${{ matrix.os == 'ubuntu-latest' && matrix.python == '3.10' }} + # name: Check formatting + # run: poetry run black --check . - - name: Test - run: poetry run pytest + # - name: Test + # run: poetry run pytest conda-package: runs-on: ${{ matrix.os }} From 9297d4f2b8b2792d27d218d41856e6c4f1718539 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 18:32:09 +0200 Subject: [PATCH 23/26] Try on all OSes --- .github/workflows/test.yaml | 105 +++++++++++++-------------- conda.recipe/conda_build_config.yaml | 5 +- conda.recipe/meta.yaml | 20 ++--- jdk4py/__init__.py | 5 +- poetry.lock | 96 ++++++++++++------------ pyproject.toml | 6 +- scripts/set_environment.py | 27 ++++--- setup.py | 2 +- 8 files changed, 136 insertions(+), 130 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 0834f56..fcdcdb5 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -4,72 +4,69 @@ on: types: [opened, synchronize] jobs: - # test: - # runs-on: ${{ matrix.os }} - # strategy: - # matrix: - # architecture: - # #- x64 - # - aarch64 - # os: - # # - macos-latest - # - self-hosted-macos - # # - windows-latest - # python: - # # - "3.7" - # # - "3.8" - # # - "3.9" - # - "3.10" - # # exclude: - # # # - os: macos-latest - # # # architecture: aarch64 - # # - os: ubuntu-latest - # # architecture: x64 - # fail-fast: false - # name: Test on ${{ matrix.os }}-${{ matrix.architecture }} with Python ${{ matrix.python }} - # steps: - # - uses: actions/checkout@v2 + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + architecture: + - x64 + os: + - macos-latest + - ubuntu-latest + - windows-latest + python: + - "3.10" + include: + - architecture: aarch64 + os: self-hosted-macos + python: "3.10" + - architecture: x64 + os: ubuntu-latest + python: "3.9" + - architecture: x64 + os: ubuntu-latest + python: "3.8" + fail-fast: false + name: Test on ${{ matrix.os }}-${{ matrix.architecture }} with Python ${{ matrix.python }} + steps: + - uses: actions/checkout@v2 - # - uses: ./.github/actions/build-jdk - # with: - # architecture: ${{ matrix.architecture }} - # python-version: ${{ matrix.python }} + - uses: ./.github/actions/build-jdk + with: + architecture: ${{ matrix.architecture }} + python-version: ${{ matrix.python }} - # - uses: ./.github/actions/create-python-wheel + - uses: ./.github/actions/create-python-wheel - # # No need to upload the package for each Python version - # - if: ${{ matrix.python == '3.10' }} - # uses: actions/upload-artifact@v2 - # with: - # if-no-files-found: error - # name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}.whl - # path: dist/jdk4py-*.whl + # No need to upload the package for each Python version + - if: ${{ matrix.python == '3.10' }} + uses: actions/upload-artifact@v2 + with: + if-no-files-found: error + name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}.whl + path: dist/jdk4py-*.whl - # # No need to lint for each OS and Python version - # - if: ${{ matrix.os == 'ubuntu-latest' && matrix.python == '3.10' }} - # name: Check formatting - # run: poetry run black --check . + # No need to do that for each OS and Python version + - if: ${{ matrix.os == 'ubuntu-latest' && matrix.python == '3.10' }} + name: Check formatting and types + run: poetry run black --check . && poetry run mypy --show-error-codes jdk4py scripts tests - # - name: Test - # run: poetry run pytest + - name: Test + run: poetry run pytest conda-package: runs-on: ${{ matrix.os }} strategy: matrix: architecture: - - aarch64 - #- x64 + - x64 os: - #- macos-latest - - self-hosted-macos - #- ubuntu-latest - # - windows-latest - # exclude: - # - os: macos-latest - # architecture: aarch64 - # - os: ubuntu-latest - # architecture: x64 + - macos-latest + - ubuntu-latest + - windows-latest + include: + - architecture: aarch64 + os: self-hosted-macos name: Test Conda packaging on ${{ matrix.os }}-${{ matrix.architecture }} steps: - uses: actions/checkout@v2 diff --git a/conda.recipe/conda_build_config.yaml b/conda.recipe/conda_build_config.yaml index d540b23..d1f51d5 100644 --- a/conda.recipe/conda_build_config.yaml +++ b/conda.recipe/conda_build_config.yaml @@ -1,5 +1,4 @@ python: - # - "3.7" - # - "3.8" - # - "3.9" + - "3.8" + - "3.9" - "3.10" diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index ad9e89c..f90a7e8 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -19,16 +19,16 @@ requirements: run: - python {{ python }} -# test: -# source_files: -# - tests/** -# - scripts/locales.json -# requires: -# - pytest -# commands: -# - pytest tests -# imports: -# - jdk4py +test: + source_files: + - tests/** + - scripts/locales.json + requires: + - pytest + commands: + - pytest tests + imports: + - jdk4py about: home: https://github.com/atoti/jdk4py diff --git a/jdk4py/__init__.py b/jdk4py/__init__.py index 9eb8be6..6621c64 100644 --- a/jdk4py/__init__.py +++ b/jdk4py/__init__.py @@ -8,7 +8,8 @@ JAVA_HOME = _PACKAGE_DIRECTORY.absolute() / "java-runtime" JAVA = JAVA_HOME / "bin" / "java" -JAVA_VERSION: Tuple[int, int, int] = tuple( +_major, _minor, _patch = [ int(part) for part in (_PACKAGE_DIRECTORY / "java_version.txt").read_text().strip().split(".") -) +] +JAVA_VERSION: Tuple[int, int, int] = _major, _minor, _patch diff --git a/poetry.lock b/poetry.lock index 07349c1..bc53286 100644 --- a/poetry.lock +++ b/poetry.lock @@ -34,7 +34,6 @@ mypy-extensions = ">=0.4.3" pathspec = ">=0.9.0" platformdirs = ">=2" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} [package.extras] @@ -99,7 +98,6 @@ python-versions = ">=3.7" [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "colorama" @@ -164,7 +162,6 @@ optional = false python-versions = ">=3.7" [package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] @@ -210,6 +207,24 @@ SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "jaraco.tidelift (>=1.4)"] testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +[[package]] +name = "mypy" +version = "0.960" +description = "Optional static typing for Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +mypy-extensions = ">=0.4.3" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=3.10" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +python2 = ["typed-ast (>=1.4.0,<2)"] +reports = ["lxml"] + [[package]] name = "mypy-extensions" version = "0.4.3" @@ -268,9 +283,6 @@ category = "dev" optional = false python-versions = ">=3.6" -[package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} - [package.extras] dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] @@ -322,7 +334,6 @@ python-versions = ">=3.7" atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" @@ -442,7 +453,7 @@ python-versions = ">=3.7" [[package]] name = "twine" -version = "4.0.0" +version = "4.0.1" description = "Collection of utilities for publishing packages on PyPI" category = "dev" optional = false @@ -452,21 +463,13 @@ python-versions = ">=3.7" importlib-metadata = ">=3.6" keyring = ">=15.1" pkginfo = ">=1.8.1" -readme-renderer = ">=21.0" +readme-renderer = ">=35.0" requests = ">=2.20" requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0" rfc3986 = ">=1.4.0" rich = ">=12.0.0" urllib3 = ">=1.26.0" -[[package]] -name = "typed-ast" -version = "1.5.4" -description = "a fork of Python 2 and 3 ast modules with type comment support" -category = "dev" -optional = false -python-versions = ">=3.6" - [[package]] name = "typing-extensions" version = "4.2.0" @@ -510,8 +513,8 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" -python-versions = "^3.7" -content-hash = "e378443dd6e8ac46ed1b4b7bc6ad52e3f669aab0f775ed1f1d6c7c6c51f49033" +python-versions = "^3.8" +content-hash = "67891477565bb767b97fe0c46935fcc136d0c5c614a9d7648837d21f04ec7a3e" [metadata.files] atomicwrites = [ @@ -671,6 +674,31 @@ keyring = [ {file = "keyring-23.5.1-py3-none-any.whl", hash = "sha256:9ef58314bcc823f426b49ec787539a2d73571b37de4cd498f839803b01acff1e"}, {file = "keyring-23.5.1.tar.gz", hash = "sha256:dee502cdf18a98211bef428eea11456a33c00718b2f08524fd5727c7f424bffd"}, ] +mypy = [ + {file = "mypy-0.960-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3a3e525cd76c2c4f90f1449fd034ba21fcca68050ff7c8397bb7dd25dd8b8248"}, + {file = "mypy-0.960-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7a76dc4f91e92db119b1be293892df8379b08fd31795bb44e0ff84256d34c251"}, + {file = "mypy-0.960-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffdad80a92c100d1b0fe3d3cf1a4724136029a29afe8566404c0146747114382"}, + {file = "mypy-0.960-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7d390248ec07fa344b9f365e6ed9d205bd0205e485c555bed37c4235c868e9d5"}, + {file = "mypy-0.960-cp310-cp310-win_amd64.whl", hash = "sha256:925aa84369a07846b7f3b8556ccade1f371aa554f2bd4fb31cb97a24b73b036e"}, + {file = "mypy-0.960-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:239d6b2242d6c7f5822163ee082ef7a28ee02e7ac86c35593ef923796826a385"}, + {file = "mypy-0.960-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f1ba54d440d4feee49d8768ea952137316d454b15301c44403db3f2cb51af024"}, + {file = "mypy-0.960-cp36-cp36m-win_amd64.whl", hash = "sha256:cb7752b24528c118a7403ee955b6a578bfcf5879d5ee91790667c8ea511d2085"}, + {file = "mypy-0.960-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:826a2917c275e2ee05b7c7b736c1e6549a35b7ea5a198ca457f8c2ebea2cbecf"}, + {file = "mypy-0.960-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3eabcbd2525f295da322dff8175258f3fc4c3eb53f6d1929644ef4d99b92e72d"}, + {file = "mypy-0.960-cp37-cp37m-win_amd64.whl", hash = "sha256:f47322796c412271f5aea48381a528a613f33e0a115452d03ae35d673e6064f8"}, + {file = "mypy-0.960-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2c7f8bb9619290836a4e167e2ef1f2cf14d70e0bc36c04441e41487456561409"}, + {file = "mypy-0.960-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fbfb873cf2b8d8c3c513367febde932e061a5f73f762896826ba06391d932b2a"}, + {file = "mypy-0.960-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc537885891382e08129d9862553b3d00d4be3eb15b8cae9e2466452f52b0117"}, + {file = "mypy-0.960-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:481f98c6b24383188c928f33dd2f0776690807e12e9989dd0419edd5c74aa53b"}, + {file = "mypy-0.960-cp38-cp38-win_amd64.whl", hash = "sha256:29dc94d9215c3eb80ac3c2ad29d0c22628accfb060348fd23d73abe3ace6c10d"}, + {file = "mypy-0.960-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:33d53a232bb79057f33332dbbb6393e68acbcb776d2f571ba4b1d50a2c8ba873"}, + {file = "mypy-0.960-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8d645e9e7f7a5da3ec3bbcc314ebb9bb22c7ce39e70367830eb3c08d0140b9ce"}, + {file = "mypy-0.960-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:85cf2b14d32b61db24ade8ac9ae7691bdfc572a403e3cb8537da936e74713275"}, + {file = "mypy-0.960-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a85a20b43fa69efc0b955eba1db435e2ffecb1ca695fe359768e0503b91ea89f"}, + {file = "mypy-0.960-cp39-cp39-win_amd64.whl", hash = "sha256:0ebfb3f414204b98c06791af37a3a96772203da60636e2897408517fcfeee7a8"}, + {file = "mypy-0.960-py3-none-any.whl", hash = "sha256:bfd4f6536bd384c27c392a8b8f790fd0ed5c0cf2f63fc2fed7bce56751d53026"}, + {file = "mypy-0.960.tar.gz", hash = "sha256:d4fccf04c1acf750babd74252e0f2db6bd2ac3aa8fe960797d9f3ef41cf2bfd4"}, +] mypy-extensions = [ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, @@ -752,34 +780,8 @@ tomli = [ {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] twine = [ - {file = "twine-4.0.0-py3-none-any.whl", hash = "sha256:6f7496cf14a3a8903474552d5271c79c71916519edb42554f23f42a8563498a9"}, - {file = "twine-4.0.0.tar.gz", hash = "sha256:817aa0c0bdc02a5ebe32051e168e23c71a0608334e624c793011f120dbbc05b7"}, -] -typed-ast = [ - {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, - {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, - {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, - {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, - {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, - {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, - {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, - {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, - {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, - {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, + {file = "twine-4.0.1-py3-none-any.whl", hash = "sha256:42026c18e394eac3e06693ee52010baa5313e4811d5a11050e7d48436cf41b9e"}, + {file = "twine-4.0.1.tar.gz", hash = "sha256:96b1cf12f7ae611a4a40b6ae8e9570215daff0611828f5fe1f37a16255ab24a0"}, ] typing-extensions = [ {file = "typing_extensions-4.2.0-py3-none-any.whl", hash = "sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708"}, diff --git a/pyproject.toml b/pyproject.toml index b108456..46b98fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,11 +6,15 @@ description = "" authors = [] [tool.poetry.dependencies] -python = "^3.7" +python = "^3.8" [tool.poetry.dev-dependencies] black = "*" +mypy = "*" pytest = "*" setuptools = "*" twine = "*" wheel = "*" + +[tool.mypy] +strict = true diff --git a/scripts/set_environment.py b/scripts/set_environment.py index 8ef6eab..81baa7a 100644 --- a/scripts/set_environment.py +++ b/scripts/set_environment.py @@ -1,47 +1,50 @@ import os import platform -from typing import Mapping +from typing import Literal, Mapping from jdk4py import JAVA_VERSION _BUILD_VERSION = 0 -_AARCH64 = "aarch64" -_X64 = "x64" +_Architecture = Literal["aarch64", "x64"] +_PackageType = Literal["conda", "wheel"] -_MACHINE_TO_ARCHITECTURE = { +_MACHINE_TO_ARCHITECTURE: Mapping[str, _Architecture] = { + "aarch64": "aarch64", "AMD64": "x64", - "arm64": _AARCH64, + "arm64": "aarch64", + "x64": "x64", "x86_64": "x64", - **{architecture: architecture for architecture in [_AARCH64, _X64]}, } # Platforms taken from https://pypi.org/project/torch/1.11.0/#files and https://anaconda.org/conda-forge/numpy/files?version=1.22.4. -_SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM = { +_SYSTEM_TO_ARCHITECTURE_TO_PACKAGE_TYPE_TO_PLATFORM: Mapping[ + str, Mapping[_Architecture, Mapping[_PackageType, str]] +] = { "Darwin": { - _AARCH64: { + "aarch64": { "conda": "osx-arm64", "wheel": "macosx_11_0_arm64", }, - _X64: { + "x64": { "conda": "osx-64", "wheel": "macosx_10_9_x86_64", }, }, "Linux": { - _AARCH64: { + "aarch64": { "conda": "linux-aarch64", "wheel": "manylinux2014_aarch64", }, - _X64: { + "x64": { "conda": "linux-64", "wheel": "manylinux1_x86_64", }, }, "Windows": { - _X64: { + "x64": { "conda": "win-64", "wheel": "win_amd64", }, diff --git a/setup.py b/setup.py index 02621df..16d6a9e 100644 --- a/setup.py +++ b/setup.py @@ -56,7 +56,7 @@ def _add_platform_name_argument_when_building_python_wheel(): "Programming Language :: Python :: 3", ], keywords=["jdk", "java", "jvm", "jre"], - python_requires=">=3.7", + python_requires=">=3.8", ) if __name__ == "__main__": From 833e104373cf285c01ef1d501fb8a3f13df98556 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 18:43:23 +0200 Subject: [PATCH 24/26] Fix workflows --- .github/actions/build-jdk/action.yaml | 2 +- .github/actions/create-conda-package/action.yaml | 6 +++++- .github/workflows/deployment.yaml | 8 ++++---- .github/workflows/test.yaml | 2 ++ 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index a7d83db..37f569c 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -2,7 +2,7 @@ name: Build JDK description: Install the dependencies and build the JDK inputs: architecture: - description: The architecture targeted by the JDK to set up. + description: The target architecture. required: true python-version: description: The version of Python to set up. diff --git a/.github/actions/create-conda-package/action.yaml b/.github/actions/create-conda-package/action.yaml index 04a6501..b06070a 100644 --- a/.github/actions/create-conda-package/action.yaml +++ b/.github/actions/create-conda-package/action.yaml @@ -1,9 +1,13 @@ name: Create Conda package description: Create a Conda package +inputs: + architecture: + description: The target architecture. + required: true runs: using: "composite" steps: - # Careful when upgrading to macOS 12, https://github.com/conda-incubator/setup-miniconda/issues/229 would have to be resolved first. + # Careful when upgrading to macOS 12: https://github.com/conda-incubator/setup-miniconda/issues/229 would have to be resolved first. - if: ${{ inputs.architecture == 'x64' }} uses: conda-incubator/setup-miniconda@v2 with: diff --git a/.github/workflows/deployment.yaml b/.github/workflows/deployment.yaml index e8e1793..8f80903 100644 --- a/.github/workflows/deployment.yaml +++ b/.github/workflows/deployment.yaml @@ -17,10 +17,8 @@ jobs: - ubuntu-latest - windows-latest include: - - os: macos-latest - architecture: aarch64 - - os: ubuntu-latest - architecture: aarch64 + - architecture: aarch64 + os: self-hosted-macos name: Deploy on ${{ matrix.os }}-${{ matrix.architecture }} steps: - uses: actions/checkout@v2 @@ -33,6 +31,8 @@ jobs: - uses: ./.github/actions/create-python-wheel - uses: ./.github/actions/create-conda-package + with: + architecture: ${{ matrix.architecture }} - name: Upload Python wheel env: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index fcdcdb5..b643d19 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -78,6 +78,8 @@ jobs: python-version: "3.10" - uses: ./.github/actions/create-conda-package + with: + architecture: ${{ matrix.architecture }} - uses: actions/upload-artifact@v2 with: From aba3192c98a52b74c78e82f4c6c3926cd5c2650e Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 19:12:10 +0200 Subject: [PATCH 25/26] Make some small improvements --- .github/actions/build-jdk/action.yaml | 6 ++---- .github/actions/create-conda-package/action.yaml | 2 +- .github/workflows/test.yaml | 6 +++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/actions/build-jdk/action.yaml b/.github/actions/build-jdk/action.yaml index 37f569c..5b90e88 100644 --- a/.github/actions/build-jdk/action.yaml +++ b/.github/actions/build-jdk/action.yaml @@ -10,7 +10,7 @@ inputs: runs: using: "composite" steps: - # ARM architectures not supported. + # ARM architecture is not supported. # See https://github.com/actions/setup-python/issues/197. - if: ${{ inputs.architecture == 'x64' }} uses: actions/setup-python@v2 @@ -22,9 +22,7 @@ runs: - name: Check Python version shell: bash run: | - python -c 'import os; import sys; expected_version = tuple([int(number) for number in os.environ["EXPECTED_PYTHON_VERSION"].split(".")]); assert sys.version_info[:2] == expected_version[:2], f"Expected Python version {expected_version} but got {sys.version_info}."' - env: - EXPECTED_PYTHON_VERSION: ${{ inputs.python-version }} + python -c 'import sys; expected_version = tuple([int(number) for number in sys.argv[-1].split(".")]); assert sys.version_info[:2] == expected_version[:2], f"Expected Python version {expected_version} but got {sys.version_info}."' ${{ inputs.python-version }} - name: Install Poetry shell: bash diff --git a/.github/actions/create-conda-package/action.yaml b/.github/actions/create-conda-package/action.yaml index b06070a..5652090 100644 --- a/.github/actions/create-conda-package/action.yaml +++ b/.github/actions/create-conda-package/action.yaml @@ -7,7 +7,7 @@ inputs: runs: using: "composite" steps: - # Careful when upgrading to macOS 12: https://github.com/conda-incubator/setup-miniconda/issues/229 would have to be resolved first. + # Careful when upgrading to macOS 12 https://github.com/conda-incubator/setup-miniconda/issues/229 would have to be resolved first. - if: ${{ inputs.architecture == 'x64' }} uses: conda-incubator/setup-miniconda@v2 with: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index b643d19..1b721b0 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -38,7 +38,7 @@ jobs: - uses: ./.github/actions/create-python-wheel - # No need to upload the package for each Python version + # The library's Python wheels are not tied to a specific version of Python so there is no need to upload the package for each Python version. - if: ${{ matrix.python == '3.10' }} uses: actions/upload-artifact@v2 with: @@ -46,7 +46,7 @@ jobs: name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}.whl path: dist/jdk4py-*.whl - # No need to do that for each OS and Python version + # No need to do that for each OS and Python version. - if: ${{ matrix.os == 'ubuntu-latest' && matrix.python == '3.10' }} name: Check formatting and types run: poetry run black --check . && poetry run mypy --show-error-codes jdk4py scripts tests @@ -74,7 +74,7 @@ jobs: - uses: ./.github/actions/build-jdk with: architecture: ${{ matrix.architecture }} - # No need to test for each Python version + # No need to test for each Python version. python-version: "3.10" - uses: ./.github/actions/create-conda-package From 47cdd10f0a3bd6cb5539230220a5173f077a2fef Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux Date: Thu, 2 Jun 2022 19:21:52 +0200 Subject: [PATCH 26/26] fixup! Make some small improvements --- .github/actions/create-python-wheel/action.yaml | 6 +++++- .github/workflows/deployment.yaml | 2 ++ .github/workflows/test.yaml | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/actions/create-python-wheel/action.yaml b/.github/actions/create-python-wheel/action.yaml index a9da6e7..c6c3fc2 100644 --- a/.github/actions/create-python-wheel/action.yaml +++ b/.github/actions/create-python-wheel/action.yaml @@ -1,8 +1,12 @@ name: Create Python wheel description: Create a Python wheel +inputs: + build-number: + description: The build number of the wheel. + required: true runs: using: "composite" steps: - name: Build Python wheel shell: bash - run: poetry run python setup.py bdist_wheel --build-number $JDK4PY_BUILD_NUMBER + run: poetry run python setup.py bdist_wheel --build-number ${{ inputs.build-number }} diff --git a/.github/workflows/deployment.yaml b/.github/workflows/deployment.yaml index 8f80903..7afe110 100644 --- a/.github/workflows/deployment.yaml +++ b/.github/workflows/deployment.yaml @@ -29,6 +29,8 @@ jobs: python-version: "3.10" - uses: ./.github/actions/create-python-wheel + with: + build-number: ${{ env.JDK4PY_BUILD_NUMBER }} - uses: ./.github/actions/create-conda-package with: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 1b721b0..a6a7deb 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -37,6 +37,8 @@ jobs: python-version: ${{ matrix.python }} - uses: ./.github/actions/create-python-wheel + with: + build-number: ${{ env.JDK4PY_BUILD_NUMBER }} # The library's Python wheels are not tied to a specific version of Python so there is no need to upload the package for each Python version. - if: ${{ matrix.python == '3.10' }}