You've already forked setup-python
mirror of
https://github.com/actions/setup-python.git
synced 2025-07-12 01:50:31 +07:00
Compare commits
1 Commits
error-mess
...
testensure
Author | SHA1 | Date | |
---|---|---|---|
8bc8944241 |
22
.github/workflows/publish-immutable-actions.yml
vendored
22
.github/workflows/publish-immutable-actions.yml
vendored
@ -1,22 +0,0 @@
|
|||||||
name: 'Publish Immutable Action Version'
|
|
||||||
|
|
||||||
on:
|
|
||||||
release:
|
|
||||||
types: [created]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
publish:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
id-token: write
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checking out
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Publish
|
|
||||||
id: publish
|
|
||||||
uses: actions/publish-immutable-action@0.0.1
|
|
||||||
with:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
2
.licenses/npm/@iarna/toml.dep.yml
generated
2
.licenses/npm/@iarna/toml.dep.yml
generated
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
name: "@iarna/toml"
|
name: "@iarna/toml"
|
||||||
version: 3.0.0
|
version: 2.2.5
|
||||||
type: npm
|
type: npm
|
||||||
summary: Better TOML parsing and stringifying all in that familiar JSON interface.
|
summary: Better TOML parsing and stringifying all in that familiar JSON interface.
|
||||||
homepage: https://github.com/iarna/iarna-toml#readme
|
homepage: https://github.com/iarna/iarna-toml#readme
|
||||||
|
@ -184,31 +184,19 @@ virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/py
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const restoredKeys = restoreCacheSpy.mock.results.map(
|
if (process.platform === 'linux' && packageManager === 'pip') {
|
||||||
result => result.value
|
expect(infoSpy).toHaveBeenCalledWith(
|
||||||
);
|
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-20.04-Ubuntu-python-${pythonVersion}-${packageManager}-${fileHash}`
|
||||||
|
);
|
||||||
restoredKeys.forEach(restoredKey => {
|
} else if (packageManager === 'poetry') {
|
||||||
if (restoredKey) {
|
expect(infoSpy).toHaveBeenCalledWith(
|
||||||
if (process.platform === 'linux' && packageManager === 'pip') {
|
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-python-${pythonVersion}-${packageManager}-v2-${fileHash}`
|
||||||
expect(infoSpy).toHaveBeenCalledWith(
|
);
|
||||||
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${process.arch}-20.04-Ubuntu-python-${pythonVersion}-${packageManager}-${fileHash}`
|
} else {
|
||||||
);
|
expect(infoSpy).toHaveBeenCalledWith(
|
||||||
} else if (packageManager === 'poetry') {
|
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-python-${pythonVersion}-${packageManager}-${fileHash}`
|
||||||
expect(infoSpy).toHaveBeenCalledWith(
|
);
|
||||||
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${process.arch}-python-${pythonVersion}-${packageManager}-v2-${fileHash}`
|
}
|
||||||
);
|
|
||||||
} else {
|
|
||||||
expect(infoSpy).toHaveBeenCalledWith(
|
|
||||||
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${process.arch}-python-${pythonVersion}-${packageManager}-${fileHash}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
expect(infoSpy).toHaveBeenCalledWith(
|
|
||||||
`${packageManager} cache is not found`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
30000
|
30000
|
||||||
);
|
);
|
||||||
|
495
__tests__/data/poetry.lock
generated
495
__tests__/data/poetry.lock
generated
@ -1,212 +1,413 @@
|
|||||||
# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "altgraph"
|
name = "altgraph"
|
||||||
version = "0.17.4"
|
version = "0.17.2"
|
||||||
description = "Python graph (network) package"
|
description = "Python graph (network) package"
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
files = [
|
|
||||||
{file = "altgraph-0.17.4-py2.py3-none-any.whl", hash = "sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff"},
|
|
||||||
{file = "altgraph-0.17.4.tar.gz", hash = "sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "flake8"
|
name = "certifi"
|
||||||
version = "4.0.1"
|
version = "2020.6.20"
|
||||||
description = "the modular source code checker: pep8 pyflakes and co"
|
description = "Python package for providing Mozilla's CA Bundle."
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6"
|
python-versions = "*"
|
||||||
files = [
|
|
||||||
{file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"},
|
|
||||||
{file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
mccabe = ">=0.6.0,<0.7.0"
|
|
||||||
pycodestyle = ">=2.8.0,<2.9.0"
|
|
||||||
pyflakes = ">=2.4.0,<2.5.0"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "importlib-metadata"
|
name = "chardet"
|
||||||
version = "8.2.0"
|
version = "3.0.4"
|
||||||
description = "Read metadata from Python packages"
|
description = "Universal encoding detector for Python 2 and 3"
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = "*"
|
||||||
files = [
|
|
||||||
{file = "importlib_metadata-8.2.0-py3-none-any.whl", hash = "sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369"},
|
[[package]]
|
||||||
{file = "importlib_metadata-8.2.0.tar.gz", hash = "sha256:72e8d4399996132204f9a16dcc751af254a48f8d1b20b9ff0f98d4a8f901e73d"},
|
name = "dis3"
|
||||||
]
|
version = "0.1.3"
|
||||||
|
description = "Python 2.7 backport of the \"dis\" module from Python 3.5+"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "docutils"
|
||||||
|
version = "0.16"
|
||||||
|
description = "Docutils -- Python Documentation Utilities"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "future"
|
||||||
|
version = "0.18.2"
|
||||||
|
description = "Clean single-source support for Python 3 and 2"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "idna"
|
||||||
|
version = "2.9"
|
||||||
|
description = "Internationalized Domain Names in Applications (IDNA)"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itsdangerous"
|
||||||
|
version = "1.1.0"
|
||||||
|
description = "Various helpers to pass data to untrusted environments and back."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "kivy"
|
||||||
|
version = "1.11.1"
|
||||||
|
description = "A software library for rapid development of hardware-accelerated multitouch applications."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
zipp = ">=0.5"
|
docutils = "*"
|
||||||
|
Kivy-Garden = ">=0.1.4"
|
||||||
|
pygments = "*"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
tuio = ["oscpy"]
|
||||||
perf = ["ipython"]
|
|
||||||
test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "macholib"
|
name = "kivy-deps.angle"
|
||||||
version = "1.16.3"
|
version = "0.3.0"
|
||||||
description = "Mach-O header analysis and editing"
|
description = "Repackaged binary dependency of Kivy."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "kivy-deps.glew"
|
||||||
|
version = "0.1.12"
|
||||||
|
description = "Repackaged binary dependency of Kivy."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "kivy-deps.gstreamer"
|
||||||
|
version = "0.1.17"
|
||||||
|
description = "Repackaged binary dependency of Kivy."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "kivy-deps.sdl2"
|
||||||
|
version = "0.1.22"
|
||||||
|
description = "Repackaged binary dependency of Kivy."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "kivy-garden"
|
||||||
|
version = "0.1.4"
|
||||||
|
description = "Garden tool for kivy flowers."
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
files = [
|
|
||||||
{file = "macholib-1.16.3-py2.py3-none-any.whl", hash = "sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c"},
|
|
||||||
{file = "macholib-1.16.3.tar.gz", hash = "sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
altgraph = ">=0.17"
|
requests = "*"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "mccabe"
|
|
||||||
version = "0.6.1"
|
|
||||||
description = "McCabe checker, plugin for flake8"
|
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
files = [
|
|
||||||
{file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
|
|
||||||
{file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "packaging"
|
name = "packaging"
|
||||||
version = "24.1"
|
version = "21.0"
|
||||||
description = "Core utilities for Python packages"
|
description = "Core utilities for Python packages"
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.6"
|
||||||
files = [
|
|
||||||
{file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"},
|
[package.dependencies]
|
||||||
{file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"},
|
pyparsing = ">=2.0.2"
|
||||||
]
|
|
||||||
|
[[package]]
|
||||||
|
name = "pdf2image"
|
||||||
|
version = "1.12.1"
|
||||||
|
description = "A wrapper around the pdftoppm and pdftocairo command line tools to convert PDF to a PIL Image list."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
pillow = "*"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pefile"
|
name = "pefile"
|
||||||
version = "2023.2.7"
|
version = "2021.9.3"
|
||||||
description = "Python PE parsing module"
|
description = "Python PE parsing module"
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6.0"
|
python-versions = ">=3.6.0"
|
||||||
files = [
|
|
||||||
{file = "pefile-2023.2.7-py3-none-any.whl", hash = "sha256:da185cd2af68c08a6cd4481f7325ed600a88f6a813bad9dea07ab3ef73d8d8d6"},
|
[package.dependencies]
|
||||||
{file = "pefile-2023.2.7.tar.gz", hash = "sha256:82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc"},
|
future = "*"
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pycodestyle"
|
name = "pillow"
|
||||||
version = "2.8.0"
|
version = "7.2.0"
|
||||||
description = "Python style guide checker"
|
description = "Python Imaging Library (Fork)"
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=3.5"
|
||||||
files = [
|
|
||||||
{file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"},
|
|
||||||
{file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyflakes"
|
name = "pygments"
|
||||||
version = "2.4.0"
|
version = "2.6.1"
|
||||||
description = "passive checker of Python programs"
|
description = "Pygments is a syntax highlighting package written in Python."
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=3.5"
|
||||||
files = [
|
|
||||||
{file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"},
|
|
||||||
{file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyinstaller"
|
name = "pyinstaller"
|
||||||
version = "5.13.1"
|
version = "3.6"
|
||||||
description = "PyInstaller bundles a Python application and all its dependencies into a single package."
|
description = "PyInstaller bundles a Python application and all its dependencies into a single package."
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "<3.13,>=3.7"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
files = [
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-macosx_10_13_universal2.whl", hash = "sha256:3c9cfe6d5d2f392d5d47389f6d377a8f225db460cdd01048b5a3de1d99c24ebe"},
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:29341d2e86d5ce7df993e797ee96ef679041fc85376d31c35c7b714085a21299"},
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-manylinux2014_i686.whl", hash = "sha256:ad6e31a8f35a463c6140e4cf979859197edc9831a1039253408b0fe5eec274dc"},
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:5d801db3ceee58d01337473ea897e96e4bb21421a169dd7cf8716754617ff7fc"},
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-manylinux2014_s390x.whl", hash = "sha256:2519db3edec87d8c33924c2c4b7e176d8c1bbd9ba892d77efb67281925e621d6"},
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:e033218c8922f0342b6095fb444ecb3bc6747dfa58cac5eac2b985350f4b681e"},
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:086e68aa1e72f6aa13b9d170a395755e2b194b8ab410caeed02d16b432410c8c"},
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:aa609aca62edd8cdcf7740677a21525e6c23b5e9a8f821ec8a80c68947771b5d"},
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-win32.whl", hash = "sha256:b8d4000af72bf72f8185d420cd0a0aee0961f03a5c3511dc3ff08cdaef0583de"},
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-win_amd64.whl", hash = "sha256:b70ebc10811b30bbea4cf5b81fd1477db992c2614cf215edc987cda9c5468911"},
|
|
||||||
{file = "pyinstaller-5.13.1-py3-none-win_arm64.whl", hash = "sha256:78d1601a11475b95dceff6eaf0c9cd74d93e3f47b5ce4ad63cd76e7a369d3d04"},
|
|
||||||
{file = "pyinstaller-5.13.1.tar.gz", hash = "sha256:a2e7a1d76a7ac26f1db849d691a374f2048b0e204233028d25d79a90ecd1fec8"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
altgraph = "*"
|
altgraph = "*"
|
||||||
macholib = {version = ">=1.8", markers = "sys_platform == \"darwin\""}
|
dis3 = "*"
|
||||||
pefile = {version = ">=2022.5.30", markers = "sys_platform == \"win32\""}
|
|
||||||
pyinstaller-hooks-contrib = ">=2021.4"
|
|
||||||
pywin32-ctypes = {version = ">=0.2.1", markers = "sys_platform == \"win32\""}
|
|
||||||
setuptools = ">=42.0.0"
|
|
||||||
|
|
||||||
[package.extras]
|
|
||||||
encryption = ["tinyaes (>=1.0.0)"]
|
|
||||||
hook-testing = ["execnet (>=1.5.0)", "psutil", "pytest (>=2.7.3)"]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyinstaller-hooks-contrib"
|
name = "pyparsing"
|
||||||
version = "2024.8"
|
version = "2.4.7"
|
||||||
description = "Community maintained hooks for PyInstaller"
|
description = "Python parsing module"
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||||
files = [
|
|
||||||
{file = "pyinstaller_hooks_contrib-2024.8-py3-none-any.whl", hash = "sha256:0057fe9a5c398d3f580e73e58793a1d4a8315ca91c3df01efea1c14ed557825a"},
|
|
||||||
{file = "pyinstaller_hooks_contrib-2024.8.tar.gz", hash = "sha256:29b68d878ab739e967055b56a93eb9b58e529d5b054fbab7a2f2bacf80cef3e2"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""}
|
|
||||||
packaging = ">=22.0"
|
|
||||||
setuptools = ">=42.0.0"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pywin32-ctypes"
|
name = "pywin32-ctypes"
|
||||||
version = "0.2.2"
|
version = "0.2.0"
|
||||||
description = "A (partial) reimplementation of pywin32 using ctypes/cffi"
|
description = ""
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6"
|
python-versions = "*"
|
||||||
files = [
|
|
||||||
{file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60"},
|
|
||||||
{file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "setuptools"
|
name = "requests"
|
||||||
version = "72.1.0"
|
version = "2.24.0"
|
||||||
description = "Easily download, build, install, upgrade, and uninstall Python packages"
|
description = "Python HTTP for Humans."
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
files = [
|
|
||||||
{file = "setuptools-72.1.0-py3-none-any.whl", hash = "sha256:5a03e1860cf56bb6ef48ce186b0e557fdba433237481a9a625176c2831be15d1"},
|
[package.dependencies]
|
||||||
{file = "setuptools-72.1.0.tar.gz", hash = "sha256:8d243eff56d095e5817f796ede6ae32941278f542e0f941867cc05ae52b162ec"},
|
certifi = ">=2017.4.17"
|
||||||
]
|
chardet = ">=3.0.2,<4"
|
||||||
|
idna = ">=2.5,<3"
|
||||||
|
urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
|
security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
|
||||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
|
socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
|
||||||
test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zipp"
|
name = "urllib3"
|
||||||
version = "3.20.0"
|
version = "1.25.9"
|
||||||
description = "Backport of pathlib-compatible object wrapper for zip files"
|
description = "HTTP library with thread-safe connection pooling, file post, and more."
|
||||||
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
|
||||||
files = [
|
|
||||||
{file = "zipp-3.20.0-py3-none-any.whl", hash = "sha256:58da6168be89f0be59beb194da1250516fdaa062ccebd30127ac65d30045e10d"},
|
|
||||||
{file = "zipp-3.20.0.tar.gz", hash = "sha256:0145e43d89664cfe1a2e533adc75adafed82fe2da404b4bbb6b026c0157bdb31"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
brotli = ["brotlipy (>=0.6.0)"]
|
||||||
test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"]
|
secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"]
|
||||||
|
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "xlrd"
|
||||||
|
version = "1.2.0"
|
||||||
|
description = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "1.1"
|
||||||
python-versions = ">=3.8,<3.13"
|
python-versions = "^3.8"
|
||||||
content-hash = "46617f6f661c740ba597c9c9ff83ccf6b41b6a77139e38b062fec14d3a57c6d9"
|
content-hash = "b3d607363c6daf2b5448aa5ee676cff28606af6200d8e9b42e89937a190a3d46"
|
||||||
|
|
||||||
|
[metadata.files]
|
||||||
|
altgraph = [
|
||||||
|
{file = "altgraph-0.17.2-py2.py3-none-any.whl", hash = "sha256:743628f2ac6a7c26f5d9223c91ed8ecbba535f506f4b6f558885a8a56a105857"},
|
||||||
|
{file = "altgraph-0.17.2.tar.gz", hash = "sha256:ebf2269361b47d97b3b88e696439f6e4cbc607c17c51feb1754f90fb79839158"},
|
||||||
|
]
|
||||||
|
certifi = [
|
||||||
|
{file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"},
|
||||||
|
{file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"},
|
||||||
|
]
|
||||||
|
chardet = [
|
||||||
|
{file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
|
||||||
|
{file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
|
||||||
|
]
|
||||||
|
dis3 = [
|
||||||
|
{file = "dis3-0.1.3-py2-none-any.whl", hash = "sha256:61f7720dd0d8749d23fda3d7227ce74d73da11c2fade993a67ab2f9852451b14"},
|
||||||
|
{file = "dis3-0.1.3-py3-none-any.whl", hash = "sha256:30b6412d33d738663e8ded781b138f4b01116437f0872aa56aa3adba6aeff218"},
|
||||||
|
{file = "dis3-0.1.3.tar.gz", hash = "sha256:9259b881fc1df02ed12ac25f82d4a85b44241854330b1a651e40e0c675cb2d1e"},
|
||||||
|
]
|
||||||
|
docutils = [
|
||||||
|
{file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
|
||||||
|
{file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
|
||||||
|
]
|
||||||
|
future = [
|
||||||
|
{file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"},
|
||||||
|
]
|
||||||
|
idna = [
|
||||||
|
{file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"},
|
||||||
|
{file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"},
|
||||||
|
]
|
||||||
|
itsdangerous = [
|
||||||
|
{file = "itsdangerous-1.1.0-py2.py3-none-any.whl", hash = "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"},
|
||||||
|
{file = "itsdangerous-1.1.0.tar.gz", hash = "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"},
|
||||||
|
]
|
||||||
|
kivy = [
|
||||||
|
{file = "Kivy-1.11.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:11e85eaf6efbfa2362a3334ffdad179a1b0ca8d255cca79eaa6a2765560d4982"},
|
||||||
|
{file = "Kivy-1.11.1-cp27-cp27m-win32.whl", hash = "sha256:5c3d0f2749522d62e9cce09cd54b2d823bf1b6b644ff1f627be49de6f3e3cba0"},
|
||||||
|
{file = "Kivy-1.11.1-cp27-cp27m-win_amd64.whl", hash = "sha256:f835462dd9aa491272552ef079b948a088598e2e95d68bb1d885d2c3f3d4e2c3"},
|
||||||
|
{file = "Kivy-1.11.1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:090d3ded9835a17477cd93fbdaf0a7c42ff2218981cf198ded5ad8795bc74391"},
|
||||||
|
{file = "Kivy-1.11.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:b85ccf165050cbf2ee8447671eebbc222b369b40f0e0038dd9547d49a5e37373"},
|
||||||
|
{file = "Kivy-1.11.1-cp35-cp35m-win32.whl", hash = "sha256:4a5480cbf837d3780c77a4f61b32b56d22ae9f03845e7a89dd3eaef1ae5fd037"},
|
||||||
|
{file = "Kivy-1.11.1-cp35-cp35m-win_amd64.whl", hash = "sha256:a687602d90c4629dd036f577ca39acb76ba581370f9d915f3cab99be818ba8ad"},
|
||||||
|
{file = "Kivy-1.11.1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:c36652caa7f6c327dee834cfc699d5962d346b7a53e54bd81abc17c314226d89"},
|
||||||
|
{file = "Kivy-1.11.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:b7ef6aad43a86d8df3fb865db864e354f2155a748019f8517f69f65c1a29cb64"},
|
||||||
|
{file = "Kivy-1.11.1-cp36-cp36m-win32.whl", hash = "sha256:f3bea6e4a21991827885d04127fc6d09a0e974ecfa12da7bf5faae93562ea102"},
|
||||||
|
{file = "Kivy-1.11.1-cp36-cp36m-win_amd64.whl", hash = "sha256:ece170514db3f49844a41e4c910ad9ce9bc46da6f47a49158e11266bdcc6e479"},
|
||||||
|
{file = "Kivy-1.11.1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:8819a27a09871af451760cb69486ced52e830c8a0a37480f22ef5e692f12c05b"},
|
||||||
|
{file = "Kivy-1.11.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:1a1ff32f8a95f1e175198cbab81fcd2596783b180d4eafe63e87d171aa7fdb5e"},
|
||||||
|
{file = "Kivy-1.11.1-cp37-cp37m-win32.whl", hash = "sha256:815a5c0b3b72fcd81ca7b2aa0744087163ed03e4cf9ab4e7c9733cea99fc1571"},
|
||||||
|
{file = "Kivy-1.11.1-cp37-cp37m-win_amd64.whl", hash = "sha256:1d28b198a64c30db8d94a0488e85f3037af60d514ab0d7ad5ab45add3ab77090"},
|
||||||
|
{file = "Kivy-1.11.1.tar.gz", hash = "sha256:4d0e596f74271e901b551f77661dde238df4765484fce9f5d1c72e8022984e84"},
|
||||||
|
]
|
||||||
|
"kivy-deps.angle" = [
|
||||||
|
{file = "kivy_deps.angle-0.3.0-cp310-cp310-win32.whl", hash = "sha256:7b56477c726e361592f794d49b2fdd96d579b7efd7225a8aadf7fd01d4e8cb80"},
|
||||||
|
{file = "kivy_deps.angle-0.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:a4b78fd9d47c76e5ff52fcbaa040920a2f97bff038f4c534346dd833dc8f3145"},
|
||||||
|
{file = "kivy_deps.angle-0.3.0-cp36-cp36m-win32.whl", hash = "sha256:a2cea09e8a5e899629466403fbd540459f1cdef8d08c6c479b6607b95309be02"},
|
||||||
|
{file = "kivy_deps.angle-0.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:b167e19b3eea55a9a8c606a607bb909ec1bedda88deee40347c780b310155a79"},
|
||||||
|
{file = "kivy_deps.angle-0.3.0-cp37-cp37m-win32.whl", hash = "sha256:d0e7b7b9eb9669837a5d70808a7ea45f2b61961b56f9f69a233bad6bd36ce260"},
|
||||||
|
{file = "kivy_deps.angle-0.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b9d07976b0bf6bac724a42aa8ed5a8c7caa95609046db30c8f15bb731f8e4d36"},
|
||||||
|
{file = "kivy_deps.angle-0.3.0-cp38-cp38-win32.whl", hash = "sha256:99c40d53582a958748e251dfbd61aa67fb85963e27529ca08a21f2f5eeed04e1"},
|
||||||
|
{file = "kivy_deps.angle-0.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:50605fdd4c9fdbe9f717069734a598a9aba0afe5d3f0412afbe2ecff0326e92d"},
|
||||||
|
{file = "kivy_deps.angle-0.3.0-cp39-cp39-win32.whl", hash = "sha256:64ac7f33c000585dc30194e604aed925972c6b7c3848b5c3b073ae916fb0b55c"},
|
||||||
|
{file = "kivy_deps.angle-0.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:bb4d53f15a093214adbbe205c108ede5cc0f6af6eff104c1b8c468ddaaf6400a"},
|
||||||
|
]
|
||||||
|
"kivy-deps.glew" = [
|
||||||
|
{file = "kivy_deps.glew-0.1.12-cp27-cp27m-win32.whl", hash = "sha256:92e72fa2c425887987d1aa861c99537033dc20d68ae1c54864871f0401682586"},
|
||||||
|
{file = "kivy_deps.glew-0.1.12-cp27-cp27m-win_amd64.whl", hash = "sha256:c843104690c0c8f3a58105c53c57f31506f6f90562c18de00bd19317cc1045a7"},
|
||||||
|
{file = "kivy_deps.glew-0.1.12-cp35-cp35m-win32.whl", hash = "sha256:ee8ab67abb2c98d84feede657cae472e7723e529af07394244bdd33caafb1a38"},
|
||||||
|
{file = "kivy_deps.glew-0.1.12-cp35-cp35m-win_amd64.whl", hash = "sha256:ab81783a82bef88a8d2bcf8a93bc21df6b8b0db6ee551eb802727d18f9074b17"},
|
||||||
|
{file = "kivy_deps.glew-0.1.12-cp36-cp36m-win32.whl", hash = "sha256:45aa7f0e8d9bcf5fc1810c9c38bc20edf7dee61df81ecf62102e0f84153f924a"},
|
||||||
|
{file = "kivy_deps.glew-0.1.12-cp36-cp36m-win_amd64.whl", hash = "sha256:ef1116d99bd9cc737cb8c0e13e676955c17d6e4d6d1af5cfccef089a430071bb"},
|
||||||
|
{file = "kivy_deps.glew-0.1.12-cp37-cp37m-win32.whl", hash = "sha256:1e28e40017af9d081fc0fc95b4fadaf31d15e9f63478dcee1c4257d67079894e"},
|
||||||
|
{file = "kivy_deps.glew-0.1.12-cp37-cp37m-win_amd64.whl", hash = "sha256:6bb435620c3187d2c61054adb9ec277ed487256b457a0a7b1491bc0cb7247e18"},
|
||||||
|
{file = "kivy_deps.glew-0.1.12-cp38-cp38-win32.whl", hash = "sha256:09f72ee5ef33ff273332e2a229dc97d650d29818a0189339421949e4e0f63d93"},
|
||||||
|
{file = "kivy_deps.glew-0.1.12-cp38-cp38-win_amd64.whl", hash = "sha256:cf351aad171796f8051af8e49ec430a9aa128d8557d8643e73f2bb1e5f9c2dab"},
|
||||||
|
]
|
||||||
|
"kivy-deps.gstreamer" = [
|
||||||
|
{file = "kivy_deps.gstreamer-0.1.17-cp27-cp27m-win32.whl", hash = "sha256:309eca64dee5939f16f8465e5cbb08bdde7c90ded1af6a00690c7e928326af79"},
|
||||||
|
{file = "kivy_deps.gstreamer-0.1.17-cp27-cp27m-win_amd64.whl", hash = "sha256:0d9598d2d31c0e780adf4b767fa3a691123621fd0ffef94b83cf82c2da84341b"},
|
||||||
|
{file = "kivy_deps.gstreamer-0.1.17-cp35-cp35m-win32.whl", hash = "sha256:4f2ddd61d185310258d338ae80a646df7822efdd7d67e57f49dc7b87555c5d7e"},
|
||||||
|
{file = "kivy_deps.gstreamer-0.1.17-cp35-cp35m-win_amd64.whl", hash = "sha256:6fa9f76afe600baa221abee31ce7dc63e653d0affe0f6c558bfc4f35af96396f"},
|
||||||
|
{file = "kivy_deps.gstreamer-0.1.17-cp36-cp36m-win32.whl", hash = "sha256:c4709765e2b17c6c96b46a92207b0457def147544d825654077603eaf0d424de"},
|
||||||
|
{file = "kivy_deps.gstreamer-0.1.17-cp36-cp36m-win_amd64.whl", hash = "sha256:c29cfc63fe70a58dad889e631f1ba4711c9ea80103f2b2b8d670a97f093076c8"},
|
||||||
|
{file = "kivy_deps.gstreamer-0.1.17-cp37-cp37m-win32.whl", hash = "sha256:4d996377111e854b3dea90846f9b2f98766a44529fd8b72125e18c552381d928"},
|
||||||
|
{file = "kivy_deps.gstreamer-0.1.17-cp37-cp37m-win_amd64.whl", hash = "sha256:739cd331b9f33a822d700273674a79a3157054e9358a01a0d553f094a5f4a8c9"},
|
||||||
|
{file = "kivy_deps.gstreamer-0.1.17-cp38-cp38-win_amd64.whl", hash = "sha256:3d53d2c84c0a997c4cac6c239b1e0a6486e533836321003dc365ec42b97a664b"},
|
||||||
|
]
|
||||||
|
"kivy-deps.sdl2" = [
|
||||||
|
{file = "kivy_deps.sdl2-0.1.22-cp27-cp27m-win32.whl", hash = "sha256:1b987bdd4fbbcb31baf0d7fc9584ad99912179b8968311bb7e30fbeb14e98e0d"},
|
||||||
|
{file = "kivy_deps.sdl2-0.1.22-cp27-cp27m-win_amd64.whl", hash = "sha256:228128cdd8112dc7505ac43027a770476e9ef282e0b84ca68037133cd025960b"},
|
||||||
|
{file = "kivy_deps.sdl2-0.1.22-cp35-cp35m-win32.whl", hash = "sha256:053f26e8c05d5545bdbc7eeb8c450b8e4410ee355792e9345af536110fe247e2"},
|
||||||
|
{file = "kivy_deps.sdl2-0.1.22-cp35-cp35m-win_amd64.whl", hash = "sha256:5ce23f1a3286d6288751a12b0eaefd02f947ea101bb807e9781b964e496fc3f3"},
|
||||||
|
{file = "kivy_deps.sdl2-0.1.22-cp36-cp36m-win32.whl", hash = "sha256:96e1fa89fd8b5351f2d3c26bbffd50df8d554b03fba4025ecc941d773d241698"},
|
||||||
|
{file = "kivy_deps.sdl2-0.1.22-cp36-cp36m-win_amd64.whl", hash = "sha256:c3ace0ddde0e59cdcaf260eda1daa0c05ca9bf8cd0c4ea404539de25a5dcaec7"},
|
||||||
|
{file = "kivy_deps.sdl2-0.1.22-cp37-cp37m-win32.whl", hash = "sha256:7928746eaed51944c10d1bb36fcefebe3d1aff1b97ba32359c2c97ba74707e1b"},
|
||||||
|
{file = "kivy_deps.sdl2-0.1.22-cp37-cp37m-win_amd64.whl", hash = "sha256:2c2fd5a12a7a9afe3bb962b273561099a180edae91bb9c8f8386b72253fcae4a"},
|
||||||
|
{file = "kivy_deps.sdl2-0.1.22-cp38-cp38-win32.whl", hash = "sha256:9270fa8ed5130074b167a7a3a9c85efc3cfe3c04584ab084cb6ae9e4edfa8168"},
|
||||||
|
{file = "kivy_deps.sdl2-0.1.22-cp38-cp38-win_amd64.whl", hash = "sha256:92ed97d3247bc8ce98f336cbc940bb889310199326e9ccf251c49ae7e4b80de8"},
|
||||||
|
]
|
||||||
|
kivy-garden = [
|
||||||
|
{file = "Kivy Garden-0.1.4.tar.gz", hash = "sha256:9b7d9de5efacbcd0c4b3dd873b30622a86093c9965aa47b523c7a32f3eb34610"},
|
||||||
|
{file = "kivy-garden-0.1.4.tar.gz", hash = "sha256:c256f42788421273a08fbb0a228f0fb0e80dd86b629fb8c0920507f645be6c72"},
|
||||||
|
]
|
||||||
|
packaging = [
|
||||||
|
{file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"},
|
||||||
|
{file = "packaging-21.0.tar.gz", hash = "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7"},
|
||||||
|
]
|
||||||
|
pdf2image = [
|
||||||
|
{file = "pdf2image-1.12.1.tar.gz", hash = "sha256:a0d9906f5507192210a8d5d7ead63145e9dec4bccc4564b1fb644e923913c31c"},
|
||||||
|
]
|
||||||
|
pefile = [
|
||||||
|
{file = "pefile-2021.9.3.tar.gz", hash = "sha256:344a49e40a94e10849f0fe34dddc80f773a12b40675bf2f7be4b8be578bdd94a"},
|
||||||
|
]
|
||||||
|
pillow = [
|
||||||
|
{file = "Pillow-7.2.0-cp35-cp35m-macosx_10_10_intel.whl", hash = "sha256:1ca594126d3c4def54babee699c055a913efb01e106c309fa6b04405d474d5ae"},
|
||||||
|
{file = "Pillow-7.2.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c92302a33138409e8f1ad16731568c55c9053eee71bb05b6b744067e1b62380f"},
|
||||||
|
{file = "Pillow-7.2.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:8dad18b69f710bf3a001d2bf3afab7c432785d94fcf819c16b5207b1cfd17d38"},
|
||||||
|
{file = "Pillow-7.2.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:431b15cffbf949e89df2f7b48528be18b78bfa5177cb3036284a5508159492b5"},
|
||||||
|
{file = "Pillow-7.2.0-cp35-cp35m-win32.whl", hash = "sha256:09d7f9e64289cb40c2c8d7ad674b2ed6105f55dc3b09aa8e4918e20a0311e7ad"},
|
||||||
|
{file = "Pillow-7.2.0-cp35-cp35m-win_amd64.whl", hash = "sha256:0295442429645fa16d05bd567ef5cff178482439c9aad0411d3f0ce9b88b3a6f"},
|
||||||
|
{file = "Pillow-7.2.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:ec29604081f10f16a7aea809ad42e27764188fc258b02259a03a8ff7ded3808d"},
|
||||||
|
{file = "Pillow-7.2.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:612cfda94e9c8346f239bf1a4b082fdd5c8143cf82d685ba2dba76e7adeeb233"},
|
||||||
|
{file = "Pillow-7.2.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0a80dd307a5d8440b0a08bd7b81617e04d870e40a3e46a32d9c246e54705e86f"},
|
||||||
|
{file = "Pillow-7.2.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:06aba4169e78c439d528fdeb34762c3b61a70813527a2c57f0540541e9f433a8"},
|
||||||
|
{file = "Pillow-7.2.0-cp36-cp36m-win32.whl", hash = "sha256:f7e30c27477dffc3e85c2463b3e649f751789e0f6c8456099eea7ddd53be4a8a"},
|
||||||
|
{file = "Pillow-7.2.0-cp36-cp36m-win_amd64.whl", hash = "sha256:ffe538682dc19cc542ae7c3e504fdf54ca7f86fb8a135e59dd6bc8627eae6cce"},
|
||||||
|
{file = "Pillow-7.2.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:94cf49723928eb6070a892cb39d6c156f7b5a2db4e8971cb958f7b6b104fb4c4"},
|
||||||
|
{file = "Pillow-7.2.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6edb5446f44d901e8683ffb25ebdfc26988ee813da3bf91e12252b57ac163727"},
|
||||||
|
{file = "Pillow-7.2.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:52125833b070791fcb5710fabc640fc1df07d087fc0c0f02d3661f76c23c5b8b"},
|
||||||
|
{file = "Pillow-7.2.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:9ad7f865eebde135d526bb3163d0b23ffff365cf87e767c649550964ad72785d"},
|
||||||
|
{file = "Pillow-7.2.0-cp37-cp37m-win32.whl", hash = "sha256:c79f9c5fb846285f943aafeafda3358992d64f0ef58566e23484132ecd8d7d63"},
|
||||||
|
{file = "Pillow-7.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d350f0f2c2421e65fbc62690f26b59b0bcda1b614beb318c81e38647e0f673a1"},
|
||||||
|
{file = "Pillow-7.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:6d7741e65835716ceea0fd13a7d0192961212fd59e741a46bbed7a473c634ed6"},
|
||||||
|
{file = "Pillow-7.2.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:edf31f1150778abd4322444c393ab9c7bd2af271dd4dafb4208fb613b1f3cdc9"},
|
||||||
|
{file = "Pillow-7.2.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:d08b23fdb388c0715990cbc06866db554e1822c4bdcf6d4166cf30ac82df8c41"},
|
||||||
|
{file = "Pillow-7.2.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:5e51ee2b8114def244384eda1c82b10e307ad9778dac5c83fb0943775a653cd8"},
|
||||||
|
{file = "Pillow-7.2.0-cp38-cp38-win32.whl", hash = "sha256:725aa6cfc66ce2857d585f06e9519a1cc0ef6d13f186ff3447ab6dff0a09bc7f"},
|
||||||
|
{file = "Pillow-7.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:a060cf8aa332052df2158e5a119303965be92c3da6f2d93b6878f0ebca80b2f6"},
|
||||||
|
{file = "Pillow-7.2.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:9c87ef410a58dd54b92424ffd7e28fd2ec65d2f7fc02b76f5e9b2067e355ebf6"},
|
||||||
|
{file = "Pillow-7.2.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:e901964262a56d9ea3c2693df68bc9860b8bdda2b04768821e4c44ae797de117"},
|
||||||
|
{file = "Pillow-7.2.0-pp36-pypy36_pp73-win32.whl", hash = "sha256:25930fadde8019f374400f7986e8404c8b781ce519da27792cbe46eabec00c4d"},
|
||||||
|
{file = "Pillow-7.2.0.tar.gz", hash = "sha256:97f9e7953a77d5a70f49b9a48da7776dc51e9b738151b22dacf101641594a626"},
|
||||||
|
]
|
||||||
|
pygments = [
|
||||||
|
{file = "Pygments-2.6.1-py3-none-any.whl", hash = "sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324"},
|
||||||
|
{file = "Pygments-2.6.1.tar.gz", hash = "sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44"},
|
||||||
|
]
|
||||||
|
pyinstaller = [
|
||||||
|
{file = "PyInstaller-3.6.tar.gz", hash = "sha256:3730fa80d088f8bb7084d32480eb87cbb4ddb64123363763cf8f2a1378c1c4b7"},
|
||||||
|
]
|
||||||
|
pyparsing = [
|
||||||
|
{file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
|
||||||
|
{file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
|
||||||
|
]
|
||||||
|
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"},
|
||||||
|
]
|
||||||
|
requests = [
|
||||||
|
{file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
|
||||||
|
{file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
|
||||||
|
]
|
||||||
|
urllib3 = [
|
||||||
|
{file = "urllib3-1.25.9-py2.py3-none-any.whl", hash = "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"},
|
||||||
|
{file = "urllib3-1.25.9.tar.gz", hash = "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527"},
|
||||||
|
]
|
||||||
|
xlrd = [
|
||||||
|
{file = "xlrd-1.2.0-py2.py3-none-any.whl", hash = "sha256:e551fb498759fa3a5384a94ccd4c3c02eb7c00ea424426e212ac0c57be9dfbde"},
|
||||||
|
{file = "xlrd-1.2.0.tar.gz", hash = "sha256:546eb36cee8db40c3eaa46c351e67ffee6eeb5fa2650b71bc4c758a29a1b29b2"},
|
||||||
|
]
|
||||||
|
@ -5,10 +5,8 @@ description = ""
|
|||||||
authors = ["Your Name <you@example.com>"]
|
authors = ["Your Name <you@example.com>"]
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = ">=3.8,<3.13"
|
python = "^3.8"
|
||||||
flake8 = "^4.0.1"
|
flake8 = "^4.0.1"
|
||||||
pyinstaller = "5.13.1"
|
|
||||||
|
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ pillow==7.2
|
|||||||
|
|
||||||
pygments==2.6.1
|
pygments==2.6.1
|
||||||
|
|
||||||
pyinstaller==5.13.1
|
pyinstaller==3.6
|
||||||
|
|
||||||
pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'
|
pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'
|
||||||
|
|
||||||
|
@ -12,9 +12,7 @@ import {
|
|||||||
getVersionInputFromFile,
|
getVersionInputFromFile,
|
||||||
getVersionInputFromPlainFile,
|
getVersionInputFromPlainFile,
|
||||||
getVersionInputFromTomlFile,
|
getVersionInputFromTomlFile,
|
||||||
getNextPageUrl,
|
getNextPageUrl
|
||||||
IS_WINDOWS,
|
|
||||||
getDownloadFileName
|
|
||||||
} from '../src/utils';
|
} from '../src/utils';
|
||||||
|
|
||||||
jest.mock('@actions/cache');
|
jest.mock('@actions/cache');
|
||||||
@ -161,37 +159,3 @@ describe('getNextPageUrl', () => {
|
|||||||
expect(getNextPageUrl(generateResponse(page2Links))).toBeNull();
|
expect(getNextPageUrl(generateResponse(page2Links))).toBeNull();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getDownloadFileName', () => {
|
|
||||||
const originalEnv = process.env;
|
|
||||||
const tempDir = path.join(__dirname, 'runner', 'temp');
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
process.env = {...originalEnv};
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(() => {
|
|
||||||
process.env = originalEnv;
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should return the correct path on Windows', () => {
|
|
||||||
if (IS_WINDOWS) {
|
|
||||||
process.env['RUNNER_TEMP'] = tempDir;
|
|
||||||
const downloadUrl =
|
|
||||||
'https://github.com/actions/sometool/releases/tag/1.2.3-20200402.6/sometool-1.2.3-win32-x64.zip';
|
|
||||||
const expectedPath = path.join(
|
|
||||||
process.env.RUNNER_TEMP,
|
|
||||||
path.basename(downloadUrl)
|
|
||||||
);
|
|
||||||
expect(getDownloadFileName(downloadUrl)).toBe(expectedPath);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should return undefined on non-Windows', () => {
|
|
||||||
if (!IS_WINDOWS) {
|
|
||||||
const downloadUrl =
|
|
||||||
'https://github.com/actions/sometool/releases/tag/1.2.3-20200402.6/sometool-1.2.3-linux-x64.tar.gz';
|
|
||||||
expect(getDownloadFileName(downloadUrl)).toBeUndefined();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
2
dist/cache-save/index.js
vendored
2
dist/cache-save/index.js
vendored
@ -81041,7 +81041,7 @@ class CacheDistributor {
|
|||||||
.split('\n')
|
.split('\n')
|
||||||
.join(',')} or ${constants_1.CACHE_DEPENDENCY_BACKUP_PATH}`
|
.join(',')} or ${constants_1.CACHE_DEPENDENCY_BACKUP_PATH}`
|
||||||
: this.cacheDependencyPath.split('\n').join(',');
|
: this.cacheDependencyPath.split('\n').join(',');
|
||||||
throw new Error(`No file in ${process.cwd()} matched to [${file}], make sure you have checked out the target repository. No cache paths were identified for ${this.packageManager} with cache-dependency-path = ${this.cacheDependencyPath}. This likely indicates no dependencies to cache. Consider removing the cache step if it's not needed`);
|
throw new Error(`No file in ${process.cwd()} matched to [${file}], make sure you have checked out the target repository`);
|
||||||
}
|
}
|
||||||
const cachePath = yield this.getCacheGlobalDirectories();
|
const cachePath = yield this.getCacheGlobalDirectories();
|
||||||
core.saveState(State.CACHE_PATHS, cachePath);
|
core.saveState(State.CACHE_PATHS, cachePath);
|
||||||
|
174
dist/setup/index.js
vendored
174
dist/setup/index.js
vendored
@ -46726,7 +46726,7 @@ function makeParserClass (Parser) {
|
|||||||
let target = this.ctx
|
let target = this.ctx
|
||||||
let finalKey = kv.key.pop()
|
let finalKey = kv.key.pop()
|
||||||
for (let kw of kv.key) {
|
for (let kw of kv.key) {
|
||||||
if (hasKey(target, kw) && !isTable(target[kw])) {
|
if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) {
|
||||||
throw this.error(new TomlError("Can't redefine existing key"))
|
throw this.error(new TomlError("Can't redefine existing key"))
|
||||||
}
|
}
|
||||||
target = target[kw] = target[kw] || Table()
|
target = target[kw] = target[kw] || Table()
|
||||||
@ -46734,7 +46734,6 @@ function makeParserClass (Parser) {
|
|||||||
if (hasKey(target, finalKey)) {
|
if (hasKey(target, finalKey)) {
|
||||||
throw this.error(new TomlError("Can't redefine existing key"))
|
throw this.error(new TomlError("Can't redefine existing key"))
|
||||||
}
|
}
|
||||||
target[_declared] = true
|
|
||||||
// unbox our numbers
|
// unbox our numbers
|
||||||
if (isInteger(kv.value) || isFloat(kv.value)) {
|
if (isInteger(kv.value) || isFloat(kv.value)) {
|
||||||
target[finalKey] = kv.value.valueOf()
|
target[finalKey] = kv.value.valueOf()
|
||||||
@ -46792,8 +46791,6 @@ function makeParserClass (Parser) {
|
|||||||
do {
|
do {
|
||||||
if (this.char === Parser.END || this.char === CTRL_J) {
|
if (this.char === Parser.END || this.char === CTRL_J) {
|
||||||
return this.return()
|
return this.return()
|
||||||
} else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {
|
|
||||||
throw this.errorControlCharIn('comments')
|
|
||||||
}
|
}
|
||||||
} while (this.nextChar())
|
} while (this.nextChar())
|
||||||
}
|
}
|
||||||
@ -47007,7 +47004,7 @@ function makeParserClass (Parser) {
|
|||||||
} else if (this.atEndOfLine()) {
|
} else if (this.atEndOfLine()) {
|
||||||
throw this.error(new TomlError('Unterminated string'))
|
throw this.error(new TomlError('Unterminated string'))
|
||||||
} else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {
|
} else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {
|
||||||
throw this.errorControlCharIn('strings')
|
throw this.errorControlCharInString()
|
||||||
} else {
|
} else {
|
||||||
this.consume()
|
this.consume()
|
||||||
}
|
}
|
||||||
@ -47036,7 +47033,7 @@ function makeParserClass (Parser) {
|
|||||||
} else if (this.char === Parser.END) {
|
} else if (this.char === Parser.END) {
|
||||||
throw this.error(new TomlError('Unterminated multi-line string'))
|
throw this.error(new TomlError('Unterminated multi-line string'))
|
||||||
} else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {
|
} else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {
|
||||||
throw this.errorControlCharIn('strings')
|
throw this.errorControlCharInString()
|
||||||
} else {
|
} else {
|
||||||
this.consume()
|
this.consume()
|
||||||
}
|
}
|
||||||
@ -47052,28 +47049,12 @@ function makeParserClass (Parser) {
|
|||||||
}
|
}
|
||||||
parseLiteralMultiEnd2 () {
|
parseLiteralMultiEnd2 () {
|
||||||
if (this.char === CHAR_APOS) {
|
if (this.char === CHAR_APOS) {
|
||||||
return this.next(this.parseLiteralMultiEnd3)
|
return this.return()
|
||||||
} else {
|
} else {
|
||||||
this.state.buf += "''"
|
this.state.buf += "''"
|
||||||
return this.goto(this.parseLiteralMultiStringContent)
|
return this.goto(this.parseLiteralMultiStringContent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
parseLiteralMultiEnd3 () {
|
|
||||||
if (this.char === CHAR_APOS) {
|
|
||||||
this.state.buf += "'"
|
|
||||||
return this.next(this.parseLiteralMultiEnd4)
|
|
||||||
} else {
|
|
||||||
return this.returnNow()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
parseLiteralMultiEnd4 () {
|
|
||||||
if (this.char === CHAR_APOS) {
|
|
||||||
this.state.buf += "'"
|
|
||||||
return this.return()
|
|
||||||
} else {
|
|
||||||
return this.returnNow()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* STRINGS double quoted */
|
/* STRINGS double quoted */
|
||||||
parseDoubleString () {
|
parseDoubleString () {
|
||||||
@ -47092,7 +47073,7 @@ function makeParserClass (Parser) {
|
|||||||
} else if (this.atEndOfLine()) {
|
} else if (this.atEndOfLine()) {
|
||||||
throw this.error(new TomlError('Unterminated string'))
|
throw this.error(new TomlError('Unterminated string'))
|
||||||
} else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {
|
} else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) {
|
||||||
throw this.errorControlCharIn('strings')
|
throw this.errorControlCharInString()
|
||||||
} else {
|
} else {
|
||||||
this.consume()
|
this.consume()
|
||||||
}
|
}
|
||||||
@ -47127,20 +47108,20 @@ function makeParserClass (Parser) {
|
|||||||
} else if (this.char === Parser.END) {
|
} else if (this.char === Parser.END) {
|
||||||
throw this.error(new TomlError('Unterminated multi-line string'))
|
throw this.error(new TomlError('Unterminated multi-line string'))
|
||||||
} else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {
|
} else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) {
|
||||||
throw this.errorControlCharIn('strings')
|
throw this.errorControlCharInString()
|
||||||
} else {
|
} else {
|
||||||
this.consume()
|
this.consume()
|
||||||
}
|
}
|
||||||
} while (this.nextChar())
|
} while (this.nextChar())
|
||||||
}
|
}
|
||||||
errorControlCharIn (type) {
|
errorControlCharInString () {
|
||||||
let displayCode = '\\u00'
|
let displayCode = '\\u00'
|
||||||
if (this.char < 16) {
|
if (this.char < 16) {
|
||||||
displayCode += '0'
|
displayCode += '0'
|
||||||
}
|
}
|
||||||
displayCode += this.char.toString(16)
|
displayCode += this.char.toString(16)
|
||||||
|
|
||||||
return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in ${type}, use ${displayCode} instead`))
|
return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`))
|
||||||
}
|
}
|
||||||
recordMultiEscapeReplacement (replacement) {
|
recordMultiEscapeReplacement (replacement) {
|
||||||
this.state.buf += replacement
|
this.state.buf += replacement
|
||||||
@ -47156,28 +47137,12 @@ function makeParserClass (Parser) {
|
|||||||
}
|
}
|
||||||
parseMultiEnd2 () {
|
parseMultiEnd2 () {
|
||||||
if (this.char === CHAR_QUOT) {
|
if (this.char === CHAR_QUOT) {
|
||||||
return this.next(this.parseMultiEnd3)
|
return this.return()
|
||||||
} else {
|
} else {
|
||||||
this.state.buf += '""'
|
this.state.buf += '""'
|
||||||
return this.goto(this.parseMultiStringContent)
|
return this.goto(this.parseMultiStringContent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
parseMultiEnd3 () {
|
|
||||||
if (this.char === CHAR_QUOT) {
|
|
||||||
this.state.buf += '"'
|
|
||||||
return this.next(this.parseMultiEnd4)
|
|
||||||
} else {
|
|
||||||
return this.returnNow()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
parseMultiEnd4 () {
|
|
||||||
if (this.char === CHAR_QUOT) {
|
|
||||||
this.state.buf += '"'
|
|
||||||
return this.return()
|
|
||||||
} else {
|
|
||||||
return this.returnNow()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
parseMultiEscape () {
|
parseMultiEscape () {
|
||||||
if (this.char === CTRL_M || this.char === CTRL_J) {
|
if (this.char === CTRL_M || this.char === CTRL_J) {
|
||||||
return this.next(this.parseMultiTrim)
|
return this.next(this.parseMultiTrim)
|
||||||
@ -47739,7 +47704,13 @@ function makeParserClass (Parser) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
recordInlineListValue (value) {
|
recordInlineListValue (value) {
|
||||||
if (!this.state.resultArr) {
|
if (this.state.resultArr) {
|
||||||
|
const listType = this.state.resultArr[_contentType]
|
||||||
|
const valueType = tomlType(value)
|
||||||
|
if (listType !== valueType) {
|
||||||
|
throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
this.state.resultArr = InlineList(tomlType(value))
|
this.state.resultArr = InlineList(tomlType(value))
|
||||||
}
|
}
|
||||||
if (isFloat(value) || isInteger(value)) {
|
if (isFloat(value) || isInteger(value)) {
|
||||||
@ -47802,26 +47773,13 @@ function makeParserClass (Parser) {
|
|||||||
} else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {
|
} else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {
|
||||||
throw this.error(new TomlError('Unterminated inline array'))
|
throw this.error(new TomlError('Unterminated inline array'))
|
||||||
} else if (this.char === CHAR_COMMA) {
|
} else if (this.char === CHAR_COMMA) {
|
||||||
return this.next(this.parseInlineTablePostComma)
|
return this.next(this.parseInlineTable)
|
||||||
} else if (this.char === CHAR_RCUB) {
|
} else if (this.char === CHAR_RCUB) {
|
||||||
return this.goto(this.parseInlineTable)
|
return this.goto(this.parseInlineTable)
|
||||||
} else {
|
} else {
|
||||||
throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))
|
throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
parseInlineTablePostComma () {
|
|
||||||
if (this.char === CHAR_SP || this.char === CTRL_I) {
|
|
||||||
return null
|
|
||||||
} else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) {
|
|
||||||
throw this.error(new TomlError('Unterminated inline array'))
|
|
||||||
} else if (this.char === CHAR_COMMA) {
|
|
||||||
throw this.error(new TomlError('Empty elements in inline tables are not permitted'))
|
|
||||||
} else if (this.char === CHAR_RCUB) {
|
|
||||||
throw this.error(new TomlError('Trailing commas in inline tables are not permitted'))
|
|
||||||
} else {
|
|
||||||
return this.goto(this.parseInlineTable)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return TOMLParser
|
return TOMLParser
|
||||||
}
|
}
|
||||||
@ -48059,6 +48017,10 @@ function typeError (type) {
|
|||||||
return new Error('Can only stringify objects, not ' + type)
|
return new Error('Can only stringify objects, not ' + type)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function arrayOneTypeError () {
|
||||||
|
return new Error("Array values can't have mixed types")
|
||||||
|
}
|
||||||
|
|
||||||
function getInlineKeys (obj) {
|
function getInlineKeys (obj) {
|
||||||
return Object.keys(obj).filter(key => isInline(obj[key]))
|
return Object.keys(obj).filter(key => isInline(obj[key]))
|
||||||
}
|
}
|
||||||
@ -48080,12 +48042,12 @@ function toJSON (obj) {
|
|||||||
|
|
||||||
function stringifyObject (prefix, indent, obj) {
|
function stringifyObject (prefix, indent, obj) {
|
||||||
obj = toJSON(obj)
|
obj = toJSON(obj)
|
||||||
let inlineKeys
|
var inlineKeys
|
||||||
let complexKeys
|
var complexKeys
|
||||||
inlineKeys = getInlineKeys(obj)
|
inlineKeys = getInlineKeys(obj)
|
||||||
complexKeys = getComplexKeys(obj)
|
complexKeys = getComplexKeys(obj)
|
||||||
const result = []
|
var result = []
|
||||||
const inlineIndent = indent || ''
|
var inlineIndent = indent || ''
|
||||||
inlineKeys.forEach(key => {
|
inlineKeys.forEach(key => {
|
||||||
var type = tomlType(obj[key])
|
var type = tomlType(obj[key])
|
||||||
if (type !== 'undefined' && type !== 'null') {
|
if (type !== 'undefined' && type !== 'null') {
|
||||||
@ -48093,7 +48055,7 @@ function stringifyObject (prefix, indent, obj) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
if (result.length > 0) result.push('')
|
if (result.length > 0) result.push('')
|
||||||
const complexIndent = prefix && inlineKeys.length > 0 ? indent + ' ' : ''
|
var complexIndent = prefix && inlineKeys.length > 0 ? indent + ' ' : ''
|
||||||
complexKeys.forEach(key => {
|
complexKeys.forEach(key => {
|
||||||
result.push(stringifyComplex(prefix, complexIndent, key, obj[key]))
|
result.push(stringifyComplex(prefix, complexIndent, key, obj[key]))
|
||||||
})
|
})
|
||||||
@ -48145,7 +48107,7 @@ function tomlType (value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function stringifyKey (key) {
|
function stringifyKey (key) {
|
||||||
const keyStr = String(key)
|
var keyStr = String(key)
|
||||||
if (/^[-A-Za-z0-9_]+$/.test(keyStr)) {
|
if (/^[-A-Za-z0-9_]+$/.test(keyStr)) {
|
||||||
return keyStr
|
return keyStr
|
||||||
} else {
|
} else {
|
||||||
@ -48241,7 +48203,9 @@ function stringifyFloat (value) {
|
|||||||
} else if (Object.is(value, -0)) {
|
} else if (Object.is(value, -0)) {
|
||||||
return '-0.0'
|
return '-0.0'
|
||||||
}
|
}
|
||||||
const [int, dec] = String(value).split('.')
|
var chunks = String(value).split('.')
|
||||||
|
var int = chunks[0]
|
||||||
|
var dec = chunks[1] || 0
|
||||||
return stringifyInteger(int) + '.' + dec
|
return stringifyInteger(int) + '.' + dec
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48253,10 +48217,29 @@ function stringifyDatetime (value) {
|
|||||||
return value.toISOString()
|
return value.toISOString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isNumber (type) {
|
||||||
|
return type === 'float' || type === 'integer'
|
||||||
|
}
|
||||||
|
function arrayType (values) {
|
||||||
|
var contentType = tomlType(values[0])
|
||||||
|
if (values.every(_ => tomlType(_) === contentType)) return contentType
|
||||||
|
// mixed integer/float, emit as floats
|
||||||
|
if (values.every(_ => isNumber(tomlType(_)))) return 'float'
|
||||||
|
return 'mixed'
|
||||||
|
}
|
||||||
|
function validateArray (values) {
|
||||||
|
const type = arrayType(values)
|
||||||
|
if (type === 'mixed') {
|
||||||
|
throw arrayOneTypeError()
|
||||||
|
}
|
||||||
|
return type
|
||||||
|
}
|
||||||
|
|
||||||
function stringifyInlineArray (values) {
|
function stringifyInlineArray (values) {
|
||||||
values = toJSON(values)
|
values = toJSON(values)
|
||||||
let result = '['
|
const type = validateArray(values)
|
||||||
const stringified = values.map(_ => stringifyInline(_))
|
var result = '['
|
||||||
|
var stringified = values.map(_ => stringifyInline(_, type))
|
||||||
if (stringified.join(', ').length > 60 || /\n/.test(stringified)) {
|
if (stringified.join(', ').length > 60 || /\n/.test(stringified)) {
|
||||||
result += '\n ' + stringified.join(',\n ') + '\n'
|
result += '\n ' + stringified.join(',\n ') + '\n'
|
||||||
} else {
|
} else {
|
||||||
@ -48267,7 +48250,7 @@ function stringifyInlineArray (values) {
|
|||||||
|
|
||||||
function stringifyInlineTable (value) {
|
function stringifyInlineTable (value) {
|
||||||
value = toJSON(value)
|
value = toJSON(value)
|
||||||
const result = []
|
var result = []
|
||||||
Object.keys(value).forEach(key => {
|
Object.keys(value).forEach(key => {
|
||||||
result.push(stringifyKey(key) + ' = ' + stringifyAnyInline(value[key], false))
|
result.push(stringifyKey(key) + ' = ' + stringifyAnyInline(value[key], false))
|
||||||
})
|
})
|
||||||
@ -48275,7 +48258,7 @@ function stringifyInlineTable (value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function stringifyComplex (prefix, indent, key, value) {
|
function stringifyComplex (prefix, indent, key, value) {
|
||||||
const valueType = tomlType(value)
|
var valueType = tomlType(value)
|
||||||
/* istanbul ignore else */
|
/* istanbul ignore else */
|
||||||
if (valueType === 'array') {
|
if (valueType === 'array') {
|
||||||
return stringifyArrayOfTables(prefix, indent, key, value)
|
return stringifyArrayOfTables(prefix, indent, key, value)
|
||||||
@ -48288,11 +48271,12 @@ function stringifyComplex (prefix, indent, key, value) {
|
|||||||
|
|
||||||
function stringifyArrayOfTables (prefix, indent, key, values) {
|
function stringifyArrayOfTables (prefix, indent, key, values) {
|
||||||
values = toJSON(values)
|
values = toJSON(values)
|
||||||
const firstValueType = tomlType(values[0])
|
validateArray(values)
|
||||||
|
var firstValueType = tomlType(values[0])
|
||||||
/* istanbul ignore if */
|
/* istanbul ignore if */
|
||||||
if (firstValueType !== 'table') throw typeError(firstValueType)
|
if (firstValueType !== 'table') throw typeError(firstValueType)
|
||||||
const fullKey = prefix + stringifyKey(key)
|
var fullKey = prefix + stringifyKey(key)
|
||||||
let result = ''
|
var result = ''
|
||||||
values.forEach(table => {
|
values.forEach(table => {
|
||||||
if (result.length > 0) result += '\n'
|
if (result.length > 0) result += '\n'
|
||||||
result += indent + '[[' + fullKey + ']]\n'
|
result += indent + '[[' + fullKey + ']]\n'
|
||||||
@ -48302,8 +48286,8 @@ function stringifyArrayOfTables (prefix, indent, key, values) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function stringifyComplexTable (prefix, indent, key, value) {
|
function stringifyComplexTable (prefix, indent, key, value) {
|
||||||
const fullKey = prefix + stringifyKey(key)
|
var fullKey = prefix + stringifyKey(key)
|
||||||
let result = ''
|
var result = ''
|
||||||
if (getInlineKeys(value).length > 0) {
|
if (getInlineKeys(value).length > 0) {
|
||||||
result += indent + '[' + fullKey + ']\n'
|
result += indent + '[' + fullKey + ']\n'
|
||||||
}
|
}
|
||||||
@ -90243,7 +90227,7 @@ class CacheDistributor {
|
|||||||
.split('\n')
|
.split('\n')
|
||||||
.join(',')} or ${constants_1.CACHE_DEPENDENCY_BACKUP_PATH}`
|
.join(',')} or ${constants_1.CACHE_DEPENDENCY_BACKUP_PATH}`
|
||||||
: this.cacheDependencyPath.split('\n').join(',');
|
: this.cacheDependencyPath.split('\n').join(',');
|
||||||
throw new Error(`No file in ${process.cwd()} matched to [${file}], make sure you have checked out the target repository. No cache paths were identified for ${this.packageManager} with cache-dependency-path = ${this.cacheDependencyPath}. This likely indicates no dependencies to cache. Consider removing the cache step if it's not needed`);
|
throw new Error(`No file in ${process.cwd()} matched to [${file}], make sure you have checked out the target repository`);
|
||||||
}
|
}
|
||||||
const cachePath = yield this.getCacheGlobalDirectories();
|
const cachePath = yield this.getCacheGlobalDirectories();
|
||||||
core.saveState(State.CACHE_PATHS, cachePath);
|
core.saveState(State.CACHE_PATHS, cachePath);
|
||||||
@ -90423,12 +90407,12 @@ class PipCache extends cache_distributor_1.default {
|
|||||||
let restoreKey = '';
|
let restoreKey = '';
|
||||||
if (utils_1.IS_LINUX) {
|
if (utils_1.IS_LINUX) {
|
||||||
const osInfo = yield (0, utils_1.getLinuxInfo)();
|
const osInfo = yield (0, utils_1.getLinuxInfo)();
|
||||||
primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-${osInfo.osVersion}-${osInfo.osName}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${osInfo.osVersion}-${osInfo.osName}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||||
restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-${osInfo.osVersion}-${osInfo.osName}-python-${this.pythonVersion}-${this.packageManager}`;
|
restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${osInfo.osVersion}-${osInfo.osName}-python-${this.pythonVersion}-${this.packageManager}`;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||||
restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}`;
|
restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}`;
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
primaryKey,
|
primaryKey,
|
||||||
@ -90514,7 +90498,7 @@ class PipenvCache extends cache_distributor_1.default {
|
|||||||
computeKeys() {
|
computeKeys() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const hash = yield glob.hashFiles(this.patterns);
|
const hash = yield glob.hashFiles(this.patterns);
|
||||||
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||||
const restoreKey = undefined;
|
const restoreKey = undefined;
|
||||||
return {
|
return {
|
||||||
primaryKey,
|
primaryKey,
|
||||||
@ -90627,7 +90611,7 @@ class PoetryCache extends cache_distributor_1.default {
|
|||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const hash = yield glob.hashFiles(this.patterns);
|
const hash = yield glob.hashFiles(this.patterns);
|
||||||
// "v2" is here to invalidate old caches of this cache distributor, which were created broken:
|
// "v2" is here to invalidate old caches of this cache distributor, which were created broken:
|
||||||
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}-v2-${hash}`;
|
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}-v2-${hash}`;
|
||||||
const restoreKey = undefined;
|
const restoreKey = undefined;
|
||||||
return {
|
return {
|
||||||
primaryKey,
|
primaryKey,
|
||||||
@ -91441,8 +91425,7 @@ function installPyPy(pypyVersion, pythonVersion, architecture, allowPreReleases,
|
|||||||
const downloadUrl = `${foundAsset.download_url}`;
|
const downloadUrl = `${foundAsset.download_url}`;
|
||||||
core.info(`Downloading PyPy from "${downloadUrl}" ...`);
|
core.info(`Downloading PyPy from "${downloadUrl}" ...`);
|
||||||
try {
|
try {
|
||||||
const fileName = (0, utils_1.getDownloadFileName)(downloadUrl);
|
const pypyPath = yield tc.downloadTool(downloadUrl);
|
||||||
const pypyPath = yield tc.downloadTool(downloadUrl, fileName);
|
|
||||||
core.info('Extracting downloaded archive...');
|
core.info('Extracting downloaded archive...');
|
||||||
if (utils_1.IS_WINDOWS) {
|
if (utils_1.IS_WINDOWS) {
|
||||||
downloadDir = yield tc.extractZip(pypyPath);
|
downloadDir = yield tc.extractZip(pypyPath);
|
||||||
@ -91704,8 +91687,7 @@ function installCpythonFromRelease(release) {
|
|||||||
core.info(`Download from "${downloadUrl}"`);
|
core.info(`Download from "${downloadUrl}"`);
|
||||||
let pythonPath = '';
|
let pythonPath = '';
|
||||||
try {
|
try {
|
||||||
const fileName = (0, utils_1.getDownloadFileName)(downloadUrl);
|
pythonPath = yield tc.downloadTool(downloadUrl, undefined, AUTH);
|
||||||
pythonPath = yield tc.downloadTool(downloadUrl, fileName, AUTH);
|
|
||||||
core.info('Extract downloaded archive');
|
core.info('Extract downloaded archive');
|
||||||
let pythonExtractedFolder;
|
let pythonExtractedFolder;
|
||||||
if (utils_1.IS_WINDOWS) {
|
if (utils_1.IS_WINDOWS) {
|
||||||
@ -91940,7 +91922,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.getDownloadFileName = exports.getNextPageUrl = exports.getBinaryDirectory = exports.getVersionInputFromFile = exports.getVersionInputFromPlainFile = exports.getVersionInputFromTomlFile = exports.getOSInfo = exports.getLinuxInfo = exports.logWarning = exports.isCacheFeatureAvailable = exports.isGhes = exports.validatePythonVersionFormatForPyPy = exports.writeExactPyPyVersionFile = exports.readExactPyPyVersionFile = exports.getPyPyVersionFromPath = exports.isNightlyKeyword = exports.validateVersion = exports.createSymlinkInFolder = exports.WINDOWS_PLATFORMS = exports.WINDOWS_ARCHS = exports.IS_MAC = exports.IS_LINUX = exports.IS_WINDOWS = void 0;
|
exports.getNextPageUrl = exports.getBinaryDirectory = exports.getVersionInputFromFile = exports.getVersionInputFromPlainFile = exports.getVersionInputFromTomlFile = exports.getOSInfo = exports.getLinuxInfo = exports.logWarning = exports.isCacheFeatureAvailable = exports.isGhes = exports.validatePythonVersionFormatForPyPy = exports.writeExactPyPyVersionFile = exports.readExactPyPyVersionFile = exports.getPyPyVersionFromPath = exports.isNightlyKeyword = exports.validateVersion = exports.createSymlinkInFolder = exports.WINDOWS_PLATFORMS = exports.WINDOWS_ARCHS = exports.IS_MAC = exports.IS_LINUX = exports.IS_WINDOWS = void 0;
|
||||||
/* eslint no-unsafe-finally: "off" */
|
/* eslint no-unsafe-finally: "off" */
|
||||||
const cache = __importStar(__nccwpck_require__(7799));
|
const cache = __importStar(__nccwpck_require__(7799));
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
@ -92118,9 +92100,7 @@ function extractValue(obj, keys) {
|
|||||||
*/
|
*/
|
||||||
function getVersionInputFromTomlFile(versionFile) {
|
function getVersionInputFromTomlFile(versionFile) {
|
||||||
core.debug(`Trying to resolve version form ${versionFile}`);
|
core.debug(`Trying to resolve version form ${versionFile}`);
|
||||||
let pyprojectFile = fs_1.default.readFileSync(versionFile, 'utf8');
|
const pyprojectFile = fs_1.default.readFileSync(versionFile, 'utf8');
|
||||||
// Normalize the line endings in the pyprojectFile
|
|
||||||
pyprojectFile = pyprojectFile.replace(/\r\n/g, '\n');
|
|
||||||
const pyprojectConfig = toml.parse(pyprojectFile);
|
const pyprojectConfig = toml.parse(pyprojectFile);
|
||||||
let keys = [];
|
let keys = [];
|
||||||
if ('project' in pyprojectConfig) {
|
if ('project' in pyprojectConfig) {
|
||||||
@ -92202,20 +92182,6 @@ function getNextPageUrl(response) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
exports.getNextPageUrl = getNextPageUrl;
|
exports.getNextPageUrl = getNextPageUrl;
|
||||||
/**
|
|
||||||
* Add temporary fix for Windows
|
|
||||||
* On Windows, it is necessary to retain the .zip extension for proper extraction.
|
|
||||||
* because the tc.extractZip() failure due to tc.downloadTool() not adding .zip extension.
|
|
||||||
* Related issue: https://github.com/actions/toolkit/issues/1179
|
|
||||||
* Related issue: https://github.com/actions/setup-python/issues/819
|
|
||||||
*/
|
|
||||||
function getDownloadFileName(downloadUrl) {
|
|
||||||
const tempDir = process.env.RUNNER_TEMP || '.';
|
|
||||||
return exports.IS_WINDOWS
|
|
||||||
? path.join(tempDir, path.basename(downloadUrl))
|
|
||||||
: undefined;
|
|
||||||
}
|
|
||||||
exports.getDownloadFileName = getDownloadFileName;
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -18,7 +18,7 @@ Integration of caching functionality into `actions/setup-python` action will bri
|
|||||||
|
|
||||||
We will add support for Pip and Pipenv dependency caching.
|
We will add support for Pip and Pipenv dependency caching.
|
||||||
|
|
||||||
We won't pursue the goal to provide wide customization of caching in the scope of `actions/setup-python` action. The purpose of this integration is to cover ~90% of basic use-cases. The action does not support dependency-specific caching for each job. If different dependencies are installed across jobs the cache from the first job will be used in the second job. To manage this aspect, users should create separate caches for jobs with different requirements. If users need flexible customization, we will advise them to use `actions/cache` directly.
|
We won't pursue the goal to provide wide customization of caching in the scope of `actions/setup-python` action. The purpose of this integration is to cover ~90% of basic use-cases. If users need flexible customization, we will advise them to use `actions/cache` directly.
|
||||||
|
|
||||||
## Decision
|
## Decision
|
||||||
|
|
||||||
|
@ -319,7 +319,6 @@ steps:
|
|||||||
- run: poetry install
|
- run: poetry install
|
||||||
- run: poetry run pytest
|
- run: poetry run pytest
|
||||||
```
|
```
|
||||||
>**Note:** If the `setup-python` version does not match the version specified in `pyproject.toml` and the python version in `pyproject.toml` is less than the runner's python version, `poetry install` will default to using the runner's Python version.
|
|
||||||
|
|
||||||
**Using a list of file paths to cache dependencies**
|
**Using a list of file paths to cache dependencies**
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -6,13 +6,13 @@ We have prepared a short guide so that the process of making your contribution i
|
|||||||
|
|
||||||
## How can I contribute...
|
## How can I contribute...
|
||||||
|
|
||||||
* [Contribute Documentation :green_book:](#contribute-documentation)
|
* [Contribute Documentation:green_book:](#contribute-documentation)
|
||||||
|
|
||||||
* [Contribute Code :computer:](#contribute-code)
|
* [Contribute Code :computer:](#contribute-code)
|
||||||
|
|
||||||
* [Provide Support on Issues :pencil:](#provide-support-on-issues)
|
* [Provide Support on Issues:pencil:](#provide-support-on-issues)
|
||||||
|
|
||||||
* [Review Pull Requests :mag:](#review-pull-requests)
|
* [Review Pull Requests:mag:](#review-pull-requests)
|
||||||
|
|
||||||
## Contribute documentation
|
## Contribute documentation
|
||||||
|
|
||||||
|
16
package-lock.json
generated
16
package-lock.json
generated
@ -16,7 +16,7 @@
|
|||||||
"@actions/http-client": "^2.2.1",
|
"@actions/http-client": "^2.2.1",
|
||||||
"@actions/io": "^1.0.2",
|
"@actions/io": "^1.0.2",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
"@iarna/toml": "^3.0.0",
|
"@iarna/toml": "^2.2.5",
|
||||||
"semver": "^7.6.0"
|
"semver": "^7.6.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -1084,9 +1084,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@iarna/toml": {
|
"node_modules/@iarna/toml": {
|
||||||
"version": "3.0.0",
|
"version": "2.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
|
||||||
"integrity": "sha512-td6ZUkz2oS3VeleBcN+m//Q6HlCFCPrnI0FZhrt/h4XqLEdOyYp2u21nd8MdsR+WJy5r9PTDaHTDDfhf4H4l6Q=="
|
"integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
|
||||||
},
|
},
|
||||||
"node_modules/@istanbuljs/load-nyc-config": {
|
"node_modules/@istanbuljs/load-nyc-config": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
@ -4284,12 +4284,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/micromatch": {
|
"node_modules/micromatch": {
|
||||||
"version": "4.0.8",
|
"version": "4.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
||||||
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"braces": "^3.0.3",
|
"braces": "^3.0.2",
|
||||||
"picomatch": "^2.3.1"
|
"picomatch": "^2.3.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
"@actions/http-client": "^2.2.1",
|
"@actions/http-client": "^2.2.1",
|
||||||
"@actions/io": "^1.0.2",
|
"@actions/io": "^1.0.2",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
"@iarna/toml": "^3.0.0",
|
"@iarna/toml": "^2.2.5",
|
||||||
"semver": "^7.6.0"
|
"semver": "^7.6.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
@ -32,11 +32,7 @@ abstract class CacheDistributor {
|
|||||||
.join(',')} or ${CACHE_DEPENDENCY_BACKUP_PATH}`
|
.join(',')} or ${CACHE_DEPENDENCY_BACKUP_PATH}`
|
||||||
: this.cacheDependencyPath.split('\n').join(',');
|
: this.cacheDependencyPath.split('\n').join(',');
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`No file in ${process.cwd()} matched to [${file}], make sure you have checked out the target repository. No cache paths were identified for ${
|
`No file in ${process.cwd()} matched to [${file}], make sure you have checked out the target repository`
|
||||||
this.packageManager
|
|
||||||
} with cache-dependency-path = ${
|
|
||||||
this.cacheDependencyPath
|
|
||||||
}. This likely indicates no dependencies to cache. Consider removing the cache step if it's not needed`
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,11 +67,11 @@ class PipCache extends CacheDistributor {
|
|||||||
|
|
||||||
if (IS_LINUX) {
|
if (IS_LINUX) {
|
||||||
const osInfo = await getLinuxInfo();
|
const osInfo = await getLinuxInfo();
|
||||||
primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-${osInfo.osVersion}-${osInfo.osName}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${osInfo.osVersion}-${osInfo.osName}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||||
restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-${osInfo.osVersion}-${osInfo.osName}-python-${this.pythonVersion}-${this.packageManager}`;
|
restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${osInfo.osVersion}-${osInfo.osName}-python-${this.pythonVersion}-${this.packageManager}`;
|
||||||
} else {
|
} else {
|
||||||
primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||||
restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}`;
|
restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -32,7 +32,7 @@ class PipenvCache extends CacheDistributor {
|
|||||||
|
|
||||||
protected async computeKeys() {
|
protected async computeKeys() {
|
||||||
const hash = await glob.hashFiles(this.patterns);
|
const hash = await glob.hashFiles(this.patterns);
|
||||||
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||||
const restoreKey = undefined;
|
const restoreKey = undefined;
|
||||||
return {
|
return {
|
||||||
primaryKey,
|
primaryKey,
|
||||||
|
@ -47,7 +47,7 @@ class PoetryCache extends CacheDistributor {
|
|||||||
protected async computeKeys() {
|
protected async computeKeys() {
|
||||||
const hash = await glob.hashFiles(this.patterns);
|
const hash = await glob.hashFiles(this.patterns);
|
||||||
// "v2" is here to invalidate old caches of this cache distributor, which were created broken:
|
// "v2" is here to invalidate old caches of this cache distributor, which were created broken:
|
||||||
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}-v2-${hash}`;
|
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-python-${this.pythonVersion}-${this.packageManager}-v2-${hash}`;
|
||||||
const restoreKey = undefined;
|
const restoreKey = undefined;
|
||||||
return {
|
return {
|
||||||
primaryKey,
|
primaryKey,
|
||||||
|
@ -14,8 +14,7 @@ import {
|
|||||||
createSymlinkInFolder,
|
createSymlinkInFolder,
|
||||||
isNightlyKeyword,
|
isNightlyKeyword,
|
||||||
writeExactPyPyVersionFile,
|
writeExactPyPyVersionFile,
|
||||||
getBinaryDirectory,
|
getBinaryDirectory
|
||||||
getDownloadFileName
|
|
||||||
} from './utils';
|
} from './utils';
|
||||||
|
|
||||||
export async function installPyPy(
|
export async function installPyPy(
|
||||||
@ -70,8 +69,7 @@ export async function installPyPy(
|
|||||||
core.info(`Downloading PyPy from "${downloadUrl}" ...`);
|
core.info(`Downloading PyPy from "${downloadUrl}" ...`);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const fileName = getDownloadFileName(downloadUrl);
|
const pypyPath = await tc.downloadTool(downloadUrl);
|
||||||
const pypyPath = await tc.downloadTool(downloadUrl, fileName);
|
|
||||||
|
|
||||||
core.info('Extracting downloaded archive...');
|
core.info('Extracting downloaded archive...');
|
||||||
if (IS_WINDOWS) {
|
if (IS_WINDOWS) {
|
||||||
|
@ -4,13 +4,13 @@ import * as tc from '@actions/tool-cache';
|
|||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
import * as httpm from '@actions/http-client';
|
import * as httpm from '@actions/http-client';
|
||||||
import {ExecOptions} from '@actions/exec/lib/interfaces';
|
import {ExecOptions} from '@actions/exec/lib/interfaces';
|
||||||
import {IS_WINDOWS, IS_LINUX, getDownloadFileName} from './utils';
|
import {IS_WINDOWS, IS_LINUX} from './utils';
|
||||||
|
|
||||||
const TOKEN = core.getInput('token');
|
const TOKEN = core.getInput('token');
|
||||||
const AUTH = !TOKEN ? undefined : `token ${TOKEN}`;
|
const AUTH = !TOKEN ? undefined : `token ${TOKEN}`;
|
||||||
const MANIFEST_REPO_OWNER = 'actions';
|
const MANIFEST_REPO_OWNER = 'aparnajyothi-y';
|
||||||
const MANIFEST_REPO_NAME = 'python-versions';
|
const MANIFEST_REPO_NAME = 'python-versions';
|
||||||
const MANIFEST_REPO_BRANCH = 'main';
|
const MANIFEST_REPO_BRANCH = 'testensure';
|
||||||
export const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;
|
export const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;
|
||||||
|
|
||||||
export async function findReleaseFromManifest(
|
export async function findReleaseFromManifest(
|
||||||
@ -98,8 +98,7 @@ export async function installCpythonFromRelease(release: tc.IToolRelease) {
|
|||||||
core.info(`Download from "${downloadUrl}"`);
|
core.info(`Download from "${downloadUrl}"`);
|
||||||
let pythonPath = '';
|
let pythonPath = '';
|
||||||
try {
|
try {
|
||||||
const fileName = getDownloadFileName(downloadUrl);
|
pythonPath = await tc.downloadTool(downloadUrl, undefined, AUTH);
|
||||||
pythonPath = await tc.downloadTool(downloadUrl, fileName, AUTH);
|
|
||||||
core.info('Extract downloaded archive');
|
core.info('Extract downloaded archive');
|
||||||
let pythonExtractedFolder;
|
let pythonExtractedFolder;
|
||||||
if (IS_WINDOWS) {
|
if (IS_WINDOWS) {
|
||||||
|
19
src/utils.ts
19
src/utils.ts
@ -224,10 +224,7 @@ function extractValue(obj: any, keys: string[]): string | undefined {
|
|||||||
export function getVersionInputFromTomlFile(versionFile: string): string[] {
|
export function getVersionInputFromTomlFile(versionFile: string): string[] {
|
||||||
core.debug(`Trying to resolve version form ${versionFile}`);
|
core.debug(`Trying to resolve version form ${versionFile}`);
|
||||||
|
|
||||||
let pyprojectFile = fs.readFileSync(versionFile, 'utf8');
|
const pyprojectFile = fs.readFileSync(versionFile, 'utf8');
|
||||||
// Normalize the line endings in the pyprojectFile
|
|
||||||
pyprojectFile = pyprojectFile.replace(/\r\n/g, '\n');
|
|
||||||
|
|
||||||
const pyprojectConfig = toml.parse(pyprojectFile);
|
const pyprojectConfig = toml.parse(pyprojectFile);
|
||||||
let keys = [];
|
let keys = [];
|
||||||
|
|
||||||
@ -313,17 +310,3 @@ export function getNextPageUrl<T>(response: ifm.TypedResponse<T>) {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Add temporary fix for Windows
|
|
||||||
* On Windows, it is necessary to retain the .zip extension for proper extraction.
|
|
||||||
* because the tc.extractZip() failure due to tc.downloadTool() not adding .zip extension.
|
|
||||||
* Related issue: https://github.com/actions/toolkit/issues/1179
|
|
||||||
* Related issue: https://github.com/actions/setup-python/issues/819
|
|
||||||
*/
|
|
||||||
export function getDownloadFileName(downloadUrl: string): string | undefined {
|
|
||||||
const tempDir = process.env.RUNNER_TEMP || '.';
|
|
||||||
return IS_WINDOWS
|
|
||||||
? path.join(tempDir, path.basename(downloadUrl))
|
|
||||||
: undefined;
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user