microproduct/atmosphericDelay/ISCEApp/site-packages/tox/package/builder/legacy.py

60 lines
2.2 KiB
Python

import sys
import py
from tox import reporter
from tox.util.path import ensure_empty_dir
def make_sdist(config, session):
setup = config.setupdir.join("setup.py")
pyproject = config.setupdir.join("pyproject.toml")
setup_check = setup.check()
if not setup_check and not pyproject.check():
reporter.error(
"No pyproject.toml or setup.py file found. The expected locations are:\n"
" {pyproject} or {setup}\n"
"You can\n"
" 1. Create one:\n"
" https://tox.readthedocs.io/en/latest/example/package.html\n"
" 2. Configure tox to avoid running sdist:\n"
" https://tox.readthedocs.io/en/latest/example/general.html\n"
" 3. Configure tox to use an isolated_build".format(pyproject=pyproject, setup=setup),
)
raise SystemExit(1)
if not setup_check:
reporter.error(
"pyproject.toml file found.\n"
"To use a PEP 517 build-backend you are required to "
"configure tox to use an isolated_build:\n"
"https://tox.readthedocs.io/en/latest/example/package.html\n",
)
raise SystemExit(1)
with session.newaction("GLOB", "packaging") as action:
action.setactivity("sdist-make", setup)
ensure_empty_dir(config.distdir)
build_log = action.popen(
[sys.executable, setup, "sdist", "--formats=zip", "--dist-dir", config.distdir],
cwd=config.setupdir,
returnout=True,
)
reporter.verbosity2(build_log)
try:
return config.distdir.listdir()[0]
except py.error.ENOENT:
# check if empty or comment only
data = []
with open(str(setup)) as fp:
for line in fp:
if line and line[0] == "#":
continue
data.append(line)
if not "".join(data).strip():
reporter.error("setup.py is empty")
raise SystemExit(1)
reporter.error(
"No dist directory found. Please check setup.py, e.g with:\n"
" python setup.py sdist",
)
raise SystemExit(1)