Having issues with tox 3.13.1 in my environment. 3.12.x works flawlessly. Others in my company are reporting no issues with tox launched from a py3 context. Unable to reproduce in another project yet
python: 2.7
environ: py27
os: ubuntu 16.02 docker
The process fails after creating a .tox/.tox/ folder and never generates the expected .tox/py## virtualenv folders
tox.ini
[tox]
envlist = py27
[testenv]
deps =
pytest
pytest-cov==2.6.0
cython
numpy
six
setenv =
PYTHONHASHSEED = 0
commands =
pytest [REDACTED_PROJECT_NAME]/tests --junitxml=test-results/junit-{envname}.xml
tox --sitepackages -rvv
using tox.ini: /home/[REDACTED_PROJECT_PATH]/tox.ini (pid 1)
could not satisfy requires MissingDependency(<Requirement('tox>=3.13.1')>,)
using tox-3.13.1 from /usr/local/lib/python2.7/dist-packages/tox/__init__.pyc (pid 1)
.tox start: getenv /home/[REDACTED_PROJECT_PATH]/.tox/.tox
.tox cannot reuse: -r flag
.tox create: /home/[REDACTED_PROJECT_PATH]/.tox/.tox
/usr/bin/python (/usr/bin/python) is {u'executable': u'/usr/bin/python', u'name': u'python', u'version_info': [2, 7, 12, u'final', 0], u'sysplatform': u'linux2', u'version': u'2.7.12 (default, Nov 12 2018, 14:36:49) \n[GCC 5.4.0 20160609]', u'is_64': True}
.tox uses /usr/bin/python
setting PATH=/home/[REDACTED_PROJECT_PATH]/.tox/.tox/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[12] /home/[REDACTED_PROJECT_PATH]/.tox$ /usr/bin/python -m virtualenv --system-site-packages --no-download --python /usr/bin/python .tox
Already using interpreter /usr/bin/python
New python executable in /home/[REDACTED_PROJECT_PATH]/.tox/.tox/bin/python
Installing setuptools, pip, wheel...
done.
.tox installdeps: tox >= 3.13.1
setting PATH=/home/[REDACTED_PROJECT_PATH]/.tox/.tox/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[21] /home/[REDACTED_PROJECT_PATH]l$ /home/[REDACTED_PROJECT_PATH]/.tox/.tox/bin/python -m pip install 'tox >= 3.13.1'
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Looking in indexes: https://pypi01.cid.cs.sys/simple/, https://pypi.python.org/simple
Requirement already satisfied: tox>=3.13.1 in /usr/local/lib/python2.7/dist-packages (3.13.1)
Requirement already satisfied: packaging>=14 in /usr/local/lib/python2.7/dist-packages (from tox>=3.13.1) (19.0)
Requirement already satisfied: six<2,>=1.0.0 in /usr/local/lib/python2.7/dist-packages (from tox>=3.13.1) (1.12.0)
Requirement already satisfied: pluggy<1,>=0.12.0 in /usr/local/lib/python2.7/dist-packages (from tox>=3.13.1) (0.12.0)
Requirement already satisfied: toml>=0.9.4 in /usr/local/lib/python2.7/dist-packages (from tox>=3.13.1) (0.10.0)
Requirement already satisfied: virtualenv>=14.0.0 in /usr/local/lib/python2.7/dist-packages (from tox>=3.13.1) (16.6.1)
Requirement already satisfied: py<2,>=1.4.17 in /usr/local/lib/python2.7/dist-packages (from tox>=3.13.1) (1.8.0)
Requirement already satisfied: importlib-metadata<1,>=0.12 in /usr/local/lib/python2.7/dist-packages (from tox>=3.13.1) (0.18)
Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python2.7/dist-packages (from tox>=3.13.1) (3.0.12)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/lib/python2.7/dist-packages (from packaging>=14->tox>=3.13.1) (2.4.0)
Requirement already satisfied: contextlib2; python_version < "3" in /usr/local/lib/python2.7/dist-packages (from importlib-metadata<1,>=0.12->tox>=3.13.1) (0.5.5)
Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python2.7/dist-packages (from importlib-metadata<1,>=0.12->tox>=3.13.1) (0.5.1)
Requirement already satisfied: pathlib2; python_version == "3.4.*" or python_version < "3" in /usr/local/lib/python2.7/dist-packages (from importlib-metadata<1,>=0.12->tox>=3.13.1) (2.3.3)
Requirement already satisfied: configparser>=3.5; python_version < "3" in /usr/local/lib/python2.7/dist-packages (from importlib-metadata<1,>=0.12->tox>=3.13.1) (3.7.4)
Requirement already satisfied: scandir; python_version < "3.5" in /usr/local/lib/python2.7/dist-packages (from pathlib2; python_version == "3.4.*" or python_version < "3"->importlib-metadata<1,>=0.12->tox>=3.13.1) (1.10.0)
.tox finish: getenv /home/[REDACTED_PROJECT_PATH]/.tox/.tox after 24.97 seconds
.tox start: finishvenv
write config to /home/[REDACTED_PROJECT_PATH]/.tox/.tox/.tox-config1 as 'fdfa6acc26b1a187ba86772f74812876 /usr/bin/python\n3.13.1 1 0 0\n00000000000000000000000000000000 tox >= 3.13.1'
.tox finish: finishvenv after 0.02 seconds
.tox start: provision
[28] /home/[REDACTED_PROJECT_PATH]$ /home/[REDACTED_PROJECT_PATH]/.tox/.tox/bin/python -m tox --sitepackages -rvv
using tox.ini: /home/[REDACTED_PROJECT_PATH]/tox.ini (pid 28)
removing /home/[REDACTED_PROJECT_PATH]/.tox/log
could not satisfy requires MissingDependency(<Requirement('tox>=3.13.1')>,)
using tox-3.13.1 from /usr/local/lib/python2.7/dist-packages/tox/__init__.pyc (pid 28)
.tox start: getenv /home/[REDACTED_PROJECT_PATH]/.tox/.tox
.tox cannot reuse: -r flag
.tox recreate: /home/[REDACTED_PROJECT_PATH]/.tox/.tox
/home/[REDACTED_PROJECT_PATH]/.tox/.tox/bin/python (/home/[REDACTED_PROJECT_PATH]/.tox/.tox/bin/python) is {u'executable': u'/home/[REDACTED_PROJECT_PATH]/.tox/.tox/bin/python', u'name': u'python', u'version_info': [2, 7, 12, u'final', 0], u'sysplatform': u'linux2', u'version': u'2.7.12 (default, Nov 12 2018, 14:36:49) \n[GCC 5.4.0 20160609]', u'is_64': True}
.tox uses /home/[REDACTED_PROJECT_PATH]/.tox/.tox/bin/python
removing /home/[REDACTED_PROJECT_PATH]/.tox/.tox
setting PATH=/home/[REDACTED_PROJECT_PATH]/.tox/.tox/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/local/lib/python2.7/dist-packages/tox/__main__.py", line 4, in <module>
tox.cmdline()
File "/usr/local/lib/python2.7/dist-packages/tox/session/__init__.py", line 44, in cmdline
main(args)
File "/usr/local/lib/python2.7/dist-packages/tox/session/__init__.py", line 68, in main
exit_code = session.runcommand()
File "/usr/local/lib/python2.7/dist-packages/tox/session/__init__.py", line 182, in runcommand
return provision_tox(provision_tox_venv, self.config.args)
File "/usr/local/lib/python2.7/dist-packages/tox/session/commands/provision.py", line 10, in provision_tox
ensure_meta_env_up_to_date(provision_venv)
File "/usr/local/lib/python2.7/dist-packages/tox/session/commands/provision.py", line 23, in ensure_meta_env_up_to_date
if provision_venv.setupenv():
File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 594, in setupenv
status = self.update(action=action)
File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 252, in update
self.hook.tox_testenv_create(action=action, venv=self)
File "/usr/local/lib/python2.7/dist-packages/pluggy/hooks.py", line 289, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "/usr/local/lib/python2.7/dist-packages/pluggy/manager.py", line 87, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "/usr/local/lib/python2.7/dist-packages/pluggy/manager.py", line 81, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "/usr/local/lib/python2.7/dist-packages/pluggy/callers.py", line 208, in _multicall
return outcome.get_result()
File "/usr/local/lib/python2.7/dist-packages/pluggy/callers.py", line 81, in get_result
_reraise(*ex) # noqa
File "/usr/local/lib/python2.7/dist-packages/pluggy/callers.py", line 187, in _multicall
res = hook_impl.function(*args)
File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 687, in tox_testenv_create
redirect=reporter.verbosity() < reporter.Verbosity.DEBUG,
File "/usr/local/lib/python2.7/dist-packages/tox/venv.py", line 574, in _pcall
report_fail=not is_test_command,
File "/usr/local/lib/python2.7/dist-packages/tox/action.py", line 93, in popen
else 0
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1342, in _execute_child
child_exception = pickle.loads(data)
File "/usr/lib/python2.7/pickle.py", line 1388, in loads
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 864, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 977, in load_string
self.append(rep.decode("string-escape"))
LookupError: unknown encoding: string-escape
.tox finish: provision after 8.21 seconds
Same thing on my side, tox 3.13.0 and 3.13.1 are creating a ".tox/.tox/" folder, which makes tox to crash few steps later. I had to revert to 3.12.1 which is working properly.
Must be related some dependency of tox not being satisfied. we need to fix this, but in the meantime if you force reinstall dependencies should fix it for you👌
Definitely caused by https://github.com/tox-dev/tox/pull/1328
I'll take a look at this one
@lockefox you mentioned docker -- could you perhaps provide a Dockerfile reproducing the issue?
Guys, can you please provide output for tox -r -v -v? Thanks!
Is this fixed with 3.13.2?
Something I've been hitting still and is ultra annoying:
ERROR: cowardly refusing to delete envdir (it does not look like a virtualenv): /git/github/virtualenv/.tox/.package 👍
The magic feature for refusing to delete the envdir needs some fixing.
weird, what's inside of .tox/.package?
It's what we use to generate isolated builds, looks fine for me. Can we disable this check for anything inside the toxworkdir please?
.tox/.package
├── bin
│ ├── activate
│ ├── activate.csh
│ ├── activate.fish
│ ├── activate.ps1
│ ├── activate_this.py
│ ├── activate.xsh
│ ├── easy_install
│ ├── easy_install-3.8
│ ├── pip
│ ├── pip3
│ ├── pip3.8
│ ├── python
│ ├── python3 -> python
│ ├── python3.8 -> python
│ ├── python-config
│ └── wheel
├── lib
│ └── python3.8
│ ├── abc.py -> /usr/lib/python3.8/abc.py
│ ├── base64.py -> /usr/lib/python3.8/base64.py
│ ├── bisect.py -> /usr/lib/python3.8/bisect.py
│ ├── _bootlocale.py -> /usr/lib/python3.8/_bootlocale.py
│ ├── codecs.py -> /usr/lib/python3.8/codecs.py
│ ├── collections -> /usr/lib/python3.8/collections
│ ├── _collections_abc.py -> /usr/lib/python3.8/_collections_abc.py
│ ├── copy.py -> /usr/lib/python3.8/copy.py
│ ├── copyreg.py -> /usr/lib/python3.8/copyreg.py
│ ├── distutils
│ │ ├── distutils.cfg
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ └── __init__.cpython-38.pyc
│ ├── _dummy_thread.py -> /usr/lib/python3.8/_dummy_thread.py
│ ├── encodings -> /usr/lib/python3.8/encodings
│ ├── enum.py -> /usr/lib/python3.8/enum.py
│ ├── fnmatch.py -> /usr/lib/python3.8/fnmatch.py
│ ├── functools.py -> /usr/lib/python3.8/functools.py
│ ├── __future__.py -> /usr/lib/python3.8/__future__.py
│ ├── genericpath.py -> /usr/lib/python3.8/genericpath.py
│ ├── hashlib.py -> /usr/lib/python3.8/hashlib.py
│ ├── heapq.py -> /usr/lib/python3.8/heapq.py
│ ├── hmac.py -> /usr/lib/python3.8/hmac.py
│ ├── importlib -> /usr/lib/python3.8/importlib
│ ├── imp.py -> /usr/lib/python3.8/imp.py
│ ├── io.py -> /usr/lib/python3.8/io.py
│ ├── keyword.py -> /usr/lib/python3.8/keyword.py
│ ├── lib-dynload -> /usr/lib/python3.8/lib-dynload
│ ├── LICENSE.txt -> /usr/lib/python3.8/LICENSE.txt
│ ├── linecache.py -> /usr/lib/python3.8/linecache.py
│ ├── locale.py -> /usr/lib/python3.8/locale.py
│ ├── no-global-site-packages.txt
│ ├── ntpath.py -> /usr/lib/python3.8/ntpath.py
│ ├── operator.py -> /usr/lib/python3.8/operator.py
│ ├── orig-prefix.txt
│ ├── os.py -> /usr/lib/python3.8/os.py
│ ├── posixpath.py -> /usr/lib/python3.8/posixpath.py
│ ├── __pycache__
│ │ ├── abc.cpython-38.pyc
│ │ ├── base64.cpython-38.pyc
│ │ ├── bisect.cpython-38.pyc
│ │ ├── _bootlocale.cpython-38.pyc
│ │ ├── codecs.cpython-38.pyc
│ │ ├── _collections_abc.cpython-38.pyc
│ │ ├── copy.cpython-38.pyc
│ │ ├── copyreg.cpython-38.pyc
│ │ ├── enum.cpython-38.pyc
│ │ ├── fnmatch.cpython-38.pyc
│ │ ├── functools.cpython-38.pyc
│ │ ├── __future__.cpython-38.pyc
│ │ ├── genericpath.cpython-38.pyc
│ │ ├── hashlib.cpython-38.pyc
│ │ ├── heapq.cpython-38.pyc
│ │ ├── hmac.cpython-38.pyc
│ │ ├── imp.cpython-38.pyc
│ │ ├── io.cpython-38.pyc
│ │ ├── keyword.cpython-38.pyc
│ │ ├── linecache.cpython-38.pyc
│ │ ├── locale.cpython-38.pyc
│ │ ├── ntpath.cpython-38.pyc
│ │ ├── operator.cpython-38.pyc
│ │ ├── os.cpython-38.pyc
│ │ ├── posixpath.cpython-38.pyc
│ │ ├── random.cpython-38.pyc
│ │ ├── re.cpython-38.pyc
│ │ ├── reprlib.cpython-38.pyc
│ │ ├── shutil.cpython-38.pyc
│ │ ├── site.cpython-38.pyc
│ │ ├── sre_compile.cpython-38.pyc
│ │ ├── sre_constants.cpython-38.pyc
│ │ ├── sre_parse.cpython-38.pyc
│ │ ├── stat.cpython-38.pyc
│ │ ├── struct.cpython-38.pyc
│ │ ├── tarfile.cpython-38.pyc
│ │ ├── tempfile.cpython-38.pyc
│ │ ├── token.cpython-38.pyc
│ │ ├── tokenize.cpython-38.pyc
│ │ ├── types.cpython-38.pyc
│ │ ├── warnings.cpython-38.pyc
│ │ ├── weakref.cpython-38.pyc
│ │ └── _weakrefset.cpython-38.pyc
│ ├── random.py -> /usr/lib/python3.8/random.py
│ ├── reprlib.py -> /usr/lib/python3.8/reprlib.py
│ ├── re.py -> /usr/lib/python3.8/re.py
│ ├── rlcompleter.py -> /usr/lib/python3.8/rlcompleter.py
│ ├── shutil.py -> /usr/lib/python3.8/shutil.py
│ ├── site-packages
│ │ ├── easy_install.py
│ │ ├── pip
│ │ │ ├── __init__.py
│ │ │ ├── _internal
│ │ │ │ ├── build_env.py
│ │ │ │ ├── cache.py
│ │ │ │ ├── cli
│ │ │ │ │ ├── autocompletion.py
│ │ │ │ │ ├── base_command.py
│ │ │ │ │ ├── cmdoptions.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── main_parser.py
│ │ │ │ │ ├── parser.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── autocompletion.cpython-38.pyc
│ │ │ │ │ │ ├── base_command.cpython-38.pyc
│ │ │ │ │ │ ├── cmdoptions.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ ├── main_parser.cpython-38.pyc
│ │ │ │ │ │ ├── parser.cpython-38.pyc
│ │ │ │ │ │ └── status_codes.cpython-38.pyc
│ │ │ │ │ └── status_codes.py
│ │ │ │ ├── commands
│ │ │ │ │ ├── check.py
│ │ │ │ │ ├── completion.py
│ │ │ │ │ ├── configuration.py
│ │ │ │ │ ├── download.py
│ │ │ │ │ ├── freeze.py
│ │ │ │ │ ├── hash.py
│ │ │ │ │ ├── help.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── install.py
│ │ │ │ │ ├── list.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── check.cpython-38.pyc
│ │ │ │ │ │ ├── completion.cpython-38.pyc
│ │ │ │ │ │ ├── configuration.cpython-38.pyc
│ │ │ │ │ │ ├── download.cpython-38.pyc
│ │ │ │ │ │ ├── freeze.cpython-38.pyc
│ │ │ │ │ │ ├── hash.cpython-38.pyc
│ │ │ │ │ │ ├── help.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ ├── install.cpython-38.pyc
│ │ │ │ │ │ ├── list.cpython-38.pyc
│ │ │ │ │ │ ├── search.cpython-38.pyc
│ │ │ │ │ │ ├── show.cpython-38.pyc
│ │ │ │ │ │ ├── uninstall.cpython-38.pyc
│ │ │ │ │ │ └── wheel.cpython-38.pyc
│ │ │ │ │ ├── search.py
│ │ │ │ │ ├── show.py
│ │ │ │ │ ├── uninstall.py
│ │ │ │ │ └── wheel.py
│ │ │ │ ├── configuration.py
│ │ │ │ ├── download.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── index.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── locations.py
│ │ │ │ ├── models
│ │ │ │ │ ├── candidate.py
│ │ │ │ │ ├── format_control.py
│ │ │ │ │ ├── index.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── link.py
│ │ │ │ │ └── __pycache__
│ │ │ │ │ ├── candidate.cpython-38.pyc
│ │ │ │ │ ├── format_control.cpython-38.pyc
│ │ │ │ │ ├── index.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ └── link.cpython-38.pyc
│ │ │ │ ├── operations
│ │ │ │ │ ├── check.py
│ │ │ │ │ ├── freeze.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── prepare.py
│ │ │ │ │ └── __pycache__
│ │ │ │ │ ├── check.cpython-38.pyc
│ │ │ │ │ ├── freeze.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ └── prepare.cpython-38.pyc
│ │ │ │ ├── pep425tags.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── build_env.cpython-38.pyc
│ │ │ │ │ ├── cache.cpython-38.pyc
│ │ │ │ │ ├── configuration.cpython-38.pyc
│ │ │ │ │ ├── download.cpython-38.pyc
│ │ │ │ │ ├── exceptions.cpython-38.pyc
│ │ │ │ │ ├── index.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── locations.cpython-38.pyc
│ │ │ │ │ ├── pep425tags.cpython-38.pyc
│ │ │ │ │ ├── pyproject.cpython-38.pyc
│ │ │ │ │ ├── resolve.cpython-38.pyc
│ │ │ │ │ └── wheel.cpython-38.pyc
│ │ │ │ ├── pyproject.py
│ │ │ │ ├── req
│ │ │ │ │ ├── constructors.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── constructors.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ ├── req_file.cpython-38.pyc
│ │ │ │ │ │ ├── req_install.cpython-38.pyc
│ │ │ │ │ │ ├── req_set.cpython-38.pyc
│ │ │ │ │ │ ├── req_tracker.cpython-38.pyc
│ │ │ │ │ │ └── req_uninstall.cpython-38.pyc
│ │ │ │ │ ├── req_file.py
│ │ │ │ │ ├── req_install.py
│ │ │ │ │ ├── req_set.py
│ │ │ │ │ ├── req_tracker.py
│ │ │ │ │ └── req_uninstall.py
│ │ │ │ ├── resolve.py
│ │ │ │ ├── utils
│ │ │ │ │ ├── appdirs.py
│ │ │ │ │ ├── compat.py
│ │ │ │ │ ├── deprecation.py
│ │ │ │ │ ├── encoding.py
│ │ │ │ │ ├── filesystem.py
│ │ │ │ │ ├── glibc.py
│ │ │ │ │ ├── hashes.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── logging.py
│ │ │ │ │ ├── misc.py
│ │ │ │ │ ├── models.py
│ │ │ │ │ ├── outdated.py
│ │ │ │ │ ├── packaging.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── appdirs.cpython-38.pyc
│ │ │ │ │ │ ├── compat.cpython-38.pyc
│ │ │ │ │ │ ├── deprecation.cpython-38.pyc
│ │ │ │ │ │ ├── encoding.cpython-38.pyc
│ │ │ │ │ │ ├── filesystem.cpython-38.pyc
│ │ │ │ │ │ ├── glibc.cpython-38.pyc
│ │ │ │ │ │ ├── hashes.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ ├── logging.cpython-38.pyc
│ │ │ │ │ │ ├── misc.cpython-38.pyc
│ │ │ │ │ │ ├── models.cpython-38.pyc
│ │ │ │ │ │ ├── outdated.cpython-38.pyc
│ │ │ │ │ │ ├── packaging.cpython-38.pyc
│ │ │ │ │ │ ├── setuptools_build.cpython-38.pyc
│ │ │ │ │ │ ├── temp_dir.cpython-38.pyc
│ │ │ │ │ │ ├── typing.cpython-38.pyc
│ │ │ │ │ │ └── ui.cpython-38.pyc
│ │ │ │ │ ├── setuptools_build.py
│ │ │ │ │ ├── temp_dir.py
│ │ │ │ │ ├── typing.py
│ │ │ │ │ └── ui.py
│ │ │ │ ├── vcs
│ │ │ │ │ ├── bazaar.py
│ │ │ │ │ ├── git.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── mercurial.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── bazaar.cpython-38.pyc
│ │ │ │ │ │ ├── git.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ ├── mercurial.cpython-38.pyc
│ │ │ │ │ │ └── subversion.cpython-38.pyc
│ │ │ │ │ └── subversion.py
│ │ │ │ └── wheel.py
│ │ │ ├── __main__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ └── __main__.cpython-38.pyc
│ │ │ └── _vendor
│ │ │ ├── appdirs.py
│ │ │ ├── cachecontrol
│ │ │ │ ├── adapter.py
│ │ │ │ ├── cache.py
│ │ │ │ ├── caches
│ │ │ │ │ ├── file_cache.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── file_cache.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ └── redis_cache.cpython-38.pyc
│ │ │ │ │ └── redis_cache.py
│ │ │ │ ├── _cmd.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── controller.py
│ │ │ │ ├── filewrapper.py
│ │ │ │ ├── heuristics.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── adapter.cpython-38.pyc
│ │ │ │ │ ├── cache.cpython-38.pyc
│ │ │ │ │ ├── _cmd.cpython-38.pyc
│ │ │ │ │ ├── compat.cpython-38.pyc
│ │ │ │ │ ├── controller.cpython-38.pyc
│ │ │ │ │ ├── filewrapper.cpython-38.pyc
│ │ │ │ │ ├── heuristics.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── serialize.cpython-38.pyc
│ │ │ │ │ └── wrapper.cpython-38.pyc
│ │ │ │ ├── serialize.py
│ │ │ │ └── wrapper.py
│ │ │ ├── certifi
│ │ │ │ ├── cacert.pem
│ │ │ │ ├── core.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __main__.py
│ │ │ │ └── __pycache__
│ │ │ │ ├── core.cpython-38.pyc
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ └── __main__.cpython-38.pyc
│ │ │ ├── chardet
│ │ │ │ ├── big5freq.py
│ │ │ │ ├── big5prober.py
│ │ │ │ ├── chardistribution.py
│ │ │ │ ├── charsetgroupprober.py
│ │ │ │ ├── charsetprober.py
│ │ │ │ ├── cli
│ │ │ │ │ ├── chardetect.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── __pycache__
│ │ │ │ │ ├── chardetect.cpython-38.pyc
│ │ │ │ │ └── __init__.cpython-38.pyc
│ │ │ │ ├── codingstatemachine.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── cp949prober.py
│ │ │ │ ├── enums.py
│ │ │ │ ├── escprober.py
│ │ │ │ ├── escsm.py
│ │ │ │ ├── eucjpprober.py
│ │ │ │ ├── euckrfreq.py
│ │ │ │ ├── euckrprober.py
│ │ │ │ ├── euctwfreq.py
│ │ │ │ ├── euctwprober.py
│ │ │ │ ├── gb2312freq.py
│ │ │ │ ├── gb2312prober.py
│ │ │ │ ├── hebrewprober.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── jisfreq.py
│ │ │ │ ├── jpcntx.py
│ │ │ │ ├── langbulgarianmodel.py
│ │ │ │ ├── langcyrillicmodel.py
│ │ │ │ ├── langgreekmodel.py
│ │ │ │ ├── langhebrewmodel.py
│ │ │ │ ├── langhungarianmodel.py
│ │ │ │ ├── langthaimodel.py
│ │ │ │ ├── langturkishmodel.py
│ │ │ │ ├── latin1prober.py
│ │ │ │ ├── mbcharsetprober.py
│ │ │ │ ├── mbcsgroupprober.py
│ │ │ │ ├── mbcssm.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── big5freq.cpython-38.pyc
│ │ │ │ │ ├── big5prober.cpython-38.pyc
│ │ │ │ │ ├── chardistribution.cpython-38.pyc
│ │ │ │ │ ├── charsetgroupprober.cpython-38.pyc
│ │ │ │ │ ├── charsetprober.cpython-38.pyc
│ │ │ │ │ ├── codingstatemachine.cpython-38.pyc
│ │ │ │ │ ├── compat.cpython-38.pyc
│ │ │ │ │ ├── cp949prober.cpython-38.pyc
│ │ │ │ │ ├── enums.cpython-38.pyc
│ │ │ │ │ ├── escprober.cpython-38.pyc
│ │ │ │ │ ├── escsm.cpython-38.pyc
│ │ │ │ │ ├── eucjpprober.cpython-38.pyc
│ │ │ │ │ ├── euckrfreq.cpython-38.pyc
│ │ │ │ │ ├── euckrprober.cpython-38.pyc
│ │ │ │ │ ├── euctwfreq.cpython-38.pyc
│ │ │ │ │ ├── euctwprober.cpython-38.pyc
│ │ │ │ │ ├── gb2312freq.cpython-38.pyc
│ │ │ │ │ ├── gb2312prober.cpython-38.pyc
│ │ │ │ │ ├── hebrewprober.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── jisfreq.cpython-38.pyc
│ │ │ │ │ ├── jpcntx.cpython-38.pyc
│ │ │ │ │ ├── langbulgarianmodel.cpython-38.pyc
│ │ │ │ │ ├── langcyrillicmodel.cpython-38.pyc
│ │ │ │ │ ├── langgreekmodel.cpython-38.pyc
│ │ │ │ │ ├── langhebrewmodel.cpython-38.pyc
│ │ │ │ │ ├── langhungarianmodel.cpython-38.pyc
│ │ │ │ │ ├── langthaimodel.cpython-38.pyc
│ │ │ │ │ ├── langturkishmodel.cpython-38.pyc
│ │ │ │ │ ├── latin1prober.cpython-38.pyc
│ │ │ │ │ ├── mbcharsetprober.cpython-38.pyc
│ │ │ │ │ ├── mbcsgroupprober.cpython-38.pyc
│ │ │ │ │ ├── mbcssm.cpython-38.pyc
│ │ │ │ │ ├── sbcharsetprober.cpython-38.pyc
│ │ │ │ │ ├── sbcsgroupprober.cpython-38.pyc
│ │ │ │ │ ├── sjisprober.cpython-38.pyc
│ │ │ │ │ ├── universaldetector.cpython-38.pyc
│ │ │ │ │ ├── utf8prober.cpython-38.pyc
│ │ │ │ │ └── version.cpython-38.pyc
│ │ │ │ ├── sbcharsetprober.py
│ │ │ │ ├── sbcsgroupprober.py
│ │ │ │ ├── sjisprober.py
│ │ │ │ ├── universaldetector.py
│ │ │ │ ├── utf8prober.py
│ │ │ │ └── version.py
│ │ │ ├── colorama
│ │ │ │ ├── ansi.py
│ │ │ │ ├── ansitowin32.py
│ │ │ │ ├── initialise.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── ansi.cpython-38.pyc
│ │ │ │ │ ├── ansitowin32.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── initialise.cpython-38.pyc
│ │ │ │ │ ├── win32.cpython-38.pyc
│ │ │ │ │ └── winterm.cpython-38.pyc
│ │ │ │ ├── win32.py
│ │ │ │ └── winterm.py
│ │ │ ├── distlib
│ │ │ │ ├── _backport
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── misc.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ ├── misc.cpython-38.pyc
│ │ │ │ │ │ ├── shutil.cpython-38.pyc
│ │ │ │ │ │ ├── sysconfig.cpython-38.pyc
│ │ │ │ │ │ └── tarfile.cpython-38.pyc
│ │ │ │ │ ├── shutil.py
│ │ │ │ │ ├── sysconfig.cfg
│ │ │ │ │ ├── sysconfig.py
│ │ │ │ │ └── tarfile.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── database.py
│ │ │ │ ├── index.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── locators.py
│ │ │ │ ├── manifest.py
│ │ │ │ ├── markers.py
│ │ │ │ ├── metadata.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── compat.cpython-38.pyc
│ │ │ │ │ ├── database.cpython-38.pyc
│ │ │ │ │ ├── index.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── locators.cpython-38.pyc
│ │ │ │ │ ├── manifest.cpython-38.pyc
│ │ │ │ │ ├── markers.cpython-38.pyc
│ │ │ │ │ ├── metadata.cpython-38.pyc
│ │ │ │ │ ├── resources.cpython-38.pyc
│ │ │ │ │ ├── scripts.cpython-38.pyc
│ │ │ │ │ ├── util.cpython-38.pyc
│ │ │ │ │ ├── version.cpython-38.pyc
│ │ │ │ │ └── wheel.cpython-38.pyc
│ │ │ │ ├── resources.py
│ │ │ │ ├── scripts.py
│ │ │ │ ├── t32.exe
│ │ │ │ ├── t64.exe
│ │ │ │ ├── util.py
│ │ │ │ ├── version.py
│ │ │ │ ├── w32.exe
│ │ │ │ ├── w64.exe
│ │ │ │ └── wheel.py
│ │ │ ├── distro.py
│ │ │ ├── html5lib
│ │ │ │ ├── constants.py
│ │ │ │ ├── filters
│ │ │ │ │ ├── alphabeticalattributes.py
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── inject_meta_charset.py
│ │ │ │ │ ├── lint.py
│ │ │ │ │ ├── optionaltags.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── alphabeticalattributes.cpython-38.pyc
│ │ │ │ │ │ ├── base.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ ├── inject_meta_charset.cpython-38.pyc
│ │ │ │ │ │ ├── lint.cpython-38.pyc
│ │ │ │ │ │ ├── optionaltags.cpython-38.pyc
│ │ │ │ │ │ ├── sanitizer.cpython-38.pyc
│ │ │ │ │ │ └── whitespace.cpython-38.pyc
│ │ │ │ │ ├── sanitizer.py
│ │ │ │ │ └── whitespace.py
│ │ │ │ ├── html5parser.py
│ │ │ │ ├── _ihatexml.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _inputstream.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── constants.cpython-38.pyc
│ │ │ │ │ ├── html5parser.cpython-38.pyc
│ │ │ │ │ ├── _ihatexml.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── _inputstream.cpython-38.pyc
│ │ │ │ │ ├── serializer.cpython-38.pyc
│ │ │ │ │ ├── _tokenizer.cpython-38.pyc
│ │ │ │ │ └── _utils.cpython-38.pyc
│ │ │ │ ├── serializer.py
│ │ │ │ ├── _tokenizer.py
│ │ │ │ ├── treeadapters
│ │ │ │ │ ├── genshi.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── genshi.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ └── sax.cpython-38.pyc
│ │ │ │ │ └── sax.py
│ │ │ │ ├── treebuilders
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── dom.py
│ │ │ │ │ ├── etree_lxml.py
│ │ │ │ │ ├── etree.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── __pycache__
│ │ │ │ │ ├── base.cpython-38.pyc
│ │ │ │ │ ├── dom.cpython-38.pyc
│ │ │ │ │ ├── etree.cpython-38.pyc
│ │ │ │ │ ├── etree_lxml.cpython-38.pyc
│ │ │ │ │ └── __init__.cpython-38.pyc
│ │ │ │ ├── treewalkers
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── dom.py
│ │ │ │ │ ├── etree_lxml.py
│ │ │ │ │ ├── etree.py
│ │ │ │ │ ├── genshi.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── __pycache__
│ │ │ │ │ ├── base.cpython-38.pyc
│ │ │ │ │ ├── dom.cpython-38.pyc
│ │ │ │ │ ├── etree.cpython-38.pyc
│ │ │ │ │ ├── etree_lxml.cpython-38.pyc
│ │ │ │ │ ├── genshi.cpython-38.pyc
│ │ │ │ │ └── __init__.cpython-38.pyc
│ │ │ │ ├── _trie
│ │ │ │ │ ├── _base.py
│ │ │ │ │ ├── datrie.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── _base.cpython-38.pyc
│ │ │ │ │ │ ├── datrie.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ └── py.cpython-38.pyc
│ │ │ │ │ └── py.py
│ │ │ │ └── _utils.py
│ │ │ ├── idna
│ │ │ │ ├── codec.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── core.py
│ │ │ │ ├── idnadata.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── intranges.py
│ │ │ │ ├── package_data.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── codec.cpython-38.pyc
│ │ │ │ │ ├── compat.cpython-38.pyc
│ │ │ │ │ ├── core.cpython-38.pyc
│ │ │ │ │ ├── idnadata.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── intranges.cpython-38.pyc
│ │ │ │ │ ├── package_data.cpython-38.pyc
│ │ │ │ │ └── uts46data.cpython-38.pyc
│ │ │ │ └── uts46data.py
│ │ │ ├── __init__.py
│ │ │ ├── ipaddress.py
│ │ │ ├── lockfile
│ │ │ │ ├── __init__.py
│ │ │ │ ├── linklockfile.py
│ │ │ │ ├── mkdirlockfile.py
│ │ │ │ ├── pidlockfile.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── linklockfile.cpython-38.pyc
│ │ │ │ │ ├── mkdirlockfile.cpython-38.pyc
│ │ │ │ │ ├── pidlockfile.cpython-38.pyc
│ │ │ │ │ ├── sqlitelockfile.cpython-38.pyc
│ │ │ │ │ └── symlinklockfile.cpython-38.pyc
│ │ │ │ ├── sqlitelockfile.py
│ │ │ │ └── symlinklockfile.py
│ │ │ ├── msgpack
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── fallback.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── exceptions.cpython-38.pyc
│ │ │ │ │ ├── fallback.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ └── _version.cpython-38.pyc
│ │ │ │ └── _version.py
│ │ │ ├── packaging
│ │ │ │ ├── __about__.py
│ │ │ │ ├── _compat.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── markers.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __about__.cpython-38.pyc
│ │ │ │ │ ├── _compat.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── markers.cpython-38.pyc
│ │ │ │ │ ├── requirements.cpython-38.pyc
│ │ │ │ │ ├── specifiers.cpython-38.pyc
│ │ │ │ │ ├── _structures.cpython-38.pyc
│ │ │ │ │ ├── utils.cpython-38.pyc
│ │ │ │ │ └── version.cpython-38.pyc
│ │ │ │ ├── requirements.py
│ │ │ │ ├── specifiers.py
│ │ │ │ ├── _structures.py
│ │ │ │ ├── utils.py
│ │ │ │ └── version.py
│ │ │ ├── pep517
│ │ │ │ ├── build.py
│ │ │ │ ├── check.py
│ │ │ │ ├── colorlog.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── envbuild.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _in_process.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── build.cpython-38.pyc
│ │ │ │ │ ├── check.cpython-38.pyc
│ │ │ │ │ ├── colorlog.cpython-38.pyc
│ │ │ │ │ ├── compat.cpython-38.pyc
│ │ │ │ │ ├── envbuild.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── _in_process.cpython-38.pyc
│ │ │ │ │ └── wrappers.cpython-38.pyc
│ │ │ │ └── wrappers.py
│ │ │ ├── pkg_resources
│ │ │ │ ├── __init__.py
│ │ │ │ ├── py31compat.py
│ │ │ │ └── __pycache__
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ └── py31compat.cpython-38.pyc
│ │ │ ├── progress
│ │ │ │ ├── bar.py
│ │ │ │ ├── counter.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── bar.cpython-38.pyc
│ │ │ │ │ ├── counter.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ └── spinner.cpython-38.pyc
│ │ │ │ └── spinner.py
│ │ │ ├── __pycache__
│ │ │ │ ├── appdirs.cpython-38.pyc
│ │ │ │ ├── distro.cpython-38.pyc
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ ├── ipaddress.cpython-38.pyc
│ │ │ │ ├── pyparsing.cpython-38.pyc
│ │ │ │ ├── retrying.cpython-38.pyc
│ │ │ │ └── six.cpython-38.pyc
│ │ │ ├── pyparsing.py
│ │ │ ├── pytoml
│ │ │ │ ├── core.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── parser.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── core.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── parser.cpython-38.pyc
│ │ │ │ │ ├── test.cpython-38.pyc
│ │ │ │ │ ├── utils.cpython-38.pyc
│ │ │ │ │ └── writer.cpython-38.pyc
│ │ │ │ ├── test.py
│ │ │ │ ├── utils.py
│ │ │ │ └── writer.py
│ │ │ ├── requests
│ │ │ │ ├── adapters.py
│ │ │ │ ├── api.py
│ │ │ │ ├── auth.py
│ │ │ │ ├── certs.py
│ │ │ │ ├── compat.py
│ │ │ │ ├── cookies.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── help.py
│ │ │ │ ├── hooks.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── _internal_utils.py
│ │ │ │ ├── models.py
│ │ │ │ ├── packages.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── adapters.cpython-38.pyc
│ │ │ │ │ ├── api.cpython-38.pyc
│ │ │ │ │ ├── auth.cpython-38.pyc
│ │ │ │ │ ├── certs.cpython-38.pyc
│ │ │ │ │ ├── compat.cpython-38.pyc
│ │ │ │ │ ├── cookies.cpython-38.pyc
│ │ │ │ │ ├── exceptions.cpython-38.pyc
│ │ │ │ │ ├── help.cpython-38.pyc
│ │ │ │ │ ├── hooks.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── _internal_utils.cpython-38.pyc
│ │ │ │ │ ├── models.cpython-38.pyc
│ │ │ │ │ ├── packages.cpython-38.pyc
│ │ │ │ │ ├── sessions.cpython-38.pyc
│ │ │ │ │ ├── status_codes.cpython-38.pyc
│ │ │ │ │ ├── structures.cpython-38.pyc
│ │ │ │ │ ├── utils.cpython-38.pyc
│ │ │ │ │ └── __version__.cpython-38.pyc
│ │ │ │ ├── sessions.py
│ │ │ │ ├── status_codes.py
│ │ │ │ ├── structures.py
│ │ │ │ ├── utils.py
│ │ │ │ └── __version__.py
│ │ │ ├── retrying.py
│ │ │ ├── six.py
│ │ │ ├── urllib3
│ │ │ │ ├── _collections.py
│ │ │ │ ├── connectionpool.py
│ │ │ │ ├── connection.py
│ │ │ │ ├── contrib
│ │ │ │ │ ├── _appengine_environ.py
│ │ │ │ │ ├── appengine.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── ntlmpool.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── appengine.cpython-38.pyc
│ │ │ │ │ │ ├── _appengine_environ.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ ├── ntlmpool.cpython-38.pyc
│ │ │ │ │ │ ├── pyopenssl.cpython-38.pyc
│ │ │ │ │ │ ├── securetransport.cpython-38.pyc
│ │ │ │ │ │ └── socks.cpython-38.pyc
│ │ │ │ │ ├── pyopenssl.py
│ │ │ │ │ ├── _securetransport
│ │ │ │ │ │ ├── bindings.py
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── low_level.py
│ │ │ │ │ │ └── __pycache__
│ │ │ │ │ │ ├── bindings.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ └── low_level.cpython-38.pyc
│ │ │ │ │ ├── securetransport.py
│ │ │ │ │ └── socks.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── fields.py
│ │ │ │ ├── filepost.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── packages
│ │ │ │ │ ├── backports
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── makefile.py
│ │ │ │ │ │ └── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ └── makefile.cpython-38.pyc
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ └── six.cpython-38.pyc
│ │ │ │ │ ├── six.py
│ │ │ │ │ └── ssl_match_hostname
│ │ │ │ │ ├── _implementation.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── __pycache__
│ │ │ │ │ ├── _implementation.cpython-38.pyc
│ │ │ │ │ └── __init__.cpython-38.pyc
│ │ │ │ ├── poolmanager.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── _collections.cpython-38.pyc
│ │ │ │ │ ├── connection.cpython-38.pyc
│ │ │ │ │ ├── connectionpool.cpython-38.pyc
│ │ │ │ │ ├── exceptions.cpython-38.pyc
│ │ │ │ │ ├── fields.cpython-38.pyc
│ │ │ │ │ ├── filepost.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── poolmanager.cpython-38.pyc
│ │ │ │ │ ├── request.cpython-38.pyc
│ │ │ │ │ └── response.cpython-38.pyc
│ │ │ │ ├── request.py
│ │ │ │ ├── response.py
│ │ │ │ └── util
│ │ │ │ ├── connection.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── connection.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── queue.cpython-38.pyc
│ │ │ │ │ ├── request.cpython-38.pyc
│ │ │ │ │ ├── response.cpython-38.pyc
│ │ │ │ │ ├── retry.cpython-38.pyc
│ │ │ │ │ ├── ssl_.cpython-38.pyc
│ │ │ │ │ ├── timeout.cpython-38.pyc
│ │ │ │ │ ├── url.cpython-38.pyc
│ │ │ │ │ └── wait.cpython-38.pyc
│ │ │ │ ├── queue.py
│ │ │ │ ├── request.py
│ │ │ │ ├── response.py
│ │ │ │ ├── retry.py
│ │ │ │ ├── ssl_.py
│ │ │ │ ├── timeout.py
│ │ │ │ ├── url.py
│ │ │ │ └── wait.py
│ │ │ └── webencodings
│ │ │ ├── __init__.py
│ │ │ ├── labels.py
│ │ │ ├── mklabels.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ ├── labels.cpython-38.pyc
│ │ │ │ ├── mklabels.cpython-38.pyc
│ │ │ │ ├── tests.cpython-38.pyc
│ │ │ │ └── x_user_defined.cpython-38.pyc
│ │ │ ├── tests.py
│ │ │ └── x_user_defined.py
│ │ ├── pip-19.1.1.dist-info
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE.txt
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ └── WHEEL
│ │ ├── pkg_resources
│ │ │ ├── extern
│ │ │ │ ├── __init__.py
│ │ │ │ └── __pycache__
│ │ │ │ └── __init__.cpython-38.pyc
│ │ │ ├── __init__.py
│ │ │ ├── py31compat.py
│ │ │ ├── __pycache__
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ └── py31compat.cpython-38.pyc
│ │ │ └── _vendor
│ │ │ ├── appdirs.py
│ │ │ ├── __init__.py
│ │ │ ├── packaging
│ │ │ │ ├── __about__.py
│ │ │ │ ├── _compat.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── markers.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __about__.cpython-38.pyc
│ │ │ │ │ ├── _compat.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── markers.cpython-38.pyc
│ │ │ │ │ ├── requirements.cpython-38.pyc
│ │ │ │ │ ├── specifiers.cpython-38.pyc
│ │ │ │ │ ├── _structures.cpython-38.pyc
│ │ │ │ │ ├── utils.cpython-38.pyc
│ │ │ │ │ └── version.cpython-38.pyc
│ │ │ │ ├── requirements.py
│ │ │ │ ├── specifiers.py
│ │ │ │ ├── _structures.py
│ │ │ │ ├── utils.py
│ │ │ │ └── version.py
│ │ │ ├── __pycache__
│ │ │ │ ├── appdirs.cpython-38.pyc
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ ├── pyparsing.cpython-38.pyc
│ │ │ │ └── six.cpython-38.pyc
│ │ │ ├── pyparsing.py
│ │ │ └── six.py
│ │ ├── __pycache__
│ │ │ └── easy_install.cpython-38.pyc
│ │ ├── setuptools
│ │ │ ├── archive_util.py
│ │ │ ├── build_meta.py
│ │ │ ├── cli-32.exe
│ │ │ ├── cli-64.exe
│ │ │ ├── cli.exe
│ │ │ ├── command
│ │ │ │ ├── alias.py
│ │ │ │ ├── bdist_egg.py
│ │ │ │ ├── bdist_rpm.py
│ │ │ │ ├── bdist_wininst.py
│ │ │ │ ├── build_clib.py
│ │ │ │ ├── build_ext.py
│ │ │ │ ├── build_py.py
│ │ │ │ ├── develop.py
│ │ │ │ ├── dist_info.py
│ │ │ │ ├── easy_install.py
│ │ │ │ ├── egg_info.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── install_egg_info.py
│ │ │ │ ├── install_lib.py
│ │ │ │ ├── install.py
│ │ │ │ ├── install_scripts.py
│ │ │ │ ├── launcher manifest.xml
│ │ │ │ ├── py36compat.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── alias.cpython-38.pyc
│ │ │ │ │ ├── bdist_egg.cpython-38.pyc
│ │ │ │ │ ├── bdist_rpm.cpython-38.pyc
│ │ │ │ │ ├── bdist_wininst.cpython-38.pyc
│ │ │ │ │ ├── build_clib.cpython-38.pyc
│ │ │ │ │ ├── build_ext.cpython-38.pyc
│ │ │ │ │ ├── build_py.cpython-38.pyc
│ │ │ │ │ ├── develop.cpython-38.pyc
│ │ │ │ │ ├── dist_info.cpython-38.pyc
│ │ │ │ │ ├── easy_install.cpython-38.pyc
│ │ │ │ │ ├── egg_info.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── install.cpython-38.pyc
│ │ │ │ │ ├── install_egg_info.cpython-38.pyc
│ │ │ │ │ ├── install_lib.cpython-38.pyc
│ │ │ │ │ ├── install_scripts.cpython-38.pyc
│ │ │ │ │ ├── py36compat.cpython-38.pyc
│ │ │ │ │ ├── register.cpython-38.pyc
│ │ │ │ │ ├── rotate.cpython-38.pyc
│ │ │ │ │ ├── saveopts.cpython-38.pyc
│ │ │ │ │ ├── sdist.cpython-38.pyc
│ │ │ │ │ ├── setopt.cpython-38.pyc
│ │ │ │ │ ├── test.cpython-38.pyc
│ │ │ │ │ ├── upload.cpython-38.pyc
│ │ │ │ │ └── upload_docs.cpython-38.pyc
│ │ │ │ ├── register.py
│ │ │ │ ├── rotate.py
│ │ │ │ ├── saveopts.py
│ │ │ │ ├── sdist.py
│ │ │ │ ├── setopt.py
│ │ │ │ ├── test.py
│ │ │ │ ├── upload_docs.py
│ │ │ │ └── upload.py
│ │ │ ├── config.py
│ │ │ ├── depends.py
│ │ │ ├── _deprecation_warning.py
│ │ │ ├── dep_util.py
│ │ │ ├── dist.py
│ │ │ ├── extension.py
│ │ │ ├── extern
│ │ │ │ ├── __init__.py
│ │ │ │ └── __pycache__
│ │ │ │ └── __init__.cpython-38.pyc
│ │ │ ├── glibc.py
│ │ │ ├── glob.py
│ │ │ ├── gui-32.exe
│ │ │ ├── gui-64.exe
│ │ │ ├── gui.exe
│ │ │ ├── __init__.py
│ │ │ ├── launch.py
│ │ │ ├── lib2to3_ex.py
│ │ │ ├── monkey.py
│ │ │ ├── msvc.py
│ │ │ ├── namespaces.py
│ │ │ ├── package_index.py
│ │ │ ├── pep425tags.py
│ │ │ ├── py27compat.py
│ │ │ ├── py31compat.py
│ │ │ ├── py33compat.py
│ │ │ ├── __pycache__
│ │ │ │ ├── archive_util.cpython-38.pyc
│ │ │ │ ├── build_meta.cpython-38.pyc
│ │ │ │ ├── config.cpython-38.pyc
│ │ │ │ ├── depends.cpython-38.pyc
│ │ │ │ ├── _deprecation_warning.cpython-38.pyc
│ │ │ │ ├── dep_util.cpython-38.pyc
│ │ │ │ ├── dist.cpython-38.pyc
│ │ │ │ ├── extension.cpython-38.pyc
│ │ │ │ ├── glibc.cpython-38.pyc
│ │ │ │ ├── glob.cpython-38.pyc
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ ├── launch.cpython-38.pyc
│ │ │ │ ├── lib2to3_ex.cpython-38.pyc
│ │ │ │ ├── monkey.cpython-38.pyc
│ │ │ │ ├── msvc.cpython-38.pyc
│ │ │ │ ├── namespaces.cpython-38.pyc
│ │ │ │ ├── package_index.cpython-38.pyc
│ │ │ │ ├── pep425tags.cpython-38.pyc
│ │ │ │ ├── py27compat.cpython-38.pyc
│ │ │ │ ├── py31compat.cpython-38.pyc
│ │ │ │ ├── py33compat.cpython-38.pyc
│ │ │ │ ├── sandbox.cpython-38.pyc
│ │ │ │ ├── site-patch.cpython-38.pyc
│ │ │ │ ├── ssl_support.cpython-38.pyc
│ │ │ │ ├── unicode_utils.cpython-38.pyc
│ │ │ │ ├── version.cpython-38.pyc
│ │ │ │ ├── wheel.cpython-38.pyc
│ │ │ │ └── windows_support.cpython-38.pyc
│ │ │ ├── sandbox.py
│ │ │ ├── script (dev).tmpl
│ │ │ ├── script.tmpl
│ │ │ ├── site-patch.py
│ │ │ ├── ssl_support.py
│ │ │ ├── unicode_utils.py
│ │ │ ├── _vendor
│ │ │ │ ├── __init__.py
│ │ │ │ ├── packaging
│ │ │ │ │ ├── __about__.py
│ │ │ │ │ ├── _compat.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── markers.py
│ │ │ │ │ ├── __pycache__
│ │ │ │ │ │ ├── __about__.cpython-38.pyc
│ │ │ │ │ │ ├── _compat.cpython-38.pyc
│ │ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ │ ├── markers.cpython-38.pyc
│ │ │ │ │ │ ├── requirements.cpython-38.pyc
│ │ │ │ │ │ ├── specifiers.cpython-38.pyc
│ │ │ │ │ │ ├── _structures.cpython-38.pyc
│ │ │ │ │ │ ├── utils.cpython-38.pyc
│ │ │ │ │ │ └── version.cpython-38.pyc
│ │ │ │ │ ├── requirements.py
│ │ │ │ │ ├── specifiers.py
│ │ │ │ │ ├── _structures.py
│ │ │ │ │ ├── utils.py
│ │ │ │ │ └── version.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── pyparsing.cpython-38.pyc
│ │ │ │ │ └── six.cpython-38.pyc
│ │ │ │ ├── pyparsing.py
│ │ │ │ └── six.py
│ │ │ ├── version.py
│ │ │ ├── wheel.py
│ │ │ └── windows_support.py
│ │ ├── setuptools-41.0.1.dist-info
│ │ │ ├── dependency_links.txt
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ ├── WHEEL
│ │ │ └── zip-safe
│ │ ├── setuptools_scm
│ │ │ ├── config.py
│ │ │ ├── discover.py
│ │ │ ├── file_finder_git.py
│ │ │ ├── file_finder_hg.py
│ │ │ ├── file_finder.py
│ │ │ ├── git.py
│ │ │ ├── hacks.py
│ │ │ ├── hg.py
│ │ │ ├── __init__.py
│ │ │ ├── integration.py
│ │ │ ├── __main__.py
│ │ │ ├── __pycache__
│ │ │ │ ├── config.cpython-38.pyc
│ │ │ │ ├── discover.cpython-38.pyc
│ │ │ │ ├── file_finder.cpython-38.pyc
│ │ │ │ ├── file_finder_git.cpython-38.pyc
│ │ │ │ ├── file_finder_hg.cpython-38.pyc
│ │ │ │ ├── git.cpython-38.pyc
│ │ │ │ ├── hacks.cpython-38.pyc
│ │ │ │ ├── hg.cpython-38.pyc
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ ├── integration.cpython-38.pyc
│ │ │ │ ├── __main__.cpython-38.pyc
│ │ │ │ ├── utils.cpython-38.pyc
│ │ │ │ ├── version.cpython-38.pyc
│ │ │ │ └── win_py31_compat.cpython-38.pyc
│ │ │ ├── utils.py
│ │ │ ├── version.py
│ │ │ └── win_py31_compat.py
│ │ ├── setuptools_scm-3.3.3.dist-info
│ │ │ ├── entry_points.txt
│ │ │ ├── INSTALLER
│ │ │ ├── LICENSE
│ │ │ ├── METADATA
│ │ │ ├── RECORD
│ │ │ ├── top_level.txt
│ │ │ ├── WHEEL
│ │ │ └── zip-safe
│ │ ├── wheel
│ │ │ ├── bdist_wheel.py
│ │ │ ├── cli
│ │ │ │ ├── convert.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── pack.py
│ │ │ │ ├── __pycache__
│ │ │ │ │ ├── convert.cpython-38.pyc
│ │ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ │ ├── pack.cpython-38.pyc
│ │ │ │ │ └── unpack.cpython-38.pyc
│ │ │ │ └── unpack.py
│ │ │ ├── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── metadata.py
│ │ │ ├── pep425tags.py
│ │ │ ├── pkginfo.py
│ │ │ ├── __pycache__
│ │ │ │ ├── bdist_wheel.cpython-38.pyc
│ │ │ │ ├── __init__.cpython-38.pyc
│ │ │ │ ├── __main__.cpython-38.pyc
│ │ │ │ ├── metadata.cpython-38.pyc
│ │ │ │ ├── pep425tags.cpython-38.pyc
│ │ │ │ ├── pkginfo.cpython-38.pyc
│ │ │ │ ├── util.cpython-38.pyc
│ │ │ │ └── wheelfile.cpython-38.pyc
│ │ │ ├── util.py
│ │ │ └── wheelfile.py
│ │ └── wheel-0.33.4.dist-info
│ │ ├── entry_points.txt
│ │ ├── INSTALLER
│ │ ├── LICENSE.txt
│ │ ├── METADATA
│ │ ├── RECORD
│ │ ├── top_level.txt
│ │ └── WHEEL
│ ├── site.py
│ ├── sre_compile.py -> /usr/lib/python3.8/sre_compile.py
│ ├── sre_constants.py -> /usr/lib/python3.8/sre_constants.py
│ ├── sre_parse.py -> /usr/lib/python3.8/sre_parse.py
│ ├── stat.py -> /usr/lib/python3.8/stat.py
│ ├── struct.py -> /usr/lib/python3.8/struct.py
│ ├── tarfile.py -> /usr/lib/python3.8/tarfile.py
│ ├── tempfile.py -> /usr/lib/python3.8/tempfile.py
│ ├── tokenize.py -> /usr/lib/python3.8/tokenize.py
│ ├── token.py -> /usr/lib/python3.8/token.py
│ ├── types.py -> /usr/lib/python3.8/types.py
│ ├── warnings.py -> /usr/lib/python3.8/warnings.py
│ ├── weakref.py -> /usr/lib/python3.8/weakref.py
│ └── _weakrefset.py -> /usr/lib/python3.8/_weakrefset.py
└── log
123 directories, 976 files
Can we disable this check for anything inside the toxworkdir please?
I don't think we should disable it even for that, for instance it found a bug when someone was clobbering .tox/dist -- we should figure out why it isn't happy about that .package env though -- it looks like it should be fine
seems especially useful to keep it on if we find bugs like this :P
Why is https://github.com/tox-dev/tox/blob/2d2b2aed942937fa11b2e9df191c2542fdcbf89a/src/tox/venv.py#L713 > rather than >=, so if we only have bin and lib we refuse to delete? What else are we expecting to be in there?
probably just an oversight -- though I'm also seeing include in my environments
I think that is a CPython thing 👍 😄 I mean in case of Jython/IronPython include does not make much sense 🤔
should probably have >= for all three of those cases :man_shrugging:
Hello,
I have faced the same issue with v.3.14.0 when using requires = tox-env.
.tox create: /home/joao/GitHub/sampleproject/.tox/.tox
.tox installdeps: tox-conda, tox-env, tox >= 3.4.0
when disabled requires = tox-env everything seems to flow.
Other packages in my conda env use importlib_metadata > 1, does tox really absolutely need it to be < 1 ? A conda install toxcurrently wants to downgrade my importlib_metadata from 1.3.0 to 0.23?
@michaelaye that has nothing to do with this particular issue I'm afraid
that said, it has already been relaxed if you look at master: #1476
Most helpful comment
Same thing on my side, tox 3.13.0 and 3.13.1 are creating a ".tox/.tox/" folder, which makes tox to crash few steps later. I had to revert to 3.12.1 which is working properly.