Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +1 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/DFA.cpython-311-x86_64-linux-gnu.so +3 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/nvidia_nvtx_cu11-11.8.86.dist-info/INSTALLER +1 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/nvidia_nvtx_cu11-11.8.86.dist-info/License.txt +1568 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/nvidia_nvtx_cu11-11.8.86.dist-info/RECORD +36 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/nvidia_nvtx_cu11-11.8.86.dist-info/top_level.txt +1 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__init__.py +15 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/__init__.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/_manylinux.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/_musllinux.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/_parser.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/_structures.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/_tokenizer.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/markers.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/metadata.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/requirements.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/specifiers.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/tags.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/utils.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/version.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/_elffile.py +110 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/_manylinux.py +263 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/_musllinux.py +85 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/_structures.py +61 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/_tokenizer.py +194 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/licenses/__init__.py +145 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/licenses/__pycache__/__init__.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/licenses/__pycache__/_spdx.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/licenses/_spdx.py +759 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/requirements.py +91 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/utils.py +163 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/core.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/uts46data.py +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__init__.py +627 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__main__.py +55 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-311.pyc +0 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/android.py +249 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/api.py +292 -0
- tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/macos.py +130 -0
.gitattributes
CHANGED
|
@@ -37,3 +37,4 @@ tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/Machi
|
|
| 37 |
tuning-competition-baseline/.venv/lib/python3.11/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp_helpers.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text
|
| 38 |
tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Compiler/__pycache__/Symtab.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text
|
| 39 |
tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/Scanners.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 37 |
tuning-competition-baseline/.venv/lib/python3.11/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp_helpers.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text
|
| 38 |
tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Compiler/__pycache__/Symtab.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text
|
| 39 |
tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/Scanners.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/DFA.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/DFA.cpython-311-x86_64-linux-gnu.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:842bea7cec4d1baf3ae29befacb20b40fe8985d7debafc80376ac9163595012b
|
| 3 |
+
size 128360
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/nvidia_nvtx_cu11-11.8.86.dist-info/INSTALLER
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
pip
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/nvidia_nvtx_cu11-11.8.86.dist-info/License.txt
ADDED
|
@@ -0,0 +1,1568 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
End User License Agreement
|
| 2 |
+
--------------------------
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
Preface
|
| 6 |
+
-------
|
| 7 |
+
|
| 8 |
+
The Software License Agreement in Chapter 1 and the Supplement
|
| 9 |
+
in Chapter 2 contain license terms and conditions that govern
|
| 10 |
+
the use of NVIDIA software. By accepting this agreement, you
|
| 11 |
+
agree to comply with all the terms and conditions applicable
|
| 12 |
+
to the product(s) included herein.
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
NVIDIA Driver
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
Description
|
| 19 |
+
|
| 20 |
+
This package contains the operating system driver and
|
| 21 |
+
fundamental system software components for NVIDIA GPUs.
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
NVIDIA CUDA Toolkit
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
Description
|
| 28 |
+
|
| 29 |
+
The NVIDIA CUDA Toolkit provides command-line and graphical
|
| 30 |
+
tools for building, debugging and optimizing the performance
|
| 31 |
+
of applications accelerated by NVIDIA GPUs, runtime and math
|
| 32 |
+
libraries, and documentation including programming guides,
|
| 33 |
+
user manuals, and API references.
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
Default Install Location of CUDA Toolkit
|
| 37 |
+
|
| 38 |
+
Windows platform:
|
| 39 |
+
|
| 40 |
+
%ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA\v#.#
|
| 41 |
+
|
| 42 |
+
Linux platform:
|
| 43 |
+
|
| 44 |
+
/usr/local/cuda-#.#
|
| 45 |
+
|
| 46 |
+
Mac platform:
|
| 47 |
+
|
| 48 |
+
/Developer/NVIDIA/CUDA-#.#
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
NVIDIA CUDA Samples
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
Description
|
| 55 |
+
|
| 56 |
+
This package includes over 100+ CUDA examples that demonstrate
|
| 57 |
+
various CUDA programming principles, and efficient CUDA
|
| 58 |
+
implementation of algorithms in specific application domains.
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
Default Install Location of CUDA Samples
|
| 62 |
+
|
| 63 |
+
Windows platform:
|
| 64 |
+
|
| 65 |
+
%ProgramData%\NVIDIA Corporation\CUDA Samples\v#.#
|
| 66 |
+
|
| 67 |
+
Linux platform:
|
| 68 |
+
|
| 69 |
+
/usr/local/cuda-#.#/samples
|
| 70 |
+
|
| 71 |
+
and
|
| 72 |
+
|
| 73 |
+
$HOME/NVIDIA_CUDA-#.#_Samples
|
| 74 |
+
|
| 75 |
+
Mac platform:
|
| 76 |
+
|
| 77 |
+
/Developer/NVIDIA/CUDA-#.#/samples
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
NVIDIA Nsight Visual Studio Edition (Windows only)
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
Description
|
| 84 |
+
|
| 85 |
+
NVIDIA Nsight Development Platform, Visual Studio Edition is a
|
| 86 |
+
development environment integrated into Microsoft Visual
|
| 87 |
+
Studio that provides tools for debugging, profiling, analyzing
|
| 88 |
+
and optimizing your GPU computing and graphics applications.
|
| 89 |
+
|
| 90 |
+
|
| 91 |
+
Default Install Location of Nsight Visual Studio Edition
|
| 92 |
+
|
| 93 |
+
Windows platform:
|
| 94 |
+
|
| 95 |
+
%ProgramFiles(x86)%\NVIDIA Corporation\Nsight Visual Studio Edition #.#
|
| 96 |
+
|
| 97 |
+
|
| 98 |
+
1. License Agreement for NVIDIA Software Development Kits
|
| 99 |
+
---------------------------------------------------------
|
| 100 |
+
|
| 101 |
+
|
| 102 |
+
Release Date: July 26, 2018
|
| 103 |
+
---------------------------
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
Important NoticeRead before downloading, installing,
|
| 107 |
+
copying or using the licensed software:
|
| 108 |
+
-------------------------------------------------------
|
| 109 |
+
|
| 110 |
+
This license agreement, including exhibits attached
|
| 111 |
+
("Agreement”) is a legal agreement between you and NVIDIA
|
| 112 |
+
Corporation ("NVIDIA") and governs your use of a NVIDIA
|
| 113 |
+
software development kit (“SDK”).
|
| 114 |
+
|
| 115 |
+
Each SDK has its own set of software and materials, but here
|
| 116 |
+
is a description of the types of items that may be included in
|
| 117 |
+
a SDK: source code, header files, APIs, data sets and assets
|
| 118 |
+
(examples include images, textures, models, scenes, videos,
|
| 119 |
+
native API input/output files), binary software, sample code,
|
| 120 |
+
libraries, utility programs, programming code and
|
| 121 |
+
documentation.
|
| 122 |
+
|
| 123 |
+
This Agreement can be accepted only by an adult of legal age
|
| 124 |
+
of majority in the country in which the SDK is used.
|
| 125 |
+
|
| 126 |
+
If you are entering into this Agreement on behalf of a company
|
| 127 |
+
or other legal entity, you represent that you have the legal
|
| 128 |
+
authority to bind the entity to this Agreement, in which case
|
| 129 |
+
“you” will mean the entity you represent.
|
| 130 |
+
|
| 131 |
+
If you don’t have the required age or authority to accept
|
| 132 |
+
this Agreement, or if you don’t accept all the terms and
|
| 133 |
+
conditions of this Agreement, do not download, install or use
|
| 134 |
+
the SDK.
|
| 135 |
+
|
| 136 |
+
You agree to use the SDK only for purposes that are permitted
|
| 137 |
+
by (a) this Agreement, and (b) any applicable law, regulation
|
| 138 |
+
or generally accepted practices or guidelines in the relevant
|
| 139 |
+
jurisdictions.
|
| 140 |
+
|
| 141 |
+
|
| 142 |
+
1.1. License
|
| 143 |
+
|
| 144 |
+
|
| 145 |
+
1.1.1. License Grant
|
| 146 |
+
|
| 147 |
+
Subject to the terms of this Agreement, NVIDIA hereby grants
|
| 148 |
+
you a non-exclusive, non-transferable license, without the
|
| 149 |
+
right to sublicense (except as expressly provided in this
|
| 150 |
+
Agreement) to:
|
| 151 |
+
|
| 152 |
+
1. Install and use the SDK,
|
| 153 |
+
|
| 154 |
+
2. Modify and create derivative works of sample source code
|
| 155 |
+
delivered in the SDK, and
|
| 156 |
+
|
| 157 |
+
3. Distribute those portions of the SDK that are identified
|
| 158 |
+
in this Agreement as distributable, as incorporated in
|
| 159 |
+
object code format into a software application that meets
|
| 160 |
+
the distribution requirements indicated in this Agreement.
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
1.1.2. Distribution Requirements
|
| 164 |
+
|
| 165 |
+
These are the distribution requirements for you to exercise
|
| 166 |
+
the distribution grant:
|
| 167 |
+
|
| 168 |
+
1. Your application must have material additional
|
| 169 |
+
functionality, beyond the included portions of the SDK.
|
| 170 |
+
|
| 171 |
+
2. The distributable portions of the SDK shall only be
|
| 172 |
+
accessed by your application.
|
| 173 |
+
|
| 174 |
+
3. The following notice shall be included in modifications
|
| 175 |
+
and derivative works of sample source code distributed:
|
| 176 |
+
“This software contains source code provided by NVIDIA
|
| 177 |
+
Corporation.”
|
| 178 |
+
|
| 179 |
+
4. Unless a developer tool is identified in this Agreement
|
| 180 |
+
as distributable, it is delivered for your internal use
|
| 181 |
+
only.
|
| 182 |
+
|
| 183 |
+
5. The terms under which you distribute your application
|
| 184 |
+
must be consistent with the terms of this Agreement,
|
| 185 |
+
including (without limitation) terms relating to the
|
| 186 |
+
license grant and license restrictions and protection of
|
| 187 |
+
NVIDIA’s intellectual property rights. Additionally, you
|
| 188 |
+
agree that you will protect the privacy, security and
|
| 189 |
+
legal rights of your application users.
|
| 190 |
+
|
| 191 |
+
6. You agree to notify NVIDIA in writing of any known or
|
| 192 |
+
suspected distribution or use of the SDK not in compliance
|
| 193 |
+
with the requirements of this Agreement, and to enforce
|
| 194 |
+
the terms of your agreements with respect to distributed
|
| 195 |
+
SDK.
|
| 196 |
+
|
| 197 |
+
|
| 198 |
+
1.1.3. Authorized Users
|
| 199 |
+
|
| 200 |
+
You may allow employees and contractors of your entity or of
|
| 201 |
+
your subsidiary(ies) to access and use the SDK from your
|
| 202 |
+
secure network to perform work on your behalf.
|
| 203 |
+
|
| 204 |
+
If you are an academic institution you may allow users
|
| 205 |
+
enrolled or employed by the academic institution to access and
|
| 206 |
+
use the SDK from your secure network.
|
| 207 |
+
|
| 208 |
+
You are responsible for the compliance with the terms of this
|
| 209 |
+
Agreement by your authorized users. If you become aware that
|
| 210 |
+
your authorized users didn’t follow the terms of this
|
| 211 |
+
Agreement, you agree to take reasonable steps to resolve the
|
| 212 |
+
non-compliance and prevent new occurrences.
|
| 213 |
+
|
| 214 |
+
|
| 215 |
+
1.1.4. Pre-Release SDK
|
| 216 |
+
|
| 217 |
+
The SDK versions identified as alpha, beta, preview or
|
| 218 |
+
otherwise as pre-release, may not be fully functional, may
|
| 219 |
+
contain errors or design flaws, and may have reduced or
|
| 220 |
+
different security, privacy, accessibility, availability, and
|
| 221 |
+
reliability standards relative to commercial versions of
|
| 222 |
+
NVIDIA software and materials. Use of a pre-release SDK may
|
| 223 |
+
result in unexpected results, loss of data, project delays or
|
| 224 |
+
other unpredictable damage or loss.
|
| 225 |
+
|
| 226 |
+
You may use a pre-release SDK at your own risk, understanding
|
| 227 |
+
that pre-release SDKs are not intended for use in production
|
| 228 |
+
or business-critical systems.
|
| 229 |
+
|
| 230 |
+
NVIDIA may choose not to make available a commercial version
|
| 231 |
+
of any pre-release SDK. NVIDIA may also choose to abandon
|
| 232 |
+
development and terminate the availability of a pre-release
|
| 233 |
+
SDK at any time without liability.
|
| 234 |
+
|
| 235 |
+
|
| 236 |
+
1.1.5. Updates
|
| 237 |
+
|
| 238 |
+
NVIDIA may, at its option, make available patches, workarounds
|
| 239 |
+
or other updates to this SDK. Unless the updates are provided
|
| 240 |
+
with their separate governing terms, they are deemed part of
|
| 241 |
+
the SDK licensed to you as provided in this Agreement. You
|
| 242 |
+
agree that the form and content of the SDK that NVIDIA
|
| 243 |
+
provides may change without prior notice to you. While NVIDIA
|
| 244 |
+
generally maintains compatibility between versions, NVIDIA may
|
| 245 |
+
in some cases make changes that introduce incompatibilities in
|
| 246 |
+
future versions of the SDK.
|
| 247 |
+
|
| 248 |
+
|
| 249 |
+
1.1.6. Third Party Licenses
|
| 250 |
+
|
| 251 |
+
The SDK may come bundled with, or otherwise include or be
|
| 252 |
+
distributed with, third party software licensed by a NVIDIA
|
| 253 |
+
supplier and/or open source software provided under an open
|
| 254 |
+
source license. Use of third party software is subject to the
|
| 255 |
+
third-party license terms, or in the absence of third party
|
| 256 |
+
terms, the terms of this Agreement. Copyright to third party
|
| 257 |
+
software is held by the copyright holders indicated in the
|
| 258 |
+
third-party software or license.
|
| 259 |
+
|
| 260 |
+
|
| 261 |
+
1.1.7. Reservation of Rights
|
| 262 |
+
|
| 263 |
+
NVIDIA reserves all rights, title, and interest in and to the
|
| 264 |
+
SDK, not expressly granted to you under this Agreement.
|
| 265 |
+
|
| 266 |
+
|
| 267 |
+
1.2. Limitations
|
| 268 |
+
|
| 269 |
+
The following license limitations apply to your use of the
|
| 270 |
+
SDK:
|
| 271 |
+
|
| 272 |
+
1. You may not reverse engineer, decompile or disassemble,
|
| 273 |
+
or remove copyright or other proprietary notices from any
|
| 274 |
+
portion of the SDK or copies of the SDK.
|
| 275 |
+
|
| 276 |
+
2. Except as expressly provided in this Agreement, you may
|
| 277 |
+
not copy, sell, rent, sublicense, transfer, distribute,
|
| 278 |
+
modify, or create derivative works of any portion of the
|
| 279 |
+
SDK. For clarity, you may not distribute or sublicense the
|
| 280 |
+
SDK as a stand-alone product.
|
| 281 |
+
|
| 282 |
+
3. Unless you have an agreement with NVIDIA for this
|
| 283 |
+
purpose, you may not indicate that an application created
|
| 284 |
+
with the SDK is sponsored or endorsed by NVIDIA.
|
| 285 |
+
|
| 286 |
+
4. You may not bypass, disable, or circumvent any
|
| 287 |
+
encryption, security, digital rights management or
|
| 288 |
+
authentication mechanism in the SDK.
|
| 289 |
+
|
| 290 |
+
5. You may not use the SDK in any manner that would cause it
|
| 291 |
+
to become subject to an open source software license. As
|
| 292 |
+
examples, licenses that require as a condition of use,
|
| 293 |
+
modification, and/or distribution that the SDK be:
|
| 294 |
+
|
| 295 |
+
a. Disclosed or distributed in source code form;
|
| 296 |
+
|
| 297 |
+
b. Licensed for the purpose of making derivative works;
|
| 298 |
+
or
|
| 299 |
+
|
| 300 |
+
c. Redistributable at no charge.
|
| 301 |
+
|
| 302 |
+
6. Unless you have an agreement with NVIDIA for this
|
| 303 |
+
purpose, you may not use the SDK with any system or
|
| 304 |
+
application where the use or failure of the system or
|
| 305 |
+
application can reasonably be expected to threaten or
|
| 306 |
+
result in personal injury, death, or catastrophic loss.
|
| 307 |
+
Examples include use in avionics, navigation, military,
|
| 308 |
+
medical, life support or other life critical applications.
|
| 309 |
+
NVIDIA does not design, test or manufacture the SDK for
|
| 310 |
+
these critical uses and NVIDIA shall not be liable to you
|
| 311 |
+
or any third party, in whole or in part, for any claims or
|
| 312 |
+
damages arising from such uses.
|
| 313 |
+
|
| 314 |
+
7. You agree to defend, indemnify and hold harmless NVIDIA
|
| 315 |
+
and its affiliates, and their respective employees,
|
| 316 |
+
contractors, agents, officers and directors, from and
|
| 317 |
+
against any and all claims, damages, obligations, losses,
|
| 318 |
+
liabilities, costs or debt, fines, restitutions and
|
| 319 |
+
expenses (including but not limited to attorney’s fees
|
| 320 |
+
and costs incident to establishing the right of
|
| 321 |
+
indemnification) arising out of or related to your use of
|
| 322 |
+
the SDK outside of the scope of this Agreement, or not in
|
| 323 |
+
compliance with its terms.
|
| 324 |
+
|
| 325 |
+
|
| 326 |
+
1.3. Ownership
|
| 327 |
+
|
| 328 |
+
1. NVIDIA or its licensors hold all rights, title and
|
| 329 |
+
interest in and to the SDK and its modifications and
|
| 330 |
+
derivative works, including their respective intellectual
|
| 331 |
+
property rights, subject to your rights described in this
|
| 332 |
+
section. This SDK may include software and materials from
|
| 333 |
+
NVIDIA’s licensors, and these licensors are intended
|
| 334 |
+
third party beneficiaries that may enforce this Agreement
|
| 335 |
+
with respect to their intellectual property rights.
|
| 336 |
+
|
| 337 |
+
2. You hold all rights, title and interest in and to your
|
| 338 |
+
applications and your derivative works of the sample
|
| 339 |
+
source code delivered in the SDK, including their
|
| 340 |
+
respective intellectual property rights, subject to
|
| 341 |
+
NVIDIA’s rights described in this section.
|
| 342 |
+
|
| 343 |
+
3. You may, but don’t have to, provide to NVIDIA
|
| 344 |
+
suggestions, feature requests or other feedback regarding
|
| 345 |
+
the SDK, including possible enhancements or modifications
|
| 346 |
+
to the SDK. For any feedback that you voluntarily provide,
|
| 347 |
+
you hereby grant NVIDIA and its affiliates a perpetual,
|
| 348 |
+
non-exclusive, worldwide, irrevocable license to use,
|
| 349 |
+
reproduce, modify, license, sublicense (through multiple
|
| 350 |
+
tiers of sublicensees), and distribute (through multiple
|
| 351 |
+
tiers of distributors) it without the payment of any
|
| 352 |
+
royalties or fees to you. NVIDIA will use feedback at its
|
| 353 |
+
choice. NVIDIA is constantly looking for ways to improve
|
| 354 |
+
its products, so you may send feedback to NVIDIA through
|
| 355 |
+
the developer portal at https://developer.nvidia.com.
|
| 356 |
+
|
| 357 |
+
|
| 358 |
+
1.4. No Warranties
|
| 359 |
+
|
| 360 |
+
THE SDK IS PROVIDED BY NVIDIA “AS IS” AND “WITH ALL
|
| 361 |
+
FAULTS.” TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND
|
| 362 |
+
ITS AFFILIATES EXPRESSLY DISCLAIM ALL WARRANTIES OF ANY KIND
|
| 363 |
+
OR NATURE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING,
|
| 364 |
+
BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
|
| 365 |
+
FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, OR THE
|
| 366 |
+
ABSENCE OF ANY DEFECTS THEREIN, WHETHER LATENT OR PATENT. NO
|
| 367 |
+
WARRANTY IS MADE ON THE BASIS OF TRADE USAGE, COURSE OF
|
| 368 |
+
DEALING OR COURSE OF TRADE.
|
| 369 |
+
|
| 370 |
+
|
| 371 |
+
1.5. Limitation of Liability
|
| 372 |
+
|
| 373 |
+
TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND ITS
|
| 374 |
+
AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
|
| 375 |
+
PUNITIVE OR CONSEQUENTIAL DAMAGES, OR ANY LOST PROFITS, LOSS
|
| 376 |
+
OF USE, LOSS OF DATA OR LOSS OF GOODWILL, OR THE COSTS OF
|
| 377 |
+
PROCURING SUBSTITUTE PRODUCTS, ARISING OUT OF OR IN CONNECTION
|
| 378 |
+
WITH THIS AGREEMENT OR THE USE OR PERFORMANCE OF THE SDK,
|
| 379 |
+
WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON BREACH
|
| 380 |
+
OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE),
|
| 381 |
+
PRODUCT LIABILITY OR ANY OTHER CAUSE OF ACTION OR THEORY OF
|
| 382 |
+
LIABILITY. IN NO EVENT WILL NVIDIA’S AND ITS AFFILIATES
|
| 383 |
+
TOTAL CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS
|
| 384 |
+
AGREEMENT EXCEED US$10.00. THE NATURE OF THE LIABILITY OR THE
|
| 385 |
+
NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR EXTEND THIS
|
| 386 |
+
LIMIT.
|
| 387 |
+
|
| 388 |
+
These exclusions and limitations of liability shall apply
|
| 389 |
+
regardless if NVIDIA or its affiliates have been advised of
|
| 390 |
+
the possibility of such damages, and regardless of whether a
|
| 391 |
+
remedy fails its essential purpose. These exclusions and
|
| 392 |
+
limitations of liability form an essential basis of the
|
| 393 |
+
bargain between the parties, and, absent any of these
|
| 394 |
+
exclusions or limitations of liability, the provisions of this
|
| 395 |
+
Agreement, including, without limitation, the economic terms,
|
| 396 |
+
would be substantially different.
|
| 397 |
+
|
| 398 |
+
|
| 399 |
+
1.6. Termination
|
| 400 |
+
|
| 401 |
+
1. This Agreement will continue to apply until terminated by
|
| 402 |
+
either you or NVIDIA as described below.
|
| 403 |
+
|
| 404 |
+
2. If you want to terminate this Agreement, you may do so by
|
| 405 |
+
stopping to use the SDK.
|
| 406 |
+
|
| 407 |
+
3. NVIDIA may, at any time, terminate this Agreement if:
|
| 408 |
+
|
| 409 |
+
a. (i) you fail to comply with any term of this
|
| 410 |
+
Agreement and the non-compliance is not fixed within
|
| 411 |
+
thirty (30) days following notice from NVIDIA (or
|
| 412 |
+
immediately if you violate NVIDIA’s intellectual
|
| 413 |
+
property rights);
|
| 414 |
+
|
| 415 |
+
b. (ii) you commence or participate in any legal
|
| 416 |
+
proceeding against NVIDIA with respect to the SDK; or
|
| 417 |
+
|
| 418 |
+
c. (iii) NVIDIA decides to no longer provide the SDK in
|
| 419 |
+
a country or, in NVIDIA’s sole discretion, the
|
| 420 |
+
continued use of it is no longer commercially viable.
|
| 421 |
+
|
| 422 |
+
4. Upon any termination of this Agreement, you agree to
|
| 423 |
+
promptly discontinue use of the SDK and destroy all copies
|
| 424 |
+
in your possession or control. Your prior distributions in
|
| 425 |
+
accordance with this Agreement are not affected by the
|
| 426 |
+
termination of this Agreement. Upon written request, you
|
| 427 |
+
will certify in writing that you have complied with your
|
| 428 |
+
commitments under this section. Upon any termination of
|
| 429 |
+
this Agreement all provisions survive except for the
|
| 430 |
+
license grant provisions.
|
| 431 |
+
|
| 432 |
+
|
| 433 |
+
1.7. General
|
| 434 |
+
|
| 435 |
+
If you wish to assign this Agreement or your rights and
|
| 436 |
+
obligations, including by merger, consolidation, dissolution
|
| 437 |
+
or operation of law, contact NVIDIA to ask for permission. Any
|
| 438 |
+
attempted assignment not approved by NVIDIA in writing shall
|
| 439 |
+
be void and of no effect. NVIDIA may assign, delegate or
|
| 440 |
+
transfer this Agreement and its rights and obligations, and if
|
| 441 |
+
to a non-affiliate you will be notified.
|
| 442 |
+
|
| 443 |
+
You agree to cooperate with NVIDIA and provide reasonably
|
| 444 |
+
requested information to verify your compliance with this
|
| 445 |
+
Agreement.
|
| 446 |
+
|
| 447 |
+
This Agreement will be governed in all respects by the laws of
|
| 448 |
+
the United States and of the State of Delaware as those laws
|
| 449 |
+
are applied to contracts entered into and performed entirely
|
| 450 |
+
within Delaware by Delaware residents, without regard to the
|
| 451 |
+
conflicts of laws principles. The United Nations Convention on
|
| 452 |
+
Contracts for the International Sale of Goods is specifically
|
| 453 |
+
disclaimed. You agree to all terms of this Agreement in the
|
| 454 |
+
English language.
|
| 455 |
+
|
| 456 |
+
The state or federal courts residing in Santa Clara County,
|
| 457 |
+
California shall have exclusive jurisdiction over any dispute
|
| 458 |
+
or claim arising out of this Agreement. Notwithstanding this,
|
| 459 |
+
you agree that NVIDIA shall still be allowed to apply for
|
| 460 |
+
injunctive remedies or an equivalent type of urgent legal
|
| 461 |
+
relief in any jurisdiction.
|
| 462 |
+
|
| 463 |
+
If any court of competent jurisdiction determines that any
|
| 464 |
+
provision of this Agreement is illegal, invalid or
|
| 465 |
+
unenforceable, such provision will be construed as limited to
|
| 466 |
+
the extent necessary to be consistent with and fully
|
| 467 |
+
enforceable under the law and the remaining provisions will
|
| 468 |
+
remain in full force and effect. Unless otherwise specified,
|
| 469 |
+
remedies are cumulative.
|
| 470 |
+
|
| 471 |
+
Each party acknowledges and agrees that the other is an
|
| 472 |
+
independent contractor in the performance of this Agreement.
|
| 473 |
+
|
| 474 |
+
The SDK has been developed entirely at private expense and is
|
| 475 |
+
“commercial items” consisting of “commercial computer
|
| 476 |
+
software” and “commercial computer software
|
| 477 |
+
documentation” provided with RESTRICTED RIGHTS. Use,
|
| 478 |
+
duplication or disclosure by the U.S. Government or a U.S.
|
| 479 |
+
Government subcontractor is subject to the restrictions in
|
| 480 |
+
this Agreement pursuant to DFARS 227.7202-3(a) or as set forth
|
| 481 |
+
in subparagraphs (c)(1) and (2) of the Commercial Computer
|
| 482 |
+
Software - Restricted Rights clause at FAR 52.227-19, as
|
| 483 |
+
applicable. Contractor/manufacturer is NVIDIA, 2788 San Tomas
|
| 484 |
+
Expressway, Santa Clara, CA 95051.
|
| 485 |
+
|
| 486 |
+
The SDK is subject to United States export laws and
|
| 487 |
+
regulations. You agree that you will not ship, transfer or
|
| 488 |
+
export the SDK into any country, or use the SDK in any manner,
|
| 489 |
+
prohibited by the United States Bureau of Industry and
|
| 490 |
+
Security or economic sanctions regulations administered by the
|
| 491 |
+
U.S. Department of Treasury’s Office of Foreign Assets
|
| 492 |
+
Control (OFAC), or any applicable export laws, restrictions or
|
| 493 |
+
regulations. These laws include restrictions on destinations,
|
| 494 |
+
end users and end use. By accepting this Agreement, you
|
| 495 |
+
confirm that you are not a resident or citizen of any country
|
| 496 |
+
currently embargoed by the U.S. and that you are not otherwise
|
| 497 |
+
prohibited from receiving the SDK.
|
| 498 |
+
|
| 499 |
+
Any notice delivered by NVIDIA to you under this Agreement
|
| 500 |
+
will be delivered via mail, email or fax. You agree that any
|
| 501 |
+
notices that NVIDIA sends you electronically will satisfy any
|
| 502 |
+
legal communication requirements. Please direct your legal
|
| 503 |
+
notices or other correspondence to NVIDIA Corporation, 2788
|
| 504 |
+
San Tomas Expressway, Santa Clara, California 95051, United
|
| 505 |
+
States of America, Attention: Legal Department.
|
| 506 |
+
|
| 507 |
+
This Agreement and any exhibits incorporated into this
|
| 508 |
+
Agreement constitute the entire agreement of the parties with
|
| 509 |
+
respect to the subject matter of this Agreement and supersede
|
| 510 |
+
all prior negotiations or documentation exchanged between the
|
| 511 |
+
parties relating to this SDK license. Any additional and/or
|
| 512 |
+
conflicting terms on documents issued by you are null, void,
|
| 513 |
+
and invalid. Any amendment or waiver under this Agreement
|
| 514 |
+
shall be in writing and signed by representatives of both
|
| 515 |
+
parties.
|
| 516 |
+
|
| 517 |
+
|
| 518 |
+
2. CUDA Toolkit Supplement to Software License Agreement for
|
| 519 |
+
NVIDIA Software Development Kits
|
| 520 |
+
------------------------------------------------------------
|
| 521 |
+
|
| 522 |
+
|
| 523 |
+
Release date: August 16, 2018
|
| 524 |
+
-----------------------------
|
| 525 |
+
|
| 526 |
+
The terms in this supplement govern your use of the NVIDIA
|
| 527 |
+
CUDA Toolkit SDK under the terms of your license agreement
|
| 528 |
+
(“Agreement”) as modified by this supplement. Capitalized
|
| 529 |
+
terms used but not defined below have the meaning assigned to
|
| 530 |
+
them in the Agreement.
|
| 531 |
+
|
| 532 |
+
This supplement is an exhibit to the Agreement and is
|
| 533 |
+
incorporated as an integral part of the Agreement. In the
|
| 534 |
+
event of conflict between the terms in this supplement and the
|
| 535 |
+
terms in the Agreement, the terms in this supplement govern.
|
| 536 |
+
|
| 537 |
+
|
| 538 |
+
2.1. License Scope
|
| 539 |
+
|
| 540 |
+
The SDK is licensed for you to develop applications only for
|
| 541 |
+
use in systems with NVIDIA GPUs.
|
| 542 |
+
|
| 543 |
+
|
| 544 |
+
2.2. Distribution
|
| 545 |
+
|
| 546 |
+
The portions of the SDK that are distributable under the
|
| 547 |
+
Agreement are listed in Attachment A.
|
| 548 |
+
|
| 549 |
+
|
| 550 |
+
2.3. Operating Systems
|
| 551 |
+
|
| 552 |
+
Those portions of the SDK designed exclusively for use on the
|
| 553 |
+
Linux or FreeBSD operating systems, or other operating systems
|
| 554 |
+
derived from the source code to these operating systems, may
|
| 555 |
+
be copied and redistributed for use in accordance with this
|
| 556 |
+
Agreement, provided that the object code files are not
|
| 557 |
+
modified in any way (except for unzipping of compressed
|
| 558 |
+
files).
|
| 559 |
+
|
| 560 |
+
|
| 561 |
+
2.4. Audio and Video Encoders and Decoders
|
| 562 |
+
|
| 563 |
+
You acknowledge and agree that it is your sole responsibility
|
| 564 |
+
to obtain any additional third-party licenses required to
|
| 565 |
+
make, have made, use, have used, sell, import, and offer for
|
| 566 |
+
sale your products or services that include or incorporate any
|
| 567 |
+
third-party software and content relating to audio and/or
|
| 568 |
+
video encoders and decoders from, including but not limited
|
| 569 |
+
to, Microsoft, Thomson, Fraunhofer IIS, Sisvel S.p.A.,
|
| 570 |
+
MPEG-LA, and Coding Technologies. NVIDIA does not grant to you
|
| 571 |
+
under this Agreement any necessary patent or other rights with
|
| 572 |
+
respect to any audio and/or video encoders and decoders.
|
| 573 |
+
|
| 574 |
+
|
| 575 |
+
2.5. Licensing
|
| 576 |
+
|
| 577 |
+
If the distribution terms in this Agreement are not suitable
|
| 578 |
+
for your organization, or for any questions regarding this
|
| 579 |
+
Agreement, please contact NVIDIA at
|
| 580 |
+
nvidia-compute-license-questions@nvidia.com.
|
| 581 |
+
|
| 582 |
+
|
| 583 |
+
2.6. Attachment A
|
| 584 |
+
|
| 585 |
+
The following portions of the SDK are distributable under the
|
| 586 |
+
Agreement:
|
| 587 |
+
|
| 588 |
+
Component
|
| 589 |
+
|
| 590 |
+
CUDA Runtime
|
| 591 |
+
|
| 592 |
+
Windows
|
| 593 |
+
|
| 594 |
+
cudart.dll, cudart_static.lib, cudadevrt.lib
|
| 595 |
+
|
| 596 |
+
Mac OSX
|
| 597 |
+
|
| 598 |
+
libcudart.dylib, libcudart_static.a, libcudadevrt.a
|
| 599 |
+
|
| 600 |
+
Linux
|
| 601 |
+
|
| 602 |
+
libcudart.so, libcudart_static.a, libcudadevrt.a
|
| 603 |
+
|
| 604 |
+
Android
|
| 605 |
+
|
| 606 |
+
libcudart.so, libcudart_static.a, libcudadevrt.a
|
| 607 |
+
|
| 608 |
+
Component
|
| 609 |
+
|
| 610 |
+
CUDA FFT Library
|
| 611 |
+
|
| 612 |
+
Windows
|
| 613 |
+
|
| 614 |
+
cufft.dll, cufftw.dll, cufft.lib, cufftw.lib
|
| 615 |
+
|
| 616 |
+
Mac OSX
|
| 617 |
+
|
| 618 |
+
libcufft.dylib, libcufft_static.a, libcufftw.dylib,
|
| 619 |
+
libcufftw_static.a
|
| 620 |
+
|
| 621 |
+
Linux
|
| 622 |
+
|
| 623 |
+
libcufft.so, libcufft_static.a, libcufftw.so,
|
| 624 |
+
libcufftw_static.a
|
| 625 |
+
|
| 626 |
+
Android
|
| 627 |
+
|
| 628 |
+
libcufft.so, libcufft_static.a, libcufftw.so,
|
| 629 |
+
libcufftw_static.a
|
| 630 |
+
|
| 631 |
+
Component
|
| 632 |
+
|
| 633 |
+
CUDA BLAS Library
|
| 634 |
+
|
| 635 |
+
Windows
|
| 636 |
+
|
| 637 |
+
cublas.dll, cublasLt.dll
|
| 638 |
+
|
| 639 |
+
Mac OSX
|
| 640 |
+
|
| 641 |
+
libcublas.dylib, libcublasLt.dylib, libcublas_static.a,
|
| 642 |
+
libcublasLt_static.a
|
| 643 |
+
|
| 644 |
+
Linux
|
| 645 |
+
|
| 646 |
+
libcublas.so, libcublasLt.so, libcublas_static.a,
|
| 647 |
+
libcublasLt_static.a
|
| 648 |
+
|
| 649 |
+
Android
|
| 650 |
+
|
| 651 |
+
libcublas.so, libcublasLt.so, libcublas_static.a,
|
| 652 |
+
libcublasLt_static.a
|
| 653 |
+
|
| 654 |
+
Component
|
| 655 |
+
|
| 656 |
+
NVIDIA "Drop-in" BLAS Library
|
| 657 |
+
|
| 658 |
+
Windows
|
| 659 |
+
|
| 660 |
+
nvblas.dll
|
| 661 |
+
|
| 662 |
+
Mac OSX
|
| 663 |
+
|
| 664 |
+
libnvblas.dylib
|
| 665 |
+
|
| 666 |
+
Linux
|
| 667 |
+
|
| 668 |
+
libnvblas.so
|
| 669 |
+
|
| 670 |
+
Component
|
| 671 |
+
|
| 672 |
+
CUDA Sparse Matrix Library
|
| 673 |
+
|
| 674 |
+
Windows
|
| 675 |
+
|
| 676 |
+
cusparse.dll, cusparse.lib
|
| 677 |
+
|
| 678 |
+
Mac OSX
|
| 679 |
+
|
| 680 |
+
libcusparse.dylib, libcusparse_static.a
|
| 681 |
+
|
| 682 |
+
Linux
|
| 683 |
+
|
| 684 |
+
libcusparse.so, libcusparse_static.a
|
| 685 |
+
|
| 686 |
+
Android
|
| 687 |
+
|
| 688 |
+
libcusparse.so, libcusparse_static.a
|
| 689 |
+
|
| 690 |
+
Component
|
| 691 |
+
|
| 692 |
+
CUDA Linear Solver Library
|
| 693 |
+
|
| 694 |
+
Windows
|
| 695 |
+
|
| 696 |
+
cusolver.dll, cusolver.lib
|
| 697 |
+
|
| 698 |
+
Mac OSX
|
| 699 |
+
|
| 700 |
+
libcusolver.dylib, libcusolver_static.a
|
| 701 |
+
|
| 702 |
+
Linux
|
| 703 |
+
|
| 704 |
+
libcusolver.so, libcusolver_static.a
|
| 705 |
+
|
| 706 |
+
Android
|
| 707 |
+
|
| 708 |
+
libcusolver.so, libcusolver_static.a
|
| 709 |
+
|
| 710 |
+
Component
|
| 711 |
+
|
| 712 |
+
CUDA Random Number Generation Library
|
| 713 |
+
|
| 714 |
+
Windows
|
| 715 |
+
|
| 716 |
+
curand.dll, curand.lib
|
| 717 |
+
|
| 718 |
+
Mac OSX
|
| 719 |
+
|
| 720 |
+
libcurand.dylib, libcurand_static.a
|
| 721 |
+
|
| 722 |
+
Linux
|
| 723 |
+
|
| 724 |
+
libcurand.so, libcurand_static.a
|
| 725 |
+
|
| 726 |
+
Android
|
| 727 |
+
|
| 728 |
+
libcurand.so, libcurand_static.a
|
| 729 |
+
|
| 730 |
+
Component
|
| 731 |
+
|
| 732 |
+
CUDA Accelerated Graph Library
|
| 733 |
+
|
| 734 |
+
Component
|
| 735 |
+
|
| 736 |
+
NVIDIA Performance Primitives Library
|
| 737 |
+
|
| 738 |
+
Windows
|
| 739 |
+
|
| 740 |
+
nppc.dll, nppc.lib, nppial.dll, nppial.lib, nppicc.dll,
|
| 741 |
+
nppicc.lib, nppicom.dll, nppicom.lib, nppidei.dll,
|
| 742 |
+
nppidei.lib, nppif.dll, nppif.lib, nppig.dll, nppig.lib,
|
| 743 |
+
nppim.dll, nppim.lib, nppist.dll, nppist.lib, nppisu.dll,
|
| 744 |
+
nppisu.lib, nppitc.dll, nppitc.lib, npps.dll, npps.lib
|
| 745 |
+
|
| 746 |
+
Mac OSX
|
| 747 |
+
|
| 748 |
+
libnppc.dylib, libnppc_static.a, libnppial.dylib,
|
| 749 |
+
libnppial_static.a, libnppicc.dylib, libnppicc_static.a,
|
| 750 |
+
libnppicom.dylib, libnppicom_static.a, libnppidei.dylib,
|
| 751 |
+
libnppidei_static.a, libnppif.dylib, libnppif_static.a,
|
| 752 |
+
libnppig.dylib, libnppig_static.a, libnppim.dylib,
|
| 753 |
+
libnppisu_static.a, libnppitc.dylib, libnppitc_static.a,
|
| 754 |
+
libnpps.dylib, libnpps_static.a
|
| 755 |
+
|
| 756 |
+
Linux
|
| 757 |
+
|
| 758 |
+
libnppc.so, libnppc_static.a, libnppial.so,
|
| 759 |
+
libnppial_static.a, libnppicc.so, libnppicc_static.a,
|
| 760 |
+
libnppicom.so, libnppicom_static.a, libnppidei.so,
|
| 761 |
+
libnppidei_static.a, libnppif.so, libnppif_static.a
|
| 762 |
+
libnppig.so, libnppig_static.a, libnppim.so,
|
| 763 |
+
libnppim_static.a, libnppist.so, libnppist_static.a,
|
| 764 |
+
libnppisu.so, libnppisu_static.a, libnppitc.so
|
| 765 |
+
libnppitc_static.a, libnpps.so, libnpps_static.a
|
| 766 |
+
|
| 767 |
+
Android
|
| 768 |
+
|
| 769 |
+
libnppc.so, libnppc_static.a, libnppial.so,
|
| 770 |
+
libnppial_static.a, libnppicc.so, libnppicc_static.a,
|
| 771 |
+
libnppicom.so, libnppicom_static.a, libnppidei.so,
|
| 772 |
+
libnppidei_static.a, libnppif.so, libnppif_static.a
|
| 773 |
+
libnppig.so, libnppig_static.a, libnppim.so,
|
| 774 |
+
libnppim_static.a, libnppist.so, libnppist_static.a,
|
| 775 |
+
libnppisu.so, libnppisu_static.a, libnppitc.so
|
| 776 |
+
libnppitc_static.a, libnpps.so, libnpps_static.a
|
| 777 |
+
|
| 778 |
+
Component
|
| 779 |
+
|
| 780 |
+
NVIDIA JPEG Library
|
| 781 |
+
|
| 782 |
+
Linux
|
| 783 |
+
|
| 784 |
+
libnvjpeg.so, libnvjpeg_static.a
|
| 785 |
+
|
| 786 |
+
Component
|
| 787 |
+
|
| 788 |
+
Internal common library required for statically linking to
|
| 789 |
+
cuBLAS, cuSPARSE, cuFFT, cuRAND, nvJPEG and NPP
|
| 790 |
+
|
| 791 |
+
Mac OSX
|
| 792 |
+
|
| 793 |
+
libculibos.a
|
| 794 |
+
|
| 795 |
+
Linux
|
| 796 |
+
|
| 797 |
+
libculibos.a
|
| 798 |
+
|
| 799 |
+
Component
|
| 800 |
+
|
| 801 |
+
NVIDIA Runtime Compilation Library and Header
|
| 802 |
+
|
| 803 |
+
All
|
| 804 |
+
|
| 805 |
+
nvrtc.h
|
| 806 |
+
|
| 807 |
+
Windows
|
| 808 |
+
|
| 809 |
+
nvrtc.dll, nvrtc-builtins.dll
|
| 810 |
+
|
| 811 |
+
Mac OSX
|
| 812 |
+
|
| 813 |
+
libnvrtc.dylib, libnvrtc-builtins.dylib
|
| 814 |
+
|
| 815 |
+
Linux
|
| 816 |
+
|
| 817 |
+
libnvrtc.so, libnvrtc-builtins.so
|
| 818 |
+
|
| 819 |
+
Component
|
| 820 |
+
|
| 821 |
+
NVIDIA Optimizing Compiler Library
|
| 822 |
+
|
| 823 |
+
Windows
|
| 824 |
+
|
| 825 |
+
nvvm.dll
|
| 826 |
+
|
| 827 |
+
Mac OSX
|
| 828 |
+
|
| 829 |
+
libnvvm.dylib
|
| 830 |
+
|
| 831 |
+
Linux
|
| 832 |
+
|
| 833 |
+
libnvvm.so
|
| 834 |
+
|
| 835 |
+
Component
|
| 836 |
+
|
| 837 |
+
NVIDIA Common Device Math Functions Library
|
| 838 |
+
|
| 839 |
+
Windows
|
| 840 |
+
|
| 841 |
+
libdevice.10.bc
|
| 842 |
+
|
| 843 |
+
Mac OSX
|
| 844 |
+
|
| 845 |
+
libdevice.10.bc
|
| 846 |
+
|
| 847 |
+
Linux
|
| 848 |
+
|
| 849 |
+
libdevice.10.bc
|
| 850 |
+
|
| 851 |
+
Component
|
| 852 |
+
|
| 853 |
+
CUDA Occupancy Calculation Header Library
|
| 854 |
+
|
| 855 |
+
All
|
| 856 |
+
|
| 857 |
+
cuda_occupancy.h
|
| 858 |
+
|
| 859 |
+
Component
|
| 860 |
+
|
| 861 |
+
CUDA Half Precision Headers
|
| 862 |
+
|
| 863 |
+
All
|
| 864 |
+
|
| 865 |
+
cuda_fp16.h, cuda_fp16.hpp
|
| 866 |
+
|
| 867 |
+
Component
|
| 868 |
+
|
| 869 |
+
CUDA Profiling Tools Interface (CUPTI) Library
|
| 870 |
+
|
| 871 |
+
Windows
|
| 872 |
+
|
| 873 |
+
cupti.dll
|
| 874 |
+
|
| 875 |
+
Mac OSX
|
| 876 |
+
|
| 877 |
+
libcupti.dylib
|
| 878 |
+
|
| 879 |
+
Linux
|
| 880 |
+
|
| 881 |
+
libcupti.so
|
| 882 |
+
|
| 883 |
+
Component
|
| 884 |
+
|
| 885 |
+
NVIDIA Tools Extension Library
|
| 886 |
+
|
| 887 |
+
Windows
|
| 888 |
+
|
| 889 |
+
nvToolsExt.dll, nvToolsExt.lib
|
| 890 |
+
|
| 891 |
+
Mac OSX
|
| 892 |
+
|
| 893 |
+
libnvToolsExt.dylib
|
| 894 |
+
|
| 895 |
+
Linux
|
| 896 |
+
|
| 897 |
+
libnvToolsExt.so
|
| 898 |
+
|
| 899 |
+
Component
|
| 900 |
+
|
| 901 |
+
NVIDIA CUDA Driver Libraries
|
| 902 |
+
|
| 903 |
+
Linux
|
| 904 |
+
|
| 905 |
+
libcuda.so, libnvidia-fatbinaryloader.so,
|
| 906 |
+
libnvidia-ptxjitcompiler.so
|
| 907 |
+
|
| 908 |
+
The NVIDIA CUDA Driver Libraries are only distributable in
|
| 909 |
+
applications that meet this criteria:
|
| 910 |
+
|
| 911 |
+
1. The application was developed starting from a NVIDIA CUDA
|
| 912 |
+
container obtained from Docker Hub or the NVIDIA GPU
|
| 913 |
+
Cloud, and
|
| 914 |
+
|
| 915 |
+
2. The resulting application is packaged as a Docker
|
| 916 |
+
container and distributed to users on Docker Hub or the
|
| 917 |
+
NVIDIA GPU Cloud only.
|
| 918 |
+
|
| 919 |
+
|
| 920 |
+
2.7. Attachment B
|
| 921 |
+
|
| 922 |
+
|
| 923 |
+
Additional Licensing Obligations
|
| 924 |
+
|
| 925 |
+
The following third party components included in the SOFTWARE
|
| 926 |
+
are licensed to Licensee pursuant to the following terms and
|
| 927 |
+
conditions:
|
| 928 |
+
|
| 929 |
+
1. Licensee's use of the GDB third party component is
|
| 930 |
+
subject to the terms and conditions of GNU GPL v3:
|
| 931 |
+
|
| 932 |
+
This product includes copyrighted third-party software licensed
|
| 933 |
+
under the terms of the GNU General Public License v3 ("GPL v3").
|
| 934 |
+
All third-party software packages are copyright by their respective
|
| 935 |
+
authors. GPL v3 terms and conditions are hereby incorporated into
|
| 936 |
+
the Agreement by this reference: http://www.gnu.org/licenses/gpl.txt
|
| 937 |
+
|
| 938 |
+
Consistent with these licensing requirements, the software
|
| 939 |
+
listed below is provided under the terms of the specified
|
| 940 |
+
open source software licenses. To obtain source code for
|
| 941 |
+
software provided under licenses that require
|
| 942 |
+
redistribution of source code, including the GNU General
|
| 943 |
+
Public License (GPL) and GNU Lesser General Public License
|
| 944 |
+
(LGPL), contact oss-requests@nvidia.com. This offer is
|
| 945 |
+
valid for a period of three (3) years from the date of the
|
| 946 |
+
distribution of this product by NVIDIA CORPORATION.
|
| 947 |
+
|
| 948 |
+
Component License
|
| 949 |
+
CUDA-GDB GPL v3
|
| 950 |
+
|
| 951 |
+
2. Licensee represents and warrants that any and all third
|
| 952 |
+
party licensing and/or royalty payment obligations in
|
| 953 |
+
connection with Licensee's use of the H.264 video codecs
|
| 954 |
+
are solely the responsibility of Licensee.
|
| 955 |
+
|
| 956 |
+
3. Licensee's use of the Thrust library is subject to the
|
| 957 |
+
terms and conditions of the Apache License Version 2.0.
|
| 958 |
+
All third-party software packages are copyright by their
|
| 959 |
+
respective authors. Apache License Version 2.0 terms and
|
| 960 |
+
conditions are hereby incorporated into the Agreement by
|
| 961 |
+
this reference.
|
| 962 |
+
http://www.apache.org/licenses/LICENSE-2.0.html
|
| 963 |
+
|
| 964 |
+
In addition, Licensee acknowledges the following notice:
|
| 965 |
+
Thrust includes source code from the Boost Iterator,
|
| 966 |
+
Tuple, System, and Random Number libraries.
|
| 967 |
+
|
| 968 |
+
Boost Software License - Version 1.0 - August 17th, 2003
|
| 969 |
+
. . . .
|
| 970 |
+
|
| 971 |
+
Permission is hereby granted, free of charge, to any person or
|
| 972 |
+
organization obtaining a copy of the software and accompanying
|
| 973 |
+
documentation covered by this license (the "Software") to use,
|
| 974 |
+
reproduce, display, distribute, execute, and transmit the Software,
|
| 975 |
+
and to prepare derivative works of the Software, and to permit
|
| 976 |
+
third-parties to whom the Software is furnished to do so, all
|
| 977 |
+
subject to the following:
|
| 978 |
+
|
| 979 |
+
The copyright notices in the Software and this entire statement,
|
| 980 |
+
including the above license grant, this restriction and the following
|
| 981 |
+
disclaimer, must be included in all copies of the Software, in whole
|
| 982 |
+
or in part, and all derivative works of the Software, unless such
|
| 983 |
+
copies or derivative works are solely in the form of machine-executable
|
| 984 |
+
object code generated by a source language processor.
|
| 985 |
+
|
| 986 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 987 |
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 988 |
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
|
| 989 |
+
NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
|
| 990 |
+
ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR
|
| 991 |
+
OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING
|
| 992 |
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
| 993 |
+
OTHER DEALINGS IN THE SOFTWARE.
|
| 994 |
+
|
| 995 |
+
4. Licensee's use of the LLVM third party component is
|
| 996 |
+
subject to the following terms and conditions:
|
| 997 |
+
|
| 998 |
+
======================================================
|
| 999 |
+
LLVM Release License
|
| 1000 |
+
======================================================
|
| 1001 |
+
University of Illinois/NCSA
|
| 1002 |
+
Open Source License
|
| 1003 |
+
|
| 1004 |
+
Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign.
|
| 1005 |
+
All rights reserved.
|
| 1006 |
+
|
| 1007 |
+
Developed by:
|
| 1008 |
+
|
| 1009 |
+
LLVM Team
|
| 1010 |
+
|
| 1011 |
+
University of Illinois at Urbana-Champaign
|
| 1012 |
+
|
| 1013 |
+
http://llvm.org
|
| 1014 |
+
|
| 1015 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 1016 |
+
of this software and associated documentation files (the "Software"), to
|
| 1017 |
+
deal with the Software without restriction, including without limitation the
|
| 1018 |
+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
| 1019 |
+
sell copies of the Software, and to permit persons to whom the Software is
|
| 1020 |
+
furnished to do so, subject to the following conditions:
|
| 1021 |
+
|
| 1022 |
+
* Redistributions of source code must retain the above copyright notice,
|
| 1023 |
+
this list of conditions and the following disclaimers.
|
| 1024 |
+
|
| 1025 |
+
* Redistributions in binary form must reproduce the above copyright
|
| 1026 |
+
notice, this list of conditions and the following disclaimers in the
|
| 1027 |
+
documentation and/or other materials provided with the distribution.
|
| 1028 |
+
|
| 1029 |
+
* Neither the names of the LLVM Team, University of Illinois at Urbana-
|
| 1030 |
+
Champaign, nor the names of its contributors may be used to endorse or
|
| 1031 |
+
promote products derived from this Software without specific prior
|
| 1032 |
+
written permission.
|
| 1033 |
+
|
| 1034 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 1035 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 1036 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
| 1037 |
+
THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
| 1038 |
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
| 1039 |
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
| 1040 |
+
DEALINGS WITH THE SOFTWARE.
|
| 1041 |
+
|
| 1042 |
+
5. Licensee's use (e.g. nvprof) of the PCRE third party
|
| 1043 |
+
component is subject to the following terms and
|
| 1044 |
+
conditions:
|
| 1045 |
+
|
| 1046 |
+
------------
|
| 1047 |
+
PCRE LICENCE
|
| 1048 |
+
------------
|
| 1049 |
+
PCRE is a library of functions to support regular expressions whose syntax
|
| 1050 |
+
and semantics are as close as possible to those of the Perl 5 language.
|
| 1051 |
+
Release 8 of PCRE is distributed under the terms of the "BSD" licence, as
|
| 1052 |
+
specified below. The documentation for PCRE, supplied in the "doc"
|
| 1053 |
+
directory, is distributed under the same terms as the software itself. The
|
| 1054 |
+
basic library functions are written in C and are freestanding. Also
|
| 1055 |
+
included in the distribution is a set of C++ wrapper functions, and a just-
|
| 1056 |
+
in-time compiler that can be used to optimize pattern matching. These are
|
| 1057 |
+
both optional features that can be omitted when the library is built.
|
| 1058 |
+
|
| 1059 |
+
THE BASIC LIBRARY FUNCTIONS
|
| 1060 |
+
---------------------------
|
| 1061 |
+
Written by: Philip Hazel
|
| 1062 |
+
Email local part: ph10
|
| 1063 |
+
Email domain: cam.ac.uk
|
| 1064 |
+
University of Cambridge Computing Service,
|
| 1065 |
+
Cambridge, England.
|
| 1066 |
+
Copyright (c) 1997-2012 University of Cambridge
|
| 1067 |
+
All rights reserved.
|
| 1068 |
+
|
| 1069 |
+
PCRE JUST-IN-TIME COMPILATION SUPPORT
|
| 1070 |
+
-------------------------------------
|
| 1071 |
+
Written by: Zoltan Herczeg
|
| 1072 |
+
Email local part: hzmester
|
| 1073 |
+
Emain domain: freemail.hu
|
| 1074 |
+
Copyright(c) 2010-2012 Zoltan Herczeg
|
| 1075 |
+
All rights reserved.
|
| 1076 |
+
|
| 1077 |
+
STACK-LESS JUST-IN-TIME COMPILER
|
| 1078 |
+
--------------------------------
|
| 1079 |
+
Written by: Zoltan Herczeg
|
| 1080 |
+
Email local part: hzmester
|
| 1081 |
+
Emain domain: freemail.hu
|
| 1082 |
+
Copyright(c) 2009-2012 Zoltan Herczeg
|
| 1083 |
+
All rights reserved.
|
| 1084 |
+
|
| 1085 |
+
THE C++ WRAPPER FUNCTIONS
|
| 1086 |
+
-------------------------
|
| 1087 |
+
Contributed by: Google Inc.
|
| 1088 |
+
Copyright (c) 2007-2012, Google Inc.
|
| 1089 |
+
All rights reserved.
|
| 1090 |
+
|
| 1091 |
+
THE "BSD" LICENCE
|
| 1092 |
+
-----------------
|
| 1093 |
+
Redistribution and use in source and binary forms, with or without
|
| 1094 |
+
modification, are permitted provided that the following conditions are met:
|
| 1095 |
+
|
| 1096 |
+
* Redistributions of source code must retain the above copyright notice,
|
| 1097 |
+
this list of conditions and the following disclaimer.
|
| 1098 |
+
|
| 1099 |
+
* Redistributions in binary form must reproduce the above copyright
|
| 1100 |
+
notice, this list of conditions and the following disclaimer in the
|
| 1101 |
+
documentation and/or other materials provided with the distribution.
|
| 1102 |
+
|
| 1103 |
+
* Neither the name of the University of Cambridge nor the name of Google
|
| 1104 |
+
Inc. nor the names of their contributors may be used to endorse or
|
| 1105 |
+
promote products derived from this software without specific prior
|
| 1106 |
+
written permission.
|
| 1107 |
+
|
| 1108 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| 1109 |
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| 1110 |
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| 1111 |
+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
| 1112 |
+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| 1113 |
+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| 1114 |
+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| 1115 |
+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
| 1116 |
+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| 1117 |
+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
| 1118 |
+
POSSIBILITY OF SUCH DAMAGE.
|
| 1119 |
+
|
| 1120 |
+
6. Some of the cuBLAS library routines were written by or
|
| 1121 |
+
derived from code written by Vasily Volkov and are subject
|
| 1122 |
+
to the Modified Berkeley Software Distribution License as
|
| 1123 |
+
follows:
|
| 1124 |
+
|
| 1125 |
+
Copyright (c) 2007-2009, Regents of the University of California
|
| 1126 |
+
|
| 1127 |
+
All rights reserved.
|
| 1128 |
+
|
| 1129 |
+
Redistribution and use in source and binary forms, with or without
|
| 1130 |
+
modification, are permitted provided that the following conditions are
|
| 1131 |
+
met:
|
| 1132 |
+
* Redistributions of source code must retain the above copyright
|
| 1133 |
+
notice, this list of conditions and the following disclaimer.
|
| 1134 |
+
* Redistributions in binary form must reproduce the above
|
| 1135 |
+
copyright notice, this list of conditions and the following
|
| 1136 |
+
disclaimer in the documentation and/or other materials provided
|
| 1137 |
+
with the distribution.
|
| 1138 |
+
* Neither the name of the University of California, Berkeley nor
|
| 1139 |
+
the names of its contributors may be used to endorse or promote
|
| 1140 |
+
products derived from this software without specific prior
|
| 1141 |
+
written permission.
|
| 1142 |
+
|
| 1143 |
+
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
| 1144 |
+
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
| 1145 |
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
| 1146 |
+
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
| 1147 |
+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
| 1148 |
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
| 1149 |
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
| 1150 |
+
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
| 1151 |
+
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
| 1152 |
+
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
| 1153 |
+
POSSIBILITY OF SUCH DAMAGE.
|
| 1154 |
+
|
| 1155 |
+
7. Some of the cuBLAS library routines were written by or
|
| 1156 |
+
derived from code written by Davide Barbieri and are
|
| 1157 |
+
subject to the Modified Berkeley Software Distribution
|
| 1158 |
+
License as follows:
|
| 1159 |
+
|
| 1160 |
+
Copyright (c) 2008-2009 Davide Barbieri @ University of Rome Tor Vergata.
|
| 1161 |
+
|
| 1162 |
+
All rights reserved.
|
| 1163 |
+
|
| 1164 |
+
Redistribution and use in source and binary forms, with or without
|
| 1165 |
+
modification, are permitted provided that the following conditions are
|
| 1166 |
+
met:
|
| 1167 |
+
* Redistributions of source code must retain the above copyright
|
| 1168 |
+
notice, this list of conditions and the following disclaimer.
|
| 1169 |
+
* Redistributions in binary form must reproduce the above
|
| 1170 |
+
copyright notice, this list of conditions and the following
|
| 1171 |
+
disclaimer in the documentation and/or other materials provided
|
| 1172 |
+
with the distribution.
|
| 1173 |
+
* The name of the author may not be used to endorse or promote
|
| 1174 |
+
products derived from this software without specific prior
|
| 1175 |
+
written permission.
|
| 1176 |
+
|
| 1177 |
+
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
| 1178 |
+
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
| 1179 |
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
| 1180 |
+
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
| 1181 |
+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
| 1182 |
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
| 1183 |
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
| 1184 |
+
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
| 1185 |
+
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
| 1186 |
+
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
| 1187 |
+
POSSIBILITY OF SUCH DAMAGE.
|
| 1188 |
+
|
| 1189 |
+
8. Some of the cuBLAS library routines were derived from
|
| 1190 |
+
code developed by the University of Tennessee and are
|
| 1191 |
+
subject to the Modified Berkeley Software Distribution
|
| 1192 |
+
License as follows:
|
| 1193 |
+
|
| 1194 |
+
Copyright (c) 2010 The University of Tennessee.
|
| 1195 |
+
|
| 1196 |
+
All rights reserved.
|
| 1197 |
+
|
| 1198 |
+
Redistribution and use in source and binary forms, with or without
|
| 1199 |
+
modification, are permitted provided that the following conditions are
|
| 1200 |
+
met:
|
| 1201 |
+
* Redistributions of source code must retain the above copyright
|
| 1202 |
+
notice, this list of conditions and the following disclaimer.
|
| 1203 |
+
* Redistributions in binary form must reproduce the above
|
| 1204 |
+
copyright notice, this list of conditions and the following
|
| 1205 |
+
disclaimer listed in this license in the documentation and/or
|
| 1206 |
+
other materials provided with the distribution.
|
| 1207 |
+
* Neither the name of the copyright holders nor the names of its
|
| 1208 |
+
contributors may be used to endorse or promote products derived
|
| 1209 |
+
from this software without specific prior written permission.
|
| 1210 |
+
|
| 1211 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 1212 |
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 1213 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 1214 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| 1215 |
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| 1216 |
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| 1217 |
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| 1218 |
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| 1219 |
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| 1220 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 1221 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 1222 |
+
|
| 1223 |
+
9. Some of the cuBLAS library routines were written by or
|
| 1224 |
+
derived from code written by Jonathan Hogg and are subject
|
| 1225 |
+
to the Modified Berkeley Software Distribution License as
|
| 1226 |
+
follows:
|
| 1227 |
+
|
| 1228 |
+
Copyright (c) 2012, The Science and Technology Facilities Council (STFC).
|
| 1229 |
+
|
| 1230 |
+
All rights reserved.
|
| 1231 |
+
|
| 1232 |
+
Redistribution and use in source and binary forms, with or without
|
| 1233 |
+
modification, are permitted provided that the following conditions are
|
| 1234 |
+
met:
|
| 1235 |
+
* Redistributions of source code must retain the above copyright
|
| 1236 |
+
notice, this list of conditions and the following disclaimer.
|
| 1237 |
+
* Redistributions in binary form must reproduce the above
|
| 1238 |
+
copyright notice, this list of conditions and the following
|
| 1239 |
+
disclaimer in the documentation and/or other materials provided
|
| 1240 |
+
with the distribution.
|
| 1241 |
+
* Neither the name of the STFC nor the names of its contributors
|
| 1242 |
+
may be used to endorse or promote products derived from this
|
| 1243 |
+
software without specific prior written permission.
|
| 1244 |
+
|
| 1245 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 1246 |
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 1247 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 1248 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE STFC BE
|
| 1249 |
+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| 1250 |
+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| 1251 |
+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
| 1252 |
+
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
| 1253 |
+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
| 1254 |
+
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
| 1255 |
+
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 1256 |
+
|
| 1257 |
+
10. Some of the cuBLAS library routines were written by or
|
| 1258 |
+
derived from code written by Ahmad M. Abdelfattah, David
|
| 1259 |
+
Keyes, and Hatem Ltaief, and are subject to the Apache
|
| 1260 |
+
License, Version 2.0, as follows:
|
| 1261 |
+
|
| 1262 |
+
-- (C) Copyright 2013 King Abdullah University of Science and Technology
|
| 1263 |
+
Authors:
|
| 1264 |
+
Ahmad Abdelfattah (ahmad.ahmad@kaust.edu.sa)
|
| 1265 |
+
David Keyes (david.keyes@kaust.edu.sa)
|
| 1266 |
+
Hatem Ltaief (hatem.ltaief@kaust.edu.sa)
|
| 1267 |
+
|
| 1268 |
+
Redistribution and use in source and binary forms, with or without
|
| 1269 |
+
modification, are permitted provided that the following conditions
|
| 1270 |
+
are met:
|
| 1271 |
+
|
| 1272 |
+
* Redistributions of source code must retain the above copyright
|
| 1273 |
+
notice, this list of conditions and the following disclaimer.
|
| 1274 |
+
* Redistributions in binary form must reproduce the above copyright
|
| 1275 |
+
notice, this list of conditions and the following disclaimer in the
|
| 1276 |
+
documentation and/or other materials provided with the distribution.
|
| 1277 |
+
* Neither the name of the King Abdullah University of Science and
|
| 1278 |
+
Technology nor the names of its contributors may be used to endorse
|
| 1279 |
+
or promote products derived from this software without specific prior
|
| 1280 |
+
written permission.
|
| 1281 |
+
|
| 1282 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 1283 |
+
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 1284 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 1285 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| 1286 |
+
HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| 1287 |
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| 1288 |
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| 1289 |
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| 1290 |
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| 1291 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 1292 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
|
| 1293 |
+
|
| 1294 |
+
11. Some of the cuSPARSE library routines were written by or
|
| 1295 |
+
derived from code written by Li-Wen Chang and are subject
|
| 1296 |
+
to the NCSA Open Source License as follows:
|
| 1297 |
+
|
| 1298 |
+
Copyright (c) 2012, University of Illinois.
|
| 1299 |
+
|
| 1300 |
+
All rights reserved.
|
| 1301 |
+
|
| 1302 |
+
Developed by: IMPACT Group, University of Illinois, http://impact.crhc.illinois.edu
|
| 1303 |
+
|
| 1304 |
+
Permission is hereby granted, free of charge, to any person obtaining
|
| 1305 |
+
a copy of this software and associated documentation files (the
|
| 1306 |
+
"Software"), to deal with the Software without restriction, including
|
| 1307 |
+
without limitation the rights to use, copy, modify, merge, publish,
|
| 1308 |
+
distribute, sublicense, and/or sell copies of the Software, and to
|
| 1309 |
+
permit persons to whom the Software is furnished to do so, subject to
|
| 1310 |
+
the following conditions:
|
| 1311 |
+
* Redistributions of source code must retain the above copyright
|
| 1312 |
+
notice, this list of conditions and the following disclaimer.
|
| 1313 |
+
* Redistributions in binary form must reproduce the above
|
| 1314 |
+
copyright notice, this list of conditions and the following
|
| 1315 |
+
disclaimers in the documentation and/or other materials provided
|
| 1316 |
+
with the distribution.
|
| 1317 |
+
* Neither the names of IMPACT Group, University of Illinois, nor
|
| 1318 |
+
the names of its contributors may be used to endorse or promote
|
| 1319 |
+
products derived from this Software without specific prior
|
| 1320 |
+
written permission.
|
| 1321 |
+
|
| 1322 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 1323 |
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 1324 |
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
| 1325 |
+
NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT
|
| 1326 |
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
| 1327 |
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
| 1328 |
+
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
|
| 1329 |
+
SOFTWARE.
|
| 1330 |
+
|
| 1331 |
+
12. Some of the cuRAND library routines were written by or
|
| 1332 |
+
derived from code written by Mutsuo Saito and Makoto
|
| 1333 |
+
Matsumoto and are subject to the following license:
|
| 1334 |
+
|
| 1335 |
+
Copyright (c) 2009, 2010 Mutsuo Saito, Makoto Matsumoto and Hiroshima
|
| 1336 |
+
University. All rights reserved.
|
| 1337 |
+
|
| 1338 |
+
Copyright (c) 2011 Mutsuo Saito, Makoto Matsumoto, Hiroshima
|
| 1339 |
+
University and University of Tokyo. All rights reserved.
|
| 1340 |
+
|
| 1341 |
+
Redistribution and use in source and binary forms, with or without
|
| 1342 |
+
modification, are permitted provided that the following conditions are
|
| 1343 |
+
met:
|
| 1344 |
+
* Redistributions of source code must retain the above copyright
|
| 1345 |
+
notice, this list of conditions and the following disclaimer.
|
| 1346 |
+
* Redistributions in binary form must reproduce the above
|
| 1347 |
+
copyright notice, this list of conditions and the following
|
| 1348 |
+
disclaimer in the documentation and/or other materials provided
|
| 1349 |
+
with the distribution.
|
| 1350 |
+
* Neither the name of the Hiroshima University nor the names of
|
| 1351 |
+
its contributors may be used to endorse or promote products
|
| 1352 |
+
derived from this software without specific prior written
|
| 1353 |
+
permission.
|
| 1354 |
+
|
| 1355 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 1356 |
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 1357 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 1358 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| 1359 |
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| 1360 |
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| 1361 |
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| 1362 |
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| 1363 |
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| 1364 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 1365 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 1366 |
+
|
| 1367 |
+
13. Some of the cuRAND library routines were derived from
|
| 1368 |
+
code developed by D. E. Shaw Research and are subject to
|
| 1369 |
+
the following license:
|
| 1370 |
+
|
| 1371 |
+
Copyright 2010-2011, D. E. Shaw Research.
|
| 1372 |
+
|
| 1373 |
+
All rights reserved.
|
| 1374 |
+
|
| 1375 |
+
Redistribution and use in source and binary forms, with or without
|
| 1376 |
+
modification, are permitted provided that the following conditions are
|
| 1377 |
+
met:
|
| 1378 |
+
* Redistributions of source code must retain the above copyright
|
| 1379 |
+
notice, this list of conditions, and the following disclaimer.
|
| 1380 |
+
* Redistributions in binary form must reproduce the above
|
| 1381 |
+
copyright notice, this list of conditions, and the following
|
| 1382 |
+
disclaimer in the documentation and/or other materials provided
|
| 1383 |
+
with the distribution.
|
| 1384 |
+
* Neither the name of D. E. Shaw Research nor the names of its
|
| 1385 |
+
contributors may be used to endorse or promote products derived
|
| 1386 |
+
from this software without specific prior written permission.
|
| 1387 |
+
|
| 1388 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 1389 |
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 1390 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 1391 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| 1392 |
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| 1393 |
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| 1394 |
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| 1395 |
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| 1396 |
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| 1397 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 1398 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 1399 |
+
|
| 1400 |
+
14. Some of the Math library routines were written by or
|
| 1401 |
+
derived from code developed by Norbert Juffa and are
|
| 1402 |
+
subject to the following license:
|
| 1403 |
+
|
| 1404 |
+
Copyright (c) 2015-2017, Norbert Juffa
|
| 1405 |
+
All rights reserved.
|
| 1406 |
+
|
| 1407 |
+
Redistribution and use in source and binary forms, with or without
|
| 1408 |
+
modification, are permitted provided that the following conditions
|
| 1409 |
+
are met:
|
| 1410 |
+
|
| 1411 |
+
1. Redistributions of source code must retain the above copyright
|
| 1412 |
+
notice, this list of conditions and the following disclaimer.
|
| 1413 |
+
|
| 1414 |
+
2. Redistributions in binary form must reproduce the above copyright
|
| 1415 |
+
notice, this list of conditions and the following disclaimer in the
|
| 1416 |
+
documentation and/or other materials provided with the distribution.
|
| 1417 |
+
|
| 1418 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 1419 |
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 1420 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 1421 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| 1422 |
+
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| 1423 |
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| 1424 |
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| 1425 |
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| 1426 |
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| 1427 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 1428 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 1429 |
+
|
| 1430 |
+
15. Licensee's use of the lz4 third party component is
|
| 1431 |
+
subject to the following terms and conditions:
|
| 1432 |
+
|
| 1433 |
+
Copyright (C) 2011-2013, Yann Collet.
|
| 1434 |
+
BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
|
| 1435 |
+
|
| 1436 |
+
Redistribution and use in source and binary forms, with or without
|
| 1437 |
+
modification, are permitted provided that the following conditions are
|
| 1438 |
+
met:
|
| 1439 |
+
|
| 1440 |
+
* Redistributions of source code must retain the above copyright
|
| 1441 |
+
notice, this list of conditions and the following disclaimer.
|
| 1442 |
+
* Redistributions in binary form must reproduce the above
|
| 1443 |
+
copyright notice, this list of conditions and the following disclaimer
|
| 1444 |
+
in the documentation and/or other materials provided with the
|
| 1445 |
+
distribution.
|
| 1446 |
+
|
| 1447 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| 1448 |
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| 1449 |
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| 1450 |
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| 1451 |
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| 1452 |
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| 1453 |
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| 1454 |
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| 1455 |
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| 1456 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| 1457 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| 1458 |
+
|
| 1459 |
+
16. The NPP library uses code from the Boost Math Toolkit,
|
| 1460 |
+
and is subject to the following license:
|
| 1461 |
+
|
| 1462 |
+
Boost Software License - Version 1.0 - August 17th, 2003
|
| 1463 |
+
. . . .
|
| 1464 |
+
|
| 1465 |
+
Permission is hereby granted, free of charge, to any person or
|
| 1466 |
+
organization obtaining a copy of the software and accompanying
|
| 1467 |
+
documentation covered by this license (the "Software") to use,
|
| 1468 |
+
reproduce, display, distribute, execute, and transmit the Software,
|
| 1469 |
+
and to prepare derivative works of the Software, and to permit
|
| 1470 |
+
third-parties to whom the Software is furnished to do so, all
|
| 1471 |
+
subject to the following:
|
| 1472 |
+
|
| 1473 |
+
The copyright notices in the Software and this entire statement,
|
| 1474 |
+
including the above license grant, this restriction and the following
|
| 1475 |
+
disclaimer, must be included in all copies of the Software, in whole
|
| 1476 |
+
or in part, and all derivative works of the Software, unless such
|
| 1477 |
+
copies or derivative works are solely in the form of machine-executable
|
| 1478 |
+
object code generated by a source language processor.
|
| 1479 |
+
|
| 1480 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
| 1481 |
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
| 1482 |
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
|
| 1483 |
+
NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
|
| 1484 |
+
ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR
|
| 1485 |
+
OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING
|
| 1486 |
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
| 1487 |
+
OTHER DEALINGS IN THE SOFTWARE.
|
| 1488 |
+
|
| 1489 |
+
17. Portions of the Nsight Eclipse Edition is subject to the
|
| 1490 |
+
following license:
|
| 1491 |
+
|
| 1492 |
+
The Eclipse Foundation makes available all content in this plug-in
|
| 1493 |
+
("Content"). Unless otherwise indicated below, the Content is provided
|
| 1494 |
+
to you under the terms and conditions of the Eclipse Public License
|
| 1495 |
+
Version 1.0 ("EPL"). A copy of the EPL is available at http://
|
| 1496 |
+
www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program"
|
| 1497 |
+
will mean the Content.
|
| 1498 |
+
|
| 1499 |
+
If you did not receive this Content directly from the Eclipse
|
| 1500 |
+
Foundation, the Content is being redistributed by another party
|
| 1501 |
+
("Redistributor") and different terms and conditions may apply to your
|
| 1502 |
+
use of any object code in the Content. Check the Redistributor's
|
| 1503 |
+
license that was provided with the Content. If no such license exists,
|
| 1504 |
+
contact the Redistributor. Unless otherwise indicated below, the terms
|
| 1505 |
+
and conditions of the EPL still apply to any source code in the
|
| 1506 |
+
Content and such source code may be obtained at http://www.eclipse.org.
|
| 1507 |
+
|
| 1508 |
+
18. Some of the cuBLAS library routines uses code from
|
| 1509 |
+
OpenAI, which is subject to the following license:
|
| 1510 |
+
|
| 1511 |
+
License URL
|
| 1512 |
+
https://github.com/openai/openai-gemm/blob/master/LICENSE
|
| 1513 |
+
|
| 1514 |
+
License Text
|
| 1515 |
+
The MIT License
|
| 1516 |
+
|
| 1517 |
+
Copyright (c) 2016 OpenAI (http://openai.com), 2016 Google Inc.
|
| 1518 |
+
|
| 1519 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 1520 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 1521 |
+
in the Software without restriction, including without limitation the rights
|
| 1522 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 1523 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 1524 |
+
furnished to do so, subject to the following conditions:
|
| 1525 |
+
|
| 1526 |
+
The above copyright notice and this permission notice shall be included in
|
| 1527 |
+
all copies or substantial portions of the Software.
|
| 1528 |
+
|
| 1529 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 1530 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 1531 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 1532 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 1533 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 1534 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
| 1535 |
+
THE SOFTWARE.
|
| 1536 |
+
|
| 1537 |
+
19. Licensee's use of the Visual Studio Setup Configuration
|
| 1538 |
+
Samples is subject to the following license:
|
| 1539 |
+
|
| 1540 |
+
The MIT License (MIT)
|
| 1541 |
+
Copyright (C) Microsoft Corporation. All rights reserved.
|
| 1542 |
+
|
| 1543 |
+
Permission is hereby granted, free of charge, to any person
|
| 1544 |
+
obtaining a copy of this software and associated documentation
|
| 1545 |
+
files (the "Software"), to deal in the Software without restriction,
|
| 1546 |
+
including without limitation the rights to use, copy, modify, merge,
|
| 1547 |
+
publish, distribute, sublicense, and/or sell copies of the Software,
|
| 1548 |
+
and to permit persons to whom the Software is furnished to do so,
|
| 1549 |
+
subject to the following conditions:
|
| 1550 |
+
|
| 1551 |
+
The above copyright notice and this permission notice shall be included
|
| 1552 |
+
in all copies or substantial portions of the Software.
|
| 1553 |
+
|
| 1554 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| 1555 |
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 1556 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 1557 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 1558 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 1559 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 1560 |
+
|
| 1561 |
+
20. Licensee's use of linmath.h header for CPU functions for
|
| 1562 |
+
GL vector/matrix operations from lunarG is subject to the
|
| 1563 |
+
Apache License Version 2.0.
|
| 1564 |
+
|
| 1565 |
+
21. The DX12-CUDA sample uses the d3dx12.h header, which is
|
| 1566 |
+
subject to the MIT license .
|
| 1567 |
+
|
| 1568 |
+
-----------------
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/nvidia_nvtx_cu11-11.8.86.dist-info/RECORD
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
nvidia/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 2 |
+
nvidia/__pycache__/__init__.cpython-311.pyc,,
|
| 3 |
+
nvidia/nvtx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 4 |
+
nvidia/nvtx/__pycache__/__init__.cpython-311.pyc,,
|
| 5 |
+
nvidia/nvtx/include/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 6 |
+
nvidia/nvtx/include/__pycache__/__init__.cpython-311.pyc,,
|
| 7 |
+
nvidia/nvtx/include/nvToolsExt.h,sha256=OiT6v1G2-vlkYnpDQZjiGT1O-THDyk1gw2021qMRvQM,53680
|
| 8 |
+
nvidia/nvtx/include/nvToolsExtCuda.h,sha256=UDA1pbmvoRFmlJ11Et9tIMEztOtOVw-10mO27Q6K8jg,6009
|
| 9 |
+
nvidia/nvtx/include/nvToolsExtCudaRt.h,sha256=6IbgdRGObly53jzRqvsZ4FQoTrXJOJwSyCOLuXr9ncA,5192
|
| 10 |
+
nvidia/nvtx/include/nvToolsExtOpenCL.h,sha256=gETZH9ch_o6MYE_BYQ2pj9SSuxyAo1H4ptmRK-DMWSo,8360
|
| 11 |
+
nvidia/nvtx/include/nvToolsExtSync.h,sha256=wqONIiycUPaUUCzQBmCippilgKt8sOL9tpzG773u0nY,14562
|
| 12 |
+
nvidia/nvtx/include/nvtx3/nvToolsExt.h,sha256=TFEF3fx1043EwMdbS7FqvvavwK0koZeGrIOAsCrB12s,52247
|
| 13 |
+
nvidia/nvtx/include/nvtx3/nvToolsExtCuda.h,sha256=4ZbZHUMcmHRf4SdKB7nH0E3uHd_9ZhZBuwuWPItK-Vs,6204
|
| 14 |
+
nvidia/nvtx/include/nvtx3/nvToolsExtCudaRt.h,sha256=boW0zdYobNFFE9wwxCyzBGBLcSGtdbQ5osKjQGNC2E8,5393
|
| 15 |
+
nvidia/nvtx/include/nvtx3/nvToolsExtOpenCL.h,sha256=RPfsZl3lHAPIOCzTipmz07-vaiIO4cxelcx12EjB2L0,8563
|
| 16 |
+
nvidia/nvtx/include/nvtx3/nvToolsExtSync.h,sha256=C-HIVBaupxYom3BqMggQ_ePq1bxFhw8kXsOfYJKBWrI,14756
|
| 17 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImpl.h,sha256=jEnYF3MyLsD72euw2It3Bz0X0GK4Xv_htEd8BeIrPjY,23333
|
| 18 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImplCore.h,sha256=sYpWqZfYrjsMddxtezPX3qSTIbAOn4dlEoLiYQ9M2nM,9756
|
| 19 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h,sha256=SoaiprvsI80yLmEAnlFX0iFufv6RtKjjMMrVwQZjjQI,4775
|
| 20 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h,sha256=IEor-ISqComCRGVDdIzKBLU3eWCuDI0Igqz-eRKKcvg,5550
|
| 21 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h,sha256=iPR2x74bJE3plFQBT9FWGBaTm4sC-Pll6WAjpKRnz7g,8275
|
| 22 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h,sha256=TqwQfEUVbwc58bpHioE13NMweFhOuHXNql65BnLzhvc,5022
|
| 23 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxInit.h,sha256=foajOFacvLGx3BN5ntw5v8o4J3OY4hqkVZE5ZC0x3e4,14716
|
| 24 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxInitDecls.h,sha256=-Qyxcy9CDXOBhEtYZ8L7iYd6daJ9aCeyQM48X0BafMM,9361
|
| 25 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxInitDefs.h,sha256=dLhOV4knhNrmT2DnUNzXreOt_Qc6GAa3yIlmqJFCeVI,35432
|
| 26 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxLinkOnce.h,sha256=Jp-z6LTz_p8fKRulcFfdcskIxzcZ6ybbHkGB9mpJa2M,3863
|
| 27 |
+
nvidia/nvtx/include/nvtx3/nvtxDetail/nvtxTypes.h,sha256=jkbCwyvIP1G-Ef8SwYp4kDi69hjZbzaxKSk7ScgrNI8,17352
|
| 28 |
+
nvidia/nvtx/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 29 |
+
nvidia/nvtx/lib/__pycache__/__init__.cpython-311.pyc,,
|
| 30 |
+
nvidia/nvtx/lib/libnvToolsExt.so.1,sha256=hH148nXIzJdEKieAcyBL3BoACf_CVZv3JIxw2SEF39w,40136
|
| 31 |
+
nvidia_nvtx_cu11-11.8.86.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
| 32 |
+
nvidia_nvtx_cu11-11.8.86.dist-info/License.txt,sha256=rW9YU_ugyg0VnQ9Y1JrkmDDC-Mk_epJki5zpCttMbM0,59262
|
| 33 |
+
nvidia_nvtx_cu11-11.8.86.dist-info/METADATA,sha256=IaAWRTfQ9a7txhi9cErxumz-M7BtPOBtDBmCP-VGLmw,1659
|
| 34 |
+
nvidia_nvtx_cu11-11.8.86.dist-info/RECORD,,
|
| 35 |
+
nvidia_nvtx_cu11-11.8.86.dist-info/WHEEL,sha256=-kQi_VMfvRQozZJT7HUPMfY-5vLo0LVTmAylNJ3Ft98,106
|
| 36 |
+
nvidia_nvtx_cu11-11.8.86.dist-info/top_level.txt,sha256=fTkAtiFuL16nUrB9ytDDtpytz2t0B4NvYTnRzwAhO14,7
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/nvidia_nvtx_cu11-11.8.86.dist-info/top_level.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
nvidia
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__init__.py
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file is dual licensed under the terms of the Apache License, Version
|
| 2 |
+
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
|
| 3 |
+
# for complete details.
|
| 4 |
+
|
| 5 |
+
__title__ = "packaging"
|
| 6 |
+
__summary__ = "Core utilities for Python packages"
|
| 7 |
+
__uri__ = "https://github.com/pypa/packaging"
|
| 8 |
+
|
| 9 |
+
__version__ = "24.2"
|
| 10 |
+
|
| 11 |
+
__author__ = "Donald Stufft and individual contributors"
|
| 12 |
+
__email__ = "donald@stufft.io"
|
| 13 |
+
|
| 14 |
+
__license__ = "BSD-2-Clause or Apache-2.0"
|
| 15 |
+
__copyright__ = f"2014 {__author__}"
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/__init__.cpython-311.pyc
ADDED
|
Binary file (570 Bytes). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/_manylinux.cpython-311.pyc
ADDED
|
Binary file (11 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/_musllinux.cpython-311.pyc
ADDED
|
Binary file (5.32 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/_parser.cpython-311.pyc
ADDED
|
Binary file (16.3 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/_structures.cpython-311.pyc
ADDED
|
Binary file (3.69 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/_tokenizer.cpython-311.pyc
ADDED
|
Binary file (8.56 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/markers.cpython-311.pyc
ADDED
|
Binary file (13.1 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/metadata.cpython-311.pyc
ADDED
|
Binary file (31.1 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/requirements.cpython-311.pyc
ADDED
|
Binary file (4.74 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/specifiers.cpython-311.pyc
ADDED
|
Binary file (41.5 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/tags.cpython-311.pyc
ADDED
|
Binary file (25.9 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/utils.cpython-311.pyc
ADDED
|
Binary file (7.6 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/__pycache__/version.cpython-311.pyc
ADDED
|
Binary file (22 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/_elffile.py
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
ELF file parser.
|
| 3 |
+
|
| 4 |
+
This provides a class ``ELFFile`` that parses an ELF executable in a similar
|
| 5 |
+
interface to ``ZipFile``. Only the read interface is implemented.
|
| 6 |
+
|
| 7 |
+
Based on: https://gist.github.com/lyssdod/f51579ae8d93c8657a5564aefc2ffbca
|
| 8 |
+
ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html
|
| 9 |
+
"""
|
| 10 |
+
|
| 11 |
+
from __future__ import annotations
|
| 12 |
+
|
| 13 |
+
import enum
|
| 14 |
+
import os
|
| 15 |
+
import struct
|
| 16 |
+
from typing import IO
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
class ELFInvalid(ValueError):
|
| 20 |
+
pass
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
class EIClass(enum.IntEnum):
|
| 24 |
+
C32 = 1
|
| 25 |
+
C64 = 2
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
class EIData(enum.IntEnum):
|
| 29 |
+
Lsb = 1
|
| 30 |
+
Msb = 2
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
class EMachine(enum.IntEnum):
|
| 34 |
+
I386 = 3
|
| 35 |
+
S390 = 22
|
| 36 |
+
Arm = 40
|
| 37 |
+
X8664 = 62
|
| 38 |
+
AArc64 = 183
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
class ELFFile:
|
| 42 |
+
"""
|
| 43 |
+
Representation of an ELF executable.
|
| 44 |
+
"""
|
| 45 |
+
|
| 46 |
+
def __init__(self, f: IO[bytes]) -> None:
|
| 47 |
+
self._f = f
|
| 48 |
+
|
| 49 |
+
try:
|
| 50 |
+
ident = self._read("16B")
|
| 51 |
+
except struct.error as e:
|
| 52 |
+
raise ELFInvalid("unable to parse identification") from e
|
| 53 |
+
magic = bytes(ident[:4])
|
| 54 |
+
if magic != b"\x7fELF":
|
| 55 |
+
raise ELFInvalid(f"invalid magic: {magic!r}")
|
| 56 |
+
|
| 57 |
+
self.capacity = ident[4] # Format for program header (bitness).
|
| 58 |
+
self.encoding = ident[5] # Data structure encoding (endianness).
|
| 59 |
+
|
| 60 |
+
try:
|
| 61 |
+
# e_fmt: Format for program header.
|
| 62 |
+
# p_fmt: Format for section header.
|
| 63 |
+
# p_idx: Indexes to find p_type, p_offset, and p_filesz.
|
| 64 |
+
e_fmt, self._p_fmt, self._p_idx = {
|
| 65 |
+
(1, 1): ("<HHIIIIIHHH", "<IIIIIIII", (0, 1, 4)), # 32-bit LSB.
|
| 66 |
+
(1, 2): (">HHIIIIIHHH", ">IIIIIIII", (0, 1, 4)), # 32-bit MSB.
|
| 67 |
+
(2, 1): ("<HHIQQQIHHH", "<IIQQQQQQ", (0, 2, 5)), # 64-bit LSB.
|
| 68 |
+
(2, 2): (">HHIQQQIHHH", ">IIQQQQQQ", (0, 2, 5)), # 64-bit MSB.
|
| 69 |
+
}[(self.capacity, self.encoding)]
|
| 70 |
+
except KeyError as e:
|
| 71 |
+
raise ELFInvalid(
|
| 72 |
+
f"unrecognized capacity ({self.capacity}) or "
|
| 73 |
+
f"encoding ({self.encoding})"
|
| 74 |
+
) from e
|
| 75 |
+
|
| 76 |
+
try:
|
| 77 |
+
(
|
| 78 |
+
_,
|
| 79 |
+
self.machine, # Architecture type.
|
| 80 |
+
_,
|
| 81 |
+
_,
|
| 82 |
+
self._e_phoff, # Offset of program header.
|
| 83 |
+
_,
|
| 84 |
+
self.flags, # Processor-specific flags.
|
| 85 |
+
_,
|
| 86 |
+
self._e_phentsize, # Size of section.
|
| 87 |
+
self._e_phnum, # Number of sections.
|
| 88 |
+
) = self._read(e_fmt)
|
| 89 |
+
except struct.error as e:
|
| 90 |
+
raise ELFInvalid("unable to parse machine and section information") from e
|
| 91 |
+
|
| 92 |
+
def _read(self, fmt: str) -> tuple[int, ...]:
|
| 93 |
+
return struct.unpack(fmt, self._f.read(struct.calcsize(fmt)))
|
| 94 |
+
|
| 95 |
+
@property
|
| 96 |
+
def interpreter(self) -> str | None:
|
| 97 |
+
"""
|
| 98 |
+
The path recorded in the ``PT_INTERP`` section header.
|
| 99 |
+
"""
|
| 100 |
+
for index in range(self._e_phnum):
|
| 101 |
+
self._f.seek(self._e_phoff + self._e_phentsize * index)
|
| 102 |
+
try:
|
| 103 |
+
data = self._read(self._p_fmt)
|
| 104 |
+
except struct.error:
|
| 105 |
+
continue
|
| 106 |
+
if data[self._p_idx[0]] != 3: # Not PT_INTERP.
|
| 107 |
+
continue
|
| 108 |
+
self._f.seek(data[self._p_idx[1]])
|
| 109 |
+
return os.fsdecode(self._f.read(data[self._p_idx[2]])).strip("\0")
|
| 110 |
+
return None
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/_manylinux.py
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from __future__ import annotations
|
| 2 |
+
|
| 3 |
+
import collections
|
| 4 |
+
import contextlib
|
| 5 |
+
import functools
|
| 6 |
+
import os
|
| 7 |
+
import re
|
| 8 |
+
import sys
|
| 9 |
+
import warnings
|
| 10 |
+
from typing import Generator, Iterator, NamedTuple, Sequence
|
| 11 |
+
|
| 12 |
+
from ._elffile import EIClass, EIData, ELFFile, EMachine
|
| 13 |
+
|
| 14 |
+
EF_ARM_ABIMASK = 0xFF000000
|
| 15 |
+
EF_ARM_ABI_VER5 = 0x05000000
|
| 16 |
+
EF_ARM_ABI_FLOAT_HARD = 0x00000400
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
# `os.PathLike` not a generic type until Python 3.9, so sticking with `str`
|
| 20 |
+
# as the type for `path` until then.
|
| 21 |
+
@contextlib.contextmanager
|
| 22 |
+
def _parse_elf(path: str) -> Generator[ELFFile | None, None, None]:
|
| 23 |
+
try:
|
| 24 |
+
with open(path, "rb") as f:
|
| 25 |
+
yield ELFFile(f)
|
| 26 |
+
except (OSError, TypeError, ValueError):
|
| 27 |
+
yield None
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
def _is_linux_armhf(executable: str) -> bool:
|
| 31 |
+
# hard-float ABI can be detected from the ELF header of the running
|
| 32 |
+
# process
|
| 33 |
+
# https://static.docs.arm.com/ihi0044/g/aaelf32.pdf
|
| 34 |
+
with _parse_elf(executable) as f:
|
| 35 |
+
return (
|
| 36 |
+
f is not None
|
| 37 |
+
and f.capacity == EIClass.C32
|
| 38 |
+
and f.encoding == EIData.Lsb
|
| 39 |
+
and f.machine == EMachine.Arm
|
| 40 |
+
and f.flags & EF_ARM_ABIMASK == EF_ARM_ABI_VER5
|
| 41 |
+
and f.flags & EF_ARM_ABI_FLOAT_HARD == EF_ARM_ABI_FLOAT_HARD
|
| 42 |
+
)
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
def _is_linux_i686(executable: str) -> bool:
|
| 46 |
+
with _parse_elf(executable) as f:
|
| 47 |
+
return (
|
| 48 |
+
f is not None
|
| 49 |
+
and f.capacity == EIClass.C32
|
| 50 |
+
and f.encoding == EIData.Lsb
|
| 51 |
+
and f.machine == EMachine.I386
|
| 52 |
+
)
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
def _have_compatible_abi(executable: str, archs: Sequence[str]) -> bool:
|
| 56 |
+
if "armv7l" in archs:
|
| 57 |
+
return _is_linux_armhf(executable)
|
| 58 |
+
if "i686" in archs:
|
| 59 |
+
return _is_linux_i686(executable)
|
| 60 |
+
allowed_archs = {
|
| 61 |
+
"x86_64",
|
| 62 |
+
"aarch64",
|
| 63 |
+
"ppc64",
|
| 64 |
+
"ppc64le",
|
| 65 |
+
"s390x",
|
| 66 |
+
"loongarch64",
|
| 67 |
+
"riscv64",
|
| 68 |
+
}
|
| 69 |
+
return any(arch in allowed_archs for arch in archs)
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
# If glibc ever changes its major version, we need to know what the last
|
| 73 |
+
# minor version was, so we can build the complete list of all versions.
|
| 74 |
+
# For now, guess what the highest minor version might be, assume it will
|
| 75 |
+
# be 50 for testing. Once this actually happens, update the dictionary
|
| 76 |
+
# with the actual value.
|
| 77 |
+
_LAST_GLIBC_MINOR: dict[int, int] = collections.defaultdict(lambda: 50)
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
class _GLibCVersion(NamedTuple):
|
| 81 |
+
major: int
|
| 82 |
+
minor: int
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
def _glibc_version_string_confstr() -> str | None:
|
| 86 |
+
"""
|
| 87 |
+
Primary implementation of glibc_version_string using os.confstr.
|
| 88 |
+
"""
|
| 89 |
+
# os.confstr is quite a bit faster than ctypes.DLL. It's also less likely
|
| 90 |
+
# to be broken or missing. This strategy is used in the standard library
|
| 91 |
+
# platform module.
|
| 92 |
+
# https://github.com/python/cpython/blob/fcf1d003bf4f0100c/Lib/platform.py#L175-L183
|
| 93 |
+
try:
|
| 94 |
+
# Should be a string like "glibc 2.17".
|
| 95 |
+
version_string: str | None = os.confstr("CS_GNU_LIBC_VERSION")
|
| 96 |
+
assert version_string is not None
|
| 97 |
+
_, version = version_string.rsplit()
|
| 98 |
+
except (AssertionError, AttributeError, OSError, ValueError):
|
| 99 |
+
# os.confstr() or CS_GNU_LIBC_VERSION not available (or a bad value)...
|
| 100 |
+
return None
|
| 101 |
+
return version
|
| 102 |
+
|
| 103 |
+
|
| 104 |
+
def _glibc_version_string_ctypes() -> str | None:
|
| 105 |
+
"""
|
| 106 |
+
Fallback implementation of glibc_version_string using ctypes.
|
| 107 |
+
"""
|
| 108 |
+
try:
|
| 109 |
+
import ctypes
|
| 110 |
+
except ImportError:
|
| 111 |
+
return None
|
| 112 |
+
|
| 113 |
+
# ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen
|
| 114 |
+
# manpage says, "If filename is NULL, then the returned handle is for the
|
| 115 |
+
# main program". This way we can let the linker do the work to figure out
|
| 116 |
+
# which libc our process is actually using.
|
| 117 |
+
#
|
| 118 |
+
# We must also handle the special case where the executable is not a
|
| 119 |
+
# dynamically linked executable. This can occur when using musl libc,
|
| 120 |
+
# for example. In this situation, dlopen() will error, leading to an
|
| 121 |
+
# OSError. Interestingly, at least in the case of musl, there is no
|
| 122 |
+
# errno set on the OSError. The single string argument used to construct
|
| 123 |
+
# OSError comes from libc itself and is therefore not portable to
|
| 124 |
+
# hard code here. In any case, failure to call dlopen() means we
|
| 125 |
+
# can proceed, so we bail on our attempt.
|
| 126 |
+
try:
|
| 127 |
+
process_namespace = ctypes.CDLL(None)
|
| 128 |
+
except OSError:
|
| 129 |
+
return None
|
| 130 |
+
|
| 131 |
+
try:
|
| 132 |
+
gnu_get_libc_version = process_namespace.gnu_get_libc_version
|
| 133 |
+
except AttributeError:
|
| 134 |
+
# Symbol doesn't exist -> therefore, we are not linked to
|
| 135 |
+
# glibc.
|
| 136 |
+
return None
|
| 137 |
+
|
| 138 |
+
# Call gnu_get_libc_version, which returns a string like "2.5"
|
| 139 |
+
gnu_get_libc_version.restype = ctypes.c_char_p
|
| 140 |
+
version_str: str = gnu_get_libc_version()
|
| 141 |
+
# py2 / py3 compatibility:
|
| 142 |
+
if not isinstance(version_str, str):
|
| 143 |
+
version_str = version_str.decode("ascii")
|
| 144 |
+
|
| 145 |
+
return version_str
|
| 146 |
+
|
| 147 |
+
|
| 148 |
+
def _glibc_version_string() -> str | None:
|
| 149 |
+
"""Returns glibc version string, or None if not using glibc."""
|
| 150 |
+
return _glibc_version_string_confstr() or _glibc_version_string_ctypes()
|
| 151 |
+
|
| 152 |
+
|
| 153 |
+
def _parse_glibc_version(version_str: str) -> tuple[int, int]:
|
| 154 |
+
"""Parse glibc version.
|
| 155 |
+
|
| 156 |
+
We use a regexp instead of str.split because we want to discard any
|
| 157 |
+
random junk that might come after the minor version -- this might happen
|
| 158 |
+
in patched/forked versions of glibc (e.g. Linaro's version of glibc
|
| 159 |
+
uses version strings like "2.20-2014.11"). See gh-3588.
|
| 160 |
+
"""
|
| 161 |
+
m = re.match(r"(?P<major>[0-9]+)\.(?P<minor>[0-9]+)", version_str)
|
| 162 |
+
if not m:
|
| 163 |
+
warnings.warn(
|
| 164 |
+
f"Expected glibc version with 2 components major.minor,"
|
| 165 |
+
f" got: {version_str}",
|
| 166 |
+
RuntimeWarning,
|
| 167 |
+
stacklevel=2,
|
| 168 |
+
)
|
| 169 |
+
return -1, -1
|
| 170 |
+
return int(m.group("major")), int(m.group("minor"))
|
| 171 |
+
|
| 172 |
+
|
| 173 |
+
@functools.lru_cache
|
| 174 |
+
def _get_glibc_version() -> tuple[int, int]:
|
| 175 |
+
version_str = _glibc_version_string()
|
| 176 |
+
if version_str is None:
|
| 177 |
+
return (-1, -1)
|
| 178 |
+
return _parse_glibc_version(version_str)
|
| 179 |
+
|
| 180 |
+
|
| 181 |
+
# From PEP 513, PEP 600
|
| 182 |
+
def _is_compatible(arch: str, version: _GLibCVersion) -> bool:
|
| 183 |
+
sys_glibc = _get_glibc_version()
|
| 184 |
+
if sys_glibc < version:
|
| 185 |
+
return False
|
| 186 |
+
# Check for presence of _manylinux module.
|
| 187 |
+
try:
|
| 188 |
+
import _manylinux
|
| 189 |
+
except ImportError:
|
| 190 |
+
return True
|
| 191 |
+
if hasattr(_manylinux, "manylinux_compatible"):
|
| 192 |
+
result = _manylinux.manylinux_compatible(version[0], version[1], arch)
|
| 193 |
+
if result is not None:
|
| 194 |
+
return bool(result)
|
| 195 |
+
return True
|
| 196 |
+
if version == _GLibCVersion(2, 5):
|
| 197 |
+
if hasattr(_manylinux, "manylinux1_compatible"):
|
| 198 |
+
return bool(_manylinux.manylinux1_compatible)
|
| 199 |
+
if version == _GLibCVersion(2, 12):
|
| 200 |
+
if hasattr(_manylinux, "manylinux2010_compatible"):
|
| 201 |
+
return bool(_manylinux.manylinux2010_compatible)
|
| 202 |
+
if version == _GLibCVersion(2, 17):
|
| 203 |
+
if hasattr(_manylinux, "manylinux2014_compatible"):
|
| 204 |
+
return bool(_manylinux.manylinux2014_compatible)
|
| 205 |
+
return True
|
| 206 |
+
|
| 207 |
+
|
| 208 |
+
_LEGACY_MANYLINUX_MAP = {
|
| 209 |
+
# CentOS 7 w/ glibc 2.17 (PEP 599)
|
| 210 |
+
(2, 17): "manylinux2014",
|
| 211 |
+
# CentOS 6 w/ glibc 2.12 (PEP 571)
|
| 212 |
+
(2, 12): "manylinux2010",
|
| 213 |
+
# CentOS 5 w/ glibc 2.5 (PEP 513)
|
| 214 |
+
(2, 5): "manylinux1",
|
| 215 |
+
}
|
| 216 |
+
|
| 217 |
+
|
| 218 |
+
def platform_tags(archs: Sequence[str]) -> Iterator[str]:
|
| 219 |
+
"""Generate manylinux tags compatible to the current platform.
|
| 220 |
+
|
| 221 |
+
:param archs: Sequence of compatible architectures.
|
| 222 |
+
The first one shall be the closest to the actual architecture and be the part of
|
| 223 |
+
platform tag after the ``linux_`` prefix, e.g. ``x86_64``.
|
| 224 |
+
The ``linux_`` prefix is assumed as a prerequisite for the current platform to
|
| 225 |
+
be manylinux-compatible.
|
| 226 |
+
|
| 227 |
+
:returns: An iterator of compatible manylinux tags.
|
| 228 |
+
"""
|
| 229 |
+
if not _have_compatible_abi(sys.executable, archs):
|
| 230 |
+
return
|
| 231 |
+
# Oldest glibc to be supported regardless of architecture is (2, 17).
|
| 232 |
+
too_old_glibc2 = _GLibCVersion(2, 16)
|
| 233 |
+
if set(archs) & {"x86_64", "i686"}:
|
| 234 |
+
# On x86/i686 also oldest glibc to be supported is (2, 5).
|
| 235 |
+
too_old_glibc2 = _GLibCVersion(2, 4)
|
| 236 |
+
current_glibc = _GLibCVersion(*_get_glibc_version())
|
| 237 |
+
glibc_max_list = [current_glibc]
|
| 238 |
+
# We can assume compatibility across glibc major versions.
|
| 239 |
+
# https://sourceware.org/bugzilla/show_bug.cgi?id=24636
|
| 240 |
+
#
|
| 241 |
+
# Build a list of maximum glibc versions so that we can
|
| 242 |
+
# output the canonical list of all glibc from current_glibc
|
| 243 |
+
# down to too_old_glibc2, including all intermediary versions.
|
| 244 |
+
for glibc_major in range(current_glibc.major - 1, 1, -1):
|
| 245 |
+
glibc_minor = _LAST_GLIBC_MINOR[glibc_major]
|
| 246 |
+
glibc_max_list.append(_GLibCVersion(glibc_major, glibc_minor))
|
| 247 |
+
for arch in archs:
|
| 248 |
+
for glibc_max in glibc_max_list:
|
| 249 |
+
if glibc_max.major == too_old_glibc2.major:
|
| 250 |
+
min_minor = too_old_glibc2.minor
|
| 251 |
+
else:
|
| 252 |
+
# For other glibc major versions oldest supported is (x, 0).
|
| 253 |
+
min_minor = -1
|
| 254 |
+
for glibc_minor in range(glibc_max.minor, min_minor, -1):
|
| 255 |
+
glibc_version = _GLibCVersion(glibc_max.major, glibc_minor)
|
| 256 |
+
tag = "manylinux_{}_{}".format(*glibc_version)
|
| 257 |
+
if _is_compatible(arch, glibc_version):
|
| 258 |
+
yield f"{tag}_{arch}"
|
| 259 |
+
# Handle the legacy manylinux1, manylinux2010, manylinux2014 tags.
|
| 260 |
+
if glibc_version in _LEGACY_MANYLINUX_MAP:
|
| 261 |
+
legacy_tag = _LEGACY_MANYLINUX_MAP[glibc_version]
|
| 262 |
+
if _is_compatible(arch, glibc_version):
|
| 263 |
+
yield f"{legacy_tag}_{arch}"
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/_musllinux.py
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""PEP 656 support.
|
| 2 |
+
|
| 3 |
+
This module implements logic to detect if the currently running Python is
|
| 4 |
+
linked against musl, and what musl version is used.
|
| 5 |
+
"""
|
| 6 |
+
|
| 7 |
+
from __future__ import annotations
|
| 8 |
+
|
| 9 |
+
import functools
|
| 10 |
+
import re
|
| 11 |
+
import subprocess
|
| 12 |
+
import sys
|
| 13 |
+
from typing import Iterator, NamedTuple, Sequence
|
| 14 |
+
|
| 15 |
+
from ._elffile import ELFFile
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
class _MuslVersion(NamedTuple):
|
| 19 |
+
major: int
|
| 20 |
+
minor: int
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def _parse_musl_version(output: str) -> _MuslVersion | None:
|
| 24 |
+
lines = [n for n in (n.strip() for n in output.splitlines()) if n]
|
| 25 |
+
if len(lines) < 2 or lines[0][:4] != "musl":
|
| 26 |
+
return None
|
| 27 |
+
m = re.match(r"Version (\d+)\.(\d+)", lines[1])
|
| 28 |
+
if not m:
|
| 29 |
+
return None
|
| 30 |
+
return _MuslVersion(major=int(m.group(1)), minor=int(m.group(2)))
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
@functools.lru_cache
|
| 34 |
+
def _get_musl_version(executable: str) -> _MuslVersion | None:
|
| 35 |
+
"""Detect currently-running musl runtime version.
|
| 36 |
+
|
| 37 |
+
This is done by checking the specified executable's dynamic linking
|
| 38 |
+
information, and invoking the loader to parse its output for a version
|
| 39 |
+
string. If the loader is musl, the output would be something like::
|
| 40 |
+
|
| 41 |
+
musl libc (x86_64)
|
| 42 |
+
Version 1.2.2
|
| 43 |
+
Dynamic Program Loader
|
| 44 |
+
"""
|
| 45 |
+
try:
|
| 46 |
+
with open(executable, "rb") as f:
|
| 47 |
+
ld = ELFFile(f).interpreter
|
| 48 |
+
except (OSError, TypeError, ValueError):
|
| 49 |
+
return None
|
| 50 |
+
if ld is None or "musl" not in ld:
|
| 51 |
+
return None
|
| 52 |
+
proc = subprocess.run([ld], stderr=subprocess.PIPE, text=True)
|
| 53 |
+
return _parse_musl_version(proc.stderr)
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
def platform_tags(archs: Sequence[str]) -> Iterator[str]:
|
| 57 |
+
"""Generate musllinux tags compatible to the current platform.
|
| 58 |
+
|
| 59 |
+
:param archs: Sequence of compatible architectures.
|
| 60 |
+
The first one shall be the closest to the actual architecture and be the part of
|
| 61 |
+
platform tag after the ``linux_`` prefix, e.g. ``x86_64``.
|
| 62 |
+
The ``linux_`` prefix is assumed as a prerequisite for the current platform to
|
| 63 |
+
be musllinux-compatible.
|
| 64 |
+
|
| 65 |
+
:returns: An iterator of compatible musllinux tags.
|
| 66 |
+
"""
|
| 67 |
+
sys_musl = _get_musl_version(sys.executable)
|
| 68 |
+
if sys_musl is None: # Python not dynamically linked against musl.
|
| 69 |
+
return
|
| 70 |
+
for arch in archs:
|
| 71 |
+
for minor in range(sys_musl.minor, -1, -1):
|
| 72 |
+
yield f"musllinux_{sys_musl.major}_{minor}_{arch}"
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
if __name__ == "__main__": # pragma: no cover
|
| 76 |
+
import sysconfig
|
| 77 |
+
|
| 78 |
+
plat = sysconfig.get_platform()
|
| 79 |
+
assert plat.startswith("linux-"), "not linux"
|
| 80 |
+
|
| 81 |
+
print("plat:", plat)
|
| 82 |
+
print("musl:", _get_musl_version(sys.executable))
|
| 83 |
+
print("tags:", end=" ")
|
| 84 |
+
for t in platform_tags(re.sub(r"[.-]", "_", plat.split("-", 1)[-1])):
|
| 85 |
+
print(t, end="\n ")
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/_structures.py
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file is dual licensed under the terms of the Apache License, Version
|
| 2 |
+
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
|
| 3 |
+
# for complete details.
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
class InfinityType:
|
| 7 |
+
def __repr__(self) -> str:
|
| 8 |
+
return "Infinity"
|
| 9 |
+
|
| 10 |
+
def __hash__(self) -> int:
|
| 11 |
+
return hash(repr(self))
|
| 12 |
+
|
| 13 |
+
def __lt__(self, other: object) -> bool:
|
| 14 |
+
return False
|
| 15 |
+
|
| 16 |
+
def __le__(self, other: object) -> bool:
|
| 17 |
+
return False
|
| 18 |
+
|
| 19 |
+
def __eq__(self, other: object) -> bool:
|
| 20 |
+
return isinstance(other, self.__class__)
|
| 21 |
+
|
| 22 |
+
def __gt__(self, other: object) -> bool:
|
| 23 |
+
return True
|
| 24 |
+
|
| 25 |
+
def __ge__(self, other: object) -> bool:
|
| 26 |
+
return True
|
| 27 |
+
|
| 28 |
+
def __neg__(self: object) -> "NegativeInfinityType":
|
| 29 |
+
return NegativeInfinity
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
Infinity = InfinityType()
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
class NegativeInfinityType:
|
| 36 |
+
def __repr__(self) -> str:
|
| 37 |
+
return "-Infinity"
|
| 38 |
+
|
| 39 |
+
def __hash__(self) -> int:
|
| 40 |
+
return hash(repr(self))
|
| 41 |
+
|
| 42 |
+
def __lt__(self, other: object) -> bool:
|
| 43 |
+
return True
|
| 44 |
+
|
| 45 |
+
def __le__(self, other: object) -> bool:
|
| 46 |
+
return True
|
| 47 |
+
|
| 48 |
+
def __eq__(self, other: object) -> bool:
|
| 49 |
+
return isinstance(other, self.__class__)
|
| 50 |
+
|
| 51 |
+
def __gt__(self, other: object) -> bool:
|
| 52 |
+
return False
|
| 53 |
+
|
| 54 |
+
def __ge__(self, other: object) -> bool:
|
| 55 |
+
return False
|
| 56 |
+
|
| 57 |
+
def __neg__(self: object) -> InfinityType:
|
| 58 |
+
return Infinity
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
NegativeInfinity = NegativeInfinityType()
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/_tokenizer.py
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from __future__ import annotations
|
| 2 |
+
|
| 3 |
+
import contextlib
|
| 4 |
+
import re
|
| 5 |
+
from dataclasses import dataclass
|
| 6 |
+
from typing import Iterator, NoReturn
|
| 7 |
+
|
| 8 |
+
from .specifiers import Specifier
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
@dataclass
|
| 12 |
+
class Token:
|
| 13 |
+
name: str
|
| 14 |
+
text: str
|
| 15 |
+
position: int
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
class ParserSyntaxError(Exception):
|
| 19 |
+
"""The provided source text could not be parsed correctly."""
|
| 20 |
+
|
| 21 |
+
def __init__(
|
| 22 |
+
self,
|
| 23 |
+
message: str,
|
| 24 |
+
*,
|
| 25 |
+
source: str,
|
| 26 |
+
span: tuple[int, int],
|
| 27 |
+
) -> None:
|
| 28 |
+
self.span = span
|
| 29 |
+
self.message = message
|
| 30 |
+
self.source = source
|
| 31 |
+
|
| 32 |
+
super().__init__()
|
| 33 |
+
|
| 34 |
+
def __str__(self) -> str:
|
| 35 |
+
marker = " " * self.span[0] + "~" * (self.span[1] - self.span[0]) + "^"
|
| 36 |
+
return "\n ".join([self.message, self.source, marker])
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
DEFAULT_RULES: dict[str, str | re.Pattern[str]] = {
|
| 40 |
+
"LEFT_PARENTHESIS": r"\(",
|
| 41 |
+
"RIGHT_PARENTHESIS": r"\)",
|
| 42 |
+
"LEFT_BRACKET": r"\[",
|
| 43 |
+
"RIGHT_BRACKET": r"\]",
|
| 44 |
+
"SEMICOLON": r";",
|
| 45 |
+
"COMMA": r",",
|
| 46 |
+
"QUOTED_STRING": re.compile(
|
| 47 |
+
r"""
|
| 48 |
+
(
|
| 49 |
+
('[^']*')
|
| 50 |
+
|
|
| 51 |
+
("[^"]*")
|
| 52 |
+
)
|
| 53 |
+
""",
|
| 54 |
+
re.VERBOSE,
|
| 55 |
+
),
|
| 56 |
+
"OP": r"(===|==|~=|!=|<=|>=|<|>)",
|
| 57 |
+
"BOOLOP": r"\b(or|and)\b",
|
| 58 |
+
"IN": r"\bin\b",
|
| 59 |
+
"NOT": r"\bnot\b",
|
| 60 |
+
"VARIABLE": re.compile(
|
| 61 |
+
r"""
|
| 62 |
+
\b(
|
| 63 |
+
python_version
|
| 64 |
+
|python_full_version
|
| 65 |
+
|os[._]name
|
| 66 |
+
|sys[._]platform
|
| 67 |
+
|platform_(release|system)
|
| 68 |
+
|platform[._](version|machine|python_implementation)
|
| 69 |
+
|python_implementation
|
| 70 |
+
|implementation_(name|version)
|
| 71 |
+
|extra
|
| 72 |
+
)\b
|
| 73 |
+
""",
|
| 74 |
+
re.VERBOSE,
|
| 75 |
+
),
|
| 76 |
+
"SPECIFIER": re.compile(
|
| 77 |
+
Specifier._operator_regex_str + Specifier._version_regex_str,
|
| 78 |
+
re.VERBOSE | re.IGNORECASE,
|
| 79 |
+
),
|
| 80 |
+
"AT": r"\@",
|
| 81 |
+
"URL": r"[^ \t]+",
|
| 82 |
+
"IDENTIFIER": r"\b[a-zA-Z0-9][a-zA-Z0-9._-]*\b",
|
| 83 |
+
"VERSION_PREFIX_TRAIL": r"\.\*",
|
| 84 |
+
"VERSION_LOCAL_LABEL_TRAIL": r"\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*",
|
| 85 |
+
"WS": r"[ \t]+",
|
| 86 |
+
"END": r"$",
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
|
| 90 |
+
class Tokenizer:
|
| 91 |
+
"""Context-sensitive token parsing.
|
| 92 |
+
|
| 93 |
+
Provides methods to examine the input stream to check whether the next token
|
| 94 |
+
matches.
|
| 95 |
+
"""
|
| 96 |
+
|
| 97 |
+
def __init__(
|
| 98 |
+
self,
|
| 99 |
+
source: str,
|
| 100 |
+
*,
|
| 101 |
+
rules: dict[str, str | re.Pattern[str]],
|
| 102 |
+
) -> None:
|
| 103 |
+
self.source = source
|
| 104 |
+
self.rules: dict[str, re.Pattern[str]] = {
|
| 105 |
+
name: re.compile(pattern) for name, pattern in rules.items()
|
| 106 |
+
}
|
| 107 |
+
self.next_token: Token | None = None
|
| 108 |
+
self.position = 0
|
| 109 |
+
|
| 110 |
+
def consume(self, name: str) -> None:
|
| 111 |
+
"""Move beyond provided token name, if at current position."""
|
| 112 |
+
if self.check(name):
|
| 113 |
+
self.read()
|
| 114 |
+
|
| 115 |
+
def check(self, name: str, *, peek: bool = False) -> bool:
|
| 116 |
+
"""Check whether the next token has the provided name.
|
| 117 |
+
|
| 118 |
+
By default, if the check succeeds, the token *must* be read before
|
| 119 |
+
another check. If `peek` is set to `True`, the token is not loaded and
|
| 120 |
+
would need to be checked again.
|
| 121 |
+
"""
|
| 122 |
+
assert (
|
| 123 |
+
self.next_token is None
|
| 124 |
+
), f"Cannot check for {name!r}, already have {self.next_token!r}"
|
| 125 |
+
assert name in self.rules, f"Unknown token name: {name!r}"
|
| 126 |
+
|
| 127 |
+
expression = self.rules[name]
|
| 128 |
+
|
| 129 |
+
match = expression.match(self.source, self.position)
|
| 130 |
+
if match is None:
|
| 131 |
+
return False
|
| 132 |
+
if not peek:
|
| 133 |
+
self.next_token = Token(name, match[0], self.position)
|
| 134 |
+
return True
|
| 135 |
+
|
| 136 |
+
def expect(self, name: str, *, expected: str) -> Token:
|
| 137 |
+
"""Expect a certain token name next, failing with a syntax error otherwise.
|
| 138 |
+
|
| 139 |
+
The token is *not* read.
|
| 140 |
+
"""
|
| 141 |
+
if not self.check(name):
|
| 142 |
+
raise self.raise_syntax_error(f"Expected {expected}")
|
| 143 |
+
return self.read()
|
| 144 |
+
|
| 145 |
+
def read(self) -> Token:
|
| 146 |
+
"""Consume the next token and return it."""
|
| 147 |
+
token = self.next_token
|
| 148 |
+
assert token is not None
|
| 149 |
+
|
| 150 |
+
self.position += len(token.text)
|
| 151 |
+
self.next_token = None
|
| 152 |
+
|
| 153 |
+
return token
|
| 154 |
+
|
| 155 |
+
def raise_syntax_error(
|
| 156 |
+
self,
|
| 157 |
+
message: str,
|
| 158 |
+
*,
|
| 159 |
+
span_start: int | None = None,
|
| 160 |
+
span_end: int | None = None,
|
| 161 |
+
) -> NoReturn:
|
| 162 |
+
"""Raise ParserSyntaxError at the given position."""
|
| 163 |
+
span = (
|
| 164 |
+
self.position if span_start is None else span_start,
|
| 165 |
+
self.position if span_end is None else span_end,
|
| 166 |
+
)
|
| 167 |
+
raise ParserSyntaxError(
|
| 168 |
+
message,
|
| 169 |
+
source=self.source,
|
| 170 |
+
span=span,
|
| 171 |
+
)
|
| 172 |
+
|
| 173 |
+
@contextlib.contextmanager
|
| 174 |
+
def enclosing_tokens(
|
| 175 |
+
self, open_token: str, close_token: str, *, around: str
|
| 176 |
+
) -> Iterator[None]:
|
| 177 |
+
if self.check(open_token):
|
| 178 |
+
open_position = self.position
|
| 179 |
+
self.read()
|
| 180 |
+
else:
|
| 181 |
+
open_position = None
|
| 182 |
+
|
| 183 |
+
yield
|
| 184 |
+
|
| 185 |
+
if open_position is None:
|
| 186 |
+
return
|
| 187 |
+
|
| 188 |
+
if not self.check(close_token):
|
| 189 |
+
self.raise_syntax_error(
|
| 190 |
+
f"Expected matching {close_token} for {open_token}, after {around}",
|
| 191 |
+
span_start=open_position,
|
| 192 |
+
)
|
| 193 |
+
|
| 194 |
+
self.read()
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/licenses/__init__.py
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#######################################################################################
|
| 2 |
+
#
|
| 3 |
+
# Adapted from:
|
| 4 |
+
# https://github.com/pypa/hatch/blob/5352e44/backend/src/hatchling/licenses/parse.py
|
| 5 |
+
#
|
| 6 |
+
# MIT License
|
| 7 |
+
#
|
| 8 |
+
# Copyright (c) 2017-present Ofek Lev <oss@ofek.dev>
|
| 9 |
+
#
|
| 10 |
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
| 11 |
+
# software and associated documentation files (the "Software"), to deal in the Software
|
| 12 |
+
# without restriction, including without limitation the rights to use, copy, modify,
|
| 13 |
+
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
| 14 |
+
# permit persons to whom the Software is furnished to do so, subject to the following
|
| 15 |
+
# conditions:
|
| 16 |
+
#
|
| 17 |
+
# The above copyright notice and this permission notice shall be included in all copies
|
| 18 |
+
# or substantial portions of the Software.
|
| 19 |
+
#
|
| 20 |
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
| 21 |
+
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
| 22 |
+
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
| 23 |
+
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
| 24 |
+
# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
| 25 |
+
# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| 26 |
+
#
|
| 27 |
+
#
|
| 28 |
+
# With additional allowance of arbitrary `LicenseRef-` identifiers, not just
|
| 29 |
+
# `LicenseRef-Public-Domain` and `LicenseRef-Proprietary`.
|
| 30 |
+
#
|
| 31 |
+
#######################################################################################
|
| 32 |
+
from __future__ import annotations
|
| 33 |
+
|
| 34 |
+
import re
|
| 35 |
+
from typing import NewType, cast
|
| 36 |
+
|
| 37 |
+
from packaging.licenses._spdx import EXCEPTIONS, LICENSES
|
| 38 |
+
|
| 39 |
+
__all__ = [
|
| 40 |
+
"NormalizedLicenseExpression",
|
| 41 |
+
"InvalidLicenseExpression",
|
| 42 |
+
"canonicalize_license_expression",
|
| 43 |
+
]
|
| 44 |
+
|
| 45 |
+
license_ref_allowed = re.compile("^[A-Za-z0-9.-]*$")
|
| 46 |
+
|
| 47 |
+
NormalizedLicenseExpression = NewType("NormalizedLicenseExpression", str)
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
class InvalidLicenseExpression(ValueError):
|
| 51 |
+
"""Raised when a license-expression string is invalid
|
| 52 |
+
|
| 53 |
+
>>> canonicalize_license_expression("invalid")
|
| 54 |
+
Traceback (most recent call last):
|
| 55 |
+
...
|
| 56 |
+
packaging.licenses.InvalidLicenseExpression: Invalid license expression: 'invalid'
|
| 57 |
+
"""
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
def canonicalize_license_expression(
|
| 61 |
+
raw_license_expression: str,
|
| 62 |
+
) -> NormalizedLicenseExpression:
|
| 63 |
+
if not raw_license_expression:
|
| 64 |
+
message = f"Invalid license expression: {raw_license_expression!r}"
|
| 65 |
+
raise InvalidLicenseExpression(message)
|
| 66 |
+
|
| 67 |
+
# Pad any parentheses so tokenization can be achieved by merely splitting on
|
| 68 |
+
# whitespace.
|
| 69 |
+
license_expression = raw_license_expression.replace("(", " ( ").replace(")", " ) ")
|
| 70 |
+
licenseref_prefix = "LicenseRef-"
|
| 71 |
+
license_refs = {
|
| 72 |
+
ref.lower(): "LicenseRef-" + ref[len(licenseref_prefix) :]
|
| 73 |
+
for ref in license_expression.split()
|
| 74 |
+
if ref.lower().startswith(licenseref_prefix.lower())
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
# Normalize to lower case so we can look up licenses/exceptions
|
| 78 |
+
# and so boolean operators are Python-compatible.
|
| 79 |
+
license_expression = license_expression.lower()
|
| 80 |
+
|
| 81 |
+
tokens = license_expression.split()
|
| 82 |
+
|
| 83 |
+
# Rather than implementing boolean logic, we create an expression that Python can
|
| 84 |
+
# parse. Everything that is not involved with the grammar itself is treated as
|
| 85 |
+
# `False` and the expression should evaluate as such.
|
| 86 |
+
python_tokens = []
|
| 87 |
+
for token in tokens:
|
| 88 |
+
if token not in {"or", "and", "with", "(", ")"}:
|
| 89 |
+
python_tokens.append("False")
|
| 90 |
+
elif token == "with":
|
| 91 |
+
python_tokens.append("or")
|
| 92 |
+
elif token == "(" and python_tokens and python_tokens[-1] not in {"or", "and"}:
|
| 93 |
+
message = f"Invalid license expression: {raw_license_expression!r}"
|
| 94 |
+
raise InvalidLicenseExpression(message)
|
| 95 |
+
else:
|
| 96 |
+
python_tokens.append(token)
|
| 97 |
+
|
| 98 |
+
python_expression = " ".join(python_tokens)
|
| 99 |
+
try:
|
| 100 |
+
invalid = eval(python_expression, globals(), locals())
|
| 101 |
+
except Exception:
|
| 102 |
+
invalid = True
|
| 103 |
+
|
| 104 |
+
if invalid is not False:
|
| 105 |
+
message = f"Invalid license expression: {raw_license_expression!r}"
|
| 106 |
+
raise InvalidLicenseExpression(message) from None
|
| 107 |
+
|
| 108 |
+
# Take a final pass to check for unknown licenses/exceptions.
|
| 109 |
+
normalized_tokens = []
|
| 110 |
+
for token in tokens:
|
| 111 |
+
if token in {"or", "and", "with", "(", ")"}:
|
| 112 |
+
normalized_tokens.append(token.upper())
|
| 113 |
+
continue
|
| 114 |
+
|
| 115 |
+
if normalized_tokens and normalized_tokens[-1] == "WITH":
|
| 116 |
+
if token not in EXCEPTIONS:
|
| 117 |
+
message = f"Unknown license exception: {token!r}"
|
| 118 |
+
raise InvalidLicenseExpression(message)
|
| 119 |
+
|
| 120 |
+
normalized_tokens.append(EXCEPTIONS[token]["id"])
|
| 121 |
+
else:
|
| 122 |
+
if token.endswith("+"):
|
| 123 |
+
final_token = token[:-1]
|
| 124 |
+
suffix = "+"
|
| 125 |
+
else:
|
| 126 |
+
final_token = token
|
| 127 |
+
suffix = ""
|
| 128 |
+
|
| 129 |
+
if final_token.startswith("licenseref-"):
|
| 130 |
+
if not license_ref_allowed.match(final_token):
|
| 131 |
+
message = f"Invalid licenseref: {final_token!r}"
|
| 132 |
+
raise InvalidLicenseExpression(message)
|
| 133 |
+
normalized_tokens.append(license_refs[final_token] + suffix)
|
| 134 |
+
else:
|
| 135 |
+
if final_token not in LICENSES:
|
| 136 |
+
message = f"Unknown license: {final_token!r}"
|
| 137 |
+
raise InvalidLicenseExpression(message)
|
| 138 |
+
normalized_tokens.append(LICENSES[final_token]["id"] + suffix)
|
| 139 |
+
|
| 140 |
+
normalized_expression = " ".join(normalized_tokens)
|
| 141 |
+
|
| 142 |
+
return cast(
|
| 143 |
+
NormalizedLicenseExpression,
|
| 144 |
+
normalized_expression.replace("( ", "(").replace(" )", ")"),
|
| 145 |
+
)
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/licenses/__pycache__/__init__.cpython-311.pyc
ADDED
|
Binary file (5.05 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/licenses/__pycache__/_spdx.cpython-311.pyc
ADDED
|
Binary file (50.3 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/licenses/_spdx.py
ADDED
|
@@ -0,0 +1,759 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
from __future__ import annotations
|
| 3 |
+
|
| 4 |
+
from typing import TypedDict
|
| 5 |
+
|
| 6 |
+
class SPDXLicense(TypedDict):
|
| 7 |
+
id: str
|
| 8 |
+
deprecated: bool
|
| 9 |
+
|
| 10 |
+
class SPDXException(TypedDict):
|
| 11 |
+
id: str
|
| 12 |
+
deprecated: bool
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
VERSION = '3.25.0'
|
| 16 |
+
|
| 17 |
+
LICENSES: dict[str, SPDXLicense] = {
|
| 18 |
+
'0bsd': {'id': '0BSD', 'deprecated': False},
|
| 19 |
+
'3d-slicer-1.0': {'id': '3D-Slicer-1.0', 'deprecated': False},
|
| 20 |
+
'aal': {'id': 'AAL', 'deprecated': False},
|
| 21 |
+
'abstyles': {'id': 'Abstyles', 'deprecated': False},
|
| 22 |
+
'adacore-doc': {'id': 'AdaCore-doc', 'deprecated': False},
|
| 23 |
+
'adobe-2006': {'id': 'Adobe-2006', 'deprecated': False},
|
| 24 |
+
'adobe-display-postscript': {'id': 'Adobe-Display-PostScript', 'deprecated': False},
|
| 25 |
+
'adobe-glyph': {'id': 'Adobe-Glyph', 'deprecated': False},
|
| 26 |
+
'adobe-utopia': {'id': 'Adobe-Utopia', 'deprecated': False},
|
| 27 |
+
'adsl': {'id': 'ADSL', 'deprecated': False},
|
| 28 |
+
'afl-1.1': {'id': 'AFL-1.1', 'deprecated': False},
|
| 29 |
+
'afl-1.2': {'id': 'AFL-1.2', 'deprecated': False},
|
| 30 |
+
'afl-2.0': {'id': 'AFL-2.0', 'deprecated': False},
|
| 31 |
+
'afl-2.1': {'id': 'AFL-2.1', 'deprecated': False},
|
| 32 |
+
'afl-3.0': {'id': 'AFL-3.0', 'deprecated': False},
|
| 33 |
+
'afmparse': {'id': 'Afmparse', 'deprecated': False},
|
| 34 |
+
'agpl-1.0': {'id': 'AGPL-1.0', 'deprecated': True},
|
| 35 |
+
'agpl-1.0-only': {'id': 'AGPL-1.0-only', 'deprecated': False},
|
| 36 |
+
'agpl-1.0-or-later': {'id': 'AGPL-1.0-or-later', 'deprecated': False},
|
| 37 |
+
'agpl-3.0': {'id': 'AGPL-3.0', 'deprecated': True},
|
| 38 |
+
'agpl-3.0-only': {'id': 'AGPL-3.0-only', 'deprecated': False},
|
| 39 |
+
'agpl-3.0-or-later': {'id': 'AGPL-3.0-or-later', 'deprecated': False},
|
| 40 |
+
'aladdin': {'id': 'Aladdin', 'deprecated': False},
|
| 41 |
+
'amd-newlib': {'id': 'AMD-newlib', 'deprecated': False},
|
| 42 |
+
'amdplpa': {'id': 'AMDPLPA', 'deprecated': False},
|
| 43 |
+
'aml': {'id': 'AML', 'deprecated': False},
|
| 44 |
+
'aml-glslang': {'id': 'AML-glslang', 'deprecated': False},
|
| 45 |
+
'ampas': {'id': 'AMPAS', 'deprecated': False},
|
| 46 |
+
'antlr-pd': {'id': 'ANTLR-PD', 'deprecated': False},
|
| 47 |
+
'antlr-pd-fallback': {'id': 'ANTLR-PD-fallback', 'deprecated': False},
|
| 48 |
+
'any-osi': {'id': 'any-OSI', 'deprecated': False},
|
| 49 |
+
'apache-1.0': {'id': 'Apache-1.0', 'deprecated': False},
|
| 50 |
+
'apache-1.1': {'id': 'Apache-1.1', 'deprecated': False},
|
| 51 |
+
'apache-2.0': {'id': 'Apache-2.0', 'deprecated': False},
|
| 52 |
+
'apafml': {'id': 'APAFML', 'deprecated': False},
|
| 53 |
+
'apl-1.0': {'id': 'APL-1.0', 'deprecated': False},
|
| 54 |
+
'app-s2p': {'id': 'App-s2p', 'deprecated': False},
|
| 55 |
+
'apsl-1.0': {'id': 'APSL-1.0', 'deprecated': False},
|
| 56 |
+
'apsl-1.1': {'id': 'APSL-1.1', 'deprecated': False},
|
| 57 |
+
'apsl-1.2': {'id': 'APSL-1.2', 'deprecated': False},
|
| 58 |
+
'apsl-2.0': {'id': 'APSL-2.0', 'deprecated': False},
|
| 59 |
+
'arphic-1999': {'id': 'Arphic-1999', 'deprecated': False},
|
| 60 |
+
'artistic-1.0': {'id': 'Artistic-1.0', 'deprecated': False},
|
| 61 |
+
'artistic-1.0-cl8': {'id': 'Artistic-1.0-cl8', 'deprecated': False},
|
| 62 |
+
'artistic-1.0-perl': {'id': 'Artistic-1.0-Perl', 'deprecated': False},
|
| 63 |
+
'artistic-2.0': {'id': 'Artistic-2.0', 'deprecated': False},
|
| 64 |
+
'aswf-digital-assets-1.0': {'id': 'ASWF-Digital-Assets-1.0', 'deprecated': False},
|
| 65 |
+
'aswf-digital-assets-1.1': {'id': 'ASWF-Digital-Assets-1.1', 'deprecated': False},
|
| 66 |
+
'baekmuk': {'id': 'Baekmuk', 'deprecated': False},
|
| 67 |
+
'bahyph': {'id': 'Bahyph', 'deprecated': False},
|
| 68 |
+
'barr': {'id': 'Barr', 'deprecated': False},
|
| 69 |
+
'bcrypt-solar-designer': {'id': 'bcrypt-Solar-Designer', 'deprecated': False},
|
| 70 |
+
'beerware': {'id': 'Beerware', 'deprecated': False},
|
| 71 |
+
'bitstream-charter': {'id': 'Bitstream-Charter', 'deprecated': False},
|
| 72 |
+
'bitstream-vera': {'id': 'Bitstream-Vera', 'deprecated': False},
|
| 73 |
+
'bittorrent-1.0': {'id': 'BitTorrent-1.0', 'deprecated': False},
|
| 74 |
+
'bittorrent-1.1': {'id': 'BitTorrent-1.1', 'deprecated': False},
|
| 75 |
+
'blessing': {'id': 'blessing', 'deprecated': False},
|
| 76 |
+
'blueoak-1.0.0': {'id': 'BlueOak-1.0.0', 'deprecated': False},
|
| 77 |
+
'boehm-gc': {'id': 'Boehm-GC', 'deprecated': False},
|
| 78 |
+
'borceux': {'id': 'Borceux', 'deprecated': False},
|
| 79 |
+
'brian-gladman-2-clause': {'id': 'Brian-Gladman-2-Clause', 'deprecated': False},
|
| 80 |
+
'brian-gladman-3-clause': {'id': 'Brian-Gladman-3-Clause', 'deprecated': False},
|
| 81 |
+
'bsd-1-clause': {'id': 'BSD-1-Clause', 'deprecated': False},
|
| 82 |
+
'bsd-2-clause': {'id': 'BSD-2-Clause', 'deprecated': False},
|
| 83 |
+
'bsd-2-clause-darwin': {'id': 'BSD-2-Clause-Darwin', 'deprecated': False},
|
| 84 |
+
'bsd-2-clause-first-lines': {'id': 'BSD-2-Clause-first-lines', 'deprecated': False},
|
| 85 |
+
'bsd-2-clause-freebsd': {'id': 'BSD-2-Clause-FreeBSD', 'deprecated': True},
|
| 86 |
+
'bsd-2-clause-netbsd': {'id': 'BSD-2-Clause-NetBSD', 'deprecated': True},
|
| 87 |
+
'bsd-2-clause-patent': {'id': 'BSD-2-Clause-Patent', 'deprecated': False},
|
| 88 |
+
'bsd-2-clause-views': {'id': 'BSD-2-Clause-Views', 'deprecated': False},
|
| 89 |
+
'bsd-3-clause': {'id': 'BSD-3-Clause', 'deprecated': False},
|
| 90 |
+
'bsd-3-clause-acpica': {'id': 'BSD-3-Clause-acpica', 'deprecated': False},
|
| 91 |
+
'bsd-3-clause-attribution': {'id': 'BSD-3-Clause-Attribution', 'deprecated': False},
|
| 92 |
+
'bsd-3-clause-clear': {'id': 'BSD-3-Clause-Clear', 'deprecated': False},
|
| 93 |
+
'bsd-3-clause-flex': {'id': 'BSD-3-Clause-flex', 'deprecated': False},
|
| 94 |
+
'bsd-3-clause-hp': {'id': 'BSD-3-Clause-HP', 'deprecated': False},
|
| 95 |
+
'bsd-3-clause-lbnl': {'id': 'BSD-3-Clause-LBNL', 'deprecated': False},
|
| 96 |
+
'bsd-3-clause-modification': {'id': 'BSD-3-Clause-Modification', 'deprecated': False},
|
| 97 |
+
'bsd-3-clause-no-military-license': {'id': 'BSD-3-Clause-No-Military-License', 'deprecated': False},
|
| 98 |
+
'bsd-3-clause-no-nuclear-license': {'id': 'BSD-3-Clause-No-Nuclear-License', 'deprecated': False},
|
| 99 |
+
'bsd-3-clause-no-nuclear-license-2014': {'id': 'BSD-3-Clause-No-Nuclear-License-2014', 'deprecated': False},
|
| 100 |
+
'bsd-3-clause-no-nuclear-warranty': {'id': 'BSD-3-Clause-No-Nuclear-Warranty', 'deprecated': False},
|
| 101 |
+
'bsd-3-clause-open-mpi': {'id': 'BSD-3-Clause-Open-MPI', 'deprecated': False},
|
| 102 |
+
'bsd-3-clause-sun': {'id': 'BSD-3-Clause-Sun', 'deprecated': False},
|
| 103 |
+
'bsd-4-clause': {'id': 'BSD-4-Clause', 'deprecated': False},
|
| 104 |
+
'bsd-4-clause-shortened': {'id': 'BSD-4-Clause-Shortened', 'deprecated': False},
|
| 105 |
+
'bsd-4-clause-uc': {'id': 'BSD-4-Clause-UC', 'deprecated': False},
|
| 106 |
+
'bsd-4.3reno': {'id': 'BSD-4.3RENO', 'deprecated': False},
|
| 107 |
+
'bsd-4.3tahoe': {'id': 'BSD-4.3TAHOE', 'deprecated': False},
|
| 108 |
+
'bsd-advertising-acknowledgement': {'id': 'BSD-Advertising-Acknowledgement', 'deprecated': False},
|
| 109 |
+
'bsd-attribution-hpnd-disclaimer': {'id': 'BSD-Attribution-HPND-disclaimer', 'deprecated': False},
|
| 110 |
+
'bsd-inferno-nettverk': {'id': 'BSD-Inferno-Nettverk', 'deprecated': False},
|
| 111 |
+
'bsd-protection': {'id': 'BSD-Protection', 'deprecated': False},
|
| 112 |
+
'bsd-source-beginning-file': {'id': 'BSD-Source-beginning-file', 'deprecated': False},
|
| 113 |
+
'bsd-source-code': {'id': 'BSD-Source-Code', 'deprecated': False},
|
| 114 |
+
'bsd-systemics': {'id': 'BSD-Systemics', 'deprecated': False},
|
| 115 |
+
'bsd-systemics-w3works': {'id': 'BSD-Systemics-W3Works', 'deprecated': False},
|
| 116 |
+
'bsl-1.0': {'id': 'BSL-1.0', 'deprecated': False},
|
| 117 |
+
'busl-1.1': {'id': 'BUSL-1.1', 'deprecated': False},
|
| 118 |
+
'bzip2-1.0.5': {'id': 'bzip2-1.0.5', 'deprecated': True},
|
| 119 |
+
'bzip2-1.0.6': {'id': 'bzip2-1.0.6', 'deprecated': False},
|
| 120 |
+
'c-uda-1.0': {'id': 'C-UDA-1.0', 'deprecated': False},
|
| 121 |
+
'cal-1.0': {'id': 'CAL-1.0', 'deprecated': False},
|
| 122 |
+
'cal-1.0-combined-work-exception': {'id': 'CAL-1.0-Combined-Work-Exception', 'deprecated': False},
|
| 123 |
+
'caldera': {'id': 'Caldera', 'deprecated': False},
|
| 124 |
+
'caldera-no-preamble': {'id': 'Caldera-no-preamble', 'deprecated': False},
|
| 125 |
+
'catharon': {'id': 'Catharon', 'deprecated': False},
|
| 126 |
+
'catosl-1.1': {'id': 'CATOSL-1.1', 'deprecated': False},
|
| 127 |
+
'cc-by-1.0': {'id': 'CC-BY-1.0', 'deprecated': False},
|
| 128 |
+
'cc-by-2.0': {'id': 'CC-BY-2.0', 'deprecated': False},
|
| 129 |
+
'cc-by-2.5': {'id': 'CC-BY-2.5', 'deprecated': False},
|
| 130 |
+
'cc-by-2.5-au': {'id': 'CC-BY-2.5-AU', 'deprecated': False},
|
| 131 |
+
'cc-by-3.0': {'id': 'CC-BY-3.0', 'deprecated': False},
|
| 132 |
+
'cc-by-3.0-at': {'id': 'CC-BY-3.0-AT', 'deprecated': False},
|
| 133 |
+
'cc-by-3.0-au': {'id': 'CC-BY-3.0-AU', 'deprecated': False},
|
| 134 |
+
'cc-by-3.0-de': {'id': 'CC-BY-3.0-DE', 'deprecated': False},
|
| 135 |
+
'cc-by-3.0-igo': {'id': 'CC-BY-3.0-IGO', 'deprecated': False},
|
| 136 |
+
'cc-by-3.0-nl': {'id': 'CC-BY-3.0-NL', 'deprecated': False},
|
| 137 |
+
'cc-by-3.0-us': {'id': 'CC-BY-3.0-US', 'deprecated': False},
|
| 138 |
+
'cc-by-4.0': {'id': 'CC-BY-4.0', 'deprecated': False},
|
| 139 |
+
'cc-by-nc-1.0': {'id': 'CC-BY-NC-1.0', 'deprecated': False},
|
| 140 |
+
'cc-by-nc-2.0': {'id': 'CC-BY-NC-2.0', 'deprecated': False},
|
| 141 |
+
'cc-by-nc-2.5': {'id': 'CC-BY-NC-2.5', 'deprecated': False},
|
| 142 |
+
'cc-by-nc-3.0': {'id': 'CC-BY-NC-3.0', 'deprecated': False},
|
| 143 |
+
'cc-by-nc-3.0-de': {'id': 'CC-BY-NC-3.0-DE', 'deprecated': False},
|
| 144 |
+
'cc-by-nc-4.0': {'id': 'CC-BY-NC-4.0', 'deprecated': False},
|
| 145 |
+
'cc-by-nc-nd-1.0': {'id': 'CC-BY-NC-ND-1.0', 'deprecated': False},
|
| 146 |
+
'cc-by-nc-nd-2.0': {'id': 'CC-BY-NC-ND-2.0', 'deprecated': False},
|
| 147 |
+
'cc-by-nc-nd-2.5': {'id': 'CC-BY-NC-ND-2.5', 'deprecated': False},
|
| 148 |
+
'cc-by-nc-nd-3.0': {'id': 'CC-BY-NC-ND-3.0', 'deprecated': False},
|
| 149 |
+
'cc-by-nc-nd-3.0-de': {'id': 'CC-BY-NC-ND-3.0-DE', 'deprecated': False},
|
| 150 |
+
'cc-by-nc-nd-3.0-igo': {'id': 'CC-BY-NC-ND-3.0-IGO', 'deprecated': False},
|
| 151 |
+
'cc-by-nc-nd-4.0': {'id': 'CC-BY-NC-ND-4.0', 'deprecated': False},
|
| 152 |
+
'cc-by-nc-sa-1.0': {'id': 'CC-BY-NC-SA-1.0', 'deprecated': False},
|
| 153 |
+
'cc-by-nc-sa-2.0': {'id': 'CC-BY-NC-SA-2.0', 'deprecated': False},
|
| 154 |
+
'cc-by-nc-sa-2.0-de': {'id': 'CC-BY-NC-SA-2.0-DE', 'deprecated': False},
|
| 155 |
+
'cc-by-nc-sa-2.0-fr': {'id': 'CC-BY-NC-SA-2.0-FR', 'deprecated': False},
|
| 156 |
+
'cc-by-nc-sa-2.0-uk': {'id': 'CC-BY-NC-SA-2.0-UK', 'deprecated': False},
|
| 157 |
+
'cc-by-nc-sa-2.5': {'id': 'CC-BY-NC-SA-2.5', 'deprecated': False},
|
| 158 |
+
'cc-by-nc-sa-3.0': {'id': 'CC-BY-NC-SA-3.0', 'deprecated': False},
|
| 159 |
+
'cc-by-nc-sa-3.0-de': {'id': 'CC-BY-NC-SA-3.0-DE', 'deprecated': False},
|
| 160 |
+
'cc-by-nc-sa-3.0-igo': {'id': 'CC-BY-NC-SA-3.0-IGO', 'deprecated': False},
|
| 161 |
+
'cc-by-nc-sa-4.0': {'id': 'CC-BY-NC-SA-4.0', 'deprecated': False},
|
| 162 |
+
'cc-by-nd-1.0': {'id': 'CC-BY-ND-1.0', 'deprecated': False},
|
| 163 |
+
'cc-by-nd-2.0': {'id': 'CC-BY-ND-2.0', 'deprecated': False},
|
| 164 |
+
'cc-by-nd-2.5': {'id': 'CC-BY-ND-2.5', 'deprecated': False},
|
| 165 |
+
'cc-by-nd-3.0': {'id': 'CC-BY-ND-3.0', 'deprecated': False},
|
| 166 |
+
'cc-by-nd-3.0-de': {'id': 'CC-BY-ND-3.0-DE', 'deprecated': False},
|
| 167 |
+
'cc-by-nd-4.0': {'id': 'CC-BY-ND-4.0', 'deprecated': False},
|
| 168 |
+
'cc-by-sa-1.0': {'id': 'CC-BY-SA-1.0', 'deprecated': False},
|
| 169 |
+
'cc-by-sa-2.0': {'id': 'CC-BY-SA-2.0', 'deprecated': False},
|
| 170 |
+
'cc-by-sa-2.0-uk': {'id': 'CC-BY-SA-2.0-UK', 'deprecated': False},
|
| 171 |
+
'cc-by-sa-2.1-jp': {'id': 'CC-BY-SA-2.1-JP', 'deprecated': False},
|
| 172 |
+
'cc-by-sa-2.5': {'id': 'CC-BY-SA-2.5', 'deprecated': False},
|
| 173 |
+
'cc-by-sa-3.0': {'id': 'CC-BY-SA-3.0', 'deprecated': False},
|
| 174 |
+
'cc-by-sa-3.0-at': {'id': 'CC-BY-SA-3.0-AT', 'deprecated': False},
|
| 175 |
+
'cc-by-sa-3.0-de': {'id': 'CC-BY-SA-3.0-DE', 'deprecated': False},
|
| 176 |
+
'cc-by-sa-3.0-igo': {'id': 'CC-BY-SA-3.0-IGO', 'deprecated': False},
|
| 177 |
+
'cc-by-sa-4.0': {'id': 'CC-BY-SA-4.0', 'deprecated': False},
|
| 178 |
+
'cc-pddc': {'id': 'CC-PDDC', 'deprecated': False},
|
| 179 |
+
'cc0-1.0': {'id': 'CC0-1.0', 'deprecated': False},
|
| 180 |
+
'cddl-1.0': {'id': 'CDDL-1.0', 'deprecated': False},
|
| 181 |
+
'cddl-1.1': {'id': 'CDDL-1.1', 'deprecated': False},
|
| 182 |
+
'cdl-1.0': {'id': 'CDL-1.0', 'deprecated': False},
|
| 183 |
+
'cdla-permissive-1.0': {'id': 'CDLA-Permissive-1.0', 'deprecated': False},
|
| 184 |
+
'cdla-permissive-2.0': {'id': 'CDLA-Permissive-2.0', 'deprecated': False},
|
| 185 |
+
'cdla-sharing-1.0': {'id': 'CDLA-Sharing-1.0', 'deprecated': False},
|
| 186 |
+
'cecill-1.0': {'id': 'CECILL-1.0', 'deprecated': False},
|
| 187 |
+
'cecill-1.1': {'id': 'CECILL-1.1', 'deprecated': False},
|
| 188 |
+
'cecill-2.0': {'id': 'CECILL-2.0', 'deprecated': False},
|
| 189 |
+
'cecill-2.1': {'id': 'CECILL-2.1', 'deprecated': False},
|
| 190 |
+
'cecill-b': {'id': 'CECILL-B', 'deprecated': False},
|
| 191 |
+
'cecill-c': {'id': 'CECILL-C', 'deprecated': False},
|
| 192 |
+
'cern-ohl-1.1': {'id': 'CERN-OHL-1.1', 'deprecated': False},
|
| 193 |
+
'cern-ohl-1.2': {'id': 'CERN-OHL-1.2', 'deprecated': False},
|
| 194 |
+
'cern-ohl-p-2.0': {'id': 'CERN-OHL-P-2.0', 'deprecated': False},
|
| 195 |
+
'cern-ohl-s-2.0': {'id': 'CERN-OHL-S-2.0', 'deprecated': False},
|
| 196 |
+
'cern-ohl-w-2.0': {'id': 'CERN-OHL-W-2.0', 'deprecated': False},
|
| 197 |
+
'cfitsio': {'id': 'CFITSIO', 'deprecated': False},
|
| 198 |
+
'check-cvs': {'id': 'check-cvs', 'deprecated': False},
|
| 199 |
+
'checkmk': {'id': 'checkmk', 'deprecated': False},
|
| 200 |
+
'clartistic': {'id': 'ClArtistic', 'deprecated': False},
|
| 201 |
+
'clips': {'id': 'Clips', 'deprecated': False},
|
| 202 |
+
'cmu-mach': {'id': 'CMU-Mach', 'deprecated': False},
|
| 203 |
+
'cmu-mach-nodoc': {'id': 'CMU-Mach-nodoc', 'deprecated': False},
|
| 204 |
+
'cnri-jython': {'id': 'CNRI-Jython', 'deprecated': False},
|
| 205 |
+
'cnri-python': {'id': 'CNRI-Python', 'deprecated': False},
|
| 206 |
+
'cnri-python-gpl-compatible': {'id': 'CNRI-Python-GPL-Compatible', 'deprecated': False},
|
| 207 |
+
'coil-1.0': {'id': 'COIL-1.0', 'deprecated': False},
|
| 208 |
+
'community-spec-1.0': {'id': 'Community-Spec-1.0', 'deprecated': False},
|
| 209 |
+
'condor-1.1': {'id': 'Condor-1.1', 'deprecated': False},
|
| 210 |
+
'copyleft-next-0.3.0': {'id': 'copyleft-next-0.3.0', 'deprecated': False},
|
| 211 |
+
'copyleft-next-0.3.1': {'id': 'copyleft-next-0.3.1', 'deprecated': False},
|
| 212 |
+
'cornell-lossless-jpeg': {'id': 'Cornell-Lossless-JPEG', 'deprecated': False},
|
| 213 |
+
'cpal-1.0': {'id': 'CPAL-1.0', 'deprecated': False},
|
| 214 |
+
'cpl-1.0': {'id': 'CPL-1.0', 'deprecated': False},
|
| 215 |
+
'cpol-1.02': {'id': 'CPOL-1.02', 'deprecated': False},
|
| 216 |
+
'cronyx': {'id': 'Cronyx', 'deprecated': False},
|
| 217 |
+
'crossword': {'id': 'Crossword', 'deprecated': False},
|
| 218 |
+
'crystalstacker': {'id': 'CrystalStacker', 'deprecated': False},
|
| 219 |
+
'cua-opl-1.0': {'id': 'CUA-OPL-1.0', 'deprecated': False},
|
| 220 |
+
'cube': {'id': 'Cube', 'deprecated': False},
|
| 221 |
+
'curl': {'id': 'curl', 'deprecated': False},
|
| 222 |
+
'cve-tou': {'id': 'cve-tou', 'deprecated': False},
|
| 223 |
+
'd-fsl-1.0': {'id': 'D-FSL-1.0', 'deprecated': False},
|
| 224 |
+
'dec-3-clause': {'id': 'DEC-3-Clause', 'deprecated': False},
|
| 225 |
+
'diffmark': {'id': 'diffmark', 'deprecated': False},
|
| 226 |
+
'dl-de-by-2.0': {'id': 'DL-DE-BY-2.0', 'deprecated': False},
|
| 227 |
+
'dl-de-zero-2.0': {'id': 'DL-DE-ZERO-2.0', 'deprecated': False},
|
| 228 |
+
'doc': {'id': 'DOC', 'deprecated': False},
|
| 229 |
+
'docbook-schema': {'id': 'DocBook-Schema', 'deprecated': False},
|
| 230 |
+
'docbook-xml': {'id': 'DocBook-XML', 'deprecated': False},
|
| 231 |
+
'dotseqn': {'id': 'Dotseqn', 'deprecated': False},
|
| 232 |
+
'drl-1.0': {'id': 'DRL-1.0', 'deprecated': False},
|
| 233 |
+
'drl-1.1': {'id': 'DRL-1.1', 'deprecated': False},
|
| 234 |
+
'dsdp': {'id': 'DSDP', 'deprecated': False},
|
| 235 |
+
'dtoa': {'id': 'dtoa', 'deprecated': False},
|
| 236 |
+
'dvipdfm': {'id': 'dvipdfm', 'deprecated': False},
|
| 237 |
+
'ecl-1.0': {'id': 'ECL-1.0', 'deprecated': False},
|
| 238 |
+
'ecl-2.0': {'id': 'ECL-2.0', 'deprecated': False},
|
| 239 |
+
'ecos-2.0': {'id': 'eCos-2.0', 'deprecated': True},
|
| 240 |
+
'efl-1.0': {'id': 'EFL-1.0', 'deprecated': False},
|
| 241 |
+
'efl-2.0': {'id': 'EFL-2.0', 'deprecated': False},
|
| 242 |
+
'egenix': {'id': 'eGenix', 'deprecated': False},
|
| 243 |
+
'elastic-2.0': {'id': 'Elastic-2.0', 'deprecated': False},
|
| 244 |
+
'entessa': {'id': 'Entessa', 'deprecated': False},
|
| 245 |
+
'epics': {'id': 'EPICS', 'deprecated': False},
|
| 246 |
+
'epl-1.0': {'id': 'EPL-1.0', 'deprecated': False},
|
| 247 |
+
'epl-2.0': {'id': 'EPL-2.0', 'deprecated': False},
|
| 248 |
+
'erlpl-1.1': {'id': 'ErlPL-1.1', 'deprecated': False},
|
| 249 |
+
'etalab-2.0': {'id': 'etalab-2.0', 'deprecated': False},
|
| 250 |
+
'eudatagrid': {'id': 'EUDatagrid', 'deprecated': False},
|
| 251 |
+
'eupl-1.0': {'id': 'EUPL-1.0', 'deprecated': False},
|
| 252 |
+
'eupl-1.1': {'id': 'EUPL-1.1', 'deprecated': False},
|
| 253 |
+
'eupl-1.2': {'id': 'EUPL-1.2', 'deprecated': False},
|
| 254 |
+
'eurosym': {'id': 'Eurosym', 'deprecated': False},
|
| 255 |
+
'fair': {'id': 'Fair', 'deprecated': False},
|
| 256 |
+
'fbm': {'id': 'FBM', 'deprecated': False},
|
| 257 |
+
'fdk-aac': {'id': 'FDK-AAC', 'deprecated': False},
|
| 258 |
+
'ferguson-twofish': {'id': 'Ferguson-Twofish', 'deprecated': False},
|
| 259 |
+
'frameworx-1.0': {'id': 'Frameworx-1.0', 'deprecated': False},
|
| 260 |
+
'freebsd-doc': {'id': 'FreeBSD-DOC', 'deprecated': False},
|
| 261 |
+
'freeimage': {'id': 'FreeImage', 'deprecated': False},
|
| 262 |
+
'fsfap': {'id': 'FSFAP', 'deprecated': False},
|
| 263 |
+
'fsfap-no-warranty-disclaimer': {'id': 'FSFAP-no-warranty-disclaimer', 'deprecated': False},
|
| 264 |
+
'fsful': {'id': 'FSFUL', 'deprecated': False},
|
| 265 |
+
'fsfullr': {'id': 'FSFULLR', 'deprecated': False},
|
| 266 |
+
'fsfullrwd': {'id': 'FSFULLRWD', 'deprecated': False},
|
| 267 |
+
'ftl': {'id': 'FTL', 'deprecated': False},
|
| 268 |
+
'furuseth': {'id': 'Furuseth', 'deprecated': False},
|
| 269 |
+
'fwlw': {'id': 'fwlw', 'deprecated': False},
|
| 270 |
+
'gcr-docs': {'id': 'GCR-docs', 'deprecated': False},
|
| 271 |
+
'gd': {'id': 'GD', 'deprecated': False},
|
| 272 |
+
'gfdl-1.1': {'id': 'GFDL-1.1', 'deprecated': True},
|
| 273 |
+
'gfdl-1.1-invariants-only': {'id': 'GFDL-1.1-invariants-only', 'deprecated': False},
|
| 274 |
+
'gfdl-1.1-invariants-or-later': {'id': 'GFDL-1.1-invariants-or-later', 'deprecated': False},
|
| 275 |
+
'gfdl-1.1-no-invariants-only': {'id': 'GFDL-1.1-no-invariants-only', 'deprecated': False},
|
| 276 |
+
'gfdl-1.1-no-invariants-or-later': {'id': 'GFDL-1.1-no-invariants-or-later', 'deprecated': False},
|
| 277 |
+
'gfdl-1.1-only': {'id': 'GFDL-1.1-only', 'deprecated': False},
|
| 278 |
+
'gfdl-1.1-or-later': {'id': 'GFDL-1.1-or-later', 'deprecated': False},
|
| 279 |
+
'gfdl-1.2': {'id': 'GFDL-1.2', 'deprecated': True},
|
| 280 |
+
'gfdl-1.2-invariants-only': {'id': 'GFDL-1.2-invariants-only', 'deprecated': False},
|
| 281 |
+
'gfdl-1.2-invariants-or-later': {'id': 'GFDL-1.2-invariants-or-later', 'deprecated': False},
|
| 282 |
+
'gfdl-1.2-no-invariants-only': {'id': 'GFDL-1.2-no-invariants-only', 'deprecated': False},
|
| 283 |
+
'gfdl-1.2-no-invariants-or-later': {'id': 'GFDL-1.2-no-invariants-or-later', 'deprecated': False},
|
| 284 |
+
'gfdl-1.2-only': {'id': 'GFDL-1.2-only', 'deprecated': False},
|
| 285 |
+
'gfdl-1.2-or-later': {'id': 'GFDL-1.2-or-later', 'deprecated': False},
|
| 286 |
+
'gfdl-1.3': {'id': 'GFDL-1.3', 'deprecated': True},
|
| 287 |
+
'gfdl-1.3-invariants-only': {'id': 'GFDL-1.3-invariants-only', 'deprecated': False},
|
| 288 |
+
'gfdl-1.3-invariants-or-later': {'id': 'GFDL-1.3-invariants-or-later', 'deprecated': False},
|
| 289 |
+
'gfdl-1.3-no-invariants-only': {'id': 'GFDL-1.3-no-invariants-only', 'deprecated': False},
|
| 290 |
+
'gfdl-1.3-no-invariants-or-later': {'id': 'GFDL-1.3-no-invariants-or-later', 'deprecated': False},
|
| 291 |
+
'gfdl-1.3-only': {'id': 'GFDL-1.3-only', 'deprecated': False},
|
| 292 |
+
'gfdl-1.3-or-later': {'id': 'GFDL-1.3-or-later', 'deprecated': False},
|
| 293 |
+
'giftware': {'id': 'Giftware', 'deprecated': False},
|
| 294 |
+
'gl2ps': {'id': 'GL2PS', 'deprecated': False},
|
| 295 |
+
'glide': {'id': 'Glide', 'deprecated': False},
|
| 296 |
+
'glulxe': {'id': 'Glulxe', 'deprecated': False},
|
| 297 |
+
'glwtpl': {'id': 'GLWTPL', 'deprecated': False},
|
| 298 |
+
'gnuplot': {'id': 'gnuplot', 'deprecated': False},
|
| 299 |
+
'gpl-1.0': {'id': 'GPL-1.0', 'deprecated': True},
|
| 300 |
+
'gpl-1.0+': {'id': 'GPL-1.0+', 'deprecated': True},
|
| 301 |
+
'gpl-1.0-only': {'id': 'GPL-1.0-only', 'deprecated': False},
|
| 302 |
+
'gpl-1.0-or-later': {'id': 'GPL-1.0-or-later', 'deprecated': False},
|
| 303 |
+
'gpl-2.0': {'id': 'GPL-2.0', 'deprecated': True},
|
| 304 |
+
'gpl-2.0+': {'id': 'GPL-2.0+', 'deprecated': True},
|
| 305 |
+
'gpl-2.0-only': {'id': 'GPL-2.0-only', 'deprecated': False},
|
| 306 |
+
'gpl-2.0-or-later': {'id': 'GPL-2.0-or-later', 'deprecated': False},
|
| 307 |
+
'gpl-2.0-with-autoconf-exception': {'id': 'GPL-2.0-with-autoconf-exception', 'deprecated': True},
|
| 308 |
+
'gpl-2.0-with-bison-exception': {'id': 'GPL-2.0-with-bison-exception', 'deprecated': True},
|
| 309 |
+
'gpl-2.0-with-classpath-exception': {'id': 'GPL-2.0-with-classpath-exception', 'deprecated': True},
|
| 310 |
+
'gpl-2.0-with-font-exception': {'id': 'GPL-2.0-with-font-exception', 'deprecated': True},
|
| 311 |
+
'gpl-2.0-with-gcc-exception': {'id': 'GPL-2.0-with-GCC-exception', 'deprecated': True},
|
| 312 |
+
'gpl-3.0': {'id': 'GPL-3.0', 'deprecated': True},
|
| 313 |
+
'gpl-3.0+': {'id': 'GPL-3.0+', 'deprecated': True},
|
| 314 |
+
'gpl-3.0-only': {'id': 'GPL-3.0-only', 'deprecated': False},
|
| 315 |
+
'gpl-3.0-or-later': {'id': 'GPL-3.0-or-later', 'deprecated': False},
|
| 316 |
+
'gpl-3.0-with-autoconf-exception': {'id': 'GPL-3.0-with-autoconf-exception', 'deprecated': True},
|
| 317 |
+
'gpl-3.0-with-gcc-exception': {'id': 'GPL-3.0-with-GCC-exception', 'deprecated': True},
|
| 318 |
+
'graphics-gems': {'id': 'Graphics-Gems', 'deprecated': False},
|
| 319 |
+
'gsoap-1.3b': {'id': 'gSOAP-1.3b', 'deprecated': False},
|
| 320 |
+
'gtkbook': {'id': 'gtkbook', 'deprecated': False},
|
| 321 |
+
'gutmann': {'id': 'Gutmann', 'deprecated': False},
|
| 322 |
+
'haskellreport': {'id': 'HaskellReport', 'deprecated': False},
|
| 323 |
+
'hdparm': {'id': 'hdparm', 'deprecated': False},
|
| 324 |
+
'hidapi': {'id': 'HIDAPI', 'deprecated': False},
|
| 325 |
+
'hippocratic-2.1': {'id': 'Hippocratic-2.1', 'deprecated': False},
|
| 326 |
+
'hp-1986': {'id': 'HP-1986', 'deprecated': False},
|
| 327 |
+
'hp-1989': {'id': 'HP-1989', 'deprecated': False},
|
| 328 |
+
'hpnd': {'id': 'HPND', 'deprecated': False},
|
| 329 |
+
'hpnd-dec': {'id': 'HPND-DEC', 'deprecated': False},
|
| 330 |
+
'hpnd-doc': {'id': 'HPND-doc', 'deprecated': False},
|
| 331 |
+
'hpnd-doc-sell': {'id': 'HPND-doc-sell', 'deprecated': False},
|
| 332 |
+
'hpnd-export-us': {'id': 'HPND-export-US', 'deprecated': False},
|
| 333 |
+
'hpnd-export-us-acknowledgement': {'id': 'HPND-export-US-acknowledgement', 'deprecated': False},
|
| 334 |
+
'hpnd-export-us-modify': {'id': 'HPND-export-US-modify', 'deprecated': False},
|
| 335 |
+
'hpnd-export2-us': {'id': 'HPND-export2-US', 'deprecated': False},
|
| 336 |
+
'hpnd-fenneberg-livingston': {'id': 'HPND-Fenneberg-Livingston', 'deprecated': False},
|
| 337 |
+
'hpnd-inria-imag': {'id': 'HPND-INRIA-IMAG', 'deprecated': False},
|
| 338 |
+
'hpnd-intel': {'id': 'HPND-Intel', 'deprecated': False},
|
| 339 |
+
'hpnd-kevlin-henney': {'id': 'HPND-Kevlin-Henney', 'deprecated': False},
|
| 340 |
+
'hpnd-markus-kuhn': {'id': 'HPND-Markus-Kuhn', 'deprecated': False},
|
| 341 |
+
'hpnd-merchantability-variant': {'id': 'HPND-merchantability-variant', 'deprecated': False},
|
| 342 |
+
'hpnd-mit-disclaimer': {'id': 'HPND-MIT-disclaimer', 'deprecated': False},
|
| 343 |
+
'hpnd-netrek': {'id': 'HPND-Netrek', 'deprecated': False},
|
| 344 |
+
'hpnd-pbmplus': {'id': 'HPND-Pbmplus', 'deprecated': False},
|
| 345 |
+
'hpnd-sell-mit-disclaimer-xserver': {'id': 'HPND-sell-MIT-disclaimer-xserver', 'deprecated': False},
|
| 346 |
+
'hpnd-sell-regexpr': {'id': 'HPND-sell-regexpr', 'deprecated': False},
|
| 347 |
+
'hpnd-sell-variant': {'id': 'HPND-sell-variant', 'deprecated': False},
|
| 348 |
+
'hpnd-sell-variant-mit-disclaimer': {'id': 'HPND-sell-variant-MIT-disclaimer', 'deprecated': False},
|
| 349 |
+
'hpnd-sell-variant-mit-disclaimer-rev': {'id': 'HPND-sell-variant-MIT-disclaimer-rev', 'deprecated': False},
|
| 350 |
+
'hpnd-uc': {'id': 'HPND-UC', 'deprecated': False},
|
| 351 |
+
'hpnd-uc-export-us': {'id': 'HPND-UC-export-US', 'deprecated': False},
|
| 352 |
+
'htmltidy': {'id': 'HTMLTIDY', 'deprecated': False},
|
| 353 |
+
'ibm-pibs': {'id': 'IBM-pibs', 'deprecated': False},
|
| 354 |
+
'icu': {'id': 'ICU', 'deprecated': False},
|
| 355 |
+
'iec-code-components-eula': {'id': 'IEC-Code-Components-EULA', 'deprecated': False},
|
| 356 |
+
'ijg': {'id': 'IJG', 'deprecated': False},
|
| 357 |
+
'ijg-short': {'id': 'IJG-short', 'deprecated': False},
|
| 358 |
+
'imagemagick': {'id': 'ImageMagick', 'deprecated': False},
|
| 359 |
+
'imatix': {'id': 'iMatix', 'deprecated': False},
|
| 360 |
+
'imlib2': {'id': 'Imlib2', 'deprecated': False},
|
| 361 |
+
'info-zip': {'id': 'Info-ZIP', 'deprecated': False},
|
| 362 |
+
'inner-net-2.0': {'id': 'Inner-Net-2.0', 'deprecated': False},
|
| 363 |
+
'intel': {'id': 'Intel', 'deprecated': False},
|
| 364 |
+
'intel-acpi': {'id': 'Intel-ACPI', 'deprecated': False},
|
| 365 |
+
'interbase-1.0': {'id': 'Interbase-1.0', 'deprecated': False},
|
| 366 |
+
'ipa': {'id': 'IPA', 'deprecated': False},
|
| 367 |
+
'ipl-1.0': {'id': 'IPL-1.0', 'deprecated': False},
|
| 368 |
+
'isc': {'id': 'ISC', 'deprecated': False},
|
| 369 |
+
'isc-veillard': {'id': 'ISC-Veillard', 'deprecated': False},
|
| 370 |
+
'jam': {'id': 'Jam', 'deprecated': False},
|
| 371 |
+
'jasper-2.0': {'id': 'JasPer-2.0', 'deprecated': False},
|
| 372 |
+
'jpl-image': {'id': 'JPL-image', 'deprecated': False},
|
| 373 |
+
'jpnic': {'id': 'JPNIC', 'deprecated': False},
|
| 374 |
+
'json': {'id': 'JSON', 'deprecated': False},
|
| 375 |
+
'kastrup': {'id': 'Kastrup', 'deprecated': False},
|
| 376 |
+
'kazlib': {'id': 'Kazlib', 'deprecated': False},
|
| 377 |
+
'knuth-ctan': {'id': 'Knuth-CTAN', 'deprecated': False},
|
| 378 |
+
'lal-1.2': {'id': 'LAL-1.2', 'deprecated': False},
|
| 379 |
+
'lal-1.3': {'id': 'LAL-1.3', 'deprecated': False},
|
| 380 |
+
'latex2e': {'id': 'Latex2e', 'deprecated': False},
|
| 381 |
+
'latex2e-translated-notice': {'id': 'Latex2e-translated-notice', 'deprecated': False},
|
| 382 |
+
'leptonica': {'id': 'Leptonica', 'deprecated': False},
|
| 383 |
+
'lgpl-2.0': {'id': 'LGPL-2.0', 'deprecated': True},
|
| 384 |
+
'lgpl-2.0+': {'id': 'LGPL-2.0+', 'deprecated': True},
|
| 385 |
+
'lgpl-2.0-only': {'id': 'LGPL-2.0-only', 'deprecated': False},
|
| 386 |
+
'lgpl-2.0-or-later': {'id': 'LGPL-2.0-or-later', 'deprecated': False},
|
| 387 |
+
'lgpl-2.1': {'id': 'LGPL-2.1', 'deprecated': True},
|
| 388 |
+
'lgpl-2.1+': {'id': 'LGPL-2.1+', 'deprecated': True},
|
| 389 |
+
'lgpl-2.1-only': {'id': 'LGPL-2.1-only', 'deprecated': False},
|
| 390 |
+
'lgpl-2.1-or-later': {'id': 'LGPL-2.1-or-later', 'deprecated': False},
|
| 391 |
+
'lgpl-3.0': {'id': 'LGPL-3.0', 'deprecated': True},
|
| 392 |
+
'lgpl-3.0+': {'id': 'LGPL-3.0+', 'deprecated': True},
|
| 393 |
+
'lgpl-3.0-only': {'id': 'LGPL-3.0-only', 'deprecated': False},
|
| 394 |
+
'lgpl-3.0-or-later': {'id': 'LGPL-3.0-or-later', 'deprecated': False},
|
| 395 |
+
'lgpllr': {'id': 'LGPLLR', 'deprecated': False},
|
| 396 |
+
'libpng': {'id': 'Libpng', 'deprecated': False},
|
| 397 |
+
'libpng-2.0': {'id': 'libpng-2.0', 'deprecated': False},
|
| 398 |
+
'libselinux-1.0': {'id': 'libselinux-1.0', 'deprecated': False},
|
| 399 |
+
'libtiff': {'id': 'libtiff', 'deprecated': False},
|
| 400 |
+
'libutil-david-nugent': {'id': 'libutil-David-Nugent', 'deprecated': False},
|
| 401 |
+
'liliq-p-1.1': {'id': 'LiLiQ-P-1.1', 'deprecated': False},
|
| 402 |
+
'liliq-r-1.1': {'id': 'LiLiQ-R-1.1', 'deprecated': False},
|
| 403 |
+
'liliq-rplus-1.1': {'id': 'LiLiQ-Rplus-1.1', 'deprecated': False},
|
| 404 |
+
'linux-man-pages-1-para': {'id': 'Linux-man-pages-1-para', 'deprecated': False},
|
| 405 |
+
'linux-man-pages-copyleft': {'id': 'Linux-man-pages-copyleft', 'deprecated': False},
|
| 406 |
+
'linux-man-pages-copyleft-2-para': {'id': 'Linux-man-pages-copyleft-2-para', 'deprecated': False},
|
| 407 |
+
'linux-man-pages-copyleft-var': {'id': 'Linux-man-pages-copyleft-var', 'deprecated': False},
|
| 408 |
+
'linux-openib': {'id': 'Linux-OpenIB', 'deprecated': False},
|
| 409 |
+
'loop': {'id': 'LOOP', 'deprecated': False},
|
| 410 |
+
'lpd-document': {'id': 'LPD-document', 'deprecated': False},
|
| 411 |
+
'lpl-1.0': {'id': 'LPL-1.0', 'deprecated': False},
|
| 412 |
+
'lpl-1.02': {'id': 'LPL-1.02', 'deprecated': False},
|
| 413 |
+
'lppl-1.0': {'id': 'LPPL-1.0', 'deprecated': False},
|
| 414 |
+
'lppl-1.1': {'id': 'LPPL-1.1', 'deprecated': False},
|
| 415 |
+
'lppl-1.2': {'id': 'LPPL-1.2', 'deprecated': False},
|
| 416 |
+
'lppl-1.3a': {'id': 'LPPL-1.3a', 'deprecated': False},
|
| 417 |
+
'lppl-1.3c': {'id': 'LPPL-1.3c', 'deprecated': False},
|
| 418 |
+
'lsof': {'id': 'lsof', 'deprecated': False},
|
| 419 |
+
'lucida-bitmap-fonts': {'id': 'Lucida-Bitmap-Fonts', 'deprecated': False},
|
| 420 |
+
'lzma-sdk-9.11-to-9.20': {'id': 'LZMA-SDK-9.11-to-9.20', 'deprecated': False},
|
| 421 |
+
'lzma-sdk-9.22': {'id': 'LZMA-SDK-9.22', 'deprecated': False},
|
| 422 |
+
'mackerras-3-clause': {'id': 'Mackerras-3-Clause', 'deprecated': False},
|
| 423 |
+
'mackerras-3-clause-acknowledgment': {'id': 'Mackerras-3-Clause-acknowledgment', 'deprecated': False},
|
| 424 |
+
'magaz': {'id': 'magaz', 'deprecated': False},
|
| 425 |
+
'mailprio': {'id': 'mailprio', 'deprecated': False},
|
| 426 |
+
'makeindex': {'id': 'MakeIndex', 'deprecated': False},
|
| 427 |
+
'martin-birgmeier': {'id': 'Martin-Birgmeier', 'deprecated': False},
|
| 428 |
+
'mcphee-slideshow': {'id': 'McPhee-slideshow', 'deprecated': False},
|
| 429 |
+
'metamail': {'id': 'metamail', 'deprecated': False},
|
| 430 |
+
'minpack': {'id': 'Minpack', 'deprecated': False},
|
| 431 |
+
'miros': {'id': 'MirOS', 'deprecated': False},
|
| 432 |
+
'mit': {'id': 'MIT', 'deprecated': False},
|
| 433 |
+
'mit-0': {'id': 'MIT-0', 'deprecated': False},
|
| 434 |
+
'mit-advertising': {'id': 'MIT-advertising', 'deprecated': False},
|
| 435 |
+
'mit-cmu': {'id': 'MIT-CMU', 'deprecated': False},
|
| 436 |
+
'mit-enna': {'id': 'MIT-enna', 'deprecated': False},
|
| 437 |
+
'mit-feh': {'id': 'MIT-feh', 'deprecated': False},
|
| 438 |
+
'mit-festival': {'id': 'MIT-Festival', 'deprecated': False},
|
| 439 |
+
'mit-khronos-old': {'id': 'MIT-Khronos-old', 'deprecated': False},
|
| 440 |
+
'mit-modern-variant': {'id': 'MIT-Modern-Variant', 'deprecated': False},
|
| 441 |
+
'mit-open-group': {'id': 'MIT-open-group', 'deprecated': False},
|
| 442 |
+
'mit-testregex': {'id': 'MIT-testregex', 'deprecated': False},
|
| 443 |
+
'mit-wu': {'id': 'MIT-Wu', 'deprecated': False},
|
| 444 |
+
'mitnfa': {'id': 'MITNFA', 'deprecated': False},
|
| 445 |
+
'mmixware': {'id': 'MMIXware', 'deprecated': False},
|
| 446 |
+
'motosoto': {'id': 'Motosoto', 'deprecated': False},
|
| 447 |
+
'mpeg-ssg': {'id': 'MPEG-SSG', 'deprecated': False},
|
| 448 |
+
'mpi-permissive': {'id': 'mpi-permissive', 'deprecated': False},
|
| 449 |
+
'mpich2': {'id': 'mpich2', 'deprecated': False},
|
| 450 |
+
'mpl-1.0': {'id': 'MPL-1.0', 'deprecated': False},
|
| 451 |
+
'mpl-1.1': {'id': 'MPL-1.1', 'deprecated': False},
|
| 452 |
+
'mpl-2.0': {'id': 'MPL-2.0', 'deprecated': False},
|
| 453 |
+
'mpl-2.0-no-copyleft-exception': {'id': 'MPL-2.0-no-copyleft-exception', 'deprecated': False},
|
| 454 |
+
'mplus': {'id': 'mplus', 'deprecated': False},
|
| 455 |
+
'ms-lpl': {'id': 'MS-LPL', 'deprecated': False},
|
| 456 |
+
'ms-pl': {'id': 'MS-PL', 'deprecated': False},
|
| 457 |
+
'ms-rl': {'id': 'MS-RL', 'deprecated': False},
|
| 458 |
+
'mtll': {'id': 'MTLL', 'deprecated': False},
|
| 459 |
+
'mulanpsl-1.0': {'id': 'MulanPSL-1.0', 'deprecated': False},
|
| 460 |
+
'mulanpsl-2.0': {'id': 'MulanPSL-2.0', 'deprecated': False},
|
| 461 |
+
'multics': {'id': 'Multics', 'deprecated': False},
|
| 462 |
+
'mup': {'id': 'Mup', 'deprecated': False},
|
| 463 |
+
'naist-2003': {'id': 'NAIST-2003', 'deprecated': False},
|
| 464 |
+
'nasa-1.3': {'id': 'NASA-1.3', 'deprecated': False},
|
| 465 |
+
'naumen': {'id': 'Naumen', 'deprecated': False},
|
| 466 |
+
'nbpl-1.0': {'id': 'NBPL-1.0', 'deprecated': False},
|
| 467 |
+
'ncbi-pd': {'id': 'NCBI-PD', 'deprecated': False},
|
| 468 |
+
'ncgl-uk-2.0': {'id': 'NCGL-UK-2.0', 'deprecated': False},
|
| 469 |
+
'ncl': {'id': 'NCL', 'deprecated': False},
|
| 470 |
+
'ncsa': {'id': 'NCSA', 'deprecated': False},
|
| 471 |
+
'net-snmp': {'id': 'Net-SNMP', 'deprecated': True},
|
| 472 |
+
'netcdf': {'id': 'NetCDF', 'deprecated': False},
|
| 473 |
+
'newsletr': {'id': 'Newsletr', 'deprecated': False},
|
| 474 |
+
'ngpl': {'id': 'NGPL', 'deprecated': False},
|
| 475 |
+
'nicta-1.0': {'id': 'NICTA-1.0', 'deprecated': False},
|
| 476 |
+
'nist-pd': {'id': 'NIST-PD', 'deprecated': False},
|
| 477 |
+
'nist-pd-fallback': {'id': 'NIST-PD-fallback', 'deprecated': False},
|
| 478 |
+
'nist-software': {'id': 'NIST-Software', 'deprecated': False},
|
| 479 |
+
'nlod-1.0': {'id': 'NLOD-1.0', 'deprecated': False},
|
| 480 |
+
'nlod-2.0': {'id': 'NLOD-2.0', 'deprecated': False},
|
| 481 |
+
'nlpl': {'id': 'NLPL', 'deprecated': False},
|
| 482 |
+
'nokia': {'id': 'Nokia', 'deprecated': False},
|
| 483 |
+
'nosl': {'id': 'NOSL', 'deprecated': False},
|
| 484 |
+
'noweb': {'id': 'Noweb', 'deprecated': False},
|
| 485 |
+
'npl-1.0': {'id': 'NPL-1.0', 'deprecated': False},
|
| 486 |
+
'npl-1.1': {'id': 'NPL-1.1', 'deprecated': False},
|
| 487 |
+
'nposl-3.0': {'id': 'NPOSL-3.0', 'deprecated': False},
|
| 488 |
+
'nrl': {'id': 'NRL', 'deprecated': False},
|
| 489 |
+
'ntp': {'id': 'NTP', 'deprecated': False},
|
| 490 |
+
'ntp-0': {'id': 'NTP-0', 'deprecated': False},
|
| 491 |
+
'nunit': {'id': 'Nunit', 'deprecated': True},
|
| 492 |
+
'o-uda-1.0': {'id': 'O-UDA-1.0', 'deprecated': False},
|
| 493 |
+
'oar': {'id': 'OAR', 'deprecated': False},
|
| 494 |
+
'occt-pl': {'id': 'OCCT-PL', 'deprecated': False},
|
| 495 |
+
'oclc-2.0': {'id': 'OCLC-2.0', 'deprecated': False},
|
| 496 |
+
'odbl-1.0': {'id': 'ODbL-1.0', 'deprecated': False},
|
| 497 |
+
'odc-by-1.0': {'id': 'ODC-By-1.0', 'deprecated': False},
|
| 498 |
+
'offis': {'id': 'OFFIS', 'deprecated': False},
|
| 499 |
+
'ofl-1.0': {'id': 'OFL-1.0', 'deprecated': False},
|
| 500 |
+
'ofl-1.0-no-rfn': {'id': 'OFL-1.0-no-RFN', 'deprecated': False},
|
| 501 |
+
'ofl-1.0-rfn': {'id': 'OFL-1.0-RFN', 'deprecated': False},
|
| 502 |
+
'ofl-1.1': {'id': 'OFL-1.1', 'deprecated': False},
|
| 503 |
+
'ofl-1.1-no-rfn': {'id': 'OFL-1.1-no-RFN', 'deprecated': False},
|
| 504 |
+
'ofl-1.1-rfn': {'id': 'OFL-1.1-RFN', 'deprecated': False},
|
| 505 |
+
'ogc-1.0': {'id': 'OGC-1.0', 'deprecated': False},
|
| 506 |
+
'ogdl-taiwan-1.0': {'id': 'OGDL-Taiwan-1.0', 'deprecated': False},
|
| 507 |
+
'ogl-canada-2.0': {'id': 'OGL-Canada-2.0', 'deprecated': False},
|
| 508 |
+
'ogl-uk-1.0': {'id': 'OGL-UK-1.0', 'deprecated': False},
|
| 509 |
+
'ogl-uk-2.0': {'id': 'OGL-UK-2.0', 'deprecated': False},
|
| 510 |
+
'ogl-uk-3.0': {'id': 'OGL-UK-3.0', 'deprecated': False},
|
| 511 |
+
'ogtsl': {'id': 'OGTSL', 'deprecated': False},
|
| 512 |
+
'oldap-1.1': {'id': 'OLDAP-1.1', 'deprecated': False},
|
| 513 |
+
'oldap-1.2': {'id': 'OLDAP-1.2', 'deprecated': False},
|
| 514 |
+
'oldap-1.3': {'id': 'OLDAP-1.3', 'deprecated': False},
|
| 515 |
+
'oldap-1.4': {'id': 'OLDAP-1.4', 'deprecated': False},
|
| 516 |
+
'oldap-2.0': {'id': 'OLDAP-2.0', 'deprecated': False},
|
| 517 |
+
'oldap-2.0.1': {'id': 'OLDAP-2.0.1', 'deprecated': False},
|
| 518 |
+
'oldap-2.1': {'id': 'OLDAP-2.1', 'deprecated': False},
|
| 519 |
+
'oldap-2.2': {'id': 'OLDAP-2.2', 'deprecated': False},
|
| 520 |
+
'oldap-2.2.1': {'id': 'OLDAP-2.2.1', 'deprecated': False},
|
| 521 |
+
'oldap-2.2.2': {'id': 'OLDAP-2.2.2', 'deprecated': False},
|
| 522 |
+
'oldap-2.3': {'id': 'OLDAP-2.3', 'deprecated': False},
|
| 523 |
+
'oldap-2.4': {'id': 'OLDAP-2.4', 'deprecated': False},
|
| 524 |
+
'oldap-2.5': {'id': 'OLDAP-2.5', 'deprecated': False},
|
| 525 |
+
'oldap-2.6': {'id': 'OLDAP-2.6', 'deprecated': False},
|
| 526 |
+
'oldap-2.7': {'id': 'OLDAP-2.7', 'deprecated': False},
|
| 527 |
+
'oldap-2.8': {'id': 'OLDAP-2.8', 'deprecated': False},
|
| 528 |
+
'olfl-1.3': {'id': 'OLFL-1.3', 'deprecated': False},
|
| 529 |
+
'oml': {'id': 'OML', 'deprecated': False},
|
| 530 |
+
'openpbs-2.3': {'id': 'OpenPBS-2.3', 'deprecated': False},
|
| 531 |
+
'openssl': {'id': 'OpenSSL', 'deprecated': False},
|
| 532 |
+
'openssl-standalone': {'id': 'OpenSSL-standalone', 'deprecated': False},
|
| 533 |
+
'openvision': {'id': 'OpenVision', 'deprecated': False},
|
| 534 |
+
'opl-1.0': {'id': 'OPL-1.0', 'deprecated': False},
|
| 535 |
+
'opl-uk-3.0': {'id': 'OPL-UK-3.0', 'deprecated': False},
|
| 536 |
+
'opubl-1.0': {'id': 'OPUBL-1.0', 'deprecated': False},
|
| 537 |
+
'oset-pl-2.1': {'id': 'OSET-PL-2.1', 'deprecated': False},
|
| 538 |
+
'osl-1.0': {'id': 'OSL-1.0', 'deprecated': False},
|
| 539 |
+
'osl-1.1': {'id': 'OSL-1.1', 'deprecated': False},
|
| 540 |
+
'osl-2.0': {'id': 'OSL-2.0', 'deprecated': False},
|
| 541 |
+
'osl-2.1': {'id': 'OSL-2.1', 'deprecated': False},
|
| 542 |
+
'osl-3.0': {'id': 'OSL-3.0', 'deprecated': False},
|
| 543 |
+
'padl': {'id': 'PADL', 'deprecated': False},
|
| 544 |
+
'parity-6.0.0': {'id': 'Parity-6.0.0', 'deprecated': False},
|
| 545 |
+
'parity-7.0.0': {'id': 'Parity-7.0.0', 'deprecated': False},
|
| 546 |
+
'pddl-1.0': {'id': 'PDDL-1.0', 'deprecated': False},
|
| 547 |
+
'php-3.0': {'id': 'PHP-3.0', 'deprecated': False},
|
| 548 |
+
'php-3.01': {'id': 'PHP-3.01', 'deprecated': False},
|
| 549 |
+
'pixar': {'id': 'Pixar', 'deprecated': False},
|
| 550 |
+
'pkgconf': {'id': 'pkgconf', 'deprecated': False},
|
| 551 |
+
'plexus': {'id': 'Plexus', 'deprecated': False},
|
| 552 |
+
'pnmstitch': {'id': 'pnmstitch', 'deprecated': False},
|
| 553 |
+
'polyform-noncommercial-1.0.0': {'id': 'PolyForm-Noncommercial-1.0.0', 'deprecated': False},
|
| 554 |
+
'polyform-small-business-1.0.0': {'id': 'PolyForm-Small-Business-1.0.0', 'deprecated': False},
|
| 555 |
+
'postgresql': {'id': 'PostgreSQL', 'deprecated': False},
|
| 556 |
+
'ppl': {'id': 'PPL', 'deprecated': False},
|
| 557 |
+
'psf-2.0': {'id': 'PSF-2.0', 'deprecated': False},
|
| 558 |
+
'psfrag': {'id': 'psfrag', 'deprecated': False},
|
| 559 |
+
'psutils': {'id': 'psutils', 'deprecated': False},
|
| 560 |
+
'python-2.0': {'id': 'Python-2.0', 'deprecated': False},
|
| 561 |
+
'python-2.0.1': {'id': 'Python-2.0.1', 'deprecated': False},
|
| 562 |
+
'python-ldap': {'id': 'python-ldap', 'deprecated': False},
|
| 563 |
+
'qhull': {'id': 'Qhull', 'deprecated': False},
|
| 564 |
+
'qpl-1.0': {'id': 'QPL-1.0', 'deprecated': False},
|
| 565 |
+
'qpl-1.0-inria-2004': {'id': 'QPL-1.0-INRIA-2004', 'deprecated': False},
|
| 566 |
+
'radvd': {'id': 'radvd', 'deprecated': False},
|
| 567 |
+
'rdisc': {'id': 'Rdisc', 'deprecated': False},
|
| 568 |
+
'rhecos-1.1': {'id': 'RHeCos-1.1', 'deprecated': False},
|
| 569 |
+
'rpl-1.1': {'id': 'RPL-1.1', 'deprecated': False},
|
| 570 |
+
'rpl-1.5': {'id': 'RPL-1.5', 'deprecated': False},
|
| 571 |
+
'rpsl-1.0': {'id': 'RPSL-1.0', 'deprecated': False},
|
| 572 |
+
'rsa-md': {'id': 'RSA-MD', 'deprecated': False},
|
| 573 |
+
'rscpl': {'id': 'RSCPL', 'deprecated': False},
|
| 574 |
+
'ruby': {'id': 'Ruby', 'deprecated': False},
|
| 575 |
+
'ruby-pty': {'id': 'Ruby-pty', 'deprecated': False},
|
| 576 |
+
'sax-pd': {'id': 'SAX-PD', 'deprecated': False},
|
| 577 |
+
'sax-pd-2.0': {'id': 'SAX-PD-2.0', 'deprecated': False},
|
| 578 |
+
'saxpath': {'id': 'Saxpath', 'deprecated': False},
|
| 579 |
+
'scea': {'id': 'SCEA', 'deprecated': False},
|
| 580 |
+
'schemereport': {'id': 'SchemeReport', 'deprecated': False},
|
| 581 |
+
'sendmail': {'id': 'Sendmail', 'deprecated': False},
|
| 582 |
+
'sendmail-8.23': {'id': 'Sendmail-8.23', 'deprecated': False},
|
| 583 |
+
'sgi-b-1.0': {'id': 'SGI-B-1.0', 'deprecated': False},
|
| 584 |
+
'sgi-b-1.1': {'id': 'SGI-B-1.1', 'deprecated': False},
|
| 585 |
+
'sgi-b-2.0': {'id': 'SGI-B-2.0', 'deprecated': False},
|
| 586 |
+
'sgi-opengl': {'id': 'SGI-OpenGL', 'deprecated': False},
|
| 587 |
+
'sgp4': {'id': 'SGP4', 'deprecated': False},
|
| 588 |
+
'shl-0.5': {'id': 'SHL-0.5', 'deprecated': False},
|
| 589 |
+
'shl-0.51': {'id': 'SHL-0.51', 'deprecated': False},
|
| 590 |
+
'simpl-2.0': {'id': 'SimPL-2.0', 'deprecated': False},
|
| 591 |
+
'sissl': {'id': 'SISSL', 'deprecated': False},
|
| 592 |
+
'sissl-1.2': {'id': 'SISSL-1.2', 'deprecated': False},
|
| 593 |
+
'sl': {'id': 'SL', 'deprecated': False},
|
| 594 |
+
'sleepycat': {'id': 'Sleepycat', 'deprecated': False},
|
| 595 |
+
'smlnj': {'id': 'SMLNJ', 'deprecated': False},
|
| 596 |
+
'smppl': {'id': 'SMPPL', 'deprecated': False},
|
| 597 |
+
'snia': {'id': 'SNIA', 'deprecated': False},
|
| 598 |
+
'snprintf': {'id': 'snprintf', 'deprecated': False},
|
| 599 |
+
'softsurfer': {'id': 'softSurfer', 'deprecated': False},
|
| 600 |
+
'soundex': {'id': 'Soundex', 'deprecated': False},
|
| 601 |
+
'spencer-86': {'id': 'Spencer-86', 'deprecated': False},
|
| 602 |
+
'spencer-94': {'id': 'Spencer-94', 'deprecated': False},
|
| 603 |
+
'spencer-99': {'id': 'Spencer-99', 'deprecated': False},
|
| 604 |
+
'spl-1.0': {'id': 'SPL-1.0', 'deprecated': False},
|
| 605 |
+
'ssh-keyscan': {'id': 'ssh-keyscan', 'deprecated': False},
|
| 606 |
+
'ssh-openssh': {'id': 'SSH-OpenSSH', 'deprecated': False},
|
| 607 |
+
'ssh-short': {'id': 'SSH-short', 'deprecated': False},
|
| 608 |
+
'ssleay-standalone': {'id': 'SSLeay-standalone', 'deprecated': False},
|
| 609 |
+
'sspl-1.0': {'id': 'SSPL-1.0', 'deprecated': False},
|
| 610 |
+
'standardml-nj': {'id': 'StandardML-NJ', 'deprecated': True},
|
| 611 |
+
'sugarcrm-1.1.3': {'id': 'SugarCRM-1.1.3', 'deprecated': False},
|
| 612 |
+
'sun-ppp': {'id': 'Sun-PPP', 'deprecated': False},
|
| 613 |
+
'sun-ppp-2000': {'id': 'Sun-PPP-2000', 'deprecated': False},
|
| 614 |
+
'sunpro': {'id': 'SunPro', 'deprecated': False},
|
| 615 |
+
'swl': {'id': 'SWL', 'deprecated': False},
|
| 616 |
+
'swrule': {'id': 'swrule', 'deprecated': False},
|
| 617 |
+
'symlinks': {'id': 'Symlinks', 'deprecated': False},
|
| 618 |
+
'tapr-ohl-1.0': {'id': 'TAPR-OHL-1.0', 'deprecated': False},
|
| 619 |
+
'tcl': {'id': 'TCL', 'deprecated': False},
|
| 620 |
+
'tcp-wrappers': {'id': 'TCP-wrappers', 'deprecated': False},
|
| 621 |
+
'termreadkey': {'id': 'TermReadKey', 'deprecated': False},
|
| 622 |
+
'tgppl-1.0': {'id': 'TGPPL-1.0', 'deprecated': False},
|
| 623 |
+
'threeparttable': {'id': 'threeparttable', 'deprecated': False},
|
| 624 |
+
'tmate': {'id': 'TMate', 'deprecated': False},
|
| 625 |
+
'torque-1.1': {'id': 'TORQUE-1.1', 'deprecated': False},
|
| 626 |
+
'tosl': {'id': 'TOSL', 'deprecated': False},
|
| 627 |
+
'tpdl': {'id': 'TPDL', 'deprecated': False},
|
| 628 |
+
'tpl-1.0': {'id': 'TPL-1.0', 'deprecated': False},
|
| 629 |
+
'ttwl': {'id': 'TTWL', 'deprecated': False},
|
| 630 |
+
'ttyp0': {'id': 'TTYP0', 'deprecated': False},
|
| 631 |
+
'tu-berlin-1.0': {'id': 'TU-Berlin-1.0', 'deprecated': False},
|
| 632 |
+
'tu-berlin-2.0': {'id': 'TU-Berlin-2.0', 'deprecated': False},
|
| 633 |
+
'ubuntu-font-1.0': {'id': 'Ubuntu-font-1.0', 'deprecated': False},
|
| 634 |
+
'ucar': {'id': 'UCAR', 'deprecated': False},
|
| 635 |
+
'ucl-1.0': {'id': 'UCL-1.0', 'deprecated': False},
|
| 636 |
+
'ulem': {'id': 'ulem', 'deprecated': False},
|
| 637 |
+
'umich-merit': {'id': 'UMich-Merit', 'deprecated': False},
|
| 638 |
+
'unicode-3.0': {'id': 'Unicode-3.0', 'deprecated': False},
|
| 639 |
+
'unicode-dfs-2015': {'id': 'Unicode-DFS-2015', 'deprecated': False},
|
| 640 |
+
'unicode-dfs-2016': {'id': 'Unicode-DFS-2016', 'deprecated': False},
|
| 641 |
+
'unicode-tou': {'id': 'Unicode-TOU', 'deprecated': False},
|
| 642 |
+
'unixcrypt': {'id': 'UnixCrypt', 'deprecated': False},
|
| 643 |
+
'unlicense': {'id': 'Unlicense', 'deprecated': False},
|
| 644 |
+
'upl-1.0': {'id': 'UPL-1.0', 'deprecated': False},
|
| 645 |
+
'urt-rle': {'id': 'URT-RLE', 'deprecated': False},
|
| 646 |
+
'vim': {'id': 'Vim', 'deprecated': False},
|
| 647 |
+
'vostrom': {'id': 'VOSTROM', 'deprecated': False},
|
| 648 |
+
'vsl-1.0': {'id': 'VSL-1.0', 'deprecated': False},
|
| 649 |
+
'w3c': {'id': 'W3C', 'deprecated': False},
|
| 650 |
+
'w3c-19980720': {'id': 'W3C-19980720', 'deprecated': False},
|
| 651 |
+
'w3c-20150513': {'id': 'W3C-20150513', 'deprecated': False},
|
| 652 |
+
'w3m': {'id': 'w3m', 'deprecated': False},
|
| 653 |
+
'watcom-1.0': {'id': 'Watcom-1.0', 'deprecated': False},
|
| 654 |
+
'widget-workshop': {'id': 'Widget-Workshop', 'deprecated': False},
|
| 655 |
+
'wsuipa': {'id': 'Wsuipa', 'deprecated': False},
|
| 656 |
+
'wtfpl': {'id': 'WTFPL', 'deprecated': False},
|
| 657 |
+
'wxwindows': {'id': 'wxWindows', 'deprecated': True},
|
| 658 |
+
'x11': {'id': 'X11', 'deprecated': False},
|
| 659 |
+
'x11-distribute-modifications-variant': {'id': 'X11-distribute-modifications-variant', 'deprecated': False},
|
| 660 |
+
'x11-swapped': {'id': 'X11-swapped', 'deprecated': False},
|
| 661 |
+
'xdebug-1.03': {'id': 'Xdebug-1.03', 'deprecated': False},
|
| 662 |
+
'xerox': {'id': 'Xerox', 'deprecated': False},
|
| 663 |
+
'xfig': {'id': 'Xfig', 'deprecated': False},
|
| 664 |
+
'xfree86-1.1': {'id': 'XFree86-1.1', 'deprecated': False},
|
| 665 |
+
'xinetd': {'id': 'xinetd', 'deprecated': False},
|
| 666 |
+
'xkeyboard-config-zinoviev': {'id': 'xkeyboard-config-Zinoviev', 'deprecated': False},
|
| 667 |
+
'xlock': {'id': 'xlock', 'deprecated': False},
|
| 668 |
+
'xnet': {'id': 'Xnet', 'deprecated': False},
|
| 669 |
+
'xpp': {'id': 'xpp', 'deprecated': False},
|
| 670 |
+
'xskat': {'id': 'XSkat', 'deprecated': False},
|
| 671 |
+
'xzoom': {'id': 'xzoom', 'deprecated': False},
|
| 672 |
+
'ypl-1.0': {'id': 'YPL-1.0', 'deprecated': False},
|
| 673 |
+
'ypl-1.1': {'id': 'YPL-1.1', 'deprecated': False},
|
| 674 |
+
'zed': {'id': 'Zed', 'deprecated': False},
|
| 675 |
+
'zeeff': {'id': 'Zeeff', 'deprecated': False},
|
| 676 |
+
'zend-2.0': {'id': 'Zend-2.0', 'deprecated': False},
|
| 677 |
+
'zimbra-1.3': {'id': 'Zimbra-1.3', 'deprecated': False},
|
| 678 |
+
'zimbra-1.4': {'id': 'Zimbra-1.4', 'deprecated': False},
|
| 679 |
+
'zlib': {'id': 'Zlib', 'deprecated': False},
|
| 680 |
+
'zlib-acknowledgement': {'id': 'zlib-acknowledgement', 'deprecated': False},
|
| 681 |
+
'zpl-1.1': {'id': 'ZPL-1.1', 'deprecated': False},
|
| 682 |
+
'zpl-2.0': {'id': 'ZPL-2.0', 'deprecated': False},
|
| 683 |
+
'zpl-2.1': {'id': 'ZPL-2.1', 'deprecated': False},
|
| 684 |
+
}
|
| 685 |
+
|
| 686 |
+
EXCEPTIONS: dict[str, SPDXException] = {
|
| 687 |
+
'389-exception': {'id': '389-exception', 'deprecated': False},
|
| 688 |
+
'asterisk-exception': {'id': 'Asterisk-exception', 'deprecated': False},
|
| 689 |
+
'asterisk-linking-protocols-exception': {'id': 'Asterisk-linking-protocols-exception', 'deprecated': False},
|
| 690 |
+
'autoconf-exception-2.0': {'id': 'Autoconf-exception-2.0', 'deprecated': False},
|
| 691 |
+
'autoconf-exception-3.0': {'id': 'Autoconf-exception-3.0', 'deprecated': False},
|
| 692 |
+
'autoconf-exception-generic': {'id': 'Autoconf-exception-generic', 'deprecated': False},
|
| 693 |
+
'autoconf-exception-generic-3.0': {'id': 'Autoconf-exception-generic-3.0', 'deprecated': False},
|
| 694 |
+
'autoconf-exception-macro': {'id': 'Autoconf-exception-macro', 'deprecated': False},
|
| 695 |
+
'bison-exception-1.24': {'id': 'Bison-exception-1.24', 'deprecated': False},
|
| 696 |
+
'bison-exception-2.2': {'id': 'Bison-exception-2.2', 'deprecated': False},
|
| 697 |
+
'bootloader-exception': {'id': 'Bootloader-exception', 'deprecated': False},
|
| 698 |
+
'classpath-exception-2.0': {'id': 'Classpath-exception-2.0', 'deprecated': False},
|
| 699 |
+
'clisp-exception-2.0': {'id': 'CLISP-exception-2.0', 'deprecated': False},
|
| 700 |
+
'cryptsetup-openssl-exception': {'id': 'cryptsetup-OpenSSL-exception', 'deprecated': False},
|
| 701 |
+
'digirule-foss-exception': {'id': 'DigiRule-FOSS-exception', 'deprecated': False},
|
| 702 |
+
'ecos-exception-2.0': {'id': 'eCos-exception-2.0', 'deprecated': False},
|
| 703 |
+
'erlang-otp-linking-exception': {'id': 'erlang-otp-linking-exception', 'deprecated': False},
|
| 704 |
+
'fawkes-runtime-exception': {'id': 'Fawkes-Runtime-exception', 'deprecated': False},
|
| 705 |
+
'fltk-exception': {'id': 'FLTK-exception', 'deprecated': False},
|
| 706 |
+
'fmt-exception': {'id': 'fmt-exception', 'deprecated': False},
|
| 707 |
+
'font-exception-2.0': {'id': 'Font-exception-2.0', 'deprecated': False},
|
| 708 |
+
'freertos-exception-2.0': {'id': 'freertos-exception-2.0', 'deprecated': False},
|
| 709 |
+
'gcc-exception-2.0': {'id': 'GCC-exception-2.0', 'deprecated': False},
|
| 710 |
+
'gcc-exception-2.0-note': {'id': 'GCC-exception-2.0-note', 'deprecated': False},
|
| 711 |
+
'gcc-exception-3.1': {'id': 'GCC-exception-3.1', 'deprecated': False},
|
| 712 |
+
'gmsh-exception': {'id': 'Gmsh-exception', 'deprecated': False},
|
| 713 |
+
'gnat-exception': {'id': 'GNAT-exception', 'deprecated': False},
|
| 714 |
+
'gnome-examples-exception': {'id': 'GNOME-examples-exception', 'deprecated': False},
|
| 715 |
+
'gnu-compiler-exception': {'id': 'GNU-compiler-exception', 'deprecated': False},
|
| 716 |
+
'gnu-javamail-exception': {'id': 'gnu-javamail-exception', 'deprecated': False},
|
| 717 |
+
'gpl-3.0-interface-exception': {'id': 'GPL-3.0-interface-exception', 'deprecated': False},
|
| 718 |
+
'gpl-3.0-linking-exception': {'id': 'GPL-3.0-linking-exception', 'deprecated': False},
|
| 719 |
+
'gpl-3.0-linking-source-exception': {'id': 'GPL-3.0-linking-source-exception', 'deprecated': False},
|
| 720 |
+
'gpl-cc-1.0': {'id': 'GPL-CC-1.0', 'deprecated': False},
|
| 721 |
+
'gstreamer-exception-2005': {'id': 'GStreamer-exception-2005', 'deprecated': False},
|
| 722 |
+
'gstreamer-exception-2008': {'id': 'GStreamer-exception-2008', 'deprecated': False},
|
| 723 |
+
'i2p-gpl-java-exception': {'id': 'i2p-gpl-java-exception', 'deprecated': False},
|
| 724 |
+
'kicad-libraries-exception': {'id': 'KiCad-libraries-exception', 'deprecated': False},
|
| 725 |
+
'lgpl-3.0-linking-exception': {'id': 'LGPL-3.0-linking-exception', 'deprecated': False},
|
| 726 |
+
'libpri-openh323-exception': {'id': 'libpri-OpenH323-exception', 'deprecated': False},
|
| 727 |
+
'libtool-exception': {'id': 'Libtool-exception', 'deprecated': False},
|
| 728 |
+
'linux-syscall-note': {'id': 'Linux-syscall-note', 'deprecated': False},
|
| 729 |
+
'llgpl': {'id': 'LLGPL', 'deprecated': False},
|
| 730 |
+
'llvm-exception': {'id': 'LLVM-exception', 'deprecated': False},
|
| 731 |
+
'lzma-exception': {'id': 'LZMA-exception', 'deprecated': False},
|
| 732 |
+
'mif-exception': {'id': 'mif-exception', 'deprecated': False},
|
| 733 |
+
'nokia-qt-exception-1.1': {'id': 'Nokia-Qt-exception-1.1', 'deprecated': True},
|
| 734 |
+
'ocaml-lgpl-linking-exception': {'id': 'OCaml-LGPL-linking-exception', 'deprecated': False},
|
| 735 |
+
'occt-exception-1.0': {'id': 'OCCT-exception-1.0', 'deprecated': False},
|
| 736 |
+
'openjdk-assembly-exception-1.0': {'id': 'OpenJDK-assembly-exception-1.0', 'deprecated': False},
|
| 737 |
+
'openvpn-openssl-exception': {'id': 'openvpn-openssl-exception', 'deprecated': False},
|
| 738 |
+
'pcre2-exception': {'id': 'PCRE2-exception', 'deprecated': False},
|
| 739 |
+
'ps-or-pdf-font-exception-20170817': {'id': 'PS-or-PDF-font-exception-20170817', 'deprecated': False},
|
| 740 |
+
'qpl-1.0-inria-2004-exception': {'id': 'QPL-1.0-INRIA-2004-exception', 'deprecated': False},
|
| 741 |
+
'qt-gpl-exception-1.0': {'id': 'Qt-GPL-exception-1.0', 'deprecated': False},
|
| 742 |
+
'qt-lgpl-exception-1.1': {'id': 'Qt-LGPL-exception-1.1', 'deprecated': False},
|
| 743 |
+
'qwt-exception-1.0': {'id': 'Qwt-exception-1.0', 'deprecated': False},
|
| 744 |
+
'romic-exception': {'id': 'romic-exception', 'deprecated': False},
|
| 745 |
+
'rrdtool-floss-exception-2.0': {'id': 'RRDtool-FLOSS-exception-2.0', 'deprecated': False},
|
| 746 |
+
'sane-exception': {'id': 'SANE-exception', 'deprecated': False},
|
| 747 |
+
'shl-2.0': {'id': 'SHL-2.0', 'deprecated': False},
|
| 748 |
+
'shl-2.1': {'id': 'SHL-2.1', 'deprecated': False},
|
| 749 |
+
'stunnel-exception': {'id': 'stunnel-exception', 'deprecated': False},
|
| 750 |
+
'swi-exception': {'id': 'SWI-exception', 'deprecated': False},
|
| 751 |
+
'swift-exception': {'id': 'Swift-exception', 'deprecated': False},
|
| 752 |
+
'texinfo-exception': {'id': 'Texinfo-exception', 'deprecated': False},
|
| 753 |
+
'u-boot-exception-2.0': {'id': 'u-boot-exception-2.0', 'deprecated': False},
|
| 754 |
+
'ubdl-exception': {'id': 'UBDL-exception', 'deprecated': False},
|
| 755 |
+
'universal-foss-exception-1.0': {'id': 'Universal-FOSS-exception-1.0', 'deprecated': False},
|
| 756 |
+
'vsftpd-openssl-exception': {'id': 'vsftpd-openssl-exception', 'deprecated': False},
|
| 757 |
+
'wxwindows-exception-3.1': {'id': 'WxWindows-exception-3.1', 'deprecated': False},
|
| 758 |
+
'x11vnc-openssl-exception': {'id': 'x11vnc-openssl-exception', 'deprecated': False},
|
| 759 |
+
}
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/requirements.py
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file is dual licensed under the terms of the Apache License, Version
|
| 2 |
+
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
|
| 3 |
+
# for complete details.
|
| 4 |
+
from __future__ import annotations
|
| 5 |
+
|
| 6 |
+
from typing import Any, Iterator
|
| 7 |
+
|
| 8 |
+
from ._parser import parse_requirement as _parse_requirement
|
| 9 |
+
from ._tokenizer import ParserSyntaxError
|
| 10 |
+
from .markers import Marker, _normalize_extra_values
|
| 11 |
+
from .specifiers import SpecifierSet
|
| 12 |
+
from .utils import canonicalize_name
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
class InvalidRequirement(ValueError):
|
| 16 |
+
"""
|
| 17 |
+
An invalid requirement was found, users should refer to PEP 508.
|
| 18 |
+
"""
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
class Requirement:
|
| 22 |
+
"""Parse a requirement.
|
| 23 |
+
|
| 24 |
+
Parse a given requirement string into its parts, such as name, specifier,
|
| 25 |
+
URL, and extras. Raises InvalidRequirement on a badly-formed requirement
|
| 26 |
+
string.
|
| 27 |
+
"""
|
| 28 |
+
|
| 29 |
+
# TODO: Can we test whether something is contained within a requirement?
|
| 30 |
+
# If so how do we do that? Do we need to test against the _name_ of
|
| 31 |
+
# the thing as well as the version? What about the markers?
|
| 32 |
+
# TODO: Can we normalize the name and extra name?
|
| 33 |
+
|
| 34 |
+
def __init__(self, requirement_string: str) -> None:
|
| 35 |
+
try:
|
| 36 |
+
parsed = _parse_requirement(requirement_string)
|
| 37 |
+
except ParserSyntaxError as e:
|
| 38 |
+
raise InvalidRequirement(str(e)) from e
|
| 39 |
+
|
| 40 |
+
self.name: str = parsed.name
|
| 41 |
+
self.url: str | None = parsed.url or None
|
| 42 |
+
self.extras: set[str] = set(parsed.extras or [])
|
| 43 |
+
self.specifier: SpecifierSet = SpecifierSet(parsed.specifier)
|
| 44 |
+
self.marker: Marker | None = None
|
| 45 |
+
if parsed.marker is not None:
|
| 46 |
+
self.marker = Marker.__new__(Marker)
|
| 47 |
+
self.marker._markers = _normalize_extra_values(parsed.marker)
|
| 48 |
+
|
| 49 |
+
def _iter_parts(self, name: str) -> Iterator[str]:
|
| 50 |
+
yield name
|
| 51 |
+
|
| 52 |
+
if self.extras:
|
| 53 |
+
formatted_extras = ",".join(sorted(self.extras))
|
| 54 |
+
yield f"[{formatted_extras}]"
|
| 55 |
+
|
| 56 |
+
if self.specifier:
|
| 57 |
+
yield str(self.specifier)
|
| 58 |
+
|
| 59 |
+
if self.url:
|
| 60 |
+
yield f"@ {self.url}"
|
| 61 |
+
if self.marker:
|
| 62 |
+
yield " "
|
| 63 |
+
|
| 64 |
+
if self.marker:
|
| 65 |
+
yield f"; {self.marker}"
|
| 66 |
+
|
| 67 |
+
def __str__(self) -> str:
|
| 68 |
+
return "".join(self._iter_parts(self.name))
|
| 69 |
+
|
| 70 |
+
def __repr__(self) -> str:
|
| 71 |
+
return f"<Requirement('{self}')>"
|
| 72 |
+
|
| 73 |
+
def __hash__(self) -> int:
|
| 74 |
+
return hash(
|
| 75 |
+
(
|
| 76 |
+
self.__class__.__name__,
|
| 77 |
+
*self._iter_parts(canonicalize_name(self.name)),
|
| 78 |
+
)
|
| 79 |
+
)
|
| 80 |
+
|
| 81 |
+
def __eq__(self, other: Any) -> bool:
|
| 82 |
+
if not isinstance(other, Requirement):
|
| 83 |
+
return NotImplemented
|
| 84 |
+
|
| 85 |
+
return (
|
| 86 |
+
canonicalize_name(self.name) == canonicalize_name(other.name)
|
| 87 |
+
and self.extras == other.extras
|
| 88 |
+
and self.specifier == other.specifier
|
| 89 |
+
and self.url == other.url
|
| 90 |
+
and self.marker == other.marker
|
| 91 |
+
)
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/packaging/utils.py
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# This file is dual licensed under the terms of the Apache License, Version
|
| 2 |
+
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
|
| 3 |
+
# for complete details.
|
| 4 |
+
|
| 5 |
+
from __future__ import annotations
|
| 6 |
+
|
| 7 |
+
import functools
|
| 8 |
+
import re
|
| 9 |
+
from typing import NewType, Tuple, Union, cast
|
| 10 |
+
|
| 11 |
+
from .tags import Tag, parse_tag
|
| 12 |
+
from .version import InvalidVersion, Version, _TrimmedRelease
|
| 13 |
+
|
| 14 |
+
BuildTag = Union[Tuple[()], Tuple[int, str]]
|
| 15 |
+
NormalizedName = NewType("NormalizedName", str)
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
class InvalidName(ValueError):
|
| 19 |
+
"""
|
| 20 |
+
An invalid distribution name; users should refer to the packaging user guide.
|
| 21 |
+
"""
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
class InvalidWheelFilename(ValueError):
|
| 25 |
+
"""
|
| 26 |
+
An invalid wheel filename was found, users should refer to PEP 427.
|
| 27 |
+
"""
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
class InvalidSdistFilename(ValueError):
|
| 31 |
+
"""
|
| 32 |
+
An invalid sdist filename was found, users should refer to the packaging user guide.
|
| 33 |
+
"""
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
# Core metadata spec for `Name`
|
| 37 |
+
_validate_regex = re.compile(
|
| 38 |
+
r"^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$", re.IGNORECASE
|
| 39 |
+
)
|
| 40 |
+
_canonicalize_regex = re.compile(r"[-_.]+")
|
| 41 |
+
_normalized_regex = re.compile(r"^([a-z0-9]|[a-z0-9]([a-z0-9-](?!--))*[a-z0-9])$")
|
| 42 |
+
# PEP 427: The build number must start with a digit.
|
| 43 |
+
_build_tag_regex = re.compile(r"(\d+)(.*)")
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
def canonicalize_name(name: str, *, validate: bool = False) -> NormalizedName:
|
| 47 |
+
if validate and not _validate_regex.match(name):
|
| 48 |
+
raise InvalidName(f"name is invalid: {name!r}")
|
| 49 |
+
# This is taken from PEP 503.
|
| 50 |
+
value = _canonicalize_regex.sub("-", name).lower()
|
| 51 |
+
return cast(NormalizedName, value)
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
def is_normalized_name(name: str) -> bool:
|
| 55 |
+
return _normalized_regex.match(name) is not None
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
@functools.singledispatch
|
| 59 |
+
def canonicalize_version(
|
| 60 |
+
version: Version | str, *, strip_trailing_zero: bool = True
|
| 61 |
+
) -> str:
|
| 62 |
+
"""
|
| 63 |
+
Return a canonical form of a version as a string.
|
| 64 |
+
|
| 65 |
+
>>> canonicalize_version('1.0.1')
|
| 66 |
+
'1.0.1'
|
| 67 |
+
|
| 68 |
+
Per PEP 625, versions may have multiple canonical forms, differing
|
| 69 |
+
only by trailing zeros.
|
| 70 |
+
|
| 71 |
+
>>> canonicalize_version('1.0.0')
|
| 72 |
+
'1'
|
| 73 |
+
>>> canonicalize_version('1.0.0', strip_trailing_zero=False)
|
| 74 |
+
'1.0.0'
|
| 75 |
+
|
| 76 |
+
Invalid versions are returned unaltered.
|
| 77 |
+
|
| 78 |
+
>>> canonicalize_version('foo bar baz')
|
| 79 |
+
'foo bar baz'
|
| 80 |
+
"""
|
| 81 |
+
return str(_TrimmedRelease(str(version)) if strip_trailing_zero else version)
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
@canonicalize_version.register
|
| 85 |
+
def _(version: str, *, strip_trailing_zero: bool = True) -> str:
|
| 86 |
+
try:
|
| 87 |
+
parsed = Version(version)
|
| 88 |
+
except InvalidVersion:
|
| 89 |
+
# Legacy versions cannot be normalized
|
| 90 |
+
return version
|
| 91 |
+
return canonicalize_version(parsed, strip_trailing_zero=strip_trailing_zero)
|
| 92 |
+
|
| 93 |
+
|
| 94 |
+
def parse_wheel_filename(
|
| 95 |
+
filename: str,
|
| 96 |
+
) -> tuple[NormalizedName, Version, BuildTag, frozenset[Tag]]:
|
| 97 |
+
if not filename.endswith(".whl"):
|
| 98 |
+
raise InvalidWheelFilename(
|
| 99 |
+
f"Invalid wheel filename (extension must be '.whl'): {filename!r}"
|
| 100 |
+
)
|
| 101 |
+
|
| 102 |
+
filename = filename[:-4]
|
| 103 |
+
dashes = filename.count("-")
|
| 104 |
+
if dashes not in (4, 5):
|
| 105 |
+
raise InvalidWheelFilename(
|
| 106 |
+
f"Invalid wheel filename (wrong number of parts): {filename!r}"
|
| 107 |
+
)
|
| 108 |
+
|
| 109 |
+
parts = filename.split("-", dashes - 2)
|
| 110 |
+
name_part = parts[0]
|
| 111 |
+
# See PEP 427 for the rules on escaping the project name.
|
| 112 |
+
if "__" in name_part or re.match(r"^[\w\d._]*$", name_part, re.UNICODE) is None:
|
| 113 |
+
raise InvalidWheelFilename(f"Invalid project name: {filename!r}")
|
| 114 |
+
name = canonicalize_name(name_part)
|
| 115 |
+
|
| 116 |
+
try:
|
| 117 |
+
version = Version(parts[1])
|
| 118 |
+
except InvalidVersion as e:
|
| 119 |
+
raise InvalidWheelFilename(
|
| 120 |
+
f"Invalid wheel filename (invalid version): {filename!r}"
|
| 121 |
+
) from e
|
| 122 |
+
|
| 123 |
+
if dashes == 5:
|
| 124 |
+
build_part = parts[2]
|
| 125 |
+
build_match = _build_tag_regex.match(build_part)
|
| 126 |
+
if build_match is None:
|
| 127 |
+
raise InvalidWheelFilename(
|
| 128 |
+
f"Invalid build number: {build_part} in {filename!r}"
|
| 129 |
+
)
|
| 130 |
+
build = cast(BuildTag, (int(build_match.group(1)), build_match.group(2)))
|
| 131 |
+
else:
|
| 132 |
+
build = ()
|
| 133 |
+
tags = parse_tag(parts[-1])
|
| 134 |
+
return (name, version, build, tags)
|
| 135 |
+
|
| 136 |
+
|
| 137 |
+
def parse_sdist_filename(filename: str) -> tuple[NormalizedName, Version]:
|
| 138 |
+
if filename.endswith(".tar.gz"):
|
| 139 |
+
file_stem = filename[: -len(".tar.gz")]
|
| 140 |
+
elif filename.endswith(".zip"):
|
| 141 |
+
file_stem = filename[: -len(".zip")]
|
| 142 |
+
else:
|
| 143 |
+
raise InvalidSdistFilename(
|
| 144 |
+
f"Invalid sdist filename (extension must be '.tar.gz' or '.zip'):"
|
| 145 |
+
f" {filename!r}"
|
| 146 |
+
)
|
| 147 |
+
|
| 148 |
+
# We are requiring a PEP 440 version, which cannot contain dashes,
|
| 149 |
+
# so we split on the last dash.
|
| 150 |
+
name_part, sep, version_part = file_stem.rpartition("-")
|
| 151 |
+
if not sep:
|
| 152 |
+
raise InvalidSdistFilename(f"Invalid sdist filename: {filename!r}")
|
| 153 |
+
|
| 154 |
+
name = canonicalize_name(name_part)
|
| 155 |
+
|
| 156 |
+
try:
|
| 157 |
+
version = Version(version_part)
|
| 158 |
+
except InvalidVersion as e:
|
| 159 |
+
raise InvalidSdistFilename(
|
| 160 |
+
f"Invalid sdist filename (invalid version): {filename!r}"
|
| 161 |
+
) from e
|
| 162 |
+
|
| 163 |
+
return (name, version)
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-311.pyc
ADDED
|
Binary file (1.12 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-311.pyc
ADDED
|
Binary file (5.81 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-311.pyc
ADDED
|
Binary file (1.04 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/core.cpython-311.pyc
ADDED
|
Binary file (18.9 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-311.pyc
ADDED
|
Binary file (3 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-311.pyc
ADDED
|
Binary file (239 Bytes). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/uts46data.py
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pkg_resources/__init__.py
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__init__.py
ADDED
|
@@ -0,0 +1,627 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Utilities for determining application-specific dirs.
|
| 3 |
+
|
| 4 |
+
See <https://github.com/platformdirs/platformdirs> for details and usage.
|
| 5 |
+
|
| 6 |
+
"""
|
| 7 |
+
|
| 8 |
+
from __future__ import annotations
|
| 9 |
+
|
| 10 |
+
import os
|
| 11 |
+
import sys
|
| 12 |
+
from typing import TYPE_CHECKING
|
| 13 |
+
|
| 14 |
+
from .api import PlatformDirsABC
|
| 15 |
+
from .version import __version__
|
| 16 |
+
from .version import __version_tuple__ as __version_info__
|
| 17 |
+
|
| 18 |
+
if TYPE_CHECKING:
|
| 19 |
+
from pathlib import Path
|
| 20 |
+
from typing import Literal
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def _set_platform_dir_class() -> type[PlatformDirsABC]:
|
| 24 |
+
if sys.platform == "win32":
|
| 25 |
+
from pip._vendor.platformdirs.windows import Windows as Result # noqa: PLC0415
|
| 26 |
+
elif sys.platform == "darwin":
|
| 27 |
+
from pip._vendor.platformdirs.macos import MacOS as Result # noqa: PLC0415
|
| 28 |
+
else:
|
| 29 |
+
from pip._vendor.platformdirs.unix import Unix as Result # noqa: PLC0415
|
| 30 |
+
|
| 31 |
+
if os.getenv("ANDROID_DATA") == "/data" and os.getenv("ANDROID_ROOT") == "/system":
|
| 32 |
+
if os.getenv("SHELL") or os.getenv("PREFIX"):
|
| 33 |
+
return Result
|
| 34 |
+
|
| 35 |
+
from pip._vendor.platformdirs.android import _android_folder # noqa: PLC0415
|
| 36 |
+
|
| 37 |
+
if _android_folder() is not None:
|
| 38 |
+
from pip._vendor.platformdirs.android import Android # noqa: PLC0415
|
| 39 |
+
|
| 40 |
+
return Android # return to avoid redefinition of a result
|
| 41 |
+
|
| 42 |
+
return Result
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
PlatformDirs = _set_platform_dir_class() #: Currently active platform
|
| 46 |
+
AppDirs = PlatformDirs #: Backwards compatibility with appdirs
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
def user_data_dir(
|
| 50 |
+
appname: str | None = None,
|
| 51 |
+
appauthor: str | None | Literal[False] = None,
|
| 52 |
+
version: str | None = None,
|
| 53 |
+
roaming: bool = False, # noqa: FBT001, FBT002
|
| 54 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 55 |
+
) -> str:
|
| 56 |
+
"""
|
| 57 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 58 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 59 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 60 |
+
:param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
|
| 61 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 62 |
+
:returns: data directory tied to the user
|
| 63 |
+
"""
|
| 64 |
+
return PlatformDirs(
|
| 65 |
+
appname=appname,
|
| 66 |
+
appauthor=appauthor,
|
| 67 |
+
version=version,
|
| 68 |
+
roaming=roaming,
|
| 69 |
+
ensure_exists=ensure_exists,
|
| 70 |
+
).user_data_dir
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
def site_data_dir(
|
| 74 |
+
appname: str | None = None,
|
| 75 |
+
appauthor: str | None | Literal[False] = None,
|
| 76 |
+
version: str | None = None,
|
| 77 |
+
multipath: bool = False, # noqa: FBT001, FBT002
|
| 78 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 79 |
+
) -> str:
|
| 80 |
+
"""
|
| 81 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 82 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 83 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 84 |
+
:param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
|
| 85 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 86 |
+
:returns: data directory shared by users
|
| 87 |
+
"""
|
| 88 |
+
return PlatformDirs(
|
| 89 |
+
appname=appname,
|
| 90 |
+
appauthor=appauthor,
|
| 91 |
+
version=version,
|
| 92 |
+
multipath=multipath,
|
| 93 |
+
ensure_exists=ensure_exists,
|
| 94 |
+
).site_data_dir
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
def user_config_dir(
|
| 98 |
+
appname: str | None = None,
|
| 99 |
+
appauthor: str | None | Literal[False] = None,
|
| 100 |
+
version: str | None = None,
|
| 101 |
+
roaming: bool = False, # noqa: FBT001, FBT002
|
| 102 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 103 |
+
) -> str:
|
| 104 |
+
"""
|
| 105 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 106 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 107 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 108 |
+
:param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
|
| 109 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 110 |
+
:returns: config directory tied to the user
|
| 111 |
+
"""
|
| 112 |
+
return PlatformDirs(
|
| 113 |
+
appname=appname,
|
| 114 |
+
appauthor=appauthor,
|
| 115 |
+
version=version,
|
| 116 |
+
roaming=roaming,
|
| 117 |
+
ensure_exists=ensure_exists,
|
| 118 |
+
).user_config_dir
|
| 119 |
+
|
| 120 |
+
|
| 121 |
+
def site_config_dir(
|
| 122 |
+
appname: str | None = None,
|
| 123 |
+
appauthor: str | None | Literal[False] = None,
|
| 124 |
+
version: str | None = None,
|
| 125 |
+
multipath: bool = False, # noqa: FBT001, FBT002
|
| 126 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 127 |
+
) -> str:
|
| 128 |
+
"""
|
| 129 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 130 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 131 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 132 |
+
:param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
|
| 133 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 134 |
+
:returns: config directory shared by the users
|
| 135 |
+
"""
|
| 136 |
+
return PlatformDirs(
|
| 137 |
+
appname=appname,
|
| 138 |
+
appauthor=appauthor,
|
| 139 |
+
version=version,
|
| 140 |
+
multipath=multipath,
|
| 141 |
+
ensure_exists=ensure_exists,
|
| 142 |
+
).site_config_dir
|
| 143 |
+
|
| 144 |
+
|
| 145 |
+
def user_cache_dir(
|
| 146 |
+
appname: str | None = None,
|
| 147 |
+
appauthor: str | None | Literal[False] = None,
|
| 148 |
+
version: str | None = None,
|
| 149 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 150 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 151 |
+
) -> str:
|
| 152 |
+
"""
|
| 153 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 154 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 155 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 156 |
+
:param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
|
| 157 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 158 |
+
:returns: cache directory tied to the user
|
| 159 |
+
"""
|
| 160 |
+
return PlatformDirs(
|
| 161 |
+
appname=appname,
|
| 162 |
+
appauthor=appauthor,
|
| 163 |
+
version=version,
|
| 164 |
+
opinion=opinion,
|
| 165 |
+
ensure_exists=ensure_exists,
|
| 166 |
+
).user_cache_dir
|
| 167 |
+
|
| 168 |
+
|
| 169 |
+
def site_cache_dir(
|
| 170 |
+
appname: str | None = None,
|
| 171 |
+
appauthor: str | None | Literal[False] = None,
|
| 172 |
+
version: str | None = None,
|
| 173 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 174 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 175 |
+
) -> str:
|
| 176 |
+
"""
|
| 177 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 178 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 179 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 180 |
+
:param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
|
| 181 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 182 |
+
:returns: cache directory tied to the user
|
| 183 |
+
"""
|
| 184 |
+
return PlatformDirs(
|
| 185 |
+
appname=appname,
|
| 186 |
+
appauthor=appauthor,
|
| 187 |
+
version=version,
|
| 188 |
+
opinion=opinion,
|
| 189 |
+
ensure_exists=ensure_exists,
|
| 190 |
+
).site_cache_dir
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
def user_state_dir(
|
| 194 |
+
appname: str | None = None,
|
| 195 |
+
appauthor: str | None | Literal[False] = None,
|
| 196 |
+
version: str | None = None,
|
| 197 |
+
roaming: bool = False, # noqa: FBT001, FBT002
|
| 198 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 199 |
+
) -> str:
|
| 200 |
+
"""
|
| 201 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 202 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 203 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 204 |
+
:param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
|
| 205 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 206 |
+
:returns: state directory tied to the user
|
| 207 |
+
"""
|
| 208 |
+
return PlatformDirs(
|
| 209 |
+
appname=appname,
|
| 210 |
+
appauthor=appauthor,
|
| 211 |
+
version=version,
|
| 212 |
+
roaming=roaming,
|
| 213 |
+
ensure_exists=ensure_exists,
|
| 214 |
+
).user_state_dir
|
| 215 |
+
|
| 216 |
+
|
| 217 |
+
def user_log_dir(
|
| 218 |
+
appname: str | None = None,
|
| 219 |
+
appauthor: str | None | Literal[False] = None,
|
| 220 |
+
version: str | None = None,
|
| 221 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 222 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 223 |
+
) -> str:
|
| 224 |
+
"""
|
| 225 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 226 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 227 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 228 |
+
:param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
|
| 229 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 230 |
+
:returns: log directory tied to the user
|
| 231 |
+
"""
|
| 232 |
+
return PlatformDirs(
|
| 233 |
+
appname=appname,
|
| 234 |
+
appauthor=appauthor,
|
| 235 |
+
version=version,
|
| 236 |
+
opinion=opinion,
|
| 237 |
+
ensure_exists=ensure_exists,
|
| 238 |
+
).user_log_dir
|
| 239 |
+
|
| 240 |
+
|
| 241 |
+
def user_documents_dir() -> str:
|
| 242 |
+
""":returns: documents directory tied to the user"""
|
| 243 |
+
return PlatformDirs().user_documents_dir
|
| 244 |
+
|
| 245 |
+
|
| 246 |
+
def user_downloads_dir() -> str:
|
| 247 |
+
""":returns: downloads directory tied to the user"""
|
| 248 |
+
return PlatformDirs().user_downloads_dir
|
| 249 |
+
|
| 250 |
+
|
| 251 |
+
def user_pictures_dir() -> str:
|
| 252 |
+
""":returns: pictures directory tied to the user"""
|
| 253 |
+
return PlatformDirs().user_pictures_dir
|
| 254 |
+
|
| 255 |
+
|
| 256 |
+
def user_videos_dir() -> str:
|
| 257 |
+
""":returns: videos directory tied to the user"""
|
| 258 |
+
return PlatformDirs().user_videos_dir
|
| 259 |
+
|
| 260 |
+
|
| 261 |
+
def user_music_dir() -> str:
|
| 262 |
+
""":returns: music directory tied to the user"""
|
| 263 |
+
return PlatformDirs().user_music_dir
|
| 264 |
+
|
| 265 |
+
|
| 266 |
+
def user_desktop_dir() -> str:
|
| 267 |
+
""":returns: desktop directory tied to the user"""
|
| 268 |
+
return PlatformDirs().user_desktop_dir
|
| 269 |
+
|
| 270 |
+
|
| 271 |
+
def user_runtime_dir(
|
| 272 |
+
appname: str | None = None,
|
| 273 |
+
appauthor: str | None | Literal[False] = None,
|
| 274 |
+
version: str | None = None,
|
| 275 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 276 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 277 |
+
) -> str:
|
| 278 |
+
"""
|
| 279 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 280 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 281 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 282 |
+
:param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
|
| 283 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 284 |
+
:returns: runtime directory tied to the user
|
| 285 |
+
"""
|
| 286 |
+
return PlatformDirs(
|
| 287 |
+
appname=appname,
|
| 288 |
+
appauthor=appauthor,
|
| 289 |
+
version=version,
|
| 290 |
+
opinion=opinion,
|
| 291 |
+
ensure_exists=ensure_exists,
|
| 292 |
+
).user_runtime_dir
|
| 293 |
+
|
| 294 |
+
|
| 295 |
+
def site_runtime_dir(
|
| 296 |
+
appname: str | None = None,
|
| 297 |
+
appauthor: str | None | Literal[False] = None,
|
| 298 |
+
version: str | None = None,
|
| 299 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 300 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 301 |
+
) -> str:
|
| 302 |
+
"""
|
| 303 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 304 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 305 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 306 |
+
:param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
|
| 307 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 308 |
+
:returns: runtime directory shared by users
|
| 309 |
+
"""
|
| 310 |
+
return PlatformDirs(
|
| 311 |
+
appname=appname,
|
| 312 |
+
appauthor=appauthor,
|
| 313 |
+
version=version,
|
| 314 |
+
opinion=opinion,
|
| 315 |
+
ensure_exists=ensure_exists,
|
| 316 |
+
).site_runtime_dir
|
| 317 |
+
|
| 318 |
+
|
| 319 |
+
def user_data_path(
|
| 320 |
+
appname: str | None = None,
|
| 321 |
+
appauthor: str | None | Literal[False] = None,
|
| 322 |
+
version: str | None = None,
|
| 323 |
+
roaming: bool = False, # noqa: FBT001, FBT002
|
| 324 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 325 |
+
) -> Path:
|
| 326 |
+
"""
|
| 327 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 328 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 329 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 330 |
+
:param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
|
| 331 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 332 |
+
:returns: data path tied to the user
|
| 333 |
+
"""
|
| 334 |
+
return PlatformDirs(
|
| 335 |
+
appname=appname,
|
| 336 |
+
appauthor=appauthor,
|
| 337 |
+
version=version,
|
| 338 |
+
roaming=roaming,
|
| 339 |
+
ensure_exists=ensure_exists,
|
| 340 |
+
).user_data_path
|
| 341 |
+
|
| 342 |
+
|
| 343 |
+
def site_data_path(
|
| 344 |
+
appname: str | None = None,
|
| 345 |
+
appauthor: str | None | Literal[False] = None,
|
| 346 |
+
version: str | None = None,
|
| 347 |
+
multipath: bool = False, # noqa: FBT001, FBT002
|
| 348 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 349 |
+
) -> Path:
|
| 350 |
+
"""
|
| 351 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 352 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 353 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 354 |
+
:param multipath: See `multipath <platformdirs.api.PlatformDirsABC.multipath>`.
|
| 355 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 356 |
+
:returns: data path shared by users
|
| 357 |
+
"""
|
| 358 |
+
return PlatformDirs(
|
| 359 |
+
appname=appname,
|
| 360 |
+
appauthor=appauthor,
|
| 361 |
+
version=version,
|
| 362 |
+
multipath=multipath,
|
| 363 |
+
ensure_exists=ensure_exists,
|
| 364 |
+
).site_data_path
|
| 365 |
+
|
| 366 |
+
|
| 367 |
+
def user_config_path(
|
| 368 |
+
appname: str | None = None,
|
| 369 |
+
appauthor: str | None | Literal[False] = None,
|
| 370 |
+
version: str | None = None,
|
| 371 |
+
roaming: bool = False, # noqa: FBT001, FBT002
|
| 372 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 373 |
+
) -> Path:
|
| 374 |
+
"""
|
| 375 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 376 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 377 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 378 |
+
:param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
|
| 379 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 380 |
+
:returns: config path tied to the user
|
| 381 |
+
"""
|
| 382 |
+
return PlatformDirs(
|
| 383 |
+
appname=appname,
|
| 384 |
+
appauthor=appauthor,
|
| 385 |
+
version=version,
|
| 386 |
+
roaming=roaming,
|
| 387 |
+
ensure_exists=ensure_exists,
|
| 388 |
+
).user_config_path
|
| 389 |
+
|
| 390 |
+
|
| 391 |
+
def site_config_path(
|
| 392 |
+
appname: str | None = None,
|
| 393 |
+
appauthor: str | None | Literal[False] = None,
|
| 394 |
+
version: str | None = None,
|
| 395 |
+
multipath: bool = False, # noqa: FBT001, FBT002
|
| 396 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 397 |
+
) -> Path:
|
| 398 |
+
"""
|
| 399 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 400 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 401 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 402 |
+
:param multipath: See `roaming <platformdirs.api.PlatformDirsABC.multipath>`.
|
| 403 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 404 |
+
:returns: config path shared by the users
|
| 405 |
+
"""
|
| 406 |
+
return PlatformDirs(
|
| 407 |
+
appname=appname,
|
| 408 |
+
appauthor=appauthor,
|
| 409 |
+
version=version,
|
| 410 |
+
multipath=multipath,
|
| 411 |
+
ensure_exists=ensure_exists,
|
| 412 |
+
).site_config_path
|
| 413 |
+
|
| 414 |
+
|
| 415 |
+
def site_cache_path(
|
| 416 |
+
appname: str | None = None,
|
| 417 |
+
appauthor: str | None | Literal[False] = None,
|
| 418 |
+
version: str | None = None,
|
| 419 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 420 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 421 |
+
) -> Path:
|
| 422 |
+
"""
|
| 423 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 424 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 425 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 426 |
+
:param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
|
| 427 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 428 |
+
:returns: cache directory tied to the user
|
| 429 |
+
"""
|
| 430 |
+
return PlatformDirs(
|
| 431 |
+
appname=appname,
|
| 432 |
+
appauthor=appauthor,
|
| 433 |
+
version=version,
|
| 434 |
+
opinion=opinion,
|
| 435 |
+
ensure_exists=ensure_exists,
|
| 436 |
+
).site_cache_path
|
| 437 |
+
|
| 438 |
+
|
| 439 |
+
def user_cache_path(
|
| 440 |
+
appname: str | None = None,
|
| 441 |
+
appauthor: str | None | Literal[False] = None,
|
| 442 |
+
version: str | None = None,
|
| 443 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 444 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 445 |
+
) -> Path:
|
| 446 |
+
"""
|
| 447 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 448 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 449 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 450 |
+
:param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
|
| 451 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 452 |
+
:returns: cache path tied to the user
|
| 453 |
+
"""
|
| 454 |
+
return PlatformDirs(
|
| 455 |
+
appname=appname,
|
| 456 |
+
appauthor=appauthor,
|
| 457 |
+
version=version,
|
| 458 |
+
opinion=opinion,
|
| 459 |
+
ensure_exists=ensure_exists,
|
| 460 |
+
).user_cache_path
|
| 461 |
+
|
| 462 |
+
|
| 463 |
+
def user_state_path(
|
| 464 |
+
appname: str | None = None,
|
| 465 |
+
appauthor: str | None | Literal[False] = None,
|
| 466 |
+
version: str | None = None,
|
| 467 |
+
roaming: bool = False, # noqa: FBT001, FBT002
|
| 468 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 469 |
+
) -> Path:
|
| 470 |
+
"""
|
| 471 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 472 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 473 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 474 |
+
:param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
|
| 475 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 476 |
+
:returns: state path tied to the user
|
| 477 |
+
"""
|
| 478 |
+
return PlatformDirs(
|
| 479 |
+
appname=appname,
|
| 480 |
+
appauthor=appauthor,
|
| 481 |
+
version=version,
|
| 482 |
+
roaming=roaming,
|
| 483 |
+
ensure_exists=ensure_exists,
|
| 484 |
+
).user_state_path
|
| 485 |
+
|
| 486 |
+
|
| 487 |
+
def user_log_path(
|
| 488 |
+
appname: str | None = None,
|
| 489 |
+
appauthor: str | None | Literal[False] = None,
|
| 490 |
+
version: str | None = None,
|
| 491 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 492 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 493 |
+
) -> Path:
|
| 494 |
+
"""
|
| 495 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 496 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 497 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 498 |
+
:param opinion: See `roaming <platformdirs.api.PlatformDirsABC.opinion>`.
|
| 499 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 500 |
+
:returns: log path tied to the user
|
| 501 |
+
"""
|
| 502 |
+
return PlatformDirs(
|
| 503 |
+
appname=appname,
|
| 504 |
+
appauthor=appauthor,
|
| 505 |
+
version=version,
|
| 506 |
+
opinion=opinion,
|
| 507 |
+
ensure_exists=ensure_exists,
|
| 508 |
+
).user_log_path
|
| 509 |
+
|
| 510 |
+
|
| 511 |
+
def user_documents_path() -> Path:
|
| 512 |
+
""":returns: documents a path tied to the user"""
|
| 513 |
+
return PlatformDirs().user_documents_path
|
| 514 |
+
|
| 515 |
+
|
| 516 |
+
def user_downloads_path() -> Path:
|
| 517 |
+
""":returns: downloads path tied to the user"""
|
| 518 |
+
return PlatformDirs().user_downloads_path
|
| 519 |
+
|
| 520 |
+
|
| 521 |
+
def user_pictures_path() -> Path:
|
| 522 |
+
""":returns: pictures path tied to the user"""
|
| 523 |
+
return PlatformDirs().user_pictures_path
|
| 524 |
+
|
| 525 |
+
|
| 526 |
+
def user_videos_path() -> Path:
|
| 527 |
+
""":returns: videos path tied to the user"""
|
| 528 |
+
return PlatformDirs().user_videos_path
|
| 529 |
+
|
| 530 |
+
|
| 531 |
+
def user_music_path() -> Path:
|
| 532 |
+
""":returns: music path tied to the user"""
|
| 533 |
+
return PlatformDirs().user_music_path
|
| 534 |
+
|
| 535 |
+
|
| 536 |
+
def user_desktop_path() -> Path:
|
| 537 |
+
""":returns: desktop path tied to the user"""
|
| 538 |
+
return PlatformDirs().user_desktop_path
|
| 539 |
+
|
| 540 |
+
|
| 541 |
+
def user_runtime_path(
|
| 542 |
+
appname: str | None = None,
|
| 543 |
+
appauthor: str | None | Literal[False] = None,
|
| 544 |
+
version: str | None = None,
|
| 545 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 546 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 547 |
+
) -> Path:
|
| 548 |
+
"""
|
| 549 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 550 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 551 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 552 |
+
:param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
|
| 553 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 554 |
+
:returns: runtime path tied to the user
|
| 555 |
+
"""
|
| 556 |
+
return PlatformDirs(
|
| 557 |
+
appname=appname,
|
| 558 |
+
appauthor=appauthor,
|
| 559 |
+
version=version,
|
| 560 |
+
opinion=opinion,
|
| 561 |
+
ensure_exists=ensure_exists,
|
| 562 |
+
).user_runtime_path
|
| 563 |
+
|
| 564 |
+
|
| 565 |
+
def site_runtime_path(
|
| 566 |
+
appname: str | None = None,
|
| 567 |
+
appauthor: str | None | Literal[False] = None,
|
| 568 |
+
version: str | None = None,
|
| 569 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 570 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 571 |
+
) -> Path:
|
| 572 |
+
"""
|
| 573 |
+
:param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
|
| 574 |
+
:param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
|
| 575 |
+
:param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
|
| 576 |
+
:param opinion: See `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
|
| 577 |
+
:param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 578 |
+
:returns: runtime path shared by users
|
| 579 |
+
"""
|
| 580 |
+
return PlatformDirs(
|
| 581 |
+
appname=appname,
|
| 582 |
+
appauthor=appauthor,
|
| 583 |
+
version=version,
|
| 584 |
+
opinion=opinion,
|
| 585 |
+
ensure_exists=ensure_exists,
|
| 586 |
+
).site_runtime_path
|
| 587 |
+
|
| 588 |
+
|
| 589 |
+
__all__ = [
|
| 590 |
+
"AppDirs",
|
| 591 |
+
"PlatformDirs",
|
| 592 |
+
"PlatformDirsABC",
|
| 593 |
+
"__version__",
|
| 594 |
+
"__version_info__",
|
| 595 |
+
"site_cache_dir",
|
| 596 |
+
"site_cache_path",
|
| 597 |
+
"site_config_dir",
|
| 598 |
+
"site_config_path",
|
| 599 |
+
"site_data_dir",
|
| 600 |
+
"site_data_path",
|
| 601 |
+
"site_runtime_dir",
|
| 602 |
+
"site_runtime_path",
|
| 603 |
+
"user_cache_dir",
|
| 604 |
+
"user_cache_path",
|
| 605 |
+
"user_config_dir",
|
| 606 |
+
"user_config_path",
|
| 607 |
+
"user_data_dir",
|
| 608 |
+
"user_data_path",
|
| 609 |
+
"user_desktop_dir",
|
| 610 |
+
"user_desktop_path",
|
| 611 |
+
"user_documents_dir",
|
| 612 |
+
"user_documents_path",
|
| 613 |
+
"user_downloads_dir",
|
| 614 |
+
"user_downloads_path",
|
| 615 |
+
"user_log_dir",
|
| 616 |
+
"user_log_path",
|
| 617 |
+
"user_music_dir",
|
| 618 |
+
"user_music_path",
|
| 619 |
+
"user_pictures_dir",
|
| 620 |
+
"user_pictures_path",
|
| 621 |
+
"user_runtime_dir",
|
| 622 |
+
"user_runtime_path",
|
| 623 |
+
"user_state_dir",
|
| 624 |
+
"user_state_path",
|
| 625 |
+
"user_videos_dir",
|
| 626 |
+
"user_videos_path",
|
| 627 |
+
]
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__main__.py
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Main entry point."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
from pip._vendor.platformdirs import PlatformDirs, __version__
|
| 6 |
+
|
| 7 |
+
PROPS = (
|
| 8 |
+
"user_data_dir",
|
| 9 |
+
"user_config_dir",
|
| 10 |
+
"user_cache_dir",
|
| 11 |
+
"user_state_dir",
|
| 12 |
+
"user_log_dir",
|
| 13 |
+
"user_documents_dir",
|
| 14 |
+
"user_downloads_dir",
|
| 15 |
+
"user_pictures_dir",
|
| 16 |
+
"user_videos_dir",
|
| 17 |
+
"user_music_dir",
|
| 18 |
+
"user_runtime_dir",
|
| 19 |
+
"site_data_dir",
|
| 20 |
+
"site_config_dir",
|
| 21 |
+
"site_cache_dir",
|
| 22 |
+
"site_runtime_dir",
|
| 23 |
+
)
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
def main() -> None:
|
| 27 |
+
"""Run the main entry point."""
|
| 28 |
+
app_name = "MyApp"
|
| 29 |
+
app_author = "MyCompany"
|
| 30 |
+
|
| 31 |
+
print(f"-- platformdirs {__version__} --") # noqa: T201
|
| 32 |
+
|
| 33 |
+
print("-- app dirs (with optional 'version')") # noqa: T201
|
| 34 |
+
dirs = PlatformDirs(app_name, app_author, version="1.0")
|
| 35 |
+
for prop in PROPS:
|
| 36 |
+
print(f"{prop}: {getattr(dirs, prop)}") # noqa: T201
|
| 37 |
+
|
| 38 |
+
print("\n-- app dirs (without optional 'version')") # noqa: T201
|
| 39 |
+
dirs = PlatformDirs(app_name, app_author)
|
| 40 |
+
for prop in PROPS:
|
| 41 |
+
print(f"{prop}: {getattr(dirs, prop)}") # noqa: T201
|
| 42 |
+
|
| 43 |
+
print("\n-- app dirs (without optional 'appauthor')") # noqa: T201
|
| 44 |
+
dirs = PlatformDirs(app_name)
|
| 45 |
+
for prop in PROPS:
|
| 46 |
+
print(f"{prop}: {getattr(dirs, prop)}") # noqa: T201
|
| 47 |
+
|
| 48 |
+
print("\n-- app dirs (with disabled 'appauthor')") # noqa: T201
|
| 49 |
+
dirs = PlatformDirs(app_name, appauthor=False)
|
| 50 |
+
for prop in PROPS:
|
| 51 |
+
print(f"{prop}: {getattr(dirs, prop)}") # noqa: T201
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
if __name__ == "__main__":
|
| 55 |
+
main()
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-311.pyc
ADDED
|
Binary file (2.32 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-311.pyc
ADDED
|
Binary file (11.9 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-311.pyc
ADDED
|
Binary file (14.1 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-311.pyc
ADDED
|
Binary file (8.54 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-311.pyc
ADDED
|
Binary file (16.6 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-311.pyc
ADDED
|
Binary file (14.7 kB). View file
|
|
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/android.py
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Android."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
import os
|
| 6 |
+
import re
|
| 7 |
+
import sys
|
| 8 |
+
from functools import lru_cache
|
| 9 |
+
from typing import TYPE_CHECKING, cast
|
| 10 |
+
|
| 11 |
+
from .api import PlatformDirsABC
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
class Android(PlatformDirsABC):
|
| 15 |
+
"""
|
| 16 |
+
Follows the guidance `from here <https://android.stackexchange.com/a/216132>`_.
|
| 17 |
+
|
| 18 |
+
Makes use of the `appname <platformdirs.api.PlatformDirsABC.appname>`, `version
|
| 19 |
+
<platformdirs.api.PlatformDirsABC.version>`, `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 20 |
+
|
| 21 |
+
"""
|
| 22 |
+
|
| 23 |
+
@property
|
| 24 |
+
def user_data_dir(self) -> str:
|
| 25 |
+
""":return: data directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/<AppName>``"""
|
| 26 |
+
return self._append_app_name_and_version(cast(str, _android_folder()), "files")
|
| 27 |
+
|
| 28 |
+
@property
|
| 29 |
+
def site_data_dir(self) -> str:
|
| 30 |
+
""":return: data directory shared by users, same as `user_data_dir`"""
|
| 31 |
+
return self.user_data_dir
|
| 32 |
+
|
| 33 |
+
@property
|
| 34 |
+
def user_config_dir(self) -> str:
|
| 35 |
+
"""
|
| 36 |
+
:return: config directory tied to the user, e.g. \
|
| 37 |
+
``/data/user/<userid>/<packagename>/shared_prefs/<AppName>``
|
| 38 |
+
"""
|
| 39 |
+
return self._append_app_name_and_version(cast(str, _android_folder()), "shared_prefs")
|
| 40 |
+
|
| 41 |
+
@property
|
| 42 |
+
def site_config_dir(self) -> str:
|
| 43 |
+
""":return: config directory shared by the users, same as `user_config_dir`"""
|
| 44 |
+
return self.user_config_dir
|
| 45 |
+
|
| 46 |
+
@property
|
| 47 |
+
def user_cache_dir(self) -> str:
|
| 48 |
+
""":return: cache directory tied to the user, e.g.,``/data/user/<userid>/<packagename>/cache/<AppName>``"""
|
| 49 |
+
return self._append_app_name_and_version(cast(str, _android_folder()), "cache")
|
| 50 |
+
|
| 51 |
+
@property
|
| 52 |
+
def site_cache_dir(self) -> str:
|
| 53 |
+
""":return: cache directory shared by users, same as `user_cache_dir`"""
|
| 54 |
+
return self.user_cache_dir
|
| 55 |
+
|
| 56 |
+
@property
|
| 57 |
+
def user_state_dir(self) -> str:
|
| 58 |
+
""":return: state directory tied to the user, same as `user_data_dir`"""
|
| 59 |
+
return self.user_data_dir
|
| 60 |
+
|
| 61 |
+
@property
|
| 62 |
+
def user_log_dir(self) -> str:
|
| 63 |
+
"""
|
| 64 |
+
:return: log directory tied to the user, same as `user_cache_dir` if not opinionated else ``log`` in it,
|
| 65 |
+
e.g. ``/data/user/<userid>/<packagename>/cache/<AppName>/log``
|
| 66 |
+
"""
|
| 67 |
+
path = self.user_cache_dir
|
| 68 |
+
if self.opinion:
|
| 69 |
+
path = os.path.join(path, "log") # noqa: PTH118
|
| 70 |
+
return path
|
| 71 |
+
|
| 72 |
+
@property
|
| 73 |
+
def user_documents_dir(self) -> str:
|
| 74 |
+
""":return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents``"""
|
| 75 |
+
return _android_documents_folder()
|
| 76 |
+
|
| 77 |
+
@property
|
| 78 |
+
def user_downloads_dir(self) -> str:
|
| 79 |
+
""":return: downloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``"""
|
| 80 |
+
return _android_downloads_folder()
|
| 81 |
+
|
| 82 |
+
@property
|
| 83 |
+
def user_pictures_dir(self) -> str:
|
| 84 |
+
""":return: pictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``"""
|
| 85 |
+
return _android_pictures_folder()
|
| 86 |
+
|
| 87 |
+
@property
|
| 88 |
+
def user_videos_dir(self) -> str:
|
| 89 |
+
""":return: videos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``"""
|
| 90 |
+
return _android_videos_folder()
|
| 91 |
+
|
| 92 |
+
@property
|
| 93 |
+
def user_music_dir(self) -> str:
|
| 94 |
+
""":return: music directory tied to the user e.g. ``/storage/emulated/0/Music``"""
|
| 95 |
+
return _android_music_folder()
|
| 96 |
+
|
| 97 |
+
@property
|
| 98 |
+
def user_desktop_dir(self) -> str:
|
| 99 |
+
""":return: desktop directory tied to the user e.g. ``/storage/emulated/0/Desktop``"""
|
| 100 |
+
return "/storage/emulated/0/Desktop"
|
| 101 |
+
|
| 102 |
+
@property
|
| 103 |
+
def user_runtime_dir(self) -> str:
|
| 104 |
+
"""
|
| 105 |
+
:return: runtime directory tied to the user, same as `user_cache_dir` if not opinionated else ``tmp`` in it,
|
| 106 |
+
e.g. ``/data/user/<userid>/<packagename>/cache/<AppName>/tmp``
|
| 107 |
+
"""
|
| 108 |
+
path = self.user_cache_dir
|
| 109 |
+
if self.opinion:
|
| 110 |
+
path = os.path.join(path, "tmp") # noqa: PTH118
|
| 111 |
+
return path
|
| 112 |
+
|
| 113 |
+
@property
|
| 114 |
+
def site_runtime_dir(self) -> str:
|
| 115 |
+
""":return: runtime directory shared by users, same as `user_runtime_dir`"""
|
| 116 |
+
return self.user_runtime_dir
|
| 117 |
+
|
| 118 |
+
|
| 119 |
+
@lru_cache(maxsize=1)
|
| 120 |
+
def _android_folder() -> str | None: # noqa: C901, PLR0912
|
| 121 |
+
""":return: base folder for the Android OS or None if it cannot be found"""
|
| 122 |
+
result: str | None = None
|
| 123 |
+
# type checker isn't happy with our "import android", just don't do this when type checking see
|
| 124 |
+
# https://stackoverflow.com/a/61394121
|
| 125 |
+
if not TYPE_CHECKING:
|
| 126 |
+
try:
|
| 127 |
+
# First try to get a path to android app using python4android (if available)...
|
| 128 |
+
from android import mActivity # noqa: PLC0415
|
| 129 |
+
|
| 130 |
+
context = cast("android.content.Context", mActivity.getApplicationContext()) # noqa: F821
|
| 131 |
+
result = context.getFilesDir().getParentFile().getAbsolutePath()
|
| 132 |
+
except Exception: # noqa: BLE001
|
| 133 |
+
result = None
|
| 134 |
+
if result is None:
|
| 135 |
+
try:
|
| 136 |
+
# ...and fall back to using plain pyjnius, if python4android isn't available or doesn't deliver any useful
|
| 137 |
+
# result...
|
| 138 |
+
from jnius import autoclass # noqa: PLC0415
|
| 139 |
+
|
| 140 |
+
context = autoclass("android.content.Context")
|
| 141 |
+
result = context.getFilesDir().getParentFile().getAbsolutePath()
|
| 142 |
+
except Exception: # noqa: BLE001
|
| 143 |
+
result = None
|
| 144 |
+
if result is None:
|
| 145 |
+
# and if that fails, too, find an android folder looking at path on the sys.path
|
| 146 |
+
# warning: only works for apps installed under /data, not adopted storage etc.
|
| 147 |
+
pattern = re.compile(r"/data/(data|user/\d+)/(.+)/files")
|
| 148 |
+
for path in sys.path:
|
| 149 |
+
if pattern.match(path):
|
| 150 |
+
result = path.split("/files")[0]
|
| 151 |
+
break
|
| 152 |
+
else:
|
| 153 |
+
result = None
|
| 154 |
+
if result is None:
|
| 155 |
+
# one last try: find an android folder looking at path on the sys.path taking adopted storage paths into
|
| 156 |
+
# account
|
| 157 |
+
pattern = re.compile(r"/mnt/expand/[a-fA-F0-9-]{36}/(data|user/\d+)/(.+)/files")
|
| 158 |
+
for path in sys.path:
|
| 159 |
+
if pattern.match(path):
|
| 160 |
+
result = path.split("/files")[0]
|
| 161 |
+
break
|
| 162 |
+
else:
|
| 163 |
+
result = None
|
| 164 |
+
return result
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
@lru_cache(maxsize=1)
|
| 168 |
+
def _android_documents_folder() -> str:
|
| 169 |
+
""":return: documents folder for the Android OS"""
|
| 170 |
+
# Get directories with pyjnius
|
| 171 |
+
try:
|
| 172 |
+
from jnius import autoclass # noqa: PLC0415
|
| 173 |
+
|
| 174 |
+
context = autoclass("android.content.Context")
|
| 175 |
+
environment = autoclass("android.os.Environment")
|
| 176 |
+
documents_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DOCUMENTS).getAbsolutePath()
|
| 177 |
+
except Exception: # noqa: BLE001
|
| 178 |
+
documents_dir = "/storage/emulated/0/Documents"
|
| 179 |
+
|
| 180 |
+
return documents_dir
|
| 181 |
+
|
| 182 |
+
|
| 183 |
+
@lru_cache(maxsize=1)
|
| 184 |
+
def _android_downloads_folder() -> str:
|
| 185 |
+
""":return: downloads folder for the Android OS"""
|
| 186 |
+
# Get directories with pyjnius
|
| 187 |
+
try:
|
| 188 |
+
from jnius import autoclass # noqa: PLC0415
|
| 189 |
+
|
| 190 |
+
context = autoclass("android.content.Context")
|
| 191 |
+
environment = autoclass("android.os.Environment")
|
| 192 |
+
downloads_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DOWNLOADS).getAbsolutePath()
|
| 193 |
+
except Exception: # noqa: BLE001
|
| 194 |
+
downloads_dir = "/storage/emulated/0/Downloads"
|
| 195 |
+
|
| 196 |
+
return downloads_dir
|
| 197 |
+
|
| 198 |
+
|
| 199 |
+
@lru_cache(maxsize=1)
|
| 200 |
+
def _android_pictures_folder() -> str:
|
| 201 |
+
""":return: pictures folder for the Android OS"""
|
| 202 |
+
# Get directories with pyjnius
|
| 203 |
+
try:
|
| 204 |
+
from jnius import autoclass # noqa: PLC0415
|
| 205 |
+
|
| 206 |
+
context = autoclass("android.content.Context")
|
| 207 |
+
environment = autoclass("android.os.Environment")
|
| 208 |
+
pictures_dir: str = context.getExternalFilesDir(environment.DIRECTORY_PICTURES).getAbsolutePath()
|
| 209 |
+
except Exception: # noqa: BLE001
|
| 210 |
+
pictures_dir = "/storage/emulated/0/Pictures"
|
| 211 |
+
|
| 212 |
+
return pictures_dir
|
| 213 |
+
|
| 214 |
+
|
| 215 |
+
@lru_cache(maxsize=1)
|
| 216 |
+
def _android_videos_folder() -> str:
|
| 217 |
+
""":return: videos folder for the Android OS"""
|
| 218 |
+
# Get directories with pyjnius
|
| 219 |
+
try:
|
| 220 |
+
from jnius import autoclass # noqa: PLC0415
|
| 221 |
+
|
| 222 |
+
context = autoclass("android.content.Context")
|
| 223 |
+
environment = autoclass("android.os.Environment")
|
| 224 |
+
videos_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DCIM).getAbsolutePath()
|
| 225 |
+
except Exception: # noqa: BLE001
|
| 226 |
+
videos_dir = "/storage/emulated/0/DCIM/Camera"
|
| 227 |
+
|
| 228 |
+
return videos_dir
|
| 229 |
+
|
| 230 |
+
|
| 231 |
+
@lru_cache(maxsize=1)
|
| 232 |
+
def _android_music_folder() -> str:
|
| 233 |
+
""":return: music folder for the Android OS"""
|
| 234 |
+
# Get directories with pyjnius
|
| 235 |
+
try:
|
| 236 |
+
from jnius import autoclass # noqa: PLC0415
|
| 237 |
+
|
| 238 |
+
context = autoclass("android.content.Context")
|
| 239 |
+
environment = autoclass("android.os.Environment")
|
| 240 |
+
music_dir: str = context.getExternalFilesDir(environment.DIRECTORY_MUSIC).getAbsolutePath()
|
| 241 |
+
except Exception: # noqa: BLE001
|
| 242 |
+
music_dir = "/storage/emulated/0/Music"
|
| 243 |
+
|
| 244 |
+
return music_dir
|
| 245 |
+
|
| 246 |
+
|
| 247 |
+
__all__ = [
|
| 248 |
+
"Android",
|
| 249 |
+
]
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/api.py
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Base API."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
import os
|
| 6 |
+
from abc import ABC, abstractmethod
|
| 7 |
+
from pathlib import Path
|
| 8 |
+
from typing import TYPE_CHECKING
|
| 9 |
+
|
| 10 |
+
if TYPE_CHECKING:
|
| 11 |
+
from typing import Iterator, Literal
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
class PlatformDirsABC(ABC): # noqa: PLR0904
|
| 15 |
+
"""Abstract base class for platform directories."""
|
| 16 |
+
|
| 17 |
+
def __init__( # noqa: PLR0913, PLR0917
|
| 18 |
+
self,
|
| 19 |
+
appname: str | None = None,
|
| 20 |
+
appauthor: str | None | Literal[False] = None,
|
| 21 |
+
version: str | None = None,
|
| 22 |
+
roaming: bool = False, # noqa: FBT001, FBT002
|
| 23 |
+
multipath: bool = False, # noqa: FBT001, FBT002
|
| 24 |
+
opinion: bool = True, # noqa: FBT001, FBT002
|
| 25 |
+
ensure_exists: bool = False, # noqa: FBT001, FBT002
|
| 26 |
+
) -> None:
|
| 27 |
+
"""
|
| 28 |
+
Create a new platform directory.
|
| 29 |
+
|
| 30 |
+
:param appname: See `appname`.
|
| 31 |
+
:param appauthor: See `appauthor`.
|
| 32 |
+
:param version: See `version`.
|
| 33 |
+
:param roaming: See `roaming`.
|
| 34 |
+
:param multipath: See `multipath`.
|
| 35 |
+
:param opinion: See `opinion`.
|
| 36 |
+
:param ensure_exists: See `ensure_exists`.
|
| 37 |
+
|
| 38 |
+
"""
|
| 39 |
+
self.appname = appname #: The name of application.
|
| 40 |
+
self.appauthor = appauthor
|
| 41 |
+
"""
|
| 42 |
+
The name of the app author or distributing body for this application.
|
| 43 |
+
|
| 44 |
+
Typically, it is the owning company name. Defaults to `appname`. You may pass ``False`` to disable it.
|
| 45 |
+
|
| 46 |
+
"""
|
| 47 |
+
self.version = version
|
| 48 |
+
"""
|
| 49 |
+
An optional version path element to append to the path.
|
| 50 |
+
|
| 51 |
+
You might want to use this if you want multiple versions of your app to be able to run independently. If used,
|
| 52 |
+
this would typically be ``<major>.<minor>``.
|
| 53 |
+
|
| 54 |
+
"""
|
| 55 |
+
self.roaming = roaming
|
| 56 |
+
"""
|
| 57 |
+
Whether to use the roaming appdata directory on Windows.
|
| 58 |
+
|
| 59 |
+
That means that for users on a Windows network setup for roaming profiles, this user data will be synced on
|
| 60 |
+
login (see
|
| 61 |
+
`here <https://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx>`_).
|
| 62 |
+
|
| 63 |
+
"""
|
| 64 |
+
self.multipath = multipath
|
| 65 |
+
"""
|
| 66 |
+
An optional parameter which indicates that the entire list of data dirs should be returned.
|
| 67 |
+
|
| 68 |
+
By default, the first item would only be returned.
|
| 69 |
+
|
| 70 |
+
"""
|
| 71 |
+
self.opinion = opinion #: A flag to indicating to use opinionated values.
|
| 72 |
+
self.ensure_exists = ensure_exists
|
| 73 |
+
"""
|
| 74 |
+
Optionally create the directory (and any missing parents) upon access if it does not exist.
|
| 75 |
+
|
| 76 |
+
By default, no directories are created.
|
| 77 |
+
|
| 78 |
+
"""
|
| 79 |
+
|
| 80 |
+
def _append_app_name_and_version(self, *base: str) -> str:
|
| 81 |
+
params = list(base[1:])
|
| 82 |
+
if self.appname:
|
| 83 |
+
params.append(self.appname)
|
| 84 |
+
if self.version:
|
| 85 |
+
params.append(self.version)
|
| 86 |
+
path = os.path.join(base[0], *params) # noqa: PTH118
|
| 87 |
+
self._optionally_create_directory(path)
|
| 88 |
+
return path
|
| 89 |
+
|
| 90 |
+
def _optionally_create_directory(self, path: str) -> None:
|
| 91 |
+
if self.ensure_exists:
|
| 92 |
+
Path(path).mkdir(parents=True, exist_ok=True)
|
| 93 |
+
|
| 94 |
+
@property
|
| 95 |
+
@abstractmethod
|
| 96 |
+
def user_data_dir(self) -> str:
|
| 97 |
+
""":return: data directory tied to the user"""
|
| 98 |
+
|
| 99 |
+
@property
|
| 100 |
+
@abstractmethod
|
| 101 |
+
def site_data_dir(self) -> str:
|
| 102 |
+
""":return: data directory shared by users"""
|
| 103 |
+
|
| 104 |
+
@property
|
| 105 |
+
@abstractmethod
|
| 106 |
+
def user_config_dir(self) -> str:
|
| 107 |
+
""":return: config directory tied to the user"""
|
| 108 |
+
|
| 109 |
+
@property
|
| 110 |
+
@abstractmethod
|
| 111 |
+
def site_config_dir(self) -> str:
|
| 112 |
+
""":return: config directory shared by the users"""
|
| 113 |
+
|
| 114 |
+
@property
|
| 115 |
+
@abstractmethod
|
| 116 |
+
def user_cache_dir(self) -> str:
|
| 117 |
+
""":return: cache directory tied to the user"""
|
| 118 |
+
|
| 119 |
+
@property
|
| 120 |
+
@abstractmethod
|
| 121 |
+
def site_cache_dir(self) -> str:
|
| 122 |
+
""":return: cache directory shared by users"""
|
| 123 |
+
|
| 124 |
+
@property
|
| 125 |
+
@abstractmethod
|
| 126 |
+
def user_state_dir(self) -> str:
|
| 127 |
+
""":return: state directory tied to the user"""
|
| 128 |
+
|
| 129 |
+
@property
|
| 130 |
+
@abstractmethod
|
| 131 |
+
def user_log_dir(self) -> str:
|
| 132 |
+
""":return: log directory tied to the user"""
|
| 133 |
+
|
| 134 |
+
@property
|
| 135 |
+
@abstractmethod
|
| 136 |
+
def user_documents_dir(self) -> str:
|
| 137 |
+
""":return: documents directory tied to the user"""
|
| 138 |
+
|
| 139 |
+
@property
|
| 140 |
+
@abstractmethod
|
| 141 |
+
def user_downloads_dir(self) -> str:
|
| 142 |
+
""":return: downloads directory tied to the user"""
|
| 143 |
+
|
| 144 |
+
@property
|
| 145 |
+
@abstractmethod
|
| 146 |
+
def user_pictures_dir(self) -> str:
|
| 147 |
+
""":return: pictures directory tied to the user"""
|
| 148 |
+
|
| 149 |
+
@property
|
| 150 |
+
@abstractmethod
|
| 151 |
+
def user_videos_dir(self) -> str:
|
| 152 |
+
""":return: videos directory tied to the user"""
|
| 153 |
+
|
| 154 |
+
@property
|
| 155 |
+
@abstractmethod
|
| 156 |
+
def user_music_dir(self) -> str:
|
| 157 |
+
""":return: music directory tied to the user"""
|
| 158 |
+
|
| 159 |
+
@property
|
| 160 |
+
@abstractmethod
|
| 161 |
+
def user_desktop_dir(self) -> str:
|
| 162 |
+
""":return: desktop directory tied to the user"""
|
| 163 |
+
|
| 164 |
+
@property
|
| 165 |
+
@abstractmethod
|
| 166 |
+
def user_runtime_dir(self) -> str:
|
| 167 |
+
""":return: runtime directory tied to the user"""
|
| 168 |
+
|
| 169 |
+
@property
|
| 170 |
+
@abstractmethod
|
| 171 |
+
def site_runtime_dir(self) -> str:
|
| 172 |
+
""":return: runtime directory shared by users"""
|
| 173 |
+
|
| 174 |
+
@property
|
| 175 |
+
def user_data_path(self) -> Path:
|
| 176 |
+
""":return: data path tied to the user"""
|
| 177 |
+
return Path(self.user_data_dir)
|
| 178 |
+
|
| 179 |
+
@property
|
| 180 |
+
def site_data_path(self) -> Path:
|
| 181 |
+
""":return: data path shared by users"""
|
| 182 |
+
return Path(self.site_data_dir)
|
| 183 |
+
|
| 184 |
+
@property
|
| 185 |
+
def user_config_path(self) -> Path:
|
| 186 |
+
""":return: config path tied to the user"""
|
| 187 |
+
return Path(self.user_config_dir)
|
| 188 |
+
|
| 189 |
+
@property
|
| 190 |
+
def site_config_path(self) -> Path:
|
| 191 |
+
""":return: config path shared by the users"""
|
| 192 |
+
return Path(self.site_config_dir)
|
| 193 |
+
|
| 194 |
+
@property
|
| 195 |
+
def user_cache_path(self) -> Path:
|
| 196 |
+
""":return: cache path tied to the user"""
|
| 197 |
+
return Path(self.user_cache_dir)
|
| 198 |
+
|
| 199 |
+
@property
|
| 200 |
+
def site_cache_path(self) -> Path:
|
| 201 |
+
""":return: cache path shared by users"""
|
| 202 |
+
return Path(self.site_cache_dir)
|
| 203 |
+
|
| 204 |
+
@property
|
| 205 |
+
def user_state_path(self) -> Path:
|
| 206 |
+
""":return: state path tied to the user"""
|
| 207 |
+
return Path(self.user_state_dir)
|
| 208 |
+
|
| 209 |
+
@property
|
| 210 |
+
def user_log_path(self) -> Path:
|
| 211 |
+
""":return: log path tied to the user"""
|
| 212 |
+
return Path(self.user_log_dir)
|
| 213 |
+
|
| 214 |
+
@property
|
| 215 |
+
def user_documents_path(self) -> Path:
|
| 216 |
+
""":return: documents a path tied to the user"""
|
| 217 |
+
return Path(self.user_documents_dir)
|
| 218 |
+
|
| 219 |
+
@property
|
| 220 |
+
def user_downloads_path(self) -> Path:
|
| 221 |
+
""":return: downloads path tied to the user"""
|
| 222 |
+
return Path(self.user_downloads_dir)
|
| 223 |
+
|
| 224 |
+
@property
|
| 225 |
+
def user_pictures_path(self) -> Path:
|
| 226 |
+
""":return: pictures path tied to the user"""
|
| 227 |
+
return Path(self.user_pictures_dir)
|
| 228 |
+
|
| 229 |
+
@property
|
| 230 |
+
def user_videos_path(self) -> Path:
|
| 231 |
+
""":return: videos path tied to the user"""
|
| 232 |
+
return Path(self.user_videos_dir)
|
| 233 |
+
|
| 234 |
+
@property
|
| 235 |
+
def user_music_path(self) -> Path:
|
| 236 |
+
""":return: music path tied to the user"""
|
| 237 |
+
return Path(self.user_music_dir)
|
| 238 |
+
|
| 239 |
+
@property
|
| 240 |
+
def user_desktop_path(self) -> Path:
|
| 241 |
+
""":return: desktop path tied to the user"""
|
| 242 |
+
return Path(self.user_desktop_dir)
|
| 243 |
+
|
| 244 |
+
@property
|
| 245 |
+
def user_runtime_path(self) -> Path:
|
| 246 |
+
""":return: runtime path tied to the user"""
|
| 247 |
+
return Path(self.user_runtime_dir)
|
| 248 |
+
|
| 249 |
+
@property
|
| 250 |
+
def site_runtime_path(self) -> Path:
|
| 251 |
+
""":return: runtime path shared by users"""
|
| 252 |
+
return Path(self.site_runtime_dir)
|
| 253 |
+
|
| 254 |
+
def iter_config_dirs(self) -> Iterator[str]:
|
| 255 |
+
""":yield: all user and site configuration directories."""
|
| 256 |
+
yield self.user_config_dir
|
| 257 |
+
yield self.site_config_dir
|
| 258 |
+
|
| 259 |
+
def iter_data_dirs(self) -> Iterator[str]:
|
| 260 |
+
""":yield: all user and site data directories."""
|
| 261 |
+
yield self.user_data_dir
|
| 262 |
+
yield self.site_data_dir
|
| 263 |
+
|
| 264 |
+
def iter_cache_dirs(self) -> Iterator[str]:
|
| 265 |
+
""":yield: all user and site cache directories."""
|
| 266 |
+
yield self.user_cache_dir
|
| 267 |
+
yield self.site_cache_dir
|
| 268 |
+
|
| 269 |
+
def iter_runtime_dirs(self) -> Iterator[str]:
|
| 270 |
+
""":yield: all user and site runtime directories."""
|
| 271 |
+
yield self.user_runtime_dir
|
| 272 |
+
yield self.site_runtime_dir
|
| 273 |
+
|
| 274 |
+
def iter_config_paths(self) -> Iterator[Path]:
|
| 275 |
+
""":yield: all user and site configuration paths."""
|
| 276 |
+
for path in self.iter_config_dirs():
|
| 277 |
+
yield Path(path)
|
| 278 |
+
|
| 279 |
+
def iter_data_paths(self) -> Iterator[Path]:
|
| 280 |
+
""":yield: all user and site data paths."""
|
| 281 |
+
for path in self.iter_data_dirs():
|
| 282 |
+
yield Path(path)
|
| 283 |
+
|
| 284 |
+
def iter_cache_paths(self) -> Iterator[Path]:
|
| 285 |
+
""":yield: all user and site cache paths."""
|
| 286 |
+
for path in self.iter_cache_dirs():
|
| 287 |
+
yield Path(path)
|
| 288 |
+
|
| 289 |
+
def iter_runtime_paths(self) -> Iterator[Path]:
|
| 290 |
+
""":yield: all user and site runtime paths."""
|
| 291 |
+
for path in self.iter_runtime_dirs():
|
| 292 |
+
yield Path(path)
|
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/macos.py
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""macOS."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
import os.path
|
| 6 |
+
import sys
|
| 7 |
+
|
| 8 |
+
from .api import PlatformDirsABC
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
class MacOS(PlatformDirsABC):
|
| 12 |
+
"""
|
| 13 |
+
Platform directories for the macOS operating system.
|
| 14 |
+
|
| 15 |
+
Follows the guidance from
|
| 16 |
+
`Apple documentation <https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/MacOSXDirectories/MacOSXDirectories.html>`_.
|
| 17 |
+
Makes use of the `appname <platformdirs.api.PlatformDirsABC.appname>`,
|
| 18 |
+
`version <platformdirs.api.PlatformDirsABC.version>`,
|
| 19 |
+
`ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
|
| 20 |
+
|
| 21 |
+
"""
|
| 22 |
+
|
| 23 |
+
@property
|
| 24 |
+
def user_data_dir(self) -> str:
|
| 25 |
+
""":return: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``"""
|
| 26 |
+
return self._append_app_name_and_version(os.path.expanduser("~/Library/Application Support")) # noqa: PTH111
|
| 27 |
+
|
| 28 |
+
@property
|
| 29 |
+
def site_data_dir(self) -> str:
|
| 30 |
+
"""
|
| 31 |
+
:return: data directory shared by users, e.g. ``/Library/Application Support/$appname/$version``.
|
| 32 |
+
If we're using a Python binary managed by `Homebrew <https://brew.sh>`_, the directory
|
| 33 |
+
will be under the Homebrew prefix, e.g. ``/opt/homebrew/share/$appname/$version``.
|
| 34 |
+
If `multipath <platformdirs.api.PlatformDirsABC.multipath>` is enabled, and we're in Homebrew,
|
| 35 |
+
the response is a multi-path string separated by ":", e.g.
|
| 36 |
+
``/opt/homebrew/share/$appname/$version:/Library/Application Support/$appname/$version``
|
| 37 |
+
"""
|
| 38 |
+
is_homebrew = sys.prefix.startswith("/opt/homebrew")
|
| 39 |
+
path_list = [self._append_app_name_and_version("/opt/homebrew/share")] if is_homebrew else []
|
| 40 |
+
path_list.append(self._append_app_name_and_version("/Library/Application Support"))
|
| 41 |
+
if self.multipath:
|
| 42 |
+
return os.pathsep.join(path_list)
|
| 43 |
+
return path_list[0]
|
| 44 |
+
|
| 45 |
+
@property
|
| 46 |
+
def user_config_dir(self) -> str:
|
| 47 |
+
""":return: config directory tied to the user, same as `user_data_dir`"""
|
| 48 |
+
return self.user_data_dir
|
| 49 |
+
|
| 50 |
+
@property
|
| 51 |
+
def site_config_dir(self) -> str:
|
| 52 |
+
""":return: config directory shared by the users, same as `site_data_dir`"""
|
| 53 |
+
return self.site_data_dir
|
| 54 |
+
|
| 55 |
+
@property
|
| 56 |
+
def user_cache_dir(self) -> str:
|
| 57 |
+
""":return: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``"""
|
| 58 |
+
return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches")) # noqa: PTH111
|
| 59 |
+
|
| 60 |
+
@property
|
| 61 |
+
def site_cache_dir(self) -> str:
|
| 62 |
+
"""
|
| 63 |
+
:return: cache directory shared by users, e.g. ``/Library/Caches/$appname/$version``.
|
| 64 |
+
If we're using a Python binary managed by `Homebrew <https://brew.sh>`_, the directory
|
| 65 |
+
will be under the Homebrew prefix, e.g. ``/opt/homebrew/var/cache/$appname/$version``.
|
| 66 |
+
If `multipath <platformdirs.api.PlatformDirsABC.multipath>` is enabled, and we're in Homebrew,
|
| 67 |
+
the response is a multi-path string separated by ":", e.g.
|
| 68 |
+
``/opt/homebrew/var/cache/$appname/$version:/Library/Caches/$appname/$version``
|
| 69 |
+
"""
|
| 70 |
+
is_homebrew = sys.prefix.startswith("/opt/homebrew")
|
| 71 |
+
path_list = [self._append_app_name_and_version("/opt/homebrew/var/cache")] if is_homebrew else []
|
| 72 |
+
path_list.append(self._append_app_name_and_version("/Library/Caches"))
|
| 73 |
+
if self.multipath:
|
| 74 |
+
return os.pathsep.join(path_list)
|
| 75 |
+
return path_list[0]
|
| 76 |
+
|
| 77 |
+
@property
|
| 78 |
+
def user_state_dir(self) -> str:
|
| 79 |
+
""":return: state directory tied to the user, same as `user_data_dir`"""
|
| 80 |
+
return self.user_data_dir
|
| 81 |
+
|
| 82 |
+
@property
|
| 83 |
+
def user_log_dir(self) -> str:
|
| 84 |
+
""":return: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``"""
|
| 85 |
+
return self._append_app_name_and_version(os.path.expanduser("~/Library/Logs")) # noqa: PTH111
|
| 86 |
+
|
| 87 |
+
@property
|
| 88 |
+
def user_documents_dir(self) -> str:
|
| 89 |
+
""":return: documents directory tied to the user, e.g. ``~/Documents``"""
|
| 90 |
+
return os.path.expanduser("~/Documents") # noqa: PTH111
|
| 91 |
+
|
| 92 |
+
@property
|
| 93 |
+
def user_downloads_dir(self) -> str:
|
| 94 |
+
""":return: downloads directory tied to the user, e.g. ``~/Downloads``"""
|
| 95 |
+
return os.path.expanduser("~/Downloads") # noqa: PTH111
|
| 96 |
+
|
| 97 |
+
@property
|
| 98 |
+
def user_pictures_dir(self) -> str:
|
| 99 |
+
""":return: pictures directory tied to the user, e.g. ``~/Pictures``"""
|
| 100 |
+
return os.path.expanduser("~/Pictures") # noqa: PTH111
|
| 101 |
+
|
| 102 |
+
@property
|
| 103 |
+
def user_videos_dir(self) -> str:
|
| 104 |
+
""":return: videos directory tied to the user, e.g. ``~/Movies``"""
|
| 105 |
+
return os.path.expanduser("~/Movies") # noqa: PTH111
|
| 106 |
+
|
| 107 |
+
@property
|
| 108 |
+
def user_music_dir(self) -> str:
|
| 109 |
+
""":return: music directory tied to the user, e.g. ``~/Music``"""
|
| 110 |
+
return os.path.expanduser("~/Music") # noqa: PTH111
|
| 111 |
+
|
| 112 |
+
@property
|
| 113 |
+
def user_desktop_dir(self) -> str:
|
| 114 |
+
""":return: desktop directory tied to the user, e.g. ``~/Desktop``"""
|
| 115 |
+
return os.path.expanduser("~/Desktop") # noqa: PTH111
|
| 116 |
+
|
| 117 |
+
@property
|
| 118 |
+
def user_runtime_dir(self) -> str:
|
| 119 |
+
""":return: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``"""
|
| 120 |
+
return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches/TemporaryItems")) # noqa: PTH111
|
| 121 |
+
|
| 122 |
+
@property
|
| 123 |
+
def site_runtime_dir(self) -> str:
|
| 124 |
+
""":return: runtime directory shared by users, same as `user_runtime_dir`"""
|
| 125 |
+
return self.user_runtime_dir
|
| 126 |
+
|
| 127 |
+
|
| 128 |
+
__all__ = [
|
| 129 |
+
"MacOS",
|
| 130 |
+
]
|