kopia lustrzana https://github.com/jupyterhub/repo2docker
Remove unspecified Python version case
- removes lockfile copies without version - enforces that `buildpack.python_version` is always specified (major_pythons['3'] in cases where it could have been falsy before) - warns when Python version is unspecified, which ensures future reproducibility failurespull/1249/head
rodzic
1a2438d34e
commit
66b8765c69
|
@ -165,49 +165,54 @@ class CondaBuildPack(BaseImage):
|
|||
"conda/activate-conda.sh": "/etc/profile.d/activate-conda.sh",
|
||||
}
|
||||
py_version = self.python_version
|
||||
if not py_version or len(py_version.split(".")) != 2:
|
||||
raise ValueError(
|
||||
f"{self.__class__.__name__}.python_version must always be specified as 'x.y', e.g. '3.10', got {py_version}."
|
||||
)
|
||||
self.log.info(f"Building conda environment for python={py_version}\n")
|
||||
# Select the frozen base environment based on Python version.
|
||||
# avoids expensive and possibly conflicting upgrades when changing
|
||||
# major Python versions during upgrade.
|
||||
# If no version is specified or no matching X.Y version is found,
|
||||
# the default base environment is used.
|
||||
frozen_name = f"environment-{self._conda_platform()}.lock"
|
||||
pip_frozen_name = "requirements.txt"
|
||||
if py_version:
|
||||
conda_platform = self._conda_platform()
|
||||
if self.separate_kernel_env:
|
||||
self.log.warning(
|
||||
f"User-requested packages for legacy Python version {py_version} will be installed in a separate kernel environment.\n"
|
||||
)
|
||||
lockfile_name = f"environment.py-{py_version}-{conda_platform}.lock"
|
||||
if not os.path.exists(os.path.join(HERE, lockfile_name)):
|
||||
raise ValueError(
|
||||
f"Python version {py_version} on {conda_platform} is not supported!"
|
||||
)
|
||||
files[
|
||||
f"conda/{lockfile_name}"
|
||||
] = self._kernel_environment_file = "/tmp/env/kernel-environment.lock"
|
||||
conda_platform = self._conda_platform()
|
||||
|
||||
requirements_file_name = f"requirements.py-{py_version}.pip"
|
||||
if os.path.exists(os.path.join(HERE, requirements_file_name)):
|
||||
files[
|
||||
f"conda/{requirements_file_name}"
|
||||
] = (
|
||||
self._kernel_requirements_file
|
||||
) = "/tmp/env/kernel-requirements.txt"
|
||||
else:
|
||||
py_frozen_name = (
|
||||
f"environment.py-{py_version}-{self._conda_platform()}.lock"
|
||||
if self.separate_kernel_env:
|
||||
# setup kernel environment (separate from server)
|
||||
# server runs with default env
|
||||
server_py_version = self.major_pythons["3"]
|
||||
self.log.warning(
|
||||
f"User-requested packages for legacy Python version {py_version} will be installed in a separate kernel environment in $KERNEL_PYTHON_PREFIX.\n"
|
||||
f"Jupyter Server will run with {server_py_version} in $NB_PYTHON_PREFIX.\n"
|
||||
)
|
||||
lockfile_name = f"environment.py-{py_version}-{conda_platform}.lock"
|
||||
if not os.path.exists(os.path.join(HERE, lockfile_name)):
|
||||
raise ValueError(
|
||||
f"Python version {py_version} on {conda_platform} is not supported!"
|
||||
)
|
||||
if os.path.exists(os.path.join(HERE, py_frozen_name)):
|
||||
frozen_name = py_frozen_name
|
||||
pip_frozen_name = f"requirements.py-{py_version}.pip"
|
||||
else:
|
||||
raise ValueError(
|
||||
f"Python version {py_version} {self._conda_platform()} is not supported!"
|
||||
)
|
||||
files[
|
||||
f"conda/{lockfile_name}"
|
||||
] = self._kernel_environment_file = "/tmp/env/kernel-environment.lock"
|
||||
|
||||
requirements_file_name = f"requirements.py-{py_version}.pip"
|
||||
if os.path.exists(os.path.join(HERE, requirements_file_name)):
|
||||
files[
|
||||
f"conda/{requirements_file_name}"
|
||||
] = self._kernel_requirements_file = "/tmp/env/kernel-requirements.txt"
|
||||
else:
|
||||
# server and kernel are the same
|
||||
server_py_version = py_version
|
||||
|
||||
# setup the server Python environment
|
||||
conda_frozen_name = f"environment.py-{server_py_version}-{conda_platform}.lock"
|
||||
pip_frozen_name = f"requirements.py-{server_py_version}.pip"
|
||||
|
||||
if not os.path.exists(os.path.join(HERE, conda_frozen_name)):
|
||||
# no env, not supported
|
||||
raise ValueError(
|
||||
f"Python version {server_py_version} on {conda_platform} is not supported!"
|
||||
)
|
||||
|
||||
files[
|
||||
"conda/" + frozen_name
|
||||
"conda/" + conda_frozen_name
|
||||
] = self._nb_environment_file = "/tmp/env/environment.lock"
|
||||
|
||||
# add requirements.txt, if present
|
||||
|
@ -267,8 +272,9 @@ class CondaBuildPack(BaseImage):
|
|||
def python_version(self):
|
||||
"""Detect the Python version for a given `environment.yml`
|
||||
|
||||
Will return 'x.y' if version is found (e.g '3.6'),
|
||||
or a Falsy empty string '' if not found.
|
||||
Will always return an `x.y` version.
|
||||
If no version is found, the default Python version is used,
|
||||
via self.major_pythons['3'].
|
||||
|
||||
Version information below the minor level is dropped.
|
||||
"""
|
||||
|
@ -286,13 +292,17 @@ class CondaBuildPack(BaseImage):
|
|||
|
||||
# extract major.minor
|
||||
if py_version:
|
||||
if len(py_version) == 1:
|
||||
self._python_version = self.major_pythons.get(py_version[0])
|
||||
py_version_info = py_version.split(".")
|
||||
if len(py_version_info) == 1:
|
||||
self._python_version = self.major_pythons[py_version_info[0]]
|
||||
else:
|
||||
# return major.minor
|
||||
self._python_version = ".".join(py_version.split(".")[:2])
|
||||
self._python_version = ".".join(py_version_info[:2])
|
||||
else:
|
||||
self._python_version = ""
|
||||
self._python_version = self.major_pythons["3"]
|
||||
self.log.warning(
|
||||
f"Python version unspecified, using current default Python version {self._python_version}. This will change in the future."
|
||||
)
|
||||
|
||||
return self._python_version
|
||||
|
||||
|
|
|
@ -1,150 +0,0 @@
|
|||
# AUTO GENERATED FROM environment.py-3.10.yml, DO NOT MANUALLY MODIFY
|
||||
# Frozen on 2023-02-03 12:34:24 UTC
|
||||
# Generated by conda-lock.
|
||||
# platform: linux-64
|
||||
# input_hash: 9fd16b0f6d64e86a62e326694b74a429aef5dd7b227a96b4f0e2425851e4e016
|
||||
@EXPLICIT
|
||||
https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81
|
||||
https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2022.12.7-ha878542_0.conda#ff9f73d45c4a07d6f424495288a26080
|
||||
https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda#7aca3059a1729aa76c597603f10b0dd3
|
||||
https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-12.2.0-h46fd767_19.tar.bz2#1030b1f38c129f2634eae026f704fe60
|
||||
https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-3_cp310.conda#4eb33d14d794b0f4be116443ffed3853
|
||||
https://conda.anaconda.org/conda-forge/noarch/tzdata-2022g-h191b570_0.conda#51fc4fcfb19f5d95ffc8c339db5068e8
|
||||
https://conda.anaconda.org/conda-forge/linux-64/libgomp-12.2.0-h65d4601_19.tar.bz2#cedcee7c064c01c403f962c9e8d3c373
|
||||
https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2#73aaf86a425cc6e73fcf236a5a46396d
|
||||
https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-12.2.0-h65d4601_19.tar.bz2#e4c94f80aef025c17ab0828cd85ef535
|
||||
https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h7f98852_4.tar.bz2#a1fd65c7ccbf10880423d82bca54eb54
|
||||
https://conda.anaconda.org/conda-forge/linux-64/icu-70.1-h27087fc_0.tar.bz2#87473a15119779e021c314249d4b4aed
|
||||
https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3
|
||||
https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.0-h7f98852_0.tar.bz2#39b1328babf85c7c3a61636d9cd50206
|
||||
https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2#c3788462a6fbddafdb413a9f9053e58d
|
||||
https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.32.1-h7f98852_1000.tar.bz2#772d69f030955d9646d3d0eaf21d859d
|
||||
https://conda.anaconda.org/conda-forge/linux-64/libuv-1.44.2-h166bdaf_0.tar.bz2#e5cb4fe581a18ca2185a016eb848fc00
|
||||
https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-h166bdaf_4.tar.bz2#f3f9de449d32ca9b9c66a22863c96f41
|
||||
https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.3-h27087fc_1.tar.bz2#4acfc691e64342b9dae57cf2adc63238
|
||||
https://conda.anaconda.org/conda-forge/linux-64/openssl-3.0.7-h0b41bf4_2.conda#45758f4ece9c8b7b5f99328bd5caae51
|
||||
https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2#2161070d867d1b1204ea749c8eec4ef0
|
||||
https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.40.0-h753d276_0.tar.bz2#2e5f9a37d487e1019fd4d8113adb2f9f
|
||||
https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.19.2-h32600fe_1.tar.bz2#35a82883468c85ac8bf41f083c1933cf
|
||||
https://conda.anaconda.org/conda-forge/linux-64/readline-8.1.2-h0f457ee_0.tar.bz2#db2ebbe2943aae81ed051a6a9af8e0fa
|
||||
https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168
|
||||
https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2#21743a8d2ea0c8cfbbf8fe489b0347df
|
||||
https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-h166bdaf_4.tar.bz2#4b11e365c0275b808be78b30f904e295
|
||||
https://conda.anaconda.org/conda-forge/linux-64/nodejs-18.12.1-h8839609_0.tar.bz2#305f25b78340b0f7b391a6919d1246f2
|
||||
https://conda.anaconda.org/conda-forge/linux-64/python-3.10.9-he550d4f_0_cpython.conda#3cb3e91b3fe66baa68a12c85f39b9b40
|
||||
https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
|
||||
https://conda.anaconda.org/conda-forge/noarch/attrs-22.2.0-pyh71513ae_0.conda#8b76db7818a4e401ed4486c4c1635cd9
|
||||
https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2#6006a6d08a3fa99268a2681c7fb55213
|
||||
https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda#54ca2e08b3220c148a1d8329c2678e02
|
||||
https://conda.anaconda.org/conda-forge/noarch/blinker-1.5-pyhd8ed1ab_0.tar.bz2#f473c4e32d8180733ba5594d122cb637
|
||||
https://conda.anaconda.org/conda-forge/noarch/certifi-2022.12.7-pyhd8ed1ab_0.conda#fb9addc3db06e56abe03e0e9f21a63e6
|
||||
https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.1.1-pyhd8ed1ab_0.tar.bz2#c1d5b294fbf9a795dec349a6f4d8be8e
|
||||
https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.6.6-py310heca2aa9_0.conda#1235d03bc69ce4633b802a91ba58b3dd
|
||||
https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364
|
||||
https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2
|
||||
https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2#3cf04868fee0a029769bd41f4b2fbf2d
|
||||
https://conda.anaconda.org/conda-forge/noarch/executing-1.2.0-pyhd8ed1ab_0.tar.bz2#4c1bc140e2be5c8ba6e3acab99e25c50
|
||||
https://conda.anaconda.org/conda-forge/noarch/flit-core-3.8.0-pyhd8ed1ab_0.tar.bz2#6d5e56de2e65da7aa35fd10131226efa
|
||||
https://conda.anaconda.org/conda-forge/linux-64/greenlet-2.0.2-py310heca2aa9_0.conda#2a6e2e6deb0ddf5344ac74395444e3df
|
||||
https://conda.anaconda.org/conda-forge/noarch/idna-3.4-pyhd8ed1ab_0.tar.bz2#34272b248891bddccc64479f9a7fffed
|
||||
https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-py_1.tar.bz2#5071c982548b3a20caf70462f04f5287
|
||||
https://conda.anaconda.org/conda-forge/noarch/json5-0.9.5-pyh9f0ad1d_0.tar.bz2#10759827a94e6b14996e81fb002c0bda
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.5-pyhd8ed1ab_0.conda#953a312b272f37d39fe9d09f46734622
|
||||
https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.2-py310h1fa729e_0.conda#a1f0db6709778b77b5903541eeac4032
|
||||
https://conda.anaconda.org/conda-forge/noarch/mistune-2.0.4-pyhd8ed1ab_0.tar.bz2#78e0a90393b79b378b8ff6d32893d58a
|
||||
https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.6-pyhd8ed1ab_0.tar.bz2#7b868f21adde0d9b8b38f9c16836589b
|
||||
https://conda.anaconda.org/conda-forge/noarch/packaging-23.0-pyhd8ed1ab_0.conda#1ff2e3ca41f0ce16afec7190db28288b
|
||||
https://conda.anaconda.org/conda-forge/noarch/pamela-1.0.0-py_0.tar.bz2#36f6f18d2f3ae0c93d77a9dbedad08c3
|
||||
https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9
|
||||
https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2#17a565a0c3899244e938cdf417e7b094
|
||||
https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2#415f0ebb6198cc2801c73438a9fb5761
|
||||
https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_0.tar.bz2#89e3c7cdde7d3aaa2aee933b604dd07f
|
||||
https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.16.0-pyhd8ed1ab_0.conda#8efaddc1c8b8ce262c4d1a7c6571c799
|
||||
https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.4-py310h5764c6d_0.tar.bz2#c3c55664e9becc48e6a652e2b641961f
|
||||
https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2#359eeb6536da0e687af562ed265ec263
|
||||
https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2#6784285c7e55cb7212efabc79e4c2883
|
||||
https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff
|
||||
https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.6.0-pyhd8ed1ab_0.tar.bz2#56d08bbebf5b3719ca2b1688fcfd98a4
|
||||
https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.19.3-py310h1fa729e_0.conda#f732bec05ecc2e302a868d971ae484e0
|
||||
https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2#2a7de29fb590ca14b5243c4c812c8025
|
||||
https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.16.2-pyhd8ed1ab_0.tar.bz2#5fe4b6002f505336734ce92961b3e6a0
|
||||
https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.4-pyhd8ed1ab_0.conda#6d1f4215f123c18aed06fb4104bcb11a
|
||||
https://conda.anaconda.org/conda-forge/noarch/pytz-2022.7.1-pyhd8ed1ab_0.conda#f59d49a7b464901cf714b9e7984d01a2
|
||||
https://conda.anaconda.org/conda-forge/linux-64/pyzmq-25.0.0-py310h059b190_0.conda#125d2a047e37a0ff0676912c91a622ae
|
||||
https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py310h1fa729e_1.conda#2f9b517412af46255cef5e53a22c264e
|
||||
https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.0-pyhd8ed1ab_0.tar.bz2#edab14119efe85c3bf131ad747e9005c
|
||||
https://conda.anaconda.org/conda-forge/noarch/setuptools-67.1.0-pyhd8ed1ab_0.conda#845dae446df791b5e1a3eaa6454640c1
|
||||
https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2
|
||||
https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.0-pyhd8ed1ab_0.tar.bz2#dd6cbc539e74cb1f430efbd4575b9303
|
||||
https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.3.2.post1-pyhd8ed1ab_0.tar.bz2#146f4541d643d48fc8a75cacf69f03ae
|
||||
https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2#5844808ffab9ebdb694585b50ba02a96
|
||||
https://conda.anaconda.org/conda-forge/linux-64/tornado-6.2-py310h5764c6d_1.tar.bz2#be4a201ac582c11d89ed7d15b3157cc3
|
||||
https://conda.anaconda.org/conda-forge/noarch/traitlets-5.9.0-pyhd8ed1ab_0.conda#d0b4f5c87cd35ac3fb3d47b223263a64
|
||||
https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.4.0-pyha770c72_0.tar.bz2#2d93b130d148d7fc77e583677792fc6a
|
||||
https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
|
||||
https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.5.0-pyhd8ed1ab_0.conda#6df990e93f39e91a3f45d4d885404d56
|
||||
https://conda.anaconda.org/conda-forge/noarch/wheel-0.38.4-pyhd8ed1ab_0.tar.bz2#c829cfb8cb826acb9de0ac1a2df0a940
|
||||
https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.5-pyhd8ed1ab_0.conda#2af53b3894fb9bdbb3679c0d31028b1b
|
||||
https://conda.anaconda.org/conda-forge/noarch/zipp-3.12.0-pyhd8ed1ab_0.conda#edc3568566cc48335f0b5d86d40fdbb9
|
||||
https://conda.anaconda.org/conda-forge/noarch/anyio-3.6.2-pyhd8ed1ab_0.tar.bz2#8ada050fa88f26916fc1e76e368a49fd
|
||||
https://conda.anaconda.org/conda-forge/noarch/asttokens-2.2.1-pyhd8ed1ab_0.conda#bf7f54dd0f25c3f06ecb82a07341841a
|
||||
https://conda.anaconda.org/conda-forge/noarch/babel-2.11.0-pyhd8ed1ab_0.tar.bz2#2ea70fde8d581ba9425a761609eed6ba
|
||||
https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.4-pyhd8ed1ab_0.tar.bz2#c5b3edc62d6309088f4970b3eaaa65a6
|
||||
https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.11.2-pyha770c72_0.conda#88b59f6989f0ed5ab3433af0b82555e1
|
||||
https://conda.anaconda.org/conda-forge/noarch/bleach-6.0.0-pyhd8ed1ab_0.conda#d48b143d01385872a88ef8417e96c30e
|
||||
https://conda.anaconda.org/conda-forge/linux-64/cffi-1.15.1-py310h255011f_3.conda#800596144bb613cd7ac58b80900ce835
|
||||
https://conda.anaconda.org/conda-forge/noarch/comm-0.1.2-pyhd8ed1ab_0.conda#3c78af4752bb1600ebe5e83ef4588eaa
|
||||
https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.0.0-pyha770c72_0.conda#691644becbcdca9f73243450b1c63e62
|
||||
https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.10.2-pyhd8ed1ab_0.conda#de76905f801c22fc43e624058574eab3
|
||||
https://conda.anaconda.org/conda-forge/noarch/jedi-0.18.2-pyhd8ed1ab_0.conda#b5e695ef9c3f0d27d6cd96bf5adc9e07
|
||||
https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2#c8490ed5c70966d232fdd389d0dbed37
|
||||
https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2#b21613793fcc81d944c76c9f2864a7de
|
||||
https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh1a96a4e_2.tar.bz2#330448ce4403cc74990ac07c555942a1
|
||||
https://conda.anaconda.org/conda-forge/noarch/pip-23.0-pyhd8ed1ab_0.conda#85b35999162ec95f9f999bac15279c02
|
||||
https://conda.anaconda.org/conda-forge/noarch/pygments-2.14.0-pyhd8ed1ab_0.conda#c78cd16b11cd6a295484bd6c8f24bea1
|
||||
https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984
|
||||
https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.21-py310h5764c6d_2.tar.bz2#93643151fba5c31c676effdd7661f075
|
||||
https://conda.anaconda.org/conda-forge/noarch/terminado-0.17.1-pyh41d4057_0.conda#3788984d535770cad699efaeb6cb3037
|
||||
https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.2.1-pyhd8ed1ab_0.tar.bz2#7234c9eefff659501cd2fe0d2ede4d48
|
||||
https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.4.0-hd8ed1ab_0.tar.bz2#be969210b61b897775a0de63cd9e9026
|
||||
https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py310h5764c6d_3.tar.bz2#12f70cd23e4ea88f913dba50b0f0aba0
|
||||
https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py310h5764c6d_1005.tar.bz2#87669c3468dff637bbd0363bc0f895cf
|
||||
https://conda.anaconda.org/conda-forge/linux-64/cryptography-39.0.0-py310h34c0648_0.conda#af4b0c22dc4006ce3c095e840cb2efd7
|
||||
https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.0.0-hd8ed1ab_0.conda#a67d43e1527a37199dd8db913366f68e
|
||||
https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.17.3-pyhd8ed1ab_0.conda#723268a468177cd44568eb8f794e0d80
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.2.2-pyhd8ed1ab_0.tar.bz2#243f63592c8e449f40cd42eb5cf32f40
|
||||
https://conda.anaconda.org/conda-forge/noarch/mako-1.2.4-pyhd8ed1ab_0.tar.bz2#0d072f0edc017b6318dbab701e053f94
|
||||
https://conda.anaconda.org/conda-forge/noarch/platformdirs-2.6.2-pyhd8ed1ab_0.conda#0b4cc3f8181b0d8446eb5387d7848a54
|
||||
https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-2.0.1-py310h1fa729e_0.conda#36d7a1e3607af5b562b3bec4dddfbc58
|
||||
https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda#e7df0fdd404616638df5ece6e69ba7af
|
||||
https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.6-pyhd8ed1ab_0.conda#078979d33523cb477bd1916ce41aacc9
|
||||
https://conda.anaconda.org/conda-forge/noarch/alembic-1.9.1-pyhd8ed1ab_0.conda#5519188d282629ce4fef73eb87285cbe
|
||||
https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-21.3.0-pyhd8ed1ab_0.tar.bz2#a0b402db58f73aaab8ee0ca1025a362e
|
||||
https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.2.0-py310hff52083_0.conda#fe002e7c5030e7baec9e0f9a6cdbe15e
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyter_telemetry-0.1.0-pyhd8ed1ab_1.tar.bz2#bb9ebdb6d5aa2622484aff1faceee181
|
||||
https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.2.2-pyhd8ed1ab_0.tar.bz2#8f882b197fd9c4941a787926baea4868
|
||||
https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.36-pyha770c72_0.conda#4d79ec192e0bfd530a254006d123b9a6
|
||||
https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.0.0-pyhd8ed1ab_0.conda#d41957700e83bbb925928764cb7f8878
|
||||
https://conda.anaconda.org/conda-forge/noarch/certipy-0.1.3-py_0.tar.bz2#23486713ef5712923e7c57cae609b22e
|
||||
https://conda.anaconda.org/conda-forge/noarch/ipython-8.9.0-pyh41d4057_0.conda#399217b9b00e59e990585576eeca3dde
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.0.2-pyhd8ed1ab_0.conda#cbb8d182b6053ce14b5fe60ef1e36fbb
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbformat-5.7.3-pyhd8ed1ab_0.conda#9714111cb6c7dbbc9a9f34de205c2f29
|
||||
https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.14-pyhd8ed1ab_0.conda#01f33ad2e0aaf6b5ba4add50dad5ad29
|
||||
https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.21.1-pyh210e3f2_0.conda#225e7869419b8bcae5d3165eba50204d
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbclient-0.7.2-pyhd8ed1ab_0.conda#6c7b0d75b66a220274bb5a28c23197f2
|
||||
https://conda.anaconda.org/conda-forge/noarch/requests-2.28.2-pyhd8ed1ab_0.conda#11d178fc55199482ee48d6812ea83983
|
||||
https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.0.2-pyhd8ed1ab_1.tar.bz2#81b7f46918555bf911ad2ba2f3259094
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterhub-base-3.1.1-pyh2a2186d_0.conda#78fc5dfd4577a7ba172fa65eb64b6afb
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.2.9-pyhd8ed1ab_0.conda#a9e1826152e79416db71c51b0d3af28c
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.23.5-pyhd8ed1ab_0.conda#e3ae1d46749f48a1875b560fca41cb0c
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.2.9-pyhd8ed1ab_0.conda#4a8dc94c7c2f3736dc4b91ec345d5b4b
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.7.0-pyhd8ed1ab_0.conda#c57567d49d926826b1f852712ac8acfa
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.19.0-pyhd8ed1ab_0.conda#9dc0706ec2f8e13b7a0db9d6a19051ff
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.2.9-pyhd8ed1ab_0.conda#523aaa3affb003ab0e68dbc24c9027f4
|
||||
https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.2-pyhd8ed1ab_0.tar.bz2#40be846cd4e78672a40e43db9dae753c
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.5.1-pyhd8ed1ab_0.conda#cf832e3d48ef22528c676ed6e4b4085a
|
||||
https://conda.anaconda.org/conda-forge/noarch/notebook-6.4.12-pyha770c72_0.tar.bz2#77fc67c5bbea44fd41e8bbe2ac82d1ad
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.2-pyh1d7be83_0.tar.bz2#fe55056ce4bc4bd4953ba440270735fb
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.4.8-pyhd8ed1ab_0.tar.bz2#6fbf13b0e8a6fa24bbae91205e8ce467
|
||||
https://conda.anaconda.org/conda-forge/noarch/nteract_on_jupyter-2.1.3-py_0.tar.bz2#1430ccd983ae6b161e2fbf4377965f7a
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterhub-singleuser-3.1.1-pyh2a2186d_0.conda#6d0a3394efe9ff7c0ad1ed03a6ca3720
|
|
@ -1,149 +0,0 @@
|
|||
# AUTO GENERATED FROM environment.py-3.10.yml, DO NOT MANUALLY MODIFY
|
||||
# Frozen on 2023-02-03 12:34:31 UTC
|
||||
# Generated by conda-lock.
|
||||
# platform: linux-aarch64
|
||||
# input_hash: c039d9a57d204f210d3832a8744df6e5ed536030655439a29ff883148f704b60
|
||||
@EXPLICIT
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2022.12.7-h4fd8a4c_0.conda#2450fbcaf65634e0d071e47e2b8487b4
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.40-h2d8c526_0.conda#16246d69e945d0b1969a6099e7c5d457
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-12.2.0-h607ecd0_19.tar.bz2#65b9cb876525dcb2e74a90cf02c6762a
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-12.2.0-hc13a102_19.tar.bz2#981741cd4321edd5c504b48f74fe91f2
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/pandoc-2.19.2-h8af1aa0_1.tar.bz2#8cbce7de77fba569ba716dcfbfdca8e6
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.10-3_cp310.conda#7f4f00b03d3a7c4d4b8b987e5da461a9
|
||||
https://conda.anaconda.org/conda-forge/noarch/tzdata-2022g-h191b570_0.conda#51fc4fcfb19f5d95ffc8c339db5068e8
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2#6168d71addc746e8f2b8d57dfd2edcea
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-12.2.0-h607ecd0_19.tar.bz2#8456a29b6d9fc3123ccb9a966b6b2c49
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-hf897c2e_4.tar.bz2#2d787570a729e273a4e75775ddf3348a
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/icu-70.1-ha18d298_0.tar.bz2#014656d28b7b6f8a566437c69552f9ae
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2#dddd85f4d52121fab0a8b099c5e06501
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.0-hf897c2e_0.tar.bz2#36fdbc05c9d9145ece86f5a63c3f352e
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/libsodium-1.0.18-hb9de7d4_1.tar.bz2#d09ab3c60eebb6f14eb4d07e172775cc
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.32.1-hf897c2e_1000.tar.bz2#e038da5ef9095b0d79aac14a311394e7
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.44.2-h4e544f5_0.tar.bz2#58b9dbd5d4bd100e278c3d7e1976f566
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.2.13-h4e544f5_4.tar.bz2#88596b6277fe6d39f046983aae6044db
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.3-headf329_1.tar.bz2#486b68148e121bc8bbadc3cefae4c04f
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.0.7-hb4cce97_2.conda#ace4ef3f75947c9ccfc413a4507fc4fe
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.2.6-h9cdd2b7_0.tar.bz2#83baad393a31d59c20b63ba4da6592df
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.40.0-hf9034f9_0.tar.bz2#9afb0d5dbaa403858a660cd0b4a31d29
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.1.2-h38e3740_0.tar.bz2#3cdbfb7d7b63ae2c2d35bb167d257ecd
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.12-hd8af866_0.tar.bz2#7894e82ff743bd96c76585ddebe28e2a
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/zeromq-4.3.4-h01db608_1.tar.bz2#dd56c9ce3f1f689a5e71941830349279
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.2.13-h4e544f5_4.tar.bz2#dc8395f4a79bb0b13ca7d855c72482d4
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-18.12.1-h928fb59_0.tar.bz2#b0ff8fc996c6e50ac2b3e1a5dcc14d34
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.10.9-ha43d526_0_cpython.conda#24478dd738f2d557efe2a4fc6a248eb3
|
||||
https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
|
||||
https://conda.anaconda.org/conda-forge/noarch/attrs-22.2.0-pyh71513ae_0.conda#8b76db7818a4e401ed4486c4c1635cd9
|
||||
https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2#6006a6d08a3fa99268a2681c7fb55213
|
||||
https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda#54ca2e08b3220c148a1d8329c2678e02
|
||||
https://conda.anaconda.org/conda-forge/noarch/blinker-1.5-pyhd8ed1ab_0.tar.bz2#f473c4e32d8180733ba5594d122cb637
|
||||
https://conda.anaconda.org/conda-forge/noarch/certifi-2022.12.7-pyhd8ed1ab_0.conda#fb9addc3db06e56abe03e0e9f21a63e6
|
||||
https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.1.1-pyhd8ed1ab_0.tar.bz2#c1d5b294fbf9a795dec349a6f4d8be8e
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/debugpy-1.6.6-py310hbc44c02_0.conda#8b1b0ed3369a213a469e90818119a1ad
|
||||
https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364
|
||||
https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2
|
||||
https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2#3cf04868fee0a029769bd41f4b2fbf2d
|
||||
https://conda.anaconda.org/conda-forge/noarch/executing-1.2.0-pyhd8ed1ab_0.tar.bz2#4c1bc140e2be5c8ba6e3acab99e25c50
|
||||
https://conda.anaconda.org/conda-forge/noarch/flit-core-3.8.0-pyhd8ed1ab_0.tar.bz2#6d5e56de2e65da7aa35fd10131226efa
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/greenlet-2.0.2-py310hbc44c02_0.conda#805225e56b95d1cca7f990d99c358bdc
|
||||
https://conda.anaconda.org/conda-forge/noarch/idna-3.4-pyhd8ed1ab_0.tar.bz2#34272b248891bddccc64479f9a7fffed
|
||||
https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-py_1.tar.bz2#5071c982548b3a20caf70462f04f5287
|
||||
https://conda.anaconda.org/conda-forge/noarch/json5-0.9.5-pyh9f0ad1d_0.tar.bz2#10759827a94e6b14996e81fb002c0bda
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.5-pyhd8ed1ab_0.conda#953a312b272f37d39fe9d09f46734622
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/markupsafe-2.1.2-py310h734f5e8_0.conda#e511c7fb8abad744ecbf1dee01603cde
|
||||
https://conda.anaconda.org/conda-forge/noarch/mistune-2.0.4-pyhd8ed1ab_0.tar.bz2#78e0a90393b79b378b8ff6d32893d58a
|
||||
https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.6-pyhd8ed1ab_0.tar.bz2#7b868f21adde0d9b8b38f9c16836589b
|
||||
https://conda.anaconda.org/conda-forge/noarch/packaging-23.0-pyhd8ed1ab_0.conda#1ff2e3ca41f0ce16afec7190db28288b
|
||||
https://conda.anaconda.org/conda-forge/noarch/pamela-1.0.0-py_0.tar.bz2#36f6f18d2f3ae0c93d77a9dbedad08c3
|
||||
https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9
|
||||
https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2#17a565a0c3899244e938cdf417e7b094
|
||||
https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2#415f0ebb6198cc2801c73438a9fb5761
|
||||
https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_0.tar.bz2#89e3c7cdde7d3aaa2aee933b604dd07f
|
||||
https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.16.0-pyhd8ed1ab_0.conda#8efaddc1c8b8ce262c4d1a7c6571c799
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/psutil-5.9.4-py310h761cc84_0.tar.bz2#50a75748a7239960359f38a13db42c4c
|
||||
https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2#359eeb6536da0e687af562ed265ec263
|
||||
https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2#6784285c7e55cb7212efabc79e4c2883
|
||||
https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff
|
||||
https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.6.0-pyhd8ed1ab_0.tar.bz2#56d08bbebf5b3719ca2b1688fcfd98a4
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/pyrsistent-0.19.3-py310h734f5e8_0.conda#07d93aae0c8d3dedb892b67c9f534587
|
||||
https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2#2a7de29fb590ca14b5243c4c812c8025
|
||||
https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.16.2-pyhd8ed1ab_0.tar.bz2#5fe4b6002f505336734ce92961b3e6a0
|
||||
https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.4-pyhd8ed1ab_0.conda#6d1f4215f123c18aed06fb4104bcb11a
|
||||
https://conda.anaconda.org/conda-forge/noarch/pytz-2022.7.1-pyhd8ed1ab_0.conda#f59d49a7b464901cf714b9e7984d01a2
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/pyzmq-25.0.0-py310h1438264_0.conda#c1fc6b100d824f9431564e5c26943ee9
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.7-py310hb89b984_1.conda#89972c78c36ed3261c22bde7c012be03
|
||||
https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.0-pyhd8ed1ab_0.tar.bz2#edab14119efe85c3bf131ad747e9005c
|
||||
https://conda.anaconda.org/conda-forge/noarch/setuptools-67.1.0-pyhd8ed1ab_0.conda#845dae446df791b5e1a3eaa6454640c1
|
||||
https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2
|
||||
https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.0-pyhd8ed1ab_0.tar.bz2#dd6cbc539e74cb1f430efbd4575b9303
|
||||
https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.3.2.post1-pyhd8ed1ab_0.tar.bz2#146f4541d643d48fc8a75cacf69f03ae
|
||||
https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2#5844808ffab9ebdb694585b50ba02a96
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/tornado-6.2-py310hdc54845_1.tar.bz2#343c5468b69f14f4009cfcf8ae286f98
|
||||
https://conda.anaconda.org/conda-forge/noarch/traitlets-5.9.0-pyhd8ed1ab_0.conda#d0b4f5c87cd35ac3fb3d47b223263a64
|
||||
https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.4.0-pyha770c72_0.tar.bz2#2d93b130d148d7fc77e583677792fc6a
|
||||
https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
|
||||
https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.5.0-pyhd8ed1ab_0.conda#6df990e93f39e91a3f45d4d885404d56
|
||||
https://conda.anaconda.org/conda-forge/noarch/wheel-0.38.4-pyhd8ed1ab_0.tar.bz2#c829cfb8cb826acb9de0ac1a2df0a940
|
||||
https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.5-pyhd8ed1ab_0.conda#2af53b3894fb9bdbb3679c0d31028b1b
|
||||
https://conda.anaconda.org/conda-forge/noarch/zipp-3.12.0-pyhd8ed1ab_0.conda#edc3568566cc48335f0b5d86d40fdbb9
|
||||
https://conda.anaconda.org/conda-forge/noarch/anyio-3.6.2-pyhd8ed1ab_0.tar.bz2#8ada050fa88f26916fc1e76e368a49fd
|
||||
https://conda.anaconda.org/conda-forge/noarch/asttokens-2.2.1-pyhd8ed1ab_0.conda#bf7f54dd0f25c3f06ecb82a07341841a
|
||||
https://conda.anaconda.org/conda-forge/noarch/babel-2.11.0-pyhd8ed1ab_0.tar.bz2#2ea70fde8d581ba9425a761609eed6ba
|
||||
https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.4-pyhd8ed1ab_0.tar.bz2#c5b3edc62d6309088f4970b3eaaa65a6
|
||||
https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.11.2-pyha770c72_0.conda#88b59f6989f0ed5ab3433af0b82555e1
|
||||
https://conda.anaconda.org/conda-forge/noarch/bleach-6.0.0-pyhd8ed1ab_0.conda#d48b143d01385872a88ef8417e96c30e
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.15.1-py310hf0c4615_3.conda#a2bedcb1d205485ea32fe5d2bd6fd970
|
||||
https://conda.anaconda.org/conda-forge/noarch/comm-0.1.2-pyhd8ed1ab_0.conda#3c78af4752bb1600ebe5e83ef4588eaa
|
||||
https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.0.0-pyha770c72_0.conda#691644becbcdca9f73243450b1c63e62
|
||||
https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.10.2-pyhd8ed1ab_0.conda#de76905f801c22fc43e624058574eab3
|
||||
https://conda.anaconda.org/conda-forge/noarch/jedi-0.18.2-pyhd8ed1ab_0.conda#b5e695ef9c3f0d27d6cd96bf5adc9e07
|
||||
https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2#c8490ed5c70966d232fdd389d0dbed37
|
||||
https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2#b21613793fcc81d944c76c9f2864a7de
|
||||
https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh1a96a4e_2.tar.bz2#330448ce4403cc74990ac07c555942a1
|
||||
https://conda.anaconda.org/conda-forge/noarch/pip-23.0-pyhd8ed1ab_0.conda#85b35999162ec95f9f999bac15279c02
|
||||
https://conda.anaconda.org/conda-forge/noarch/pygments-2.14.0-pyhd8ed1ab_0.conda#c78cd16b11cd6a295484bd6c8f24bea1
|
||||
https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.17.21-py310h761cc84_2.tar.bz2#98c0b13f20fcb4f5080554d137e39b37
|
||||
https://conda.anaconda.org/conda-forge/noarch/terminado-0.17.1-pyh41d4057_0.conda#3788984d535770cad699efaeb6cb3037
|
||||
https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.2.1-pyhd8ed1ab_0.tar.bz2#7234c9eefff659501cd2fe0d2ede4d48
|
||||
https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.4.0-hd8ed1ab_0.tar.bz2#be969210b61b897775a0de63cd9e9026
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/argon2-cffi-bindings-21.2.0-py310h761cc84_3.tar.bz2#bba0e5198226ac75f17857b43483d054
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/brotlipy-0.7.0-py310h761cc84_1005.tar.bz2#66934993368d01f896652925d3ac7e66
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-39.0.0-py310he4ba0b1_0.conda#fac36b7b925b4661f56d67d54578c28e
|
||||
https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.0.0-hd8ed1ab_0.conda#a67d43e1527a37199dd8db913366f68e
|
||||
https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.17.3-pyhd8ed1ab_0.conda#723268a468177cd44568eb8f794e0d80
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.2.2-pyhd8ed1ab_0.tar.bz2#243f63592c8e449f40cd42eb5cf32f40
|
||||
https://conda.anaconda.org/conda-forge/noarch/mako-1.2.4-pyhd8ed1ab_0.tar.bz2#0d072f0edc017b6318dbab701e053f94
|
||||
https://conda.anaconda.org/conda-forge/noarch/platformdirs-2.6.2-pyhd8ed1ab_0.conda#0b4cc3f8181b0d8446eb5387d7848a54
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/sqlalchemy-2.0.1-py310h734f5e8_0.conda#1a4c6b08354b1f988b87ee363fe72767
|
||||
https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda#e7df0fdd404616638df5ece6e69ba7af
|
||||
https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.6-pyhd8ed1ab_0.conda#078979d33523cb477bd1916ce41aacc9
|
||||
https://conda.anaconda.org/conda-forge/noarch/alembic-1.9.1-pyhd8ed1ab_0.conda#5519188d282629ce4fef73eb87285cbe
|
||||
https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-21.3.0-pyhd8ed1ab_0.tar.bz2#a0b402db58f73aaab8ee0ca1025a362e
|
||||
https://conda.anaconda.org/conda-forge/linux-aarch64/jupyter_core-5.2.0-py310h4c7bcd0_0.conda#27c243e89c335ad7f5c43da8579abcc2
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyter_telemetry-0.1.0-pyhd8ed1ab_1.tar.bz2#bb9ebdb6d5aa2622484aff1faceee181
|
||||
https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.2.2-pyhd8ed1ab_0.tar.bz2#8f882b197fd9c4941a787926baea4868
|
||||
https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.36-pyha770c72_0.conda#4d79ec192e0bfd530a254006d123b9a6
|
||||
https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.0.0-pyhd8ed1ab_0.conda#d41957700e83bbb925928764cb7f8878
|
||||
https://conda.anaconda.org/conda-forge/noarch/certipy-0.1.3-py_0.tar.bz2#23486713ef5712923e7c57cae609b22e
|
||||
https://conda.anaconda.org/conda-forge/noarch/ipython-8.9.0-pyh41d4057_0.conda#399217b9b00e59e990585576eeca3dde
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.0.2-pyhd8ed1ab_0.conda#cbb8d182b6053ce14b5fe60ef1e36fbb
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbformat-5.7.3-pyhd8ed1ab_0.conda#9714111cb6c7dbbc9a9f34de205c2f29
|
||||
https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.14-pyhd8ed1ab_0.conda#01f33ad2e0aaf6b5ba4add50dad5ad29
|
||||
https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.21.1-pyh210e3f2_0.conda#225e7869419b8bcae5d3165eba50204d
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbclient-0.7.2-pyhd8ed1ab_0.conda#6c7b0d75b66a220274bb5a28c23197f2
|
||||
https://conda.anaconda.org/conda-forge/noarch/requests-2.28.2-pyhd8ed1ab_0.conda#11d178fc55199482ee48d6812ea83983
|
||||
https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.0.2-pyhd8ed1ab_1.tar.bz2#81b7f46918555bf911ad2ba2f3259094
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterhub-base-3.1.1-pyh2a2186d_0.conda#78fc5dfd4577a7ba172fa65eb64b6afb
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.2.9-pyhd8ed1ab_0.conda#a9e1826152e79416db71c51b0d3af28c
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.23.5-pyhd8ed1ab_0.conda#e3ae1d46749f48a1875b560fca41cb0c
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.2.9-pyhd8ed1ab_0.conda#4a8dc94c7c2f3736dc4b91ec345d5b4b
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.7.0-pyhd8ed1ab_0.conda#c57567d49d926826b1f852712ac8acfa
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.19.0-pyhd8ed1ab_0.conda#9dc0706ec2f8e13b7a0db9d6a19051ff
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.2.9-pyhd8ed1ab_0.conda#523aaa3affb003ab0e68dbc24c9027f4
|
||||
https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.2-pyhd8ed1ab_0.tar.bz2#40be846cd4e78672a40e43db9dae753c
|
||||
https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.5.1-pyhd8ed1ab_0.conda#cf832e3d48ef22528c676ed6e4b4085a
|
||||
https://conda.anaconda.org/conda-forge/noarch/notebook-6.4.12-pyha770c72_0.tar.bz2#77fc67c5bbea44fd41e8bbe2ac82d1ad
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyter-offlinenotebook-0.2.2-pyh1d7be83_0.tar.bz2#fe55056ce4bc4bd4953ba440270735fb
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.4.8-pyhd8ed1ab_0.tar.bz2#6fbf13b0e8a6fa24bbae91205e8ce467
|
||||
https://conda.anaconda.org/conda-forge/noarch/nteract_on_jupyter-2.1.3-py_0.tar.bz2#1430ccd983ae6b161e2fbf4377965f7a
|
||||
https://conda.anaconda.org/conda-forge/noarch/jupyterhub-singleuser-3.1.1-pyh2a2186d_0.conda#6d0a3394efe9ff7c0ad1ed03a6ca3720
|
|
@ -11,8 +11,6 @@ python freeze.py [3.8]
|
|||
|
||||
import os
|
||||
import pathlib
|
||||
import shutil
|
||||
import sys
|
||||
from argparse import ArgumentParser
|
||||
from datetime import datetime
|
||||
from subprocess import check_call
|
||||
|
@ -22,8 +20,6 @@ from ruamel.yaml import YAML
|
|||
HERE = pathlib.Path(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
ENV_FILE = HERE / "environment.yml"
|
||||
FROZEN_FILE_T = os.path.splitext(ENV_FILE)[0] + "-{platform}.lock"
|
||||
|
||||
ENV_FILE_T = HERE / "environment.py-{py}.yml"
|
||||
|
||||
yaml = YAML(typ="rt")
|
||||
|
@ -126,7 +122,6 @@ if __name__ == "__main__":
|
|||
default=("linux-64", "linux-aarch64"),
|
||||
)
|
||||
args = parser.parse_args()
|
||||
default_py = "3.10"
|
||||
for py in args.py:
|
||||
for platform in args.platform:
|
||||
env_file = pathlib.Path(str(ENV_FILE_T).format(py=py))
|
||||
|
@ -135,5 +130,3 @@ if __name__ == "__main__":
|
|||
os.path.splitext(env_file)[0] + f"-{platform}.lock"
|
||||
)
|
||||
freeze(env_file, frozen_file, platform)
|
||||
if py == default_py:
|
||||
shutil.copy(frozen_file, FROZEN_FILE_T.format(platform=platform))
|
||||
|
|
|
@ -64,15 +64,19 @@ class PipfileBuildPack(CondaBuildPack):
|
|||
|
||||
# extract major.minor
|
||||
if py_version:
|
||||
if len(py_version.split(".")) == 1:
|
||||
self._python_version = self.major_pythons.get(py_version[0])
|
||||
py_version_info = py_version.split(".")
|
||||
if len(py_version_info) == 1:
|
||||
self._python_version = self.major_pythons[py_version_info[0]]
|
||||
else:
|
||||
# return major.minor
|
||||
self._python_version = ".".join(py_version.split(".")[:2])
|
||||
self._python_version = ".".join(py_version_info[:2])
|
||||
return self._python_version
|
||||
else:
|
||||
# use the default Python
|
||||
self._python_version = self.major_pythons["3"]
|
||||
self.log.warning(
|
||||
f"Python version unspecified, using current default Python version {self._python_version}. This will change in the future."
|
||||
)
|
||||
return self._python_version
|
||||
|
||||
def get_preassemble_script_files(self):
|
||||
|
|
|
@ -23,6 +23,9 @@ class PythonBuildPack(CondaBuildPack):
|
|||
# not a Python runtime (e.g. R, which subclasses this)
|
||||
# use the default Python
|
||||
self._python_version = self.major_pythons["3"]
|
||||
self.log.warning(
|
||||
f"Python version unspecified, using current default Python version {self._python_version}. This will change in the future."
|
||||
)
|
||||
return self._python_version
|
||||
|
||||
py_version_info = runtime.split("-", 1)[1].split(".")
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
"""
|
||||
Test if the environment.yml is empty or it constains other data structure than a dictionary
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
|
||||
import pytest
|
||||
|
||||
|
@ -15,8 +13,8 @@ def test_empty_env_yml(tmpdir):
|
|||
p.write("")
|
||||
bp = buildpacks.CondaBuildPack()
|
||||
py_ver = bp.python_version
|
||||
# If the environment.yml is empty python_version will get an empty string
|
||||
assert py_ver == ""
|
||||
# If the environment.yml is empty, python_version will get the default Python version
|
||||
assert py_ver == bp.major_pythons["3"]
|
||||
|
||||
|
||||
def test_no_dict_env_yml(tmpdir):
|
||||
|
|
Ładowanie…
Reference in New Issue