-
-
Notifications
You must be signed in to change notification settings - Fork 63
Commit
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
""" | ||
initialize this testbed. | ||
""" | ||
|
||
from os import name as os_name | ||
from os.path import dirname, join | ||
from subprocess import PIPE, CompletedProcess, run # nosec:B404 | ||
from sys import argv, executable | ||
from typing import Any | ||
from venv import EnvBuilder | ||
|
||
__all__ = ['main'] | ||
|
||
this_dir = dirname(__file__) | ||
env_dir = join(this_dir, '.venv') | ||
constraint_file = join(this_dir, 'pinning.txt') | ||
|
||
|
||
def pip_run(*args: str, **kwargs: Any) -> CompletedProcess: | ||
# pip is not API, but a CLI -- call it like that! | ||
call = ( | ||
executable, '-m', 'pip', | ||
'--python', env_dir, | ||
*args | ||
) | ||
print('+ ', *call) | ||
res = run(call, **kwargs, cwd=this_dir, shell=False) # nosec:B603 | ||
if res.returncode != 0: | ||
raise RuntimeError('process failed') | ||
Check failure on line 29 in tests/_data/infiles/environment/with-license-text/init.py
|
||
return res | ||
|
||
|
||
def pip_install(*args: str) -> None: | ||
pip_run( | ||
'install', '--require-virtualenv', '--no-input', '--progress-bar=off', '--no-color', | ||
'-c', constraint_file, # needed for reproducibility | ||
*args | ||
) | ||
|
||
|
||
def main() -> None: | ||
EnvBuilder( | ||
system_site_packages=False, | ||
symlinks=os_name != 'nt', | ||
with_pip=False, | ||
).create(env_dir) | ||
|
||
pip_install( | ||
'numpy==1.26.4', | ||
) | ||
|
||
|
||
if __name__ == '__main__': | ||
main() | ||
if '--pin' in argv: | ||
res = pip_run('freeze', '--all', '--local', stdout=PIPE) | ||
with open(constraint_file, 'wb') as cf: | ||
cf.write(res.stdout) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
numpy==1.26.4 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
[project] | ||
# https://packaging.python.org/en/latest/specifications/declaring-project-metadata/#declaring-project-metadata | ||
name = "with-license-text" | ||
version = "0.1.0" | ||
description = "with licenses as text, instead of SPDX ID/Expression" | ||
# see https://packaging.python.org/en/latest/specifications/pyproject-toml/#license | ||
license = {text="This is the license text of this component.\nIt is expected to be available in a SBOM."} | ||
|
||
dependencies = [ | ||
# some packages that have a complete license text declared | ||
"numpy==1.24.4" | ||
] |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.