diff --git a/.azure-pipelines/steps/build-package.yml b/.azure-pipelines/steps/build-package.yml index 884d07e7..81a6160b 100644 --- a/.azure-pipelines/steps/build-package.yml +++ b/.azure-pipelines/steps/build-package.yml @@ -1,4 +1,22 @@ steps: +- task: UsePythonVersion@0 + inputs: + versionSpec: $(python.version) + architecture: '$(python.architecture)' + addToPath: true + displayName: Use Python $(python.version) + +- template: install-dependencies.yml + +- script: | + echo '##vso[task.setvariable variable=PIPENV_DEFAULT_PYTHON_VERSION]'$(python.version) + env: + PYTHON_VERSION: $(python.version) + +- template: create-virtualenv.yml + parameters: + python_version: $(python.version) + - script: | python -m pip install --upgrade wheel pip setuptools twine readme_renderer[md] python setup.py sdist bdist_wheel diff --git a/.azure-pipelines/steps/create-virtualenv.yml b/.azure-pipelines/steps/create-virtualenv.yml index 04f6adc0..5f6160c4 100644 --- a/.azure-pipelines/steps/create-virtualenv.yml +++ b/.azure-pipelines/steps/create-virtualenv.yml @@ -1,3 +1,6 @@ +parameters: + python_version: '' + steps: - script: | @@ -29,10 +32,13 @@ steps: - script: | echo "Python path: $(PY_EXE)" echo "GIT_SSL_CAINFO: $(GIT_SSL_CAINFO)" - echo "PIPENV PYTHON VERSION: $PIPENV_DEFAULT_PYTHON_VERSION" + echo "PIPENV PYTHON VERSION: $(python.version)" + echo "python_version: ${{ parameters.python_version }}" + git submodule sync + git submodule update --init --recursive $(PY_EXE) -m pipenv install --deploy --dev --python="$(PY_EXE)" env: - PIPENV_DEFAULT_PYTHON_VERSION: $(python.version) + PIPENV_DEFAULT_PYTHON_VERSION: ${{ parameters.python_version }} PYTHONWARNINGS: 'ignore:DEPRECATION' PIPENV_NOSPIN: '1' displayName: Make Virtualenv diff --git a/.azure-pipelines/steps/run-tests-linux.yml b/.azure-pipelines/steps/run-tests-linux.yml index 7d63d812..185a83b2 100644 --- a/.azure-pipelines/steps/run-tests-linux.yml +++ b/.azure-pipelines/steps/run-tests-linux.yml @@ -4,15 +4,11 @@ parameters: steps: - script: | # Fix Git SSL errors - echo "Using pipenv python version: $PIPENV_DEFAULT_PYTHON_VERSION" + echo "Using pipenv python version: $(PIPENV_DEFAULT_PYTHON_VERSION)" git submodule sync && git submodule update --init --recursive pipenv run pytest --junitxml=test-results.xml displayName: Run integration tests env: - PY_EXE: $(PY_EXE) - GIT_SSL_CAINFO: $(GIT_SSL_CAINFO) - LANG: $(LANG) - PIP_PROCESS_DEPENDENCY_LINKS: '$(PIP_PROCESS_DEPENDENCY_LINKS)' - PIPENV_DEFAULT_PYTHON_VERSION: '${{ parameters.python_version }}' PYTHONWARNINGS: ignore:DEPRECATION PIPENV_NOSPIN: '1' + PIPENV_DEFAULT_PYTHON_VERSION: ${{ parameters.python_version }} diff --git a/.azure-pipelines/steps/run-tests-windows.yml b/.azure-pipelines/steps/run-tests-windows.yml index 21e7e49d..1730fa14 100644 --- a/.azure-pipelines/steps/run-tests-windows.yml +++ b/.azure-pipelines/steps/run-tests-windows.yml @@ -6,14 +6,16 @@ steps: subst T: "$env:TEMP" Write-Host "##vso[task.setvariable variable=TEMP]T:\" Write-Host "##vso[task.setvariable variable=TMP]T:\" + Write-Host "##vso[task.setvariable variable=PIPENV_DEFAULT_PYTHON_VERSION]$env:PYTHON_VERSION" + Write-Host "##vso[task.setvariable variable=PIPENV_NOSPIN]1" displayName: Fix Temp Variable + env: + PYTHON_VERSION: ${{ parameters.python_version }} - script: | - echo "Using pipenv python version: $PIPENV_DEFAULT_PYTHON_VERSION" git submodule sync && git submodule update --init --recursive pipenv run pytest -ra --ignore=pipenv\patched --ignore=pipenv\vendor --junitxml=test-results.xml tests displayName: Run integration tests env: - PIPENV_DEFAULT_PYTHON_VERSION: '${{ parameters.python_version }}' PYTHONWARNINGS: 'ignore:DEPRECATION' PIPENV_NOSPIN: '1' diff --git a/.azure-pipelines/steps/run-tests.yml b/.azure-pipelines/steps/run-tests.yml index 63972c48..011cecf2 100644 --- a/.azure-pipelines/steps/run-tests.yml +++ b/.azure-pipelines/steps/run-tests.yml @@ -9,7 +9,7 @@ steps: - template: install-dependencies.yml - script: | - echo '##vso[task.setvariable variable=PIPENV_DEFAULT_PYTHON_VERSION]$(python.version)' + echo '##vso[task.setvariable variable=PIPENV_DEFAULT_PYTHON_VERSION]'$(python.version) env: PYTHON_VERSION: $(python.version) diff --git a/.azure-pipelines/steps/run-vendor-scripts.yml b/.azure-pipelines/steps/run-vendor-scripts.yml index be10e263..2aca1fe0 100644 --- a/.azure-pipelines/steps/run-vendor-scripts.yml +++ b/.azure-pipelines/steps/run-vendor-scripts.yml @@ -2,6 +2,24 @@ parameters: python_version: '' steps: +- task: UsePythonVersion@0 + inputs: + versionSpec: $(python.version) + architecture: '$(python.architecture)' + addToPath: true + displayName: Use Python $(python.version) + +- template: install-dependencies.yml + +- script: | + echo '##vso[task.setvariable variable=PIPENV_DEFAULT_PYTHON_VERSION]'$(python.version) + env: + PYTHON_VERSION: $(python.version) + +- template: create-virtualenv.yml + parameters: + python_version: $(python.version) + - script: | python -m pip install --upgrade invoke requests parver bs4 vistir towncrier pip setuptools wheel --upgrade-strategy=eager python -m invoke vendoring.update diff --git a/.gitmodules b/.gitmodules index 04cdc997..fb727dee 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,3 +25,6 @@ [submodule "tests/test_artifacts/git/requests-2.18.4"] path = tests/test_artifacts/git/requests-2.18.4 url = https://github.com/requests/requests +[submodule "tests/pypi"] + path = tests/pypi + url = https://github.com/sarugaku/pipenv-test-artifacts.git diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ce4657c5..3b6dec74 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -18,6 +18,9 @@ trigger: - .gitattributes - .editorconfig +variables: +- group: CI + jobs: - job: TestLinux pool: @@ -38,12 +41,28 @@ jobs: - template: .azure-pipelines/steps/run-tests.yml parameters: vmImage: 'Ubuntu-16.04' - - template: .azure-pipelines/steps/run-vendor-scripts.yml - parameters: - vmImage: 'Ubuntu-16.04' - - template: .azure-pipelines/steps/build-package.yml - parameters: - vmImage: 'Ubuntu-16.04' + +- job: TestVendoring + pool: + vmImage: 'Ubuntu-16.04' + variables: + python.version: '3.7.2' + python.architecture: x64 + steps: + - template: .azure-pipelines/steps/run-vendor-scripts.yml + parameters: + vmImage: 'Ubuntu-16.04' + +- job: TestPackaging + pool: + vmImage: 'Ubuntu-16.04' + variables: + python.version: '3.7.2' + python.architecture: x64 + steps: + - template: .azure-pipelines/steps/build-package.yml + parameters: + vmImage: 'Ubuntu-16.04' - job: TestWindows pool: diff --git a/docs/dev/contributing.rst b/docs/dev/contributing.rst index db7f14cc..9ccb5166 100644 --- a/docs/dev/contributing.rst +++ b/docs/dev/contributing.rst @@ -128,10 +128,15 @@ Three ways of running the tests are as follows: 1. ``make test`` (which uses ``docker``) 2. ``./run-tests.sh`` or ``run-tests.bat`` -3. Using pipenv:: +3. Using pipenv: - pipenv install --dev - pipenv run pytest +.. code-block:: console + + $ git clone https://github.com/pypa/pipenv.git + $ cd pipenv + $ git submodule sync && git submodule update --init --recursive + $ pipenv install --dev + $ pipenv run pytest For the last two, it is important that your environment is setup correctly, and this may take some work, for example, on a specific Mac installation, the following diff --git a/news/3537.bugfix.rst b/news/3537.bugfix.rst new file mode 100644 index 00000000..779b9d7c --- /dev/null +++ b/news/3537.bugfix.rst @@ -0,0 +1 @@ +Fix ``sync --sequential`` ignoring ``pip install`` errors and logs. diff --git a/news/3738.feature.rst b/news/3738.feature.rst new file mode 100644 index 00000000..bb8237e7 --- /dev/null +++ b/news/3738.feature.rst @@ -0,0 +1,3 @@ +Allow overriding PIP_EXISTS_ACTION evironment variable (value is passed to pip install). +Possible values here: https://pip.pypa.io/en/stable/reference/pip/#exists-action-option +Useful when you need to `PIP_EXISTS_ACTION=i` (ignore existing packages) - great for CI environments, where you need really fast setup. diff --git a/pipenv/cli/command.py b/pipenv/cli/command.py index 84c797d4..a897cff0 100644 --- a/pipenv/cli/command.py +++ b/pipenv/cli/command.py @@ -312,7 +312,10 @@ def lock( from ..core import ensure_project, do_init, do_lock # Ensure that virtualenv is available. - ensure_project(three=state.three, python=state.python, pypi_mirror=state.pypi_mirror) + ensure_project( + three=state.three, python=state.python, pypi_mirror=state.pypi_mirror, + warn=(not state.quiet) + ) if state.installstate.requirementstxt: do_init( dev=state.installstate.dev, @@ -326,6 +329,7 @@ def lock( pre=state.installstate.pre, keep_outdated=state.installstate.keep_outdated, pypi_mirror=state.pypi_mirror, + write=not state.quiet, ) diff --git a/pipenv/cli/options.py b/pipenv/cli/options.py index 3d29f264..56b0827e 100644 --- a/pipenv/cli/options.py +++ b/pipenv/cli/options.py @@ -6,7 +6,7 @@ import os import click.types from click import ( - BadParameter, Group, Option, argument, echo, make_pass_decorator, option + BadParameter, BadArgumentUsage, Group, Option, argument, echo, make_pass_decorator, option ) from click_didyoumean import DYMMixin @@ -56,6 +56,7 @@ class State(object): self.index = None self.extra_index_urls = [] self.verbose = False + self.quiet = False self.pypi_mirror = None self.python = None self.two = None @@ -231,12 +232,32 @@ def verbose_option(f): def callback(ctx, param, value): state = ctx.ensure_object(State) if value: + if state.quiet: + raise BadArgumentUsage( + "--verbose and --quiet are mutually exclusive! Please choose one!", + ctx=ctx + ) state.verbose = True - setup_verbosity(ctx, param, value) + setup_verbosity(ctx, param, 1) return option("--verbose", "-v", is_flag=True, expose_value=False, callback=callback, help="Verbose mode.", type=click.types.BOOL)(f) +def quiet_option(f): + def callback(ctx, param, value): + state = ctx.ensure_object(State) + if value: + if state.verbose: + raise BadArgumentUsage( + "--verbose and --quiet are mutually exclusive! Please choose one!", + ctx=ctx + ) + state.quiet = True + setup_verbosity(ctx, param, -1) + return option("--quiet", "-q", is_flag=True, expose_value=False, + callback=callback, help="Quiet mode.", type=click.types.BOOL)(f) + + def site_packages_option(f): def callback(ctx, param, value): state = ctx.ensure_object(State) @@ -313,8 +334,14 @@ def setup_verbosity(ctx, param, value): if not value: return import logging - logging.getLogger("pip").setLevel(logging.INFO) - environments.PIPENV_VERBOSITY = 1 + loggers = ("pip", "piptools") + if value == 1: + for logger in loggers: + logging.getLogger(logger).setLevel(logging.INFO) + elif value == -1: + for logger in loggers: + logging.getLogger(logger).setLevel(logging.CRITICAL) + environments.PIPENV_VERBOSITY = value def validate_python_path(ctx, param, value): diff --git a/pipenv/core.py b/pipenv/core.py index 7113ea4e..94efadad 100644 --- a/pipenv/core.py +++ b/pipenv/core.py @@ -26,7 +26,7 @@ from .environments import ( PIPENV_CACHE_DIR, PIPENV_COLORBLIND, PIPENV_DEFAULT_PYTHON_VERSION, PIPENV_DONT_USE_PYENV, PIPENV_HIDE_EMOJIS, PIPENV_MAX_SUBPROCESS, PIPENV_PYUP_API_KEY, PIPENV_SHELL_FANCY, PIPENV_SKIP_VALIDATION, - PIPENV_YES, SESSION_IS_INTERACTIVE + PIPENV_YES, SESSION_IS_INTERACTIVE, PIP_EXISTS_ACTION ) from .project import Project, SourceNotFound from .utils import ( @@ -35,7 +35,7 @@ from .utils import ( get_canonical_names, is_pinned, is_pypi_url, is_required_version, is_star, is_valid_url, parse_indexes, pep423_name, prepare_pip_source_args, proper_case, python_version, venv_resolve_deps, run_command, - is_python_command, find_python + is_python_command, find_python, make_posix, interrupt_handled_subprocess ) @@ -371,6 +371,9 @@ def ensure_python(three=None, python=None): if not python: python = PIPENV_DEFAULT_PYTHON_VERSION path_to_python = find_a_system_python(python) + if environments.is_verbose(): + click.echo(u"Using python: {0}".format(python), err=True) + click.echo(u"Path to python: {0}".format(path_to_python), err=True) if not path_to_python and python is not None: # We need to install Python. click.echo( @@ -642,10 +645,10 @@ def do_where(virtualenv=False, bare=True): click.echo(location) -def _cleanup_procs(procs, concurrent, failed_deps_queue, retry=True): +def _cleanup_procs(procs, failed_deps_queue, retry=True): while not procs.empty(): c = procs.get() - if concurrent: + if not c.blocking: c.block() failed = False if c.return_code != 0: @@ -679,7 +682,7 @@ def _cleanup_procs(procs, concurrent, failed_deps_queue, retry=True): def batch_install(deps_list, procs, failed_deps_queue, requirements_dir, no_deps=False, ignore_hashes=False, allow_global=False, blocking=False, pypi_mirror=None, - nprocs=PIPENV_MAX_SUBPROCESS, retry=True): + retry=True): from .vendor.requirementslib.models.utils import strip_extras_markers_from_requirement failed = (not retry) if not failed: @@ -750,12 +753,13 @@ def batch_install(deps_list, procs, failed_deps_queue, extra_indexes=extra_indexes, use_pep517=not failed, ) - if procs.qsize() < nprocs: - c.dep = dep - procs.put(c) + c.dep = dep + if dep.is_vcs or dep.editable: + c.block() + procs.put(c) if procs.full() or procs.qsize() == len(deps_list): - _cleanup_procs(procs, not blocking, failed_deps_queue, retry=retry) + _cleanup_procs(procs, failed_deps_queue, retry=retry) def do_install_dependencies( @@ -779,7 +783,6 @@ def do_install_dependencies( from six.moves import queue if requirements: bare = True - blocking = not concurrent # Load the lockfile if it exists, or if only is being used (e.g. lock is being used). if skip_lock or only or not project.lockfile_exists: if not bare: @@ -815,19 +818,19 @@ def do_install_dependencies( ) sys.exit(0) - procs = queue.Queue(maxsize=PIPENV_MAX_SUBPROCESS) + if concurrent: + nprocs = PIPENV_MAX_SUBPROCESS + else: + nprocs = 1 + procs = queue.Queue(maxsize=nprocs) failed_deps_queue = queue.Queue() if skip_lock: ignore_hashes = True install_kwargs = { "no_deps": no_deps, "ignore_hashes": ignore_hashes, "allow_global": allow_global, - "blocking": blocking, "pypi_mirror": pypi_mirror + "blocking": not concurrent, "pypi_mirror": pypi_mirror } - if concurrent: - install_kwargs["nprocs"] = PIPENV_MAX_SUBPROCESS - else: - install_kwargs["nprocs"] = 1 # with project.environment.activated(): batch_install( @@ -835,7 +838,7 @@ def do_install_dependencies( ) if not procs.empty(): - _cleanup_procs(procs, concurrent, failed_deps_queue) + _cleanup_procs(procs, failed_deps_queue) # Iterate over the hopefully-poorly-packaged dependencies… if not failed_deps_queue.empty(): @@ -847,7 +850,6 @@ def do_install_dependencies( failed_dep = failed_deps_queue.get() retry_list.append(failed_dep) install_kwargs.update({ - "nprocs": 1, "retry": False, "blocking": True, }) @@ -855,7 +857,7 @@ def do_install_dependencies( retry_list, procs, failed_deps_queue, requirements_dir, **install_kwargs ) if not procs.empty(): - _cleanup_procs(procs, False, failed_deps_queue, retry=False) + _cleanup_procs(procs, failed_deps_queue, retry=False) def convert_three_to_python(three, python): @@ -885,11 +887,13 @@ def do_create_virtualenv(python=None, site_packages=False, pypi_mirror=None): ) # Default to using sys.executable, if Python wasn't provided. + using_string = u"Using" if not python: python = sys.executable + using_string = "Using default python from" click.echo( u"{0} {1} {3} {2}".format( - crayons.normal("Using", bold=True), + crayons.normal(using_string, bold=True), crayons.red(python, bold=True), crayons.normal(fix_utf8("to create virtualenv…"), bold=True), crayons.green("({0})".format(python_version(python))), @@ -919,20 +923,19 @@ def do_create_virtualenv(python=None, site_packages=False, pypi_mirror=None): pip_config = {} # Actually create the virtualenv. + error = None with create_spinner(u"Creating virtual environment...") as sp: - c = vistir.misc.run( - cmd, verbose=False, return_object=True, write_to_stdout=False, - combine_stderr=False, block=True, nospin=True, env=pip_config, + with interrupt_handled_subprocess(cmd, combine_stderr=False, env=pip_config) as c: + click.echo(crayons.blue(u"{0}".format(c.out)), err=True) + if c.returncode != 0: + error = c.err if environments.is_verbose() else exceptions.prettify_exc(c.err) + sp.fail(environments.PIPENV_SPINNER_FAIL_TEXT.format(u"Failed creating virtual environment")) + else: + sp.green.ok(environments.PIPENV_SPINNER_OK_TEXT.format(u"Successfully created virtual environment!")) + if error is not None: + raise exceptions.VirtualenvCreationException( + extra=crayons.red("{0}".format(error)) ) - click.echo(crayons.blue(u"{0}".format(c.out)), err=True) - if c.returncode != 0: - sp.fail(environments.PIPENV_SPINNER_FAIL_TEXT.format(u"Failed creating virtual environment")) - error = c.err if environments.is_verbose() else exceptions.prettify_exc(c.err) - raise exceptions.VirtualenvCreationException( - extra=crayons.red("{0}".format(error)) - ) - else: - sp.green.ok(environments.PIPENV_SPINNER_OK_TEXT.format(u"Successfully created virtual environment!")) # Associate project directory with the environment. # This mimics Pew's "setproject". @@ -1509,7 +1512,7 @@ def pip_install( "PIP_DESTINATION_DIR": vistir.misc.fs_str( cache_dir.joinpath("pkgs").as_posix() ), - "PIP_EXISTS_ACTION": vistir.misc.fs_str("w"), + "PIP_EXISTS_ACTION": vistir.misc.fs_str(PIP_EXISTS_ACTION or "w"), "PATH": vistir.misc.fs_str(os.environ.get("PATH")), } if src: @@ -2503,6 +2506,8 @@ def do_run(command, args, three=None, python=False, pypi_mirror=None): previous_pipenv_active_value = os.environ.get("PIPENV_ACTIVE") os.environ["PIPENV_ACTIVE"] = vistir.misc.fs_str("1") + os.environ.pop("PIP_SHIMS_BASE_MODULE", None) + try: script = project.build_script(command, args) cmd_string = ' '.join([script.command] + script.args) diff --git a/pipenv/environments.py b/pipenv/environments.py index e7e64d31..180f0a6e 100644 --- a/pipenv/environments.py +++ b/pipenv/environments.py @@ -126,7 +126,7 @@ PIPENV_MAX_ROUNDS = int(os.environ.get("PIPENV_MAX_ROUNDS", "16")) Default is 16, an arbitrary number that works most of the time. """ -PIPENV_MAX_SUBPROCESS = int(os.environ.get("PIPENV_MAX_SUBPROCESS", "16")) +PIPENV_MAX_SUBPROCESS = int(os.environ.get("PIPENV_MAX_SUBPROCESS", "8")) """How many subprocesses should Pipenv use when installing. Default is 16, an arbitrary number that seems to work. @@ -150,14 +150,12 @@ environments. if PIPENV_IS_CI: PIPENV_NOSPIN = True -PIPENV_SPINNER = "dots" +PIPENV_SPINNER = "dots" if not os.name == "nt" else "bouncingBar" """Sets the default spinner type. Spinners are identitcal to the node.js spinners and can be found at https://github.com/sindresorhus/cli-spinners """ -if os.name == "nt": - PIPENV_SPINNER = "bouncingBar" PIPENV_PIPFILE = os.environ.get("PIPENV_PIPFILE") """If set, this specifies a custom Pipfile location. @@ -236,6 +234,12 @@ Default is to lock dependencies and update ``Pipfile.lock`` on each run. NOTE: This only affects the ``install`` and ``uninstall`` commands. """ +PIP_EXISTS_ACTION = os.environ.get("PIP_EXISTS_ACTION", "w") +"""Specifies the value for pip's --exists-action option + +Defaullts to (w)ipe +""" + PIPENV_RESOLVE_VCS = _is_env_truthy(os.environ.get("PIPENV_RESOLVE_VCS", 'true')) """Tells Pipenv whether to resolve all VCS dependencies in full. @@ -244,7 +248,6 @@ To retain this behavior and avoid handling any conflicts that arise from the new approach, you may set this to '0', 'off', or 'false'. """ - PIPENV_PYUP_API_KEY = os.environ.get( "PIPENV_PYUP_API_KEY", "1ab8d58f-5122e025-83674263-bc1e79e0" ) diff --git a/pipenv/utils.py b/pipenv/utils.py index b99c51e7..fc9df248 100644 --- a/pipenv/utils.py +++ b/pipenv/utils.py @@ -6,6 +6,7 @@ import logging import os import posixpath import re +import signal import shutil import stat import sys @@ -25,7 +26,7 @@ six.add_move(six.MovedAttribute("Set", "collections", "collections.abc")) # noq from six.moves import Mapping, Sequence, Set from six.moves.urllib.parse import urlparse from .vendor.vistir.compat import ResourceWarning, lru_cache -from .vendor.vistir.misc import fs_str +from .vendor.vistir.misc import fs_str, run import crayons import parse @@ -964,9 +965,9 @@ def create_spinner(text, nospin=None, spinner_name=None): if nospin is None: nospin = environments.PIPENV_NOSPIN with spin.create_spinner( - spinner_name=spinner_name, - start_text=fs_str(text), - nospin=nospin, write_to_stdout=False + spinner_name=spinner_name, + start_text=fs_str(text), + nospin=nospin, write_to_stdout=False ) as sp: yield sp @@ -2103,3 +2104,40 @@ def make_marker_from_specifier(spec): specset = cleanup_pyspecs(SpecifierSet(spec)) marker_str = " and ".join([format_pyversion(pv) for pv in specset]) return Marker(marker_str) + + +@contextlib.contextmanager +def interrupt_handled_subprocess( + cmd, verbose=False, return_object=True, write_to_stdout=False, combine_stderr=True, + block=True, nospin=True, env=None +): + """Given a :class:`subprocess.Popen` instance, wrap it in exception handlers. + + Terminates the subprocess when and if a `SystemExit` or `KeyboardInterrupt` are + processed. + + Arguments: + :param str cmd: A command to run + :param bool verbose: Whether to run with verbose mode enabled, default False + :param bool return_object: Whether to return a subprocess instance or a 2-tuple, default True + :param bool write_to_stdout: Whether to write directly to stdout, default False + :param bool combine_stderr: Whether to combine stdout and stderr, default True + :param bool block: Whether the subprocess should be a blocking subprocess, default True + :param bool nospin: Whether to suppress the spinner with the subprocess, default True + :param Optional[Dict[str, str]] env: A dictionary to merge into the subprocess environment + :return: A subprocess, wrapped in exception handlers, as a context manager + :rtype: :class:`subprocess.Popen` obj: An instance of a running subprocess + """ + obj = run( + cmd, verbose=verbose, return_object=True, write_to_stdout=False, + combine_stderr=False, block=True, nospin=True, env=env, + ) + try: + yield obj + except (SystemExit, KeyboardInterrupt): + if os.name == "nt": + os.kill(obj.pid, signal.CTRL_BREAK_EVENT) + else: + os.kill(obj.pid, signal.SIGINT) + obj.wait() + raise diff --git a/pipenv/vendor/pythonfinder/utils.py b/pipenv/vendor/pythonfinder/utils.py index 1defda5f..bbab5381 100644 --- a/pipenv/vendor/pythonfinder/utils.py +++ b/pipenv/vendor/pythonfinder/utils.py @@ -62,7 +62,7 @@ KNOWN_EXTS = {"exe", "py", "fish", "sh", ""} KNOWN_EXTS = KNOWN_EXTS | set( filter(None, os.environ.get("PATHEXT", "").split(os.pathsep)) ) -PY_MATCH_STR = r"((?P{0})(?:\d?(?:\.\d[cpm]{{0,3}}))?(?:-?[\d\.]+)*[^z])".format( +PY_MATCH_STR = r"((?P{0})(?:\d?(?:\.\d[cpm]{{0,3}}))?(?:-?[\d\.]+)*[^zw])".format( "|".join(PYTHON_IMPLEMENTATIONS) ) EXE_MATCH_STR = r"{0}(?:\.(?P{1}))?".format(PY_MATCH_STR, "|".join(KNOWN_EXTS)) diff --git a/pipenv/vendor/vistir/misc.py b/pipenv/vendor/vistir/misc.py index e46700e5..8d3322d2 100644 --- a/pipenv/vendor/vistir/misc.py +++ b/pipenv/vendor/vistir/misc.py @@ -6,6 +6,7 @@ import json import locale import logging import os +import signal import subprocess import sys from collections import OrderedDict @@ -303,9 +304,10 @@ def _create_subprocess( else: try: c.out, c.err = c.communicate() - except (SystemExit, TimeoutError): + except (SystemExit, KeyboardInterrupt, TimeoutError): c.terminate() c.out, c.err = c.communicate() + raise if not block: c.wait() c.out = to_text("{0}".format(c.out)) if c.out else fs_str("") diff --git a/pipenv/vendor/vistir/spin.py b/pipenv/vendor/vistir/spin.py index 1e67e482..64b615de 100644 --- a/pipenv/vendor/vistir/spin.py +++ b/pipenv/vendor/vistir/spin.py @@ -41,7 +41,6 @@ if os.name == "nt": # pragma: no cover """ spinner.fail() spinner.stop() - sys.exit(0) else: # pragma: no cover @@ -55,7 +54,6 @@ else: # pragma: no cover """ spinner.red.fail("✘") spinner.stop() - sys.exit(0) CLEAR_LINE = chr(27) + "[K" diff --git a/run-tests.bat b/run-tests.bat index a511fa45..973425af 100644 --- a/run-tests.bat +++ b/run-tests.bat @@ -1,7 +1,15 @@ -rem imdisk -a -s 964515b -m R: -p "/FS:NTFS /Y" +rem If you want to use a ramdisk, use this section: + +rem imdisk -a -s 4G -m R: -p "FS:NTFS /y" +rem if you are using a ram disk, you should comment the following substitution line out +subst R: %TEMP% + +set TMP=R:\\ +set TEMP=R:\\ +set WORKON_HOME=R:\\ +set RAM_DISK=R:\\ -virtualenv R:\.venv R:\.venv\Scripts\pip install -e .[test] --upgrade --upgrade-strategy=only-if-needed R:\.venv\Scripts\pipenv install --dev git submodule sync && git submodule update --init --recursive -SET RAM_DISK=R: && R:\.venv\Scripts\pipenv run pytest -n auto -v tests --tap-stream > report.tap +R:\.venv\Scripts\pipenv run pytest -n auto -v tests diff --git a/run-tests.sh b/run-tests.sh index a99c0461..aef44f63 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -7,6 +7,8 @@ set -eo pipefail export PYTHONIOENCODING="utf-8" export LANG=C.UTF-8 export PIP_PROCESS_DEPENDENCY_LINKS="1" +# Let's use a temporary cache directory +export PIPENV_CACHE_DIR=`mktemp -d 2>/dev/null || mktemp -d -t 'pipenv_cache'` prefix() { sed "s/^/ $1: /" @@ -25,49 +27,27 @@ fi if [[ ! -z "$HOME" ]]; then export PATH="${HOME}/.local/bin:${PATH}" fi -# pip uninstall -y pipenv pip install certifi export GIT_SSL_CAINFO=$(python -m certifi) echo "Path: $PATH" echo "Installing Pipenv…" -PIP_USER="1" python -m pip install --upgrade setuptools -PIP_USER="1" python3 -m pip install --upgrade setuptools -python -m pip install -e "$(pwd)" --upgrade && python3 -m pip install -e "$(pwd)" --upgrade -python3 -m pipenv install --deploy --dev --system - -# Otherwise, we're on a development machine. -# First, try MacOS… -if [[ $(python -c "import sys; print(sys.platform)") == "darwin" ]]; then - - echo "Clearing Caches…" - rm -fr ~/Library/Caches/pip - rm -fr ~/Library/Caches/pipenv - -# Otherwise, assume Linux… -else - echo "Clearing Caches…" - rm -fr ~/.cache/pip - rm -fr ~/.cache/pipenv -fi +python -m pip install --upgrade -e "$(pwd)" setuptools wheel pip +VENV_CMD="python -m pipenv --venv" +RM_CMD="pipenv --rm" +echo "$ PIPENV_PYTHON=2.7 $VENV_CMD && PIPENV_PYTHON=2.7 $RM_CMD" +echo "$ PIPENV_PYTHON=3.7 $VENV_CMD && PIPENV_PYTHON=3.7 $RM_CMD" +{ PIPENV_PYTHON=2.7 $VENV_CMD && PIPENV_PYTHON=2.7 $RM_CMD ; PIPENV_PYTHON=3.7 $VENV_CMD && PIPENV_PYTHON=3.7 $RM_CMD ; } echo "Installing dependencies…" -PIPENV_PYTHON=2.7 python3 -m pipenv --venv && pipenv --rm && pipenv install --dev -PIPENV_PYTHON=3.7 python3 -m pipenv --venv && pipenv --rm && pipenv install --dev -PIPENV_PYTHON=2.7 python3 -m pipenv run pip install --upgrade -e .[test] -PIPENV_PYTHON=3.7 python3 -m pipenv run pip install --upgrade -e .[test] +INSTALL_CMD="python -m pipenv install --deploy --dev" +echo "$ PIPENV_PYTHON=2.7 $INSTALL_CMD" +echo "$ PIPENV_PYTHON=3.7 $INSTALL_CMD" + +{ ( PIPENV_PYTHON=2.7 $INSTALL_CMD & ); PIPENV_PYTHON=3.7 $INSTALL_CMD ; } echo "$ git submodule sync && git submodule update --init --recursive" git submodule sync && git submodule update --init --recursive -echo "$ pipenv run time pytest -v -n auto tests -m \"$TEST_SUITE\"" -# PIPENV_PYTHON=2.7 pipenv run time pytest -v -n auto tests -m "$TEST_SUITE" | prefix 2.7 & -# PIPENV_PYTHON=3.6 pipenv run time pytest -v -n auto tests -m "$TEST_SUITE" | prefix 3.6 -# Better to run them sequentially. -PIPENV_PYTHON=2.7 python3 -m pipenv run time pytest -PIPENV_PYTHON=3.7 python3 -m pipenv run time pytest - -# test revendoring -pip3 install --upgrade invoke requests parver vistir -python3 -m invoke vendoring.update -# Cleanup junk. -rm -fr .venv +echo "$ pipenv run time pytest" +PIPENV_PYTHON=2.7 python -m pipenv run time pytest +PIPENV_PYTHON=3.7 python -m pipenv run time pytest diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index c239c075..74429dbc 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -17,6 +17,7 @@ from vistir.contextmanagers import temp_environ from vistir.path import mkdir_p, create_tracked_tempdir, handle_remove_readonly from pipenv._compat import Path +from pipenv.cmdparse import Script from pipenv.exceptions import VirtualenvActivationException from pipenv.vendor import delegator, requests, toml, tomlkit from pytest_pypi.app import prepare_fixtures @@ -111,6 +112,8 @@ def pytest_runtest_setup(item): sys.version_info < (3, 0) ): pytest.skip('test only runs on python 3') + if item.get_closest_marker('skip_osx') is not None and sys.platform == 'darwin': + pytest.skip('test does not apply on OSX') if item.get_closest_marker('lte_py36') is not None and ( sys.version_info >= (3, 7) ): @@ -329,8 +332,10 @@ class _PipenvInstance(object): with TemporaryDirectory(prefix='pipenv-', suffix='-cache') as tempdir: os.environ['PIPENV_CACHE_DIR'] = fs_str(tempdir.name) - c = delegator.run('pipenv {0}'.format(cmd), block=block, - cwd=os.path.abspath(self.path)) + c = delegator.run( + 'pipenv {0}'.format(cmd), block=block, + cwd=os.path.abspath(self.path), env=os.environ.copy() + ) if 'PIPENV_CACHE_DIR' in os.environ: del os.environ['PIPENV_CACHE_DIR'] diff --git a/tests/integration/test_cli.py b/tests/integration/test_cli.py index 70cc4302..6153658d 100644 --- a/tests/integration/test_cli.py +++ b/tests/integration/test_cli.py @@ -217,6 +217,7 @@ def test_install_parse_error(PipenvInstance, pypi): @pytest.mark.code @pytest.mark.check @pytest.mark.unused +@pytest.mark.skip_osx @pytest.mark.needs_internet(reason='required by check') def test_check_unused(PipenvInstance, pypi): with PipenvInstance(chdir=True, pypi=pypi) as p: diff --git a/tests/integration/test_dot_venv.py b/tests/integration/test_dot_venv.py index 07904b16..840560f9 100644 --- a/tests/integration/test_dot_venv.py +++ b/tests/integration/test_dot_venv.py @@ -70,12 +70,12 @@ def test_venv_file(venv_name, PipenvInstance, pypi): venv_loc = Path(c.out.strip()).absolute() assert venv_loc.exists() assert venv_loc.joinpath('.project').exists() - venv_path = venv_loc.as_posix() + venv_path = normalize_drive(venv_loc.as_posix()) if os.path.sep in venv_name: venv_expected_path = Path(p.path).joinpath(venv_name).absolute().as_posix() else: venv_expected_path = Path(workon_home.name).joinpath(venv_name).absolute().as_posix() - assert venv_path == venv_expected_path + assert venv_path == normalize_drive(venv_expected_path) @pytest.mark.dotvenv diff --git a/tests/integration/test_install_basic.py b/tests/integration/test_install_basic.py index 8b9df96c..ea6efb3e 100644 --- a/tests/integration/test_install_basic.py +++ b/tests/integration/test_install_basic.py @@ -28,8 +28,9 @@ def test_basic_setup(PipenvInstance, pypi): assert "certifi" in p.lockfile["default"] -@pytest.mark.install @flaky +@pytest.mark.install +@pytest.mark.skip_osx def test_basic_install(PipenvInstance, pypi): with PipenvInstance(pypi=pypi) as p: c = p.pipenv("install requests") @@ -42,8 +43,8 @@ def test_basic_install(PipenvInstance, pypi): assert "certifi" in p.lockfile["default"] -@pytest.mark.install @flaky +@pytest.mark.install def test_mirror_install(PipenvInstance, pypi): with temp_environ(), PipenvInstance(chdir=True, pypi=pypi) as p: mirror_url = os.environ.pop( @@ -68,9 +69,9 @@ def test_mirror_install(PipenvInstance, pypi): assert "certifi" in p.lockfile["default"] +@flaky @pytest.mark.install @pytest.mark.needs_internet -@flaky def test_bad_mirror_install(PipenvInstance, pypi): with temp_environ(), PipenvInstance(chdir=True) as p: # This demonstrates that the mirror parameter is being used @@ -79,8 +80,8 @@ def test_bad_mirror_install(PipenvInstance, pypi): assert c.return_code != 0 -@pytest.mark.complex @pytest.mark.lock +@pytest.mark.complex @pytest.mark.skip(reason="Does not work unless you can explicitly install into py2") def test_complex_lock(PipenvInstance, pypi): with PipenvInstance(pypi=pypi) as p: @@ -91,9 +92,9 @@ def test_complex_lock(PipenvInstance, pypi): assert "futures" in p.lockfile[u"default"] +@flaky @pytest.mark.dev @pytest.mark.run -@flaky def test_basic_dev_install(PipenvInstance, pypi): with PipenvInstance(pypi=pypi) as p: c = p.pipenv("install requests --dev") @@ -109,9 +110,9 @@ def test_basic_dev_install(PipenvInstance, pypi): assert c.return_code == 0 +@flaky @pytest.mark.dev @pytest.mark.install -@flaky def test_install_without_dev(PipenvInstance, pypi): """Ensure that running `pipenv install` doesn't install dev packages""" with PipenvInstance(pypi=pypi, chdir=True) as p: @@ -136,8 +137,8 @@ pytz = "*" assert c.return_code == 0 -@pytest.mark.install @flaky +@pytest.mark.install def test_install_without_dev_section(PipenvInstance, pypi): with PipenvInstance(pypi=pypi) as p: with open(p.pipfile_path, "w") as f: @@ -156,9 +157,9 @@ six = "*" assert c.return_code == 0 +@flaky @pytest.mark.extras @pytest.mark.install -@flaky def test_extras_install(PipenvInstance, pypi): with PipenvInstance(pypi=pypi, chdir=True) as p: c = p.pipenv("install requests[socks]") @@ -173,9 +174,9 @@ def test_extras_install(PipenvInstance, pypi): assert "pysocks" in p.lockfile["default"] -@pytest.mark.install -@pytest.mark.pin @flaky +@pytest.mark.pin +@pytest.mark.install def test_windows_pinned_pipfile(PipenvInstance, pypi): with PipenvInstance(pypi=pypi) as p: with open(p.pipfile_path, "w") as f: @@ -190,10 +191,10 @@ requests = "==2.19.1" assert "requests" in p.lockfile["default"] +@flaky @pytest.mark.install @pytest.mark.resolver @pytest.mark.backup_resolver -@flaky def test_backup_resolver(PipenvInstance, pypi): with PipenvInstance(pypi=pypi) as p: with open(p.pipfile_path, "w") as f: @@ -208,9 +209,9 @@ def test_backup_resolver(PipenvInstance, pypi): assert "ibm-db-sa-py3" in p.lockfile["default"] +@flaky @pytest.mark.run @pytest.mark.alt -@flaky def test_alternative_version_specifier(PipenvInstance, pypi): with PipenvInstance(pypi=pypi) as p: with open(p.pipfile_path, "w") as f: @@ -233,9 +234,9 @@ requests = {version = "*"} assert c.return_code == 0 +@flaky @pytest.mark.run @pytest.mark.alt -@flaky def test_outline_table_specifier(PipenvInstance, pypi): with PipenvInstance(pypi=pypi) as p: with open(p.pipfile_path, "w") as f: @@ -297,6 +298,7 @@ def test_requirements_to_pipfile(PipenvInstance, pypi): @pytest.mark.install +@pytest.mark.skip_osx @pytest.mark.requirements def test_skip_requirements_when_pipfile(PipenvInstance, pypi): """Ensure requirements.txt is NOT imported when diff --git a/tests/integration/test_install_markers.py b/tests/integration/test_install_markers.py index 9d62e980..87770ed7 100644 --- a/tests/integration/test_install_markers.py +++ b/tests/integration/test_install_markers.py @@ -140,7 +140,7 @@ def test_resolver_unique_markers(PipenvInstance, pypi): This verifies that we clean that successfully. """ with PipenvInstance(chdir=True, pypi=pypi) as p: - c = p.pipenv('install vcrpy==1.11.0') + c = p.pipenv('install vcrpy==2.0.1') assert c.return_code == 0 c = p.pipenv('lock') assert c.return_code == 0 @@ -148,7 +148,7 @@ def test_resolver_unique_markers(PipenvInstance, pypi): yarl = p.lockfile['default']['yarl'] assert 'markers' in yarl # Two possible marker sets are ok here - assert yarl['markers'] in ["python_version in '3.4, 3.5, 3.6'", "python_version >= '3.4.1'"] + assert yarl['markers'] in ["python_version in '3.4, 3.5, 3.6'", "python_version >= '3.4'"] @pytest.mark.project diff --git a/tests/integration/test_lock.py b/tests/integration/test_lock.py index 881e2e40..f9b20826 100644 --- a/tests/integration/test_lock.py +++ b/tests/integration/test_lock.py @@ -128,17 +128,17 @@ def test_keep_outdated_doesnt_upgrade_pipfile_pins(PipenvInstance, pypi): def test_keep_outdated_keeps_markers_not_removed(PipenvInstance, pypi): with PipenvInstance(chdir=True, pypi=pypi) as p: - c = p.pipenv("install tablib") + c = p.pipenv("install six click") assert c.ok lockfile = Path(p.lockfile_path) lockfile_content = lockfile.read_text() lockfile_json = json.loads(lockfile_content) - assert "tablib" in lockfile_json["default"] - lockfile_json["default"]["tablib"]["markers"] = "python_version >= '2.7'" + assert "six" in lockfile_json["default"] + lockfile_json["default"]["six"]["markers"] = "python_version >= '2.7'" lockfile.write_text(to_text(json.dumps(lockfile_json))) c = p.pipenv("lock --keep-outdated") assert c.ok - assert p.lockfile["default"]["tablib"].get("markers", "") == "python_version >= '2.7'" + assert p.lockfile["default"]["six"].get("markers", "") == "python_version >= '2.7'" @pytest.mark.lock @@ -596,18 +596,20 @@ def test_lock_no_warnings(PipenvInstance, pypi): @pytest.mark.lock @pytest.mark.install @pytest.mark.skipif(sys.version_info >= (3, 5), reason="scandir doesn't get installed on python 3.5+") -def test_lock_missing_cache_entries_gets_all_hashes(monkeypatch, PipenvInstance, pypi, tmpdir): +def test_lock_missing_cache_entries_gets_all_hashes(PipenvInstance, pypi, tmpdir): """ Test locking pathlib2 on python2.7 which needs `scandir`, but fails to resolve when using a fresh dependency cache. """ - with monkeypatch.context() as m: - monkeypatch.setattr("pipenv.patched.piptools.locations.CACHE_DIR", tmpdir.strpath) + with temp_environ(): + os.environ["PIPENV_CACHE_DIR"] = str(tmpdir.strpath) with PipenvInstance(pypi=pypi, chdir=True) as p: p._pipfile.add("pathlib2", "*") assert "pathlib2" in p.pipfile["packages"] c = p.pipenv("install") + assert c.return_code == 0, (c.err, ("\n".join(["{0}: {1}\n".format(k, v) for k, v in os.environ.items()]))) + c = p.pipenv("lock --clear") assert c.return_code == 0, c.err assert "pathlib2" in p.lockfile["default"] assert "scandir" in p.lockfile["default"] diff --git a/tests/integration/test_project.py b/tests/integration/test_project.py index 4adf46ab..436f11c1 100644 --- a/tests/integration/test_project.py +++ b/tests/integration/test_project.py @@ -10,6 +10,7 @@ from pipenv.patched import pipfile from pipenv.project import Project from pipenv.utils import temp_environ from pipenv.vendor.vistir.path import is_in_path +from pipenv.vendor.delegator import run as delegator_run import pipenv.environments @@ -173,22 +174,38 @@ def test_include_editable_packages(PipenvInstance, pypi, testsroot, pathlib_tmpd @pytest.mark.virtualenv def test_run_in_virtualenv_with_global_context(PipenvInstance, pypi, virtualenv): with PipenvInstance(chdir=True, pypi=pypi, venv_root=virtualenv.as_posix(), ignore_virtualenvs=False, venv_in_project=False) as p: - c = p.pipenv('run pip freeze') - assert c.return_code == 0 - assert 'Creating a virtualenv' not in c.err + c = delegator_run( + "pipenv run pip freeze", cwd=os.path.abspath(p.path), + env=os.environ.copy() + ) + assert c.return_code == 0, (c.out, c.err) + assert 'Creating a virtualenv' not in c.err, c.err project = Project() - assert project.virtualenv_location == virtualenv.as_posix() - c = p.pipenv("run pip install click") - assert c.return_code == 0 - assert "Courtesy Notice" in c.err - c = p.pipenv("install six") - assert c.return_code == 0 - c = p.pipenv('run python -c "import click;print(click.__file__)"') - assert c.return_code == 0 - assert is_in_path(c.out.strip(), str(virtualenv)) - c = p.pipenv("clean --dry-run") - assert c.return_code == 0 - assert "click" in c.out + assert project.virtualenv_location == virtualenv.as_posix(), ( + project.virtualenv_location, virtualenv.as_posix() + ) + c = delegator_run( + "pipenv run pip install click", cwd=os.path.abspath(p.path), + env=os.environ.copy() + ) + assert c.return_code == 0, (c.out, c.err) + assert "Courtesy Notice" in c.err, (c.out, c.err) + c = delegator_run( + "pipenv install six", cwd=os.path.abspath(p.path), env=os.environ.copy() + ) + assert c.return_code == 0, (c.out, c.err) + c = delegator_run( + 'pipenv run python -c "import click;print(click.__file__)"', + cwd=os.path.abspath(p.path), env=os.environ.copy() + ) + assert c.return_code == 0, (c.out, c.err) + assert is_in_path(c.out.strip(), str(virtualenv)), (c.out.strip(), str(virtualenv)) + c = delegator_run( + "pipenv clean --dry-run", cwd=os.path.abspath(p.path), + env=os.environ.copy() + ) + assert c.return_code == 0, (c.out, c.err) + assert "click" in c.out, c.out @pytest.mark.project diff --git a/tests/integration/test_sync.py b/tests/integration/test_sync.py index 050e790a..1300bf5d 100644 --- a/tests/integration/test_sync.py +++ b/tests/integration/test_sync.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import, print_function +import json import os import pytest @@ -68,3 +69,46 @@ six = "*" c = p.pipenv('sync') assert c.return_code == 0 assert lockfile_content == p.lockfile + + +@pytest.mark.sync +@pytest.mark.lock +def test_sync_sequential_detect_errors(PipenvInstance, pypi): + with PipenvInstance(pypi=pypi) as p: + with open(p.pipfile_path, 'w') as f: + contents = """ +[packages] +requests = "*" + """.strip() + f.write(contents) + + c = p.pipenv('lock') + assert c.return_code == 0 + + # Force hash mismatch when installing `requests` + lock = p.lockfile + lock['default']['requests']['hashes'] = ['sha256:' + '0' * 64] + with open(p.lockfile_path, 'w') as f: + json.dump(lock, f) + + c = p.pipenv('sync --sequential') + assert c.return_code != 0 + + +@pytest.mark.sync +@pytest.mark.lock +def test_sync_sequential_verbose(PipenvInstance, pypi): + with PipenvInstance(pypi=pypi) as p: + with open(p.pipfile_path, 'w') as f: + contents = """ +[packages] +requests = "*" + """.strip() + f.write(contents) + + c = p.pipenv('lock') + assert c.return_code == 0 + + c = p.pipenv('sync --sequential --verbose') + for package in p.lockfile['default']: + assert 'Successfully installed {}'.format(package) in c.out diff --git a/tests/pypi b/tests/pypi new file mode 160000 index 00000000..f3260ec6 --- /dev/null +++ b/tests/pypi @@ -0,0 +1 @@ +Subproject commit f3260ec6bf5c435865d0def587e7f00f625952e9 diff --git a/tests/pypi/Cerberus/Cerberus-1.2.tar.gz b/tests/pypi/Cerberus/Cerberus-1.2.tar.gz deleted file mode 100644 index b9f2c01d..00000000 Binary files a/tests/pypi/Cerberus/Cerberus-1.2.tar.gz and /dev/null differ diff --git a/tests/pypi/alembic/alembic-0.9.8.tar.gz b/tests/pypi/alembic/alembic-0.9.8.tar.gz deleted file mode 100644 index a23b9200..00000000 Binary files a/tests/pypi/alembic/alembic-0.9.8.tar.gz and /dev/null differ diff --git a/tests/pypi/alembic/alembic-0.9.9.tar.gz b/tests/pypi/alembic/alembic-0.9.9.tar.gz deleted file mode 100644 index 0c77f5df..00000000 Binary files a/tests/pypi/alembic/alembic-0.9.9.tar.gz and /dev/null differ diff --git a/tests/pypi/apscheduler/APScheduler-3.5.1-py2.py3-none-any.whl b/tests/pypi/apscheduler/APScheduler-3.5.1-py2.py3-none-any.whl deleted file mode 100644 index faf7dbf5..00000000 Binary files a/tests/pypi/apscheduler/APScheduler-3.5.1-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/apscheduler/APScheduler-3.5.1.tar.gz b/tests/pypi/apscheduler/APScheduler-3.5.1.tar.gz deleted file mode 100644 index 672b4d13..00000000 Binary files a/tests/pypi/apscheduler/APScheduler-3.5.1.tar.gz and /dev/null differ diff --git a/tests/pypi/backports-html/backports.html-1.1.0.tar.gz b/tests/pypi/backports-html/backports.html-1.1.0.tar.gz deleted file mode 100644 index de553eba..00000000 Binary files a/tests/pypi/backports-html/backports.html-1.1.0.tar.gz and /dev/null differ diff --git a/tests/pypi/cerberus/cerberus-1.2.tar.gz b/tests/pypi/cerberus/cerberus-1.2.tar.gz deleted file mode 100644 index b9f2c01d..00000000 Binary files a/tests/pypi/cerberus/cerberus-1.2.tar.gz and /dev/null differ diff --git a/tests/pypi/certifi/certifi-2018.1.18-py2.py3-none-any.whl b/tests/pypi/certifi/certifi-2018.1.18-py2.py3-none-any.whl deleted file mode 100644 index 3348f725..00000000 Binary files a/tests/pypi/certifi/certifi-2018.1.18-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/certifi/certifi-2018.1.18.tar.gz b/tests/pypi/certifi/certifi-2018.1.18.tar.gz deleted file mode 100644 index a7f32456..00000000 Binary files a/tests/pypi/certifi/certifi-2018.1.18.tar.gz and /dev/null differ diff --git a/tests/pypi/certifi/certifi-2018.4.16-py2.py3-none-any.whl b/tests/pypi/certifi/certifi-2018.4.16-py2.py3-none-any.whl deleted file mode 100644 index 37d13a39..00000000 Binary files a/tests/pypi/certifi/certifi-2018.4.16-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/certifi/certifi-2018.4.16.tar.gz b/tests/pypi/certifi/certifi-2018.4.16.tar.gz deleted file mode 100644 index 47b37025..00000000 Binary files a/tests/pypi/certifi/certifi-2018.4.16.tar.gz and /dev/null differ diff --git a/tests/pypi/chardet/chardet-3.0.4-py2.py3-none-any.whl b/tests/pypi/chardet/chardet-3.0.4-py2.py3-none-any.whl deleted file mode 100644 index d276977d..00000000 Binary files a/tests/pypi/chardet/chardet-3.0.4-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/chardet/chardet-3.0.4.tar.gz b/tests/pypi/chardet/chardet-3.0.4.tar.gz deleted file mode 100644 index 13028bfc..00000000 Binary files a/tests/pypi/chardet/chardet-3.0.4.tar.gz and /dev/null differ diff --git a/tests/pypi/click/click-6.7-py2.py3-none-any.whl b/tests/pypi/click/click-6.7-py2.py3-none-any.whl deleted file mode 100644 index 56c7ff34..00000000 Binary files a/tests/pypi/click/click-6.7-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/click/click-6.7.tar.gz b/tests/pypi/click/click-6.7.tar.gz deleted file mode 100644 index b0790fc0..00000000 Binary files a/tests/pypi/click/click-6.7.tar.gz and /dev/null differ diff --git a/tests/pypi/colorama/colorama-0.3.9-py2.py3-none-any.whl b/tests/pypi/colorama/colorama-0.3.9-py2.py3-none-any.whl deleted file mode 100644 index 29b83f06..00000000 Binary files a/tests/pypi/colorama/colorama-0.3.9-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/dateparser/dateparser-0.7.0-py2.py3-none-any.whl b/tests/pypi/dateparser/dateparser-0.7.0-py2.py3-none-any.whl deleted file mode 100644 index 14f7d7e1..00000000 Binary files a/tests/pypi/dateparser/dateparser-0.7.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/dateparser/dateparser-0.7.0.tar.gz b/tests/pypi/dateparser/dateparser-0.7.0.tar.gz deleted file mode 100644 index a37b5536..00000000 Binary files a/tests/pypi/dateparser/dateparser-0.7.0.tar.gz and /dev/null differ diff --git a/tests/pypi/depends-on-marked-package/depends_on_marked_package-0.0.1-py2.py3-none-any.whl b/tests/pypi/depends-on-marked-package/depends_on_marked_package-0.0.1-py2.py3-none-any.whl deleted file mode 100644 index d320deb3..00000000 Binary files a/tests/pypi/depends-on-marked-package/depends_on_marked_package-0.0.1-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/django-classy-tags/django-classy-tags-0.8.0.tar.gz b/tests/pypi/django-classy-tags/django-classy-tags-0.8.0.tar.gz deleted file mode 100644 index b88f48ae..00000000 Binary files a/tests/pypi/django-classy-tags/django-classy-tags-0.8.0.tar.gz and /dev/null differ diff --git a/tests/pypi/django-classy-tags/django_classy_tags-0.8.0-py2.py3-none-any.whl b/tests/pypi/django-classy-tags/django_classy_tags-0.8.0-py2.py3-none-any.whl deleted file mode 100644 index 47ac7f85..00000000 Binary files a/tests/pypi/django-classy-tags/django_classy_tags-0.8.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/django-formtools/django-formtools-2.1.tar.gz b/tests/pypi/django-formtools/django-formtools-2.1.tar.gz deleted file mode 100644 index 2b8ca348..00000000 Binary files a/tests/pypi/django-formtools/django-formtools-2.1.tar.gz and /dev/null differ diff --git a/tests/pypi/django-formtools/django_formtools-2.1-py2.py3-none-any.whl b/tests/pypi/django-formtools/django_formtools-2.1-py2.py3-none-any.whl deleted file mode 100644 index 1086751a..00000000 Binary files a/tests/pypi/django-formtools/django_formtools-2.1-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/django-sekizai/django-sekizai-0.10.0.tar.gz b/tests/pypi/django-sekizai/django-sekizai-0.10.0.tar.gz deleted file mode 100644 index b11067dc..00000000 Binary files a/tests/pypi/django-sekizai/django-sekizai-0.10.0.tar.gz and /dev/null differ diff --git a/tests/pypi/django-sekizai/django_sekizai-0.10.0-py2.py3-none-any.whl b/tests/pypi/django-sekizai/django_sekizai-0.10.0-py2.py3-none-any.whl deleted file mode 100644 index 20c107cc..00000000 Binary files a/tests/pypi/django-sekizai/django_sekizai-0.10.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/django-treebeard/django-treebeard-4.2.0.tar.gz b/tests/pypi/django-treebeard/django-treebeard-4.2.0.tar.gz deleted file mode 100644 index 3d92cb7e..00000000 Binary files a/tests/pypi/django-treebeard/django-treebeard-4.2.0.tar.gz and /dev/null differ diff --git a/tests/pypi/django/Django-1.11.10-py2.py3-none-any.whl b/tests/pypi/django/Django-1.11.10-py2.py3-none-any.whl deleted file mode 100644 index 8d515c4a..00000000 Binary files a/tests/pypi/django/Django-1.11.10-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/django/Django-1.11.10.tar.gz b/tests/pypi/django/Django-1.11.10.tar.gz deleted file mode 100644 index 2d69623e..00000000 Binary files a/tests/pypi/django/Django-1.11.10.tar.gz and /dev/null differ diff --git a/tests/pypi/django/Django-1.11.13-py2.py3-none-any.whl b/tests/pypi/django/Django-1.11.13-py2.py3-none-any.whl deleted file mode 100644 index 38dfe813..00000000 Binary files a/tests/pypi/django/Django-1.11.13-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/django/Django-1.11.13.tar.gz b/tests/pypi/django/Django-1.11.13.tar.gz deleted file mode 100644 index ba99816e..00000000 Binary files a/tests/pypi/django/Django-1.11.13.tar.gz and /dev/null differ diff --git a/tests/pypi/django/Django-2.0.6-py3-none-any.whl b/tests/pypi/django/Django-2.0.6-py3-none-any.whl deleted file mode 100644 index b966b5d4..00000000 Binary files a/tests/pypi/django/Django-2.0.6-py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/django/Django-2.0.6.tar.gz b/tests/pypi/django/Django-2.0.6.tar.gz deleted file mode 100644 index bc69557b..00000000 Binary files a/tests/pypi/django/Django-2.0.6.tar.gz and /dev/null differ diff --git a/tests/pypi/djangocms-admin-style/djangocms-admin-style-1.2.7.tar.gz b/tests/pypi/djangocms-admin-style/djangocms-admin-style-1.2.7.tar.gz deleted file mode 100644 index f3afc45b..00000000 Binary files a/tests/pypi/djangocms-admin-style/djangocms-admin-style-1.2.7.tar.gz and /dev/null differ diff --git a/tests/pypi/docopt/docopt-0.6.2.tar.gz b/tests/pypi/docopt/docopt-0.6.2.tar.gz deleted file mode 100644 index 153ce415..00000000 Binary files a/tests/pypi/docopt/docopt-0.6.2.tar.gz and /dev/null differ diff --git a/tests/pypi/enum34/api.json b/tests/pypi/enum34/api.json deleted file mode 100644 index 64a47647..00000000 --- a/tests/pypi/enum34/api.json +++ /dev/null @@ -1,190 +0,0 @@ -{ - "info": { - "author": "Ethan Furman", - "author_email": "ethan@stoneleaf.us", - "bugtrack_url": null, - "classifiers": [ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: BSD License", - "Programming Language :: Python", - "Programming Language :: Python :: 2.4", - "Programming Language :: Python :: 2.5", - "Programming Language :: Python :: 2.6", - "Programming Language :: Python :: 2.7", - "Programming Language :: Python :: 3.3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", - "Topic :: Software Development" - ], - "description": "enum --- support for enumerations\n========================================\n\nAn enumeration is a set of symbolic names (members) bound to unique, constant\nvalues. Within an enumeration, the members can be compared by identity, and\nthe enumeration itself can be iterated over.\n\n from enum import Enum\n\n class Fruit(Enum):\n apple = 1\n banana = 2\n orange = 3\n\n list(Fruit)\n # [, , ]\n\n len(Fruit)\n # 3\n\n Fruit.banana\n # \n\n Fruit['banana']\n # \n\n Fruit(2)\n # \n\n Fruit.banana is Fruit['banana'] is Fruit(2)\n # True\n\n Fruit.banana.name\n # 'banana'\n\n Fruit.banana.value\n # 2\n\nRepository and Issue Tracker at https://bitbucket.org/stoneleaf/enum34.", - "description_content_type": null, - "docs_url": null, - "download_url": "", - "downloads": { - "last_day": -1, - "last_month": -1, - "last_week": -1 - }, - "home_page": "https://bitbucket.org/stoneleaf/enum34", - "keywords": "", - "license": "BSD License", - "maintainer": "", - "maintainer_email": "", - "name": "enum34", - "package_url": "https://pypi.org/project/enum34/", - "platform": "UNKNOWN", - "project_url": "https://pypi.org/project/enum34/", - "project_urls": { - "Homepage": "https://bitbucket.org/stoneleaf/enum34" - }, - "release_url": "https://pypi.org/project/enum34/1.1.6/", - "requires_dist": null, - "requires_python": "", - "summary": "Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4", - "version": "1.1.6" - }, - "last_serial": 2117417, - "releases": { - "1.1.6": [ - { - "comment_text": "", - "digests": { - "md5": "68f6982cc07dde78f4b500db829860bd", - "sha256": "6bd0f6ad48ec2aa117d3d141940d484deccda84d4fcd884f5c3d93c23ecd8c79" - }, - "downloads": -1, - "filename": "enum34-1.1.6-py2-none-any.whl", - "has_sig": false, - "md5_digest": "68f6982cc07dde78f4b500db829860bd", - "packagetype": "bdist_wheel", - "python_version": "py2", - "requires_python": null, - "size": 12427, - "upload_time": "2016-05-16T03:31:13", - "url": "https://files.pythonhosted.org/packages/c5/db/e56e6b4bbac7c4a06de1c50de6fe1ef3810018ae11732a50f15f62c7d050/enum34-1.1.6-py2-none-any.whl" - }, - { - "comment_text": "", - "digests": { - "md5": "a63ecb4f0b1b85fb69be64bdea999b43", - "sha256": "644837f692e5f550741432dd3f223bbb9852018674981b1664e5dc339387588a" - }, - "downloads": -1, - "filename": "enum34-1.1.6-py3-none-any.whl", - "has_sig": false, - "md5_digest": "a63ecb4f0b1b85fb69be64bdea999b43", - "packagetype": "bdist_wheel", - "python_version": "py3", - "requires_python": null, - "size": 12428, - "upload_time": "2016-05-16T03:31:19", - "url": "https://files.pythonhosted.org/packages/af/42/cb9355df32c69b553e72a2e28daee25d1611d2c0d9c272aa1d34204205b2/enum34-1.1.6-py3-none-any.whl" - }, - { - "comment_text": "", - "digests": { - "md5": "5f13a0841a61f7fc295c514490d120d0", - "sha256": "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1" - }, - "downloads": -1, - "filename": "enum34-1.1.6.tar.gz", - "has_sig": false, - "md5_digest": "5f13a0841a61f7fc295c514490d120d0", - "packagetype": "sdist", - "python_version": "source", - "requires_python": null, - "size": 40048, - "upload_time": "2016-05-16T03:31:30", - "url": "https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz" - }, - { - "comment_text": "", - "digests": { - "md5": "61ad7871532d4ce2d77fac2579237a9e", - "sha256": "2d81cbbe0e73112bdfe6ef8576f2238f2ba27dd0d55752a776c41d38b7da2850" - }, - "downloads": -1, - "filename": "enum34-1.1.6.zip", - "has_sig": false, - "md5_digest": "61ad7871532d4ce2d77fac2579237a9e", - "packagetype": "sdist", - "python_version": "source", - "requires_python": null, - "size": 44773, - "upload_time": "2016-05-16T03:31:48", - "url": "https://files.pythonhosted.org/packages/e8/26/a6101edcf724453845c850281b96b89a10dac6bd98edebc82634fccce6a5/enum34-1.1.6.zip" - } - ] - }, - "urls": [ - { - "comment_text": "", - "digests": { - "md5": "68f6982cc07dde78f4b500db829860bd", - "sha256": "6bd0f6ad48ec2aa117d3d141940d484deccda84d4fcd884f5c3d93c23ecd8c79" - }, - "downloads": -1, - "filename": "enum34-1.1.6-py2-none-any.whl", - "has_sig": false, - "md5_digest": "68f6982cc07dde78f4b500db829860bd", - "packagetype": "bdist_wheel", - "python_version": "py2", - "requires_python": null, - "size": 12427, - "upload_time": "2016-05-16T03:31:13", - "url": "https://files.pythonhosted.org/packages/c5/db/e56e6b4bbac7c4a06de1c50de6fe1ef3810018ae11732a50f15f62c7d050/enum34-1.1.6-py2-none-any.whl" - }, - { - "comment_text": "", - "digests": { - "md5": "a63ecb4f0b1b85fb69be64bdea999b43", - "sha256": "644837f692e5f550741432dd3f223bbb9852018674981b1664e5dc339387588a" - }, - "downloads": -1, - "filename": "enum34-1.1.6-py3-none-any.whl", - "has_sig": false, - "md5_digest": "a63ecb4f0b1b85fb69be64bdea999b43", - "packagetype": "bdist_wheel", - "python_version": "py3", - "requires_python": null, - "size": 12428, - "upload_time": "2016-05-16T03:31:19", - "url": "https://files.pythonhosted.org/packages/af/42/cb9355df32c69b553e72a2e28daee25d1611d2c0d9c272aa1d34204205b2/enum34-1.1.6-py3-none-any.whl" - }, - { - "comment_text": "", - "digests": { - "md5": "5f13a0841a61f7fc295c514490d120d0", - "sha256": "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1" - }, - "downloads": -1, - "filename": "enum34-1.1.6.tar.gz", - "has_sig": false, - "md5_digest": "5f13a0841a61f7fc295c514490d120d0", - "packagetype": "sdist", - "python_version": "source", - "requires_python": null, - "size": 40048, - "upload_time": "2016-05-16T03:31:30", - "url": "https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz" - }, - { - "comment_text": "", - "digests": { - "md5": "61ad7871532d4ce2d77fac2579237a9e", - "sha256": "2d81cbbe0e73112bdfe6ef8576f2238f2ba27dd0d55752a776c41d38b7da2850" - }, - "downloads": -1, - "filename": "enum34-1.1.6.zip", - "has_sig": false, - "md5_digest": "61ad7871532d4ce2d77fac2579237a9e", - "packagetype": "sdist", - "python_version": "source", - "requires_python": null, - "size": 44773, - "upload_time": "2016-05-16T03:31:48", - "url": "https://files.pythonhosted.org/packages/e8/26/a6101edcf724453845c850281b96b89a10dac6bd98edebc82634fccce6a5/enum34-1.1.6.zip" - } - ] -} \ No newline at end of file diff --git a/tests/pypi/enum34/enum34-1.1.6-py2-none-any.whl b/tests/pypi/enum34/enum34-1.1.6-py2-none-any.whl deleted file mode 100644 index 12be7c7e..00000000 Binary files a/tests/pypi/enum34/enum34-1.1.6-py2-none-any.whl and /dev/null differ diff --git a/tests/pypi/enum34/enum34-1.1.6-py3-none-any.whl b/tests/pypi/enum34/enum34-1.1.6-py3-none-any.whl deleted file mode 100644 index 53c1cb04..00000000 Binary files a/tests/pypi/enum34/enum34-1.1.6-py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/enum34/enum34-1.1.6.tar.gz b/tests/pypi/enum34/enum34-1.1.6.tar.gz deleted file mode 100644 index ab548ac6..00000000 Binary files a/tests/pypi/enum34/enum34-1.1.6.tar.gz and /dev/null differ diff --git a/tests/pypi/enum34/enum34-1.1.6.zip b/tests/pypi/enum34/enum34-1.1.6.zip deleted file mode 100644 index caabfc64..00000000 Binary files a/tests/pypi/enum34/enum34-1.1.6.zip and /dev/null differ diff --git a/tests/pypi/et-xmlfile/et_xmlfile-1.0.1.tar.gz b/tests/pypi/et-xmlfile/et_xmlfile-1.0.1.tar.gz deleted file mode 100644 index 73a5894e..00000000 Binary files a/tests/pypi/et-xmlfile/et_xmlfile-1.0.1.tar.gz and /dev/null differ diff --git a/tests/pypi/fixtures/django/3.4.x.zip b/tests/pypi/fixtures/django/3.4.x.zip deleted file mode 100644 index 6c2ae5f6..00000000 Binary files a/tests/pypi/fixtures/django/3.4.x.zip and /dev/null differ diff --git a/tests/pypi/flask/Flask-0.12.2-py2.py3-none-any.whl b/tests/pypi/flask/Flask-0.12.2-py2.py3-none-any.whl deleted file mode 100644 index 98e55415..00000000 Binary files a/tests/pypi/flask/Flask-0.12.2-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/flask/Flask-0.12.2.tar.gz b/tests/pypi/flask/Flask-0.12.2.tar.gz deleted file mode 100644 index 278c2108..00000000 Binary files a/tests/pypi/flask/Flask-0.12.2.tar.gz and /dev/null differ diff --git a/tests/pypi/funcsigs/funcsigs-1.0.2-py2.py3-none-any.whl b/tests/pypi/funcsigs/funcsigs-1.0.2-py2.py3-none-any.whl deleted file mode 100644 index ec5973f4..00000000 Binary files a/tests/pypi/funcsigs/funcsigs-1.0.2-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/funcsigs/funcsigs-1.0.2.tar.gz b/tests/pypi/funcsigs/funcsigs-1.0.2.tar.gz deleted file mode 100644 index c53bf6aa..00000000 Binary files a/tests/pypi/funcsigs/funcsigs-1.0.2.tar.gz and /dev/null differ diff --git a/tests/pypi/functools32/functools32-3.2.3-2.tar.gz b/tests/pypi/functools32/functools32-3.2.3-2.tar.gz deleted file mode 100644 index e4255eb4..00000000 Binary files a/tests/pypi/functools32/functools32-3.2.3-2.tar.gz and /dev/null differ diff --git a/tests/pypi/functools32/functools32-3.2.3-2.zip b/tests/pypi/functools32/functools32-3.2.3-2.zip deleted file mode 100644 index 9175388a..00000000 Binary files a/tests/pypi/functools32/functools32-3.2.3-2.zip and /dev/null differ diff --git a/tests/pypi/futures/futures-3.2.0-py2-none-any.whl b/tests/pypi/futures/futures-3.2.0-py2-none-any.whl deleted file mode 100644 index c0659c1a..00000000 Binary files a/tests/pypi/futures/futures-3.2.0-py2-none-any.whl and /dev/null differ diff --git a/tests/pypi/futures/futures-3.2.0.tar.gz b/tests/pypi/futures/futures-3.2.0.tar.gz deleted file mode 100644 index 5e896bfa..00000000 Binary files a/tests/pypi/futures/futures-3.2.0.tar.gz and /dev/null differ diff --git a/tests/pypi/gitdb2/gitdb2-2.0.3-py2.py3-none-any.whl b/tests/pypi/gitdb2/gitdb2-2.0.3-py2.py3-none-any.whl deleted file mode 100644 index 26ffc716..00000000 Binary files a/tests/pypi/gitdb2/gitdb2-2.0.3-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/gitdb2/gitdb2-2.0.3.tar.gz b/tests/pypi/gitdb2/gitdb2-2.0.3.tar.gz deleted file mode 100644 index de6ee8af..00000000 Binary files a/tests/pypi/gitdb2/gitdb2-2.0.3.tar.gz and /dev/null differ diff --git a/tests/pypi/humanize/humanize-0.5.1.tar.gz b/tests/pypi/humanize/humanize-0.5.1.tar.gz deleted file mode 100644 index b293ff05..00000000 Binary files a/tests/pypi/humanize/humanize-0.5.1.tar.gz and /dev/null differ diff --git a/tests/pypi/ibm-db-sa-py3/ibm-db-sa-py3-0.3.0.tar.gz b/tests/pypi/ibm-db-sa-py3/ibm-db-sa-py3-0.3.0.tar.gz deleted file mode 100644 index dd4e4a88..00000000 Binary files a/tests/pypi/ibm-db-sa-py3/ibm-db-sa-py3-0.3.0.tar.gz and /dev/null differ diff --git a/tests/pypi/ibm-db-sa-py3/ibm-db-sa-py3-0.3.1-1.tar.gz b/tests/pypi/ibm-db-sa-py3/ibm-db-sa-py3-0.3.1-1.tar.gz deleted file mode 100644 index 7770d23e..00000000 Binary files a/tests/pypi/ibm-db-sa-py3/ibm-db-sa-py3-0.3.1-1.tar.gz and /dev/null differ diff --git a/tests/pypi/idna/idna-2.6-py2.py3-none-any.whl b/tests/pypi/idna/idna-2.6-py2.py3-none-any.whl deleted file mode 100644 index 11cb4140..00000000 Binary files a/tests/pypi/idna/idna-2.6-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/idna/idna-2.6.tar.gz b/tests/pypi/idna/idna-2.6.tar.gz deleted file mode 100644 index d38e1f29..00000000 Binary files a/tests/pypi/idna/idna-2.6.tar.gz and /dev/null differ diff --git a/tests/pypi/idna/idna-2.7-py2.py3-none-any.whl b/tests/pypi/idna/idna-2.7-py2.py3-none-any.whl deleted file mode 100644 index 9d1a3285..00000000 Binary files a/tests/pypi/idna/idna-2.7-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/idna/idna-2.7.tar.gz b/tests/pypi/idna/idna-2.7.tar.gz deleted file mode 100644 index 8f0c5f27..00000000 Binary files a/tests/pypi/idna/idna-2.7.tar.gz and /dev/null differ diff --git a/tests/pypi/itsdangerous/itsdangerous-0.24.tar.gz b/tests/pypi/itsdangerous/itsdangerous-0.24.tar.gz deleted file mode 100644 index d0416330..00000000 Binary files a/tests/pypi/itsdangerous/itsdangerous-0.24.tar.gz and /dev/null differ diff --git a/tests/pypi/jdcal/jdcal-1.3.tar.gz b/tests/pypi/jdcal/jdcal-1.3.tar.gz deleted file mode 100644 index 2f3ba8ce..00000000 Binary files a/tests/pypi/jdcal/jdcal-1.3.tar.gz and /dev/null differ diff --git a/tests/pypi/jdcal/jdcal-1.4-py2.py3-none-any.whl b/tests/pypi/jdcal/jdcal-1.4-py2.py3-none-any.whl deleted file mode 100644 index bac3f040..00000000 Binary files a/tests/pypi/jdcal/jdcal-1.4-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/jdcal/jdcal-1.4.tar.gz b/tests/pypi/jdcal/jdcal-1.4.tar.gz deleted file mode 100644 index e82fdae7..00000000 Binary files a/tests/pypi/jdcal/jdcal-1.4.tar.gz and /dev/null differ diff --git a/tests/pypi/jinja2/Jinja2-2.10-py2.py3-none-any.whl b/tests/pypi/jinja2/Jinja2-2.10-py2.py3-none-any.whl deleted file mode 100644 index 7bc4e35f..00000000 Binary files a/tests/pypi/jinja2/Jinja2-2.10-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/jinja2/Jinja2-2.10.tar.gz b/tests/pypi/jinja2/Jinja2-2.10.tar.gz deleted file mode 100644 index c311087a..00000000 Binary files a/tests/pypi/jinja2/Jinja2-2.10.tar.gz and /dev/null differ diff --git a/tests/pypi/mako/Mako-1.0.7.tar.gz b/tests/pypi/mako/Mako-1.0.7.tar.gz deleted file mode 100644 index 9e5825f6..00000000 Binary files a/tests/pypi/mako/Mako-1.0.7.tar.gz and /dev/null differ diff --git a/tests/pypi/markupsafe/MarkupSafe-1.0.tar.gz b/tests/pypi/markupsafe/MarkupSafe-1.0.tar.gz deleted file mode 100644 index 606021ae..00000000 Binary files a/tests/pypi/markupsafe/MarkupSafe-1.0.tar.gz and /dev/null differ diff --git a/tests/pypi/maya/maya-0.3.4-py2.py3-none-any.whl b/tests/pypi/maya/maya-0.3.4-py2.py3-none-any.whl deleted file mode 100644 index 7dcd32bd..00000000 Binary files a/tests/pypi/maya/maya-0.3.4-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/maya/maya-0.3.4.tar.gz b/tests/pypi/maya/maya-0.3.4.tar.gz deleted file mode 100644 index 8a20fb58..00000000 Binary files a/tests/pypi/maya/maya-0.3.4.tar.gz and /dev/null differ diff --git a/tests/pypi/maya/maya-0.5.0-py2.py3-none-any.whl b/tests/pypi/maya/maya-0.5.0-py2.py3-none-any.whl deleted file mode 100644 index b36d48e5..00000000 Binary files a/tests/pypi/maya/maya-0.5.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/maya/maya-0.5.0.tar.gz b/tests/pypi/maya/maya-0.5.0.tar.gz deleted file mode 100644 index 5f4016f0..00000000 Binary files a/tests/pypi/maya/maya-0.5.0.tar.gz and /dev/null differ diff --git a/tests/pypi/multidict/multidict-4.1.0-cp36-cp36m-win_amd64.whl b/tests/pypi/multidict/multidict-4.1.0-cp36-cp36m-win_amd64.whl deleted file mode 100644 index 6f8c38f3..00000000 Binary files a/tests/pypi/multidict/multidict-4.1.0-cp36-cp36m-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/multidict/multidict-4.1.0.tar.gz b/tests/pypi/multidict/multidict-4.1.0.tar.gz deleted file mode 100644 index 89adbb22..00000000 Binary files a/tests/pypi/multidict/multidict-4.1.0.tar.gz and /dev/null differ diff --git a/tests/pypi/odfpy/odfpy-1.3.6-py2.7.egg b/tests/pypi/odfpy/odfpy-1.3.6-py2.7.egg deleted file mode 100644 index ccb4eeed..00000000 Binary files a/tests/pypi/odfpy/odfpy-1.3.6-py2.7.egg and /dev/null differ diff --git a/tests/pypi/odfpy/odfpy-1.3.6.tar.gz b/tests/pypi/odfpy/odfpy-1.3.6.tar.gz deleted file mode 100644 index c8861245..00000000 Binary files a/tests/pypi/odfpy/odfpy-1.3.6.tar.gz and /dev/null differ diff --git a/tests/pypi/openpyxl/openpyxl-2.5.0.tar.gz b/tests/pypi/openpyxl/openpyxl-2.5.0.tar.gz deleted file mode 100644 index 52f84550..00000000 Binary files a/tests/pypi/openpyxl/openpyxl-2.5.0.tar.gz and /dev/null differ diff --git a/tests/pypi/openpyxl/openpyxl-2.5.4.tar.gz b/tests/pypi/openpyxl/openpyxl-2.5.4.tar.gz deleted file mode 100644 index b257fba5..00000000 Binary files a/tests/pypi/openpyxl/openpyxl-2.5.4.tar.gz and /dev/null differ diff --git a/tests/pypi/pandas/pandas-0.22.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl b/tests/pypi/pandas/pandas-0.22.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl deleted file mode 100644 index 6230a732..00000000 Binary files a/tests/pypi/pandas/pandas-0.22.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl and /dev/null differ diff --git a/tests/pypi/pandas/pandas-0.22.0-cp27-cp27m-win_amd64.whl b/tests/pypi/pandas/pandas-0.22.0-cp27-cp27m-win_amd64.whl deleted file mode 100644 index bf879e90..00000000 Binary files a/tests/pypi/pandas/pandas-0.22.0-cp27-cp27m-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/pandas/pandas-0.22.0-cp27-cp27mu-manylinux1_i686.whl b/tests/pypi/pandas/pandas-0.22.0-cp27-cp27mu-manylinux1_i686.whl deleted file mode 100644 index d01d7706..00000000 Binary files a/tests/pypi/pandas/pandas-0.22.0-cp27-cp27mu-manylinux1_i686.whl and /dev/null differ diff --git a/tests/pypi/pandas/pandas-0.22.0-cp27-cp27mu-manylinux1_x86_64.whl b/tests/pypi/pandas/pandas-0.22.0-cp27-cp27mu-manylinux1_x86_64.whl deleted file mode 100644 index 878bb1bd..00000000 Binary files a/tests/pypi/pandas/pandas-0.22.0-cp27-cp27mu-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/pandas/pandas-0.22.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl b/tests/pypi/pandas/pandas-0.22.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl deleted file mode 100644 index 19a474d9..00000000 Binary files a/tests/pypi/pandas/pandas-0.22.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl and /dev/null differ diff --git a/tests/pypi/pandas/pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl b/tests/pypi/pandas/pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl deleted file mode 100644 index 6ef88537..00000000 Binary files a/tests/pypi/pandas/pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/pandas/pandas-0.22.0-cp36-cp36m-win_amd64.whl b/tests/pypi/pandas/pandas-0.22.0-cp36-cp36m-win_amd64.whl deleted file mode 100644 index 871d5094..00000000 Binary files a/tests/pypi/pandas/pandas-0.22.0-cp36-cp36m-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/parse/parse-1.8.2.tar.gz b/tests/pypi/parse/parse-1.8.2.tar.gz deleted file mode 100644 index d24aa0d1..00000000 Binary files a/tests/pypi/parse/parse-1.8.2.tar.gz and /dev/null differ diff --git a/tests/pypi/pathlib2/pathlib2-2.3.2-py2.py3-none-any.whl b/tests/pypi/pathlib2/pathlib2-2.3.2-py2.py3-none-any.whl deleted file mode 100644 index 0cd52d85..00000000 Binary files a/tests/pypi/pathlib2/pathlib2-2.3.2-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/pathlib2/pathlib2-2.3.2.tar.gz b/tests/pypi/pathlib2/pathlib2-2.3.2.tar.gz deleted file mode 100644 index 86e784d1..00000000 Binary files a/tests/pypi/pathlib2/pathlib2-2.3.2.tar.gz and /dev/null differ diff --git a/tests/pypi/pendulum/pendulum-1.4.4-cp27-cp27m-manylinux1_x86_64.whl b/tests/pypi/pendulum/pendulum-1.4.4-cp27-cp27m-manylinux1_x86_64.whl deleted file mode 100644 index b38c9d13..00000000 Binary files a/tests/pypi/pendulum/pendulum-1.4.4-cp27-cp27m-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/pendulum/pendulum-1.4.4-cp36-cp36m-macosx_10_13_x86_64.whl b/tests/pypi/pendulum/pendulum-1.4.4-cp36-cp36m-macosx_10_13_x86_64.whl deleted file mode 100644 index 72ef97b4..00000000 Binary files a/tests/pypi/pendulum/pendulum-1.4.4-cp36-cp36m-macosx_10_13_x86_64.whl and /dev/null differ diff --git a/tests/pypi/pendulum/pendulum-1.4.4-cp36-cp36m-manylinux1_x86_64.whl b/tests/pypi/pendulum/pendulum-1.4.4-cp36-cp36m-manylinux1_x86_64.whl deleted file mode 100644 index 31d50199..00000000 Binary files a/tests/pypi/pendulum/pendulum-1.4.4-cp36-cp36m-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/pendulum/pendulum-1.4.4.tar.gz b/tests/pypi/pendulum/pendulum-1.4.4.tar.gz deleted file mode 100644 index 826bc090..00000000 Binary files a/tests/pypi/pendulum/pendulum-1.4.4.tar.gz and /dev/null differ diff --git a/tests/pypi/pendulum/pendulum-1.5.1-cp27-cp27m-manylinux1_i686.whl b/tests/pypi/pendulum/pendulum-1.5.1-cp27-cp27m-manylinux1_i686.whl deleted file mode 100644 index 0d22ef79..00000000 Binary files a/tests/pypi/pendulum/pendulum-1.5.1-cp27-cp27m-manylinux1_i686.whl and /dev/null differ diff --git a/tests/pypi/pendulum/pendulum-1.5.1-cp27-cp27m-manylinux1_x86_64.whl b/tests/pypi/pendulum/pendulum-1.5.1-cp27-cp27m-manylinux1_x86_64.whl deleted file mode 100644 index d29ce7a8..00000000 Binary files a/tests/pypi/pendulum/pendulum-1.5.1-cp27-cp27m-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/pendulum/pendulum-1.5.1-cp36-cp36m-manylinux1_i686.whl b/tests/pypi/pendulum/pendulum-1.5.1-cp36-cp36m-manylinux1_i686.whl deleted file mode 100644 index 53eaa9c3..00000000 Binary files a/tests/pypi/pendulum/pendulum-1.5.1-cp36-cp36m-manylinux1_i686.whl and /dev/null differ diff --git a/tests/pypi/pendulum/pendulum-1.5.1-cp36-cp36m-manylinux1_x86_64.whl b/tests/pypi/pendulum/pendulum-1.5.1-cp36-cp36m-manylinux1_x86_64.whl deleted file mode 100644 index af4c30b9..00000000 Binary files a/tests/pypi/pendulum/pendulum-1.5.1-cp36-cp36m-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/pendulum/pendulum-1.5.1.tar.gz b/tests/pypi/pendulum/pendulum-1.5.1.tar.gz deleted file mode 100644 index 77aff89d..00000000 Binary files a/tests/pypi/pendulum/pendulum-1.5.1.tar.gz and /dev/null differ diff --git a/tests/pypi/plette/plette-0.2.2-py2.py3-none-any.whl b/tests/pypi/plette/plette-0.2.2-py2.py3-none-any.whl deleted file mode 100644 index 1ca43416..00000000 Binary files a/tests/pypi/plette/plette-0.2.2-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/py/py-1.5.3-py2.py3-none-any.whl b/tests/pypi/py/py-1.5.3-py2.py3-none-any.whl deleted file mode 100644 index 127d886e..00000000 Binary files a/tests/pypi/py/py-1.5.3-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/py/py-1.5.3.tar.gz b/tests/pypi/py/py-1.5.3.tar.gz deleted file mode 100644 index a0592b18..00000000 Binary files a/tests/pypi/py/py-1.5.3.tar.gz and /dev/null differ diff --git a/tests/pypi/pysocks/PySocks-1.6.8.tar.gz b/tests/pypi/pysocks/PySocks-1.6.8.tar.gz deleted file mode 100644 index e6366dcf..00000000 Binary files a/tests/pypi/pysocks/PySocks-1.6.8.tar.gz and /dev/null differ diff --git a/tests/pypi/pytest/pytest-3.1.0-py2.py3-none-any.whl b/tests/pypi/pytest/pytest-3.1.0-py2.py3-none-any.whl deleted file mode 100644 index dfaf980a..00000000 Binary files a/tests/pypi/pytest/pytest-3.1.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/pytest/pytest-3.1.0.tar.gz b/tests/pypi/pytest/pytest-3.1.0.tar.gz deleted file mode 100644 index bb1e3573..00000000 Binary files a/tests/pypi/pytest/pytest-3.1.0.tar.gz and /dev/null differ diff --git a/tests/pypi/pytest/pytest-3.1.1-py2.py3-none-any.whl b/tests/pypi/pytest/pytest-3.1.1-py2.py3-none-any.whl deleted file mode 100644 index aaab63cd..00000000 Binary files a/tests/pypi/pytest/pytest-3.1.1-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/pytest/pytest-3.1.1.tar.gz b/tests/pypi/pytest/pytest-3.1.1.tar.gz deleted file mode 100644 index 5b5f6dc4..00000000 Binary files a/tests/pypi/pytest/pytest-3.1.1.tar.gz and /dev/null differ diff --git a/tests/pypi/python-dateutil/python-dateutil-2.6.1.tar.gz b/tests/pypi/python-dateutil/python-dateutil-2.6.1.tar.gz deleted file mode 100644 index 6b86c6d3..00000000 Binary files a/tests/pypi/python-dateutil/python-dateutil-2.6.1.tar.gz and /dev/null differ diff --git a/tests/pypi/python-dateutil/python-dateutil-2.7.3.tar.gz b/tests/pypi/python-dateutil/python-dateutil-2.7.3.tar.gz deleted file mode 100644 index 8f1a68d9..00000000 Binary files a/tests/pypi/python-dateutil/python-dateutil-2.7.3.tar.gz and /dev/null differ diff --git a/tests/pypi/python-dateutil/python_dateutil-2.6.1-py2.py3-none-any.whl b/tests/pypi/python-dateutil/python_dateutil-2.6.1-py2.py3-none-any.whl deleted file mode 100644 index 97b3947a..00000000 Binary files a/tests/pypi/python-dateutil/python_dateutil-2.6.1-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/python-dateutil/python_dateutil-2.7.3-py2.py3-none-any.whl b/tests/pypi/python-dateutil/python_dateutil-2.7.3-py2.py3-none-any.whl deleted file mode 100644 index 55da69c3..00000000 Binary files a/tests/pypi/python-dateutil/python_dateutil-2.7.3-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/python-editor/python-editor-1.0.3.tar.gz b/tests/pypi/python-editor/python-editor-1.0.3.tar.gz deleted file mode 100644 index 8149cccc..00000000 Binary files a/tests/pypi/python-editor/python-editor-1.0.3.tar.gz and /dev/null differ diff --git a/tests/pypi/pytz/pytz-2018.3-py2.py3-none-any.whl b/tests/pypi/pytz/pytz-2018.3-py2.py3-none-any.whl deleted file mode 100644 index d274bd36..00000000 Binary files a/tests/pypi/pytz/pytz-2018.3-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/pytz/pytz-2018.3.tar.gz b/tests/pypi/pytz/pytz-2018.3.tar.gz deleted file mode 100644 index c8045799..00000000 Binary files a/tests/pypi/pytz/pytz-2018.3.tar.gz and /dev/null differ diff --git a/tests/pypi/pytz/pytz-2018.4-py2.py3-none-any.whl b/tests/pypi/pytz/pytz-2018.4-py2.py3-none-any.whl deleted file mode 100644 index 53b5bd48..00000000 Binary files a/tests/pypi/pytz/pytz-2018.4-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/pytz/pytz-2018.4.tar.gz b/tests/pypi/pytz/pytz-2018.4.tar.gz deleted file mode 100644 index 58526bf0..00000000 Binary files a/tests/pypi/pytz/pytz-2018.4.tar.gz and /dev/null differ diff --git a/tests/pypi/pytzdata/pytzdata-2018.3-py2.py3-none-any.whl b/tests/pypi/pytzdata/pytzdata-2018.3-py2.py3-none-any.whl deleted file mode 100644 index af5f8bf7..00000000 Binary files a/tests/pypi/pytzdata/pytzdata-2018.3-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/pytzdata/pytzdata-2018.3.tar.gz b/tests/pypi/pytzdata/pytzdata-2018.3.tar.gz deleted file mode 100644 index fd4e397d..00000000 Binary files a/tests/pypi/pytzdata/pytzdata-2018.3.tar.gz and /dev/null differ diff --git a/tests/pypi/pytzdata/pytzdata-2018.5-py2.py3-none-any.whl b/tests/pypi/pytzdata/pytzdata-2018.5-py2.py3-none-any.whl deleted file mode 100644 index 73740fb2..00000000 Binary files a/tests/pypi/pytzdata/pytzdata-2018.5-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/pytzdata/pytzdata-2018.5.tar.gz b/tests/pypi/pytzdata/pytzdata-2018.5.tar.gz deleted file mode 100644 index 506cb247..00000000 Binary files a/tests/pypi/pytzdata/pytzdata-2018.5.tar.gz and /dev/null differ diff --git a/tests/pypi/pyyaml/PyYAML-3.12-cp27-cp27m-win32.whl b/tests/pypi/pyyaml/PyYAML-3.12-cp27-cp27m-win32.whl deleted file mode 100644 index d9f5e245..00000000 Binary files a/tests/pypi/pyyaml/PyYAML-3.12-cp27-cp27m-win32.whl and /dev/null differ diff --git a/tests/pypi/pyyaml/PyYAML-3.12-cp27-cp27m-win_amd64.whl b/tests/pypi/pyyaml/PyYAML-3.12-cp27-cp27m-win_amd64.whl deleted file mode 100644 index 2eb7094f..00000000 Binary files a/tests/pypi/pyyaml/PyYAML-3.12-cp27-cp27m-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/pyyaml/PyYAML-3.12-cp35-cp35m-win32.whl b/tests/pypi/pyyaml/PyYAML-3.12-cp35-cp35m-win32.whl deleted file mode 100644 index f58c2f69..00000000 Binary files a/tests/pypi/pyyaml/PyYAML-3.12-cp35-cp35m-win32.whl and /dev/null differ diff --git a/tests/pypi/pyyaml/PyYAML-3.12-cp35-cp35m-win_amd64.whl b/tests/pypi/pyyaml/PyYAML-3.12-cp35-cp35m-win_amd64.whl deleted file mode 100644 index c3d36a8b..00000000 Binary files a/tests/pypi/pyyaml/PyYAML-3.12-cp35-cp35m-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/pyyaml/PyYAML-3.12.tar.gz b/tests/pypi/pyyaml/PyYAML-3.12.tar.gz deleted file mode 100644 index aabee39f..00000000 Binary files a/tests/pypi/pyyaml/PyYAML-3.12.tar.gz and /dev/null differ diff --git a/tests/pypi/randomwords/RandomWords-0.2.1-py2.7.egg b/tests/pypi/randomwords/RandomWords-0.2.1-py2.7.egg deleted file mode 100644 index ef607e11..00000000 Binary files a/tests/pypi/randomwords/RandomWords-0.2.1-py2.7.egg and /dev/null differ diff --git a/tests/pypi/randomwords/RandomWords-0.2.1-py3.5.egg b/tests/pypi/randomwords/RandomWords-0.2.1-py3.5.egg deleted file mode 100644 index e8fa3f78..00000000 Binary files a/tests/pypi/randomwords/RandomWords-0.2.1-py3.5.egg and /dev/null differ diff --git a/tests/pypi/randomwords/RandomWords-0.2.1-py3.6.egg b/tests/pypi/randomwords/RandomWords-0.2.1-py3.6.egg deleted file mode 100644 index bd0b78c7..00000000 Binary files a/tests/pypi/randomwords/RandomWords-0.2.1-py3.6.egg and /dev/null differ diff --git a/tests/pypi/randomwords/RandomWords-0.2.1.tar.gz b/tests/pypi/randomwords/RandomWords-0.2.1.tar.gz deleted file mode 100644 index 3791a446..00000000 Binary files a/tests/pypi/randomwords/RandomWords-0.2.1.tar.gz and /dev/null differ diff --git a/tests/pypi/records/records-0.5.2-py2.py3-none-any.whl b/tests/pypi/records/records-0.5.2-py2.py3-none-any.whl deleted file mode 100644 index 0516a923..00000000 Binary files a/tests/pypi/records/records-0.5.2-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/records/records-0.5.2.tar.gz b/tests/pypi/records/records-0.5.2.tar.gz deleted file mode 100644 index f3690c19..00000000 Binary files a/tests/pypi/records/records-0.5.2.tar.gz and /dev/null differ diff --git a/tests/pypi/regex/regex-2018.02.21-cp27-none-win_amd64.whl b/tests/pypi/regex/regex-2018.02.21-cp27-none-win_amd64.whl deleted file mode 100644 index 31d8b2bc..00000000 Binary files a/tests/pypi/regex/regex-2018.02.21-cp27-none-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/regex/regex-2018.02.21-cp36-none-win_amd64.whl b/tests/pypi/regex/regex-2018.02.21-cp36-none-win_amd64.whl deleted file mode 100644 index ce6a00f3..00000000 Binary files a/tests/pypi/regex/regex-2018.02.21-cp36-none-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/regex/regex-2018.02.21.tar.gz b/tests/pypi/regex/regex-2018.02.21.tar.gz deleted file mode 100644 index 92e23a09..00000000 Binary files a/tests/pypi/regex/regex-2018.02.21.tar.gz and /dev/null differ diff --git a/tests/pypi/regex/regex-2018.06.21-cp27-none-win_amd64.whl b/tests/pypi/regex/regex-2018.06.21-cp27-none-win_amd64.whl deleted file mode 100644 index e715e787..00000000 Binary files a/tests/pypi/regex/regex-2018.06.21-cp27-none-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/regex/regex-2018.06.21-cp36-none-win_amd64.whl b/tests/pypi/regex/regex-2018.06.21-cp36-none-win_amd64.whl deleted file mode 100644 index ef5e3a24..00000000 Binary files a/tests/pypi/regex/regex-2018.06.21-cp36-none-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/regex/regex-2018.06.21-cp37-none-win_amd64.whl b/tests/pypi/regex/regex-2018.06.21-cp37-none-win_amd64.whl deleted file mode 100644 index 4b1ccfad..00000000 Binary files a/tests/pypi/regex/regex-2018.06.21-cp37-none-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/regex/regex-2018.06.21.tar.gz b/tests/pypi/regex/regex-2018.06.21.tar.gz deleted file mode 100644 index e4696f18..00000000 Binary files a/tests/pypi/regex/regex-2018.06.21.tar.gz and /dev/null differ diff --git a/tests/pypi/requests/requests-1.0.0.tar.gz b/tests/pypi/requests/requests-1.0.0.tar.gz deleted file mode 100644 index d6184496..00000000 Binary files a/tests/pypi/requests/requests-1.0.0.tar.gz and /dev/null differ diff --git a/tests/pypi/requests/requests-2.14.0-py2.py3-none-any.whl b/tests/pypi/requests/requests-2.14.0-py2.py3-none-any.whl deleted file mode 100644 index 1fb0b95a..00000000 Binary files a/tests/pypi/requests/requests-2.14.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/requests/requests-2.14.0.tar.gz b/tests/pypi/requests/requests-2.14.0.tar.gz deleted file mode 100644 index 33631280..00000000 Binary files a/tests/pypi/requests/requests-2.14.0.tar.gz and /dev/null differ diff --git a/tests/pypi/requests/requests-2.18.4-py2.py3-none-any.whl b/tests/pypi/requests/requests-2.18.4-py2.py3-none-any.whl deleted file mode 100644 index cf3bdc07..00000000 Binary files a/tests/pypi/requests/requests-2.18.4-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/requests/requests-2.18.4.tar.gz b/tests/pypi/requests/requests-2.18.4.tar.gz deleted file mode 100644 index fce54795..00000000 Binary files a/tests/pypi/requests/requests-2.18.4.tar.gz and /dev/null differ diff --git a/tests/pypi/requests/requests-2.19.1-py2.py3-none-any.whl b/tests/pypi/requests/requests-2.19.1-py2.py3-none-any.whl deleted file mode 100644 index bc342f1d..00000000 Binary files a/tests/pypi/requests/requests-2.19.1-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/requests/requests-2.19.1.tar.gz b/tests/pypi/requests/requests-2.19.1.tar.gz deleted file mode 100644 index 5d4ad446..00000000 Binary files a/tests/pypi/requests/requests-2.19.1.tar.gz and /dev/null differ diff --git a/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9-cp27-cp27m-manylinux1_x86_64.whl b/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9-cp27-cp27m-manylinux1_x86_64.whl deleted file mode 100644 index d6919701..00000000 Binary files a/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9-cp27-cp27m-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9-cp27-cp27mu-manylinux1_x86_64.whl b/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9-cp27-cp27mu-manylinux1_x86_64.whl deleted file mode 100644 index 26e63a8e..00000000 Binary files a/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9-cp27-cp27mu-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9-cp27-none-win_amd64.whl b/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9-cp27-none-win_amd64.whl deleted file mode 100644 index b2b6bcd4..00000000 Binary files a/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9-cp27-none-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9.tar.gz b/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9.tar.gz deleted file mode 100644 index 0a6b0769..00000000 Binary files a/tests/pypi/ruamel-ordereddict/ruamel.ordereddict-0.4.9.tar.gz and /dev/null differ diff --git a/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9-cp27-cp27m-manylinux1_x86_64.whl b/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9-cp27-cp27m-manylinux1_x86_64.whl deleted file mode 100644 index 26694f18..00000000 Binary files a/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9-cp27-cp27m-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9-cp27-cp27mu-manylinux1_x86_64.whl b/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9-cp27-cp27mu-manylinux1_x86_64.whl deleted file mode 100644 index 362db9cb..00000000 Binary files a/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9-cp27-cp27mu-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9-cp36-cp36m-manylinux1_x86_64.whl b/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9-cp36-cp36m-manylinux1_x86_64.whl deleted file mode 100644 index 73912720..00000000 Binary files a/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9-cp36-cp36m-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9.tar.gz b/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9.tar.gz deleted file mode 100644 index 9e607d32..00000000 Binary files a/tests/pypi/ruamel-yaml/ruamel.yaml-0.15.9.tar.gz and /dev/null differ diff --git a/tests/pypi/scandir/scandir-1.9.0-cp27-cp27m-win32.whl b/tests/pypi/scandir/scandir-1.9.0-cp27-cp27m-win32.whl deleted file mode 100644 index fd2f1047..00000000 Binary files a/tests/pypi/scandir/scandir-1.9.0-cp27-cp27m-win32.whl and /dev/null differ diff --git a/tests/pypi/scandir/scandir-1.9.0-cp27-cp27m-win_amd64.whl b/tests/pypi/scandir/scandir-1.9.0-cp27-cp27m-win_amd64.whl deleted file mode 100644 index 7c718c67..00000000 Binary files a/tests/pypi/scandir/scandir-1.9.0-cp27-cp27m-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/scandir/scandir-1.9.0-cp36-cp36m-win32.whl b/tests/pypi/scandir/scandir-1.9.0-cp36-cp36m-win32.whl deleted file mode 100644 index 39bff799..00000000 Binary files a/tests/pypi/scandir/scandir-1.9.0-cp36-cp36m-win32.whl and /dev/null differ diff --git a/tests/pypi/scandir/scandir-1.9.0-cp36-cp36m-win_amd64.whl b/tests/pypi/scandir/scandir-1.9.0-cp36-cp36m-win_amd64.whl deleted file mode 100644 index 10a8d7ef..00000000 Binary files a/tests/pypi/scandir/scandir-1.9.0-cp36-cp36m-win_amd64.whl and /dev/null differ diff --git a/tests/pypi/scandir/scandir-1.9.0.tar.gz b/tests/pypi/scandir/scandir-1.9.0.tar.gz deleted file mode 100644 index f134aace..00000000 Binary files a/tests/pypi/scandir/scandir-1.9.0.tar.gz and /dev/null differ diff --git a/tests/pypi/setuptools/setuptools-39.0.1-py2.py3-none-any.whl b/tests/pypi/setuptools/setuptools-39.0.1-py2.py3-none-any.whl deleted file mode 100644 index edc3ca2d..00000000 Binary files a/tests/pypi/setuptools/setuptools-39.0.1-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/setuptools/setuptools-40.6.3-py2.py3-none-any.whl b/tests/pypi/setuptools/setuptools-40.6.3-py2.py3-none-any.whl deleted file mode 100644 index f9fc432a..00000000 Binary files a/tests/pypi/setuptools/setuptools-40.6.3-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/six/six-1.11.0-py2.py3-none-any.whl b/tests/pypi/six/six-1.11.0-py2.py3-none-any.whl deleted file mode 100644 index 59960239..00000000 Binary files a/tests/pypi/six/six-1.11.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/six/six-1.11.0.tar.gz b/tests/pypi/six/six-1.11.0.tar.gz deleted file mode 100644 index 353f31f9..00000000 Binary files a/tests/pypi/six/six-1.11.0.tar.gz and /dev/null differ diff --git a/tests/pypi/six/six-1.12.0-py2.py3-none-any.whl b/tests/pypi/six/six-1.12.0-py2.py3-none-any.whl deleted file mode 100644 index 78ba9032..00000000 Binary files a/tests/pypi/six/six-1.12.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/smmap2/smmap2-2.0.3-py2.py3-none-any.whl b/tests/pypi/smmap2/smmap2-2.0.3-py2.py3-none-any.whl deleted file mode 100644 index 72599115..00000000 Binary files a/tests/pypi/smmap2/smmap2-2.0.3-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/smmap2/smmap2-2.0.3.tar.gz b/tests/pypi/smmap2/smmap2-2.0.3.tar.gz deleted file mode 100644 index e959ad02..00000000 Binary files a/tests/pypi/smmap2/smmap2-2.0.3.tar.gz and /dev/null differ diff --git a/tests/pypi/snaptime/snaptime-0.2.4.tar.gz b/tests/pypi/snaptime/snaptime-0.2.4.tar.gz deleted file mode 100644 index df152642..00000000 Binary files a/tests/pypi/snaptime/snaptime-0.2.4.tar.gz and /dev/null differ diff --git a/tests/pypi/sqlalchemy/SQLAlchemy-1.2.0b3.tar.gz b/tests/pypi/sqlalchemy/SQLAlchemy-1.2.0b3.tar.gz deleted file mode 100644 index 40eafa66..00000000 Binary files a/tests/pypi/sqlalchemy/SQLAlchemy-1.2.0b3.tar.gz and /dev/null differ diff --git a/tests/pypi/sqlalchemy/SQLAlchemy-1.2.4.tar.gz b/tests/pypi/sqlalchemy/SQLAlchemy-1.2.4.tar.gz deleted file mode 100644 index e965a280..00000000 Binary files a/tests/pypi/sqlalchemy/SQLAlchemy-1.2.4.tar.gz and /dev/null differ diff --git a/tests/pypi/sqlalchemy/SQLAlchemy-1.2.8.tar.gz b/tests/pypi/sqlalchemy/SQLAlchemy-1.2.8.tar.gz deleted file mode 100644 index d624e540..00000000 Binary files a/tests/pypi/sqlalchemy/SQLAlchemy-1.2.8.tar.gz and /dev/null differ diff --git a/tests/pypi/tablib/tablib-0.11.5.tar.gz b/tests/pypi/tablib/tablib-0.11.5.tar.gz deleted file mode 100644 index 460cd0a7..00000000 Binary files a/tests/pypi/tablib/tablib-0.11.5.tar.gz and /dev/null differ diff --git a/tests/pypi/tablib/tablib-0.12.0.tar.gz b/tests/pypi/tablib/tablib-0.12.0.tar.gz deleted file mode 100644 index 36ab89f2..00000000 Binary files a/tests/pypi/tablib/tablib-0.12.0.tar.gz and /dev/null differ diff --git a/tests/pypi/tablib/tablib-0.12.1.tar.gz b/tests/pypi/tablib/tablib-0.12.1.tar.gz deleted file mode 100644 index 825ee278..00000000 Binary files a/tests/pypi/tablib/tablib-0.12.1.tar.gz and /dev/null differ diff --git a/tests/pypi/tomlkit/api.json b/tests/pypi/tomlkit/api.json deleted file mode 100644 index c19763af..00000000 --- a/tests/pypi/tomlkit/api.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "info": { - "author": "S\u00e9bastien Eustace", - "author_email": "sebastien@eustace.io", - "bugtrack_url": null, - "classifiers": [ - "License :: OSI Approved :: MIT License", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7" - ], - "description": "[github_release]: https://img.shields.io/github/release/sdispater/tomlkit.svg?logo=github&logoColor=white\n[pypi_version]: https://img.shields.io/pypi/v/tomlkit.svg?logo=python&logoColor=white\n[python_versions]: https://img.shields.io/pypi/pyversions/tomlkit.svg?logo=python&logoColor=white\n[github_license]: https://img.shields.io/github/license/sdispater/tomlkit.svg?logo=github&logoColor=white\n[travisci]: https://img.shields.io/travis/com/sdispater/tomlkit/master.svg?logo=travis&logoColor=white&label=Travis%20CI\n[appveyor]: https://img.shields.io/appveyor/ci/sdispater/tomlkit/master.svg?logo=appveyor&logoColor=white&label=AppVeyor\n\n[codecov]: https://img.shields.io/codecov/c/github/sdispater/tomlkit/master.svg?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNDgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSI0MDIiIHdpZHRoPSI1ODIiIHk9Ii0xIiB4PSItMSIvPgogPC9nPgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxwYXRoIGlkPSJzdmdfMSIgZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSIjZmZmZmZmIiBkPSJtMjUuMDE0LDBjLTEzLjc4NCwwLjAxIC0yNS4wMDQsMTEuMTQ5IC0yNS4wMTQsMjQuODMybDAsMC4wNjJsNC4yNTQsMi40ODJsMC4wNTgsLTAuMDM5YTEyLjIzOCwxMi4yMzggMCAwIDEgOS4wNzgsLTEuOTI4YTExLjg0NCwxMS44NDQgMCAwIDEgNS45OCwyLjk3NWwwLjczLDAuNjhsMC40MTMsLTAuOTA0YzAuNCwtMC44NzQgMC44NjIsLTEuNjk2IDEuMzc0LC0yLjQ0M2MwLjIwNiwtMC4zIDAuNDMzLC0wLjYwNCAwLjY5MiwtMC45MjlsMC40MjcsLTAuNTM1bC0wLjUyNiwtMC40NGExNy40NSwxNy40NSAwIDAgMCAtOC4xLC0zLjc4MWExNy44NTMsMTcuODUzIDAgMCAwIC04LjM3NSwwLjQ5YzIuMDIzLC04Ljg2OCA5LjgyLC0xNS4wNSAxOS4wMjcsLTE1LjA1N2M1LjE5NSwwIDEwLjA3OCwyLjAwNyAxMy43NTIsNS42NTJjMi42MTksMi41OTggNC40MjIsNS44MzUgNS4yMjQsOS4zNzJhMTcuOTA4LDE3LjkwOCAwIDAgMCAtNS4yMDgsLTAuNzlsLTAuMzE4LC0wLjAwMWExOC4wOTYsMTguMDk2IDAgMCAwIC0yLjA2NywwLjE1M2wtMC4wODcsMC4wMTJjLTAuMzAzLDAuMDQgLTAuNTcsMC4wODEgLTAuODEzLDAuMTI2Yy0wLjExOSwwLjAyIC0wLjIzNywwLjA0NSAtMC4zNTUsMC4wNjhjLTAuMjgsMC4wNTcgLTAuNTU0LDAuMTE5IC0wLjgxNiwwLjE4NWwtMC4yODgsMC4wNzNjLTAuMzM2LDAuMDkgLTAuNjc1LDAuMTkxIC0xLjAwNiwwLjNsLTAuMDYxLDAuMDJjLTAuNzQsMC4yNTEgLTEuNDc4LDAuNTU4IC0yLjE5LDAuOTE0bC0wLjA1NywwLjAyOWMtMC4zMTYsMC4xNTggLTAuNjM2LDAuMzMzIC0wLjk3OCwwLjUzNGwtMC4wNzUsMC4wNDVhMTYuOTcsMTYuOTcgMCAwIDAgLTQuNDE0LDMuNzhsLTAuMTU3LDAuMTkxYy0wLjMxNywwLjM5NCAtMC41NjcsMC43MjcgLTAuNzg3LDEuMDQ4Yy0wLjE4NCwwLjI3IC0wLjM2OSwwLjU2IC0wLjYsMC45NDJsLTAuMTI2LDAuMjE3Yy0wLjE4NCwwLjMxOCAtMC4zNDgsMC42MjIgLTAuNDg3LDAuOWwtMC4wMzMsMC4wNjFjLTAuMzU0LDAuNzExIC0wLjY2MSwxLjQ1NSAtMC45MTcsMi4yMTRsLTAuMDM2LDAuMTExYTE3LjEzLDE3LjEzIDAgMCAwIC0wLjg1NSw1LjY0NGwwLjAwMywwLjIzNGEyMy41NjUsMjMuNTY1IDAgMCAwIDAuMDQzLDAuODIyYzAuMDEsMC4xMyAwLjAyMywwLjI1OSAwLjAzNiwwLjM4OGMwLjAxNSwwLjE1OCAwLjAzNCwwLjMxNiAwLjA1MywwLjQ3MWwwLjAxMSwwLjA4OGwwLjAyOCwwLjIxNGMwLjAzNywwLjI2NCAwLjA4LDAuNTI1IDAuMTMsMC43ODdjMC41MDMsMi42MzcgMS43Niw1LjI3NCAzLjYzNSw3LjYyNWwwLjA4NSwwLjEwNmwwLjA4NywtMC4xMDRjMC43NDgsLTAuODg0IDIuNjAzLC0zLjY4NyAyLjc2LC01LjM2OWwwLjAwMywtMC4wMzFsLTAuMDE1LC0wLjAyOGExMS43MzYsMTEuNzM2IDAgMCAxIC0xLjMzMywtNS40MDdjMCwtNi4yODQgNC45NCwtMTEuNTAyIDExLjI0MywtMTEuODhsMC40MTQsLTAuMDE1YzIuNTYxLC0wLjA1OCA1LjA2NCwwLjY3MyA3LjIzLDIuMTM2bDAuMDU4LDAuMDM5bDQuMTk3LC0yLjQ0bDAuMDU1LC0wLjAzM2wwLC0wLjA2MmMwLjAwNiwtNi42MzIgLTIuNTkyLC0xMi44NjUgLTcuMzE0LC0xNy41NTFjLTQuNzE2LC00LjY3OSAtMTAuOTkxLC03LjI1NSAtMTcuNjcyLC03LjI1NSIvPgogPC9nPgo8L3N2Zz4=&label=Codecov\n\n[![GitHub Release][github_release]](https://github.com/sdispater/tomlkit/releases/)\n[![PyPI Version][pypi_version]](https://pypi.python.org/pypi/tomlkit/)\n[![Python Versions][python_versions]](https://pypi.python.org/pypi/tomlkit/)\n[![License][github_license]](https://github.com/sdispater/tomlkit/blob/master/LICENSE)\n
\n[![Travis CI][travisci]](https://travis-ci.com/sdispater/tomlkit)\n[![AppVeyor][appveyor]](https://ci.appveyor.com/project/sdispater/tomlkit)\n[![Codecov][codecov]](https://codecov.io/gh/sdispater/tomlkit)\n\n# TOML Kit - Style-preserving TOML library for Python\n\nTOML Kit is a **0.5.0-compliant** [TOML](https://github.com/toml-lang/toml) library.\n\nIt includes a parser that preserves all comments, indentations, whitespace and internal element ordering,\nand makes them accessible and editable via an intuitive API.\n\nYou can also create new TOML documents from scratch using the provided helpers.\n\nPart of the implementation as been adapted, improved and fixed from [Molten](https://github.com/LeopoldArkham/Molten).\n\n## Usage\n\n### Parsing\n\nTOML Kit comes with a fast and style-preserving parser to help you access\nthe content of TOML files and strings.\n\n```python\n>>> from tomlkit import dumps\n>>> from tomlkit import parse # you can also use loads\n\n>>> content = \"\"\"[table]\n... foo = \"bar\" # String\n... \"\"\"\n>>> doc = parse(content)\n\n# doc is a TOMLDocument instance that holds all the information\n# about the TOML string.\n# It behaves like a standard dictionary.\n\n>>> assert doc[\"table\"][\"foo\"] == \"bar\"\n\n# The string generated from the document is exactly the same\n# as the original string\n>>> assert dumps(doc) == content\n```\n\n### Modifying\n\nTOML Kit provides an intuitive API to modify TOML documents.\n\n```python\n>>> from tomlkit import dumps\n>>> from tomlkit import parse\n>>> from tomlkit import table\n\n>>> doc = parse(\"\"\"[table]\n... foo = \"bar\" # String\n... \"\"\")\n\n>>> doc[\"table\"][\"baz\"] = 13\n\n>>> dumps(doc)\n\"\"\"[table]\nfoo = \"bar\" # String\nbaz = 13\n\"\"\"\n\n# Add a new table\n>>> tab = table()\n>>> tab.add(\"array\", [1, 2, 3])\n\n>>> doc[\"table2\"] = tab\n\n>>> dumps(doc)\n\"\"\"[table]\nfoo = \"bar\" # String\nbaz = 13\n\n[table2]\narray = [1, 2, 3]\n\"\"\"\n\n# Remove the newly added table\n>>> doc.remove(\"table2\")\n# del doc[\"table2] is also possible\n```\n\n### Writing\n\nYou can also write a new TOML document from scratch.\n\nLet's say we want to create this following document:\n\n```toml\n# This is a TOML document.\n\ntitle = \"TOML Example\"\n\n[owner]\nname = \"Tom Preston-Werner\"\norganization = \"GitHub\"\nbio = \"GitHub Cofounder & CEO\\nLikes tater tots and beer.\"\ndob = 1979-05-27T07:32:00Z # First class dates? Why not?\n\n[database]\nserver = \"192.168.1.1\"\nports = [ 8001, 8001, 8002 ]\nconnection_max = 5000\nenabled = true\n```\n\nIt can be created with the following code:\n\n```python\n>>> from tomlkit import comment\n>>> from tomlkit import document\n>>> from tomlkit import nl\n>>> from tomlkit import table\n\n>>> doc = document()\n>>> doc.add(comment(\"This is a TOML document.\"))\n>>> doc.add(nl())\n>>> doc.add(\"title\", \"TOML Example\")\n# Using doc[\"title\"] = \"TOML Example\" is also possible\n\n>>> owner = table()\n>>> owner.add(\"name\", \"Tom Preston-Werner\")\n>>> owner.add(\"organization\", \"GitHub\")\n>>> owner.add(\"bio\", \"GitHub Cofounder & CEO\\nLikes tater tots and beer.\")\n>>> owner.add(\"dob\", datetime(1979, 5, 27, 7, 32, tzinfo=utc))\n>>> owner[\"dob\"].comment(\"First class dates? Why not?\")\n\n# Adding the table to the document\n>>> doc.add(\"owner\", owner)\n\n>>> database = table()\n>>> database[\"server\"] = \"192.168.1.1\"\n>>> database[\"ports\"] = [8001, 8001, 8002]\n>>> database[\"connection_max\"] = 5000\n>>> database[\"enabled\"] = True\n\n>>> doc[\"database\"] = database\n```\n\n\n## Installation\n\nIf you are using [Poetry](https://poetry.eustace.io),\nadd `tomlkit` to your `pyproject.toml` file by using:\n\n```bash\npoetry add tomlkit\n```\n\nIf not, you can use `pip`:\n\n```bash\npip install tomlkit\n```\n", - "description_content_type": "text/markdown", - "docs_url": null, - "download_url": "", - "downloads": { - "last_day": -1, - "last_month": -1, - "last_week": -1 - }, - "home_page": "https://github.com/sdispater/tomlkit", - "keywords": "", - "license": "MIT", - "maintainer": "S\u00e9bastien Eustace", - "maintainer_email": "sebastien@eustace.io", - "name": "tomlkit", - "package_url": "https://pypi.org/project/tomlkit/", - "platform": "", - "project_url": "https://pypi.org/project/tomlkit/", - "project_urls": { - "Homepage": "https://github.com/sdispater/tomlkit", - "Repository": "https://github.com/sdispater/tomlkit" - }, - "release_url": "https://pypi.org/project/tomlkit/0.5.3/", - "requires_dist": [ - "enum34 (>=1.1,<2.0); python_version >= \"2.7\" and python_version < \"2.8\"", - "functools32 (>=3.2.3,<4.0.0); python_version >= \"2.7\" and python_version < \"2.8\"", - "typing (>=3.6,<4.0); python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.4\" and python_version < \"3.5\"" - ], - "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", - "summary": "Style preserving TOML library", - "version": "0.5.3" - }, - "last_serial": 4504211, - "releases": { - "0.5.3": [ - { - "comment_text": "", - "digests": { - "md5": "0a6cf417df5d0fc911f89447c9a662a9", - "sha256": "f077456d35303e7908cc233b340f71e0bec96f63429997f38ca9272b7d64029e" - }, - "downloads": -1, - "filename": "tomlkit-0.5.3-py2.py3-none-any.whl", - "has_sig": false, - "md5_digest": "0a6cf417df5d0fc911f89447c9a662a9", - "packagetype": "bdist_wheel", - "python_version": "py2.py3", - "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", - "size": 116796, - "upload_time": "2018-11-19T20:05:37", - "url": "https://files.pythonhosted.org/packages/71/c6/06c014b92cc48270765d6a9418d82239b158d8a9b69e031b0e2c6598740b/tomlkit-0.5.3-py2.py3-none-any.whl" - }, - { - "comment_text": "", - "digests": { - "md5": "a708470b53d689013f2fc9f0a7902adf", - "sha256": "d6506342615d051bc961f70bfcfa3d29b6616cc08a3ddfd4bc24196f16fd4ec2" - }, - "downloads": -1, - "filename": "tomlkit-0.5.3.tar.gz", - "has_sig": false, - "md5_digest": "a708470b53d689013f2fc9f0a7902adf", - "packagetype": "sdist", - "python_version": "source", - "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", - "size": 29864, - "upload_time": "2018-11-19T20:05:39", - "url": "https://files.pythonhosted.org/packages/f7/f7/bbd9213bfe76cb7821c897f9ed74877fd74993b4ca2fe9513eb5a31030f9/tomlkit-0.5.3.tar.gz" - } - ] - }, - "urls": [ - { - "comment_text": "", - "digests": { - "md5": "0a6cf417df5d0fc911f89447c9a662a9", - "sha256": "f077456d35303e7908cc233b340f71e0bec96f63429997f38ca9272b7d64029e" - }, - "downloads": -1, - "filename": "tomlkit-0.5.3-py2.py3-none-any.whl", - "has_sig": false, - "md5_digest": "0a6cf417df5d0fc911f89447c9a662a9", - "packagetype": "bdist_wheel", - "python_version": "py2.py3", - "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", - "size": 116796, - "upload_time": "2018-11-19T20:05:37", - "url": "https://files.pythonhosted.org/packages/71/c6/06c014b92cc48270765d6a9418d82239b158d8a9b69e031b0e2c6598740b/tomlkit-0.5.3-py2.py3-none-any.whl" - }, - { - "comment_text": "", - "digests": { - "md5": "a708470b53d689013f2fc9f0a7902adf", - "sha256": "d6506342615d051bc961f70bfcfa3d29b6616cc08a3ddfd4bc24196f16fd4ec2" - }, - "downloads": -1, - "filename": "tomlkit-0.5.3.tar.gz", - "has_sig": false, - "md5_digest": "a708470b53d689013f2fc9f0a7902adf", - "packagetype": "sdist", - "python_version": "source", - "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", - "size": 29864, - "upload_time": "2018-11-19T20:05:39", - "url": "https://files.pythonhosted.org/packages/f7/f7/bbd9213bfe76cb7821c897f9ed74877fd74993b4ca2fe9513eb5a31030f9/tomlkit-0.5.3.tar.gz" - } - ] -} \ No newline at end of file diff --git a/tests/pypi/tomlkit/tomlkit-0.5.3-py2.py3-none-any.whl b/tests/pypi/tomlkit/tomlkit-0.5.3-py2.py3-none-any.whl deleted file mode 100644 index 7375595e..00000000 Binary files a/tests/pypi/tomlkit/tomlkit-0.5.3-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/tomlkit/tomlkit-0.5.3.tar.gz b/tests/pypi/tomlkit/tomlkit-0.5.3.tar.gz deleted file mode 100644 index c4a7f024..00000000 Binary files a/tests/pypi/tomlkit/tomlkit-0.5.3.tar.gz and /dev/null differ diff --git a/tests/pypi/tpfd/tpfd-0.2.4-py2.py3-none-any.whl b/tests/pypi/tpfd/tpfd-0.2.4-py2.py3-none-any.whl deleted file mode 100644 index a1e64899..00000000 Binary files a/tests/pypi/tpfd/tpfd-0.2.4-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/tpfd/tpfd-0.2.4.tar.gz b/tests/pypi/tpfd/tpfd-0.2.4.tar.gz deleted file mode 100644 index c13d45c0..00000000 Binary files a/tests/pypi/tpfd/tpfd-0.2.4.tar.gz and /dev/null differ diff --git a/tests/pypi/typing/api.json b/tests/pypi/typing/api.json deleted file mode 100644 index df641aa8..00000000 --- a/tests/pypi/typing/api.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "info": { - "author": "Guido van Rossum, Jukka Lehtosalo, \u0141ukasz Langa, Ivan Levkivskyi", - "author_email": "jukka.lehtosalo@iki.fi", - "bugtrack_url": null, - "classifiers": [ - "Development Status :: 5 - Production/Stable", - "Environment :: Console", - "Intended Audience :: Developers", - "License :: OSI Approved :: Python Software Foundation License", - "Operating System :: OS Independent", - "Programming Language :: Python :: 2.7", - "Programming Language :: Python :: 3.3", - "Programming Language :: Python :: 3.4", - "Topic :: Software Development" - ], - "description": "Typing -- Type Hints for Python\n\nThis is a backport of the standard library typing module to Python\nversions older than 3.5. (See note below for newer versions.)\n\nTyping defines a standard notation for Python function and variable\ntype annotations. The notation can be used for documenting code in a\nconcise, standard format, and it has been designed to also be used by\nstatic and runtime type checkers, static analyzers, IDEs and other\ntools.\n\nNOTE: in Python 3.5 and later, the typing module lives in the stdlib,\nand installing this package has NO EFFECT. To get a newer version of\nthe typing module in Python 3.5 or later, you have to upgrade to a\nnewer Python (bugfix) version. For example, typing in Python 3.6.0 is\nmissing the definition of 'Type' -- upgrading to 3.6.2 will fix this.\n\nAlso note that most improvements to the typing module in Python 3.7\nwill not be included in this package, since Python 3.7 has some\nbuilt-in support that is not present in older versions (See PEP 560.)\n\n\n", - "description_content_type": "", - "docs_url": null, - "download_url": "", - "downloads": { - "last_day": -1, - "last_month": -1, - "last_week": -1 - }, - "home_page": "https://docs.python.org/3/library/typing.html", - "keywords": "typing function annotations type hints hinting checking checker typehints typehinting typechecking backport", - "license": "PSF", - "maintainer": "", - "maintainer_email": "", - "name": "typing", - "package_url": "https://pypi.org/project/typing/", - "platform": "", - "project_url": "https://pypi.org/project/typing/", - "project_urls": { - "Homepage": "https://docs.python.org/3/library/typing.html" - }, - "release_url": "https://pypi.org/project/typing/3.6.6/", - "requires_dist": null, - "requires_python": "", - "summary": "Type Hints for Python", - "version": "3.6.6" - }, - "last_serial": 4208967, - "releases": { - "3.6.6": [ - { - "comment_text": "", - "digests": { - "md5": "7e50dcc98a528f47c8793c980128467c", - "sha256": "a4c8473ce11a65999c8f59cb093e70686b6c84c98df58c1dae9b3b196089858a" - }, - "downloads": -1, - "filename": "typing-3.6.6-py2-none-any.whl", - "has_sig": false, - "md5_digest": "7e50dcc98a528f47c8793c980128467c", - "packagetype": "bdist_wheel", - "python_version": "py2", - "requires_python": null, - "size": 23560, - "upload_time": "2018-08-26T18:46:05", - "url": "https://files.pythonhosted.org/packages/cc/3e/29f92b7aeda5b078c86d14f550bf85cff809042e3429ace7af6193c3bc9f/typing-3.6.6-py2-none-any.whl" - }, - { - "comment_text": "", - "digests": { - "md5": "0c84fda6fd4303fa6aee13a36ea62897", - "sha256": "57dcf675a99b74d64dacf6fba08fb17cf7e3d5fdff53d4a30ea2a5e7e52543d4" - }, - "downloads": -1, - "filename": "typing-3.6.6-py3-none-any.whl", - "has_sig": false, - "md5_digest": "0c84fda6fd4303fa6aee13a36ea62897", - "packagetype": "bdist_wheel", - "python_version": "py3", - "requires_python": null, - "size": 25727, - "upload_time": "2018-08-26T18:46:06", - "url": "https://files.pythonhosted.org/packages/4a/bd/eee1157fc2d8514970b345d69cb9975dcd1e42cd7e61146ed841f6e68309/typing-3.6.6-py3-none-any.whl" - }, - { - "comment_text": "", - "digests": { - "md5": "64614206b4bdc0864fc0e0bccd69efc9", - "sha256": "4027c5f6127a6267a435201981ba156de91ad0d1d98e9ddc2aa173453453492d" - }, - "downloads": -1, - "filename": "typing-3.6.6.tar.gz", - "has_sig": false, - "md5_digest": "64614206b4bdc0864fc0e0bccd69efc9", - "packagetype": "sdist", - "python_version": "source", - "requires_python": null, - "size": 71799, - "upload_time": "2018-08-26T18:46:08", - "url": "https://files.pythonhosted.org/packages/bf/9b/2bf84e841575b633d8d91ad923e198a415e3901f228715524689495b4317/typing-3.6.6.tar.gz" - } - ] - }, - "urls": [ - { - "comment_text": "", - "digests": { - "md5": "7e50dcc98a528f47c8793c980128467c", - "sha256": "a4c8473ce11a65999c8f59cb093e70686b6c84c98df58c1dae9b3b196089858a" - }, - "downloads": -1, - "filename": "typing-3.6.6-py2-none-any.whl", - "has_sig": false, - "md5_digest": "7e50dcc98a528f47c8793c980128467c", - "packagetype": "bdist_wheel", - "python_version": "py2", - "requires_python": null, - "size": 23560, - "upload_time": "2018-08-26T18:46:05", - "url": "https://files.pythonhosted.org/packages/cc/3e/29f92b7aeda5b078c86d14f550bf85cff809042e3429ace7af6193c3bc9f/typing-3.6.6-py2-none-any.whl" - }, - { - "comment_text": "", - "digests": { - "md5": "0c84fda6fd4303fa6aee13a36ea62897", - "sha256": "57dcf675a99b74d64dacf6fba08fb17cf7e3d5fdff53d4a30ea2a5e7e52543d4" - }, - "downloads": -1, - "filename": "typing-3.6.6-py3-none-any.whl", - "has_sig": false, - "md5_digest": "0c84fda6fd4303fa6aee13a36ea62897", - "packagetype": "bdist_wheel", - "python_version": "py3", - "requires_python": null, - "size": 25727, - "upload_time": "2018-08-26T18:46:06", - "url": "https://files.pythonhosted.org/packages/4a/bd/eee1157fc2d8514970b345d69cb9975dcd1e42cd7e61146ed841f6e68309/typing-3.6.6-py3-none-any.whl" - }, - { - "comment_text": "", - "digests": { - "md5": "64614206b4bdc0864fc0e0bccd69efc9", - "sha256": "4027c5f6127a6267a435201981ba156de91ad0d1d98e9ddc2aa173453453492d" - }, - "downloads": -1, - "filename": "typing-3.6.6.tar.gz", - "has_sig": false, - "md5_digest": "64614206b4bdc0864fc0e0bccd69efc9", - "packagetype": "sdist", - "python_version": "source", - "requires_python": null, - "size": 71799, - "upload_time": "2018-08-26T18:46:08", - "url": "https://files.pythonhosted.org/packages/bf/9b/2bf84e841575b633d8d91ad923e198a415e3901f228715524689495b4317/typing-3.6.6.tar.gz" - } - ] -} \ No newline at end of file diff --git a/tests/pypi/typing/typing-3.6.6-py2-none-any.whl b/tests/pypi/typing/typing-3.6.6-py2-none-any.whl deleted file mode 100644 index a6dc8ab1..00000000 Binary files a/tests/pypi/typing/typing-3.6.6-py2-none-any.whl and /dev/null differ diff --git a/tests/pypi/typing/typing-3.6.6-py3-none-any.whl b/tests/pypi/typing/typing-3.6.6-py3-none-any.whl deleted file mode 100644 index f38e8528..00000000 Binary files a/tests/pypi/typing/typing-3.6.6-py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/typing/typing-3.6.6.tar.gz b/tests/pypi/typing/typing-3.6.6.tar.gz deleted file mode 100644 index 26d02727..00000000 Binary files a/tests/pypi/typing/typing-3.6.6.tar.gz and /dev/null differ diff --git a/tests/pypi/tzlocal/tzlocal-1.5.1.tar.gz b/tests/pypi/tzlocal/tzlocal-1.5.1.tar.gz deleted file mode 100644 index 3f5704a8..00000000 Binary files a/tests/pypi/tzlocal/tzlocal-1.5.1.tar.gz and /dev/null differ diff --git a/tests/pypi/unicodecsv/unicodecsv-0.14.1.tar.gz b/tests/pypi/unicodecsv/unicodecsv-0.14.1.tar.gz deleted file mode 100644 index a7858b00..00000000 Binary files a/tests/pypi/unicodecsv/unicodecsv-0.14.1.tar.gz and /dev/null differ diff --git a/tests/pypi/urllib3/urllib3-1.21.1-py2.py3-none-any.whl b/tests/pypi/urllib3/urllib3-1.21.1-py2.py3-none-any.whl deleted file mode 100644 index 9061cfdf..00000000 Binary files a/tests/pypi/urllib3/urllib3-1.21.1-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/urllib3/urllib3-1.21.1.tar.gz b/tests/pypi/urllib3/urllib3-1.21.1.tar.gz deleted file mode 100644 index d2e458ec..00000000 Binary files a/tests/pypi/urllib3/urllib3-1.21.1.tar.gz and /dev/null differ diff --git a/tests/pypi/urllib3/urllib3-1.22-py2.py3-none-any.whl b/tests/pypi/urllib3/urllib3-1.22-py2.py3-none-any.whl deleted file mode 100644 index d4464993..00000000 Binary files a/tests/pypi/urllib3/urllib3-1.22-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/urllib3/urllib3-1.22.tar.gz b/tests/pypi/urllib3/urllib3-1.22.tar.gz deleted file mode 100644 index 3d9ee9f1..00000000 Binary files a/tests/pypi/urllib3/urllib3-1.22.tar.gz and /dev/null differ diff --git a/tests/pypi/urllib3/urllib3-1.23-py2.py3-none-any.whl b/tests/pypi/urllib3/urllib3-1.23-py2.py3-none-any.whl deleted file mode 100644 index a385e3c9..00000000 Binary files a/tests/pypi/urllib3/urllib3-1.23-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/urllib3/urllib3-1.23.tar.gz b/tests/pypi/urllib3/urllib3-1.23.tar.gz deleted file mode 100644 index 401dc252..00000000 Binary files a/tests/pypi/urllib3/urllib3-1.23.tar.gz and /dev/null differ diff --git a/tests/pypi/vcrpy/vcrpy-1.11.0-py2.py3-none-any.whl b/tests/pypi/vcrpy/vcrpy-1.11.0-py2.py3-none-any.whl deleted file mode 100644 index 2853aafc..00000000 Binary files a/tests/pypi/vcrpy/vcrpy-1.11.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/vcrpy/vcrpy-1.11.0.tar.gz b/tests/pypi/vcrpy/vcrpy-1.11.0.tar.gz deleted file mode 100644 index 605bce97..00000000 Binary files a/tests/pypi/vcrpy/vcrpy-1.11.0.tar.gz and /dev/null differ diff --git a/tests/pypi/werkzeug/Werkzeug-0.14.1-py2.py3-none-any.whl b/tests/pypi/werkzeug/Werkzeug-0.14.1-py2.py3-none-any.whl deleted file mode 100644 index 865d5248..00000000 Binary files a/tests/pypi/werkzeug/Werkzeug-0.14.1-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/werkzeug/Werkzeug-0.14.1.tar.gz b/tests/pypi/werkzeug/Werkzeug-0.14.1.tar.gz deleted file mode 100644 index 27e7b2d7..00000000 Binary files a/tests/pypi/werkzeug/Werkzeug-0.14.1.tar.gz and /dev/null differ diff --git a/tests/pypi/wheel/wheel-0.31.0-py2.py3-none-any.whl b/tests/pypi/wheel/wheel-0.31.0-py2.py3-none-any.whl deleted file mode 100644 index 8cfdda05..00000000 Binary files a/tests/pypi/wheel/wheel-0.31.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/wheel/wheel-0.32.3-py2.py3-none-any.whl b/tests/pypi/wheel/wheel-0.32.3-py2.py3-none-any.whl deleted file mode 100644 index 68006a56..00000000 Binary files a/tests/pypi/wheel/wheel-0.32.3-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/win-inet-pton/win_inet_pton-1.0.1.tar.gz b/tests/pypi/win-inet-pton/win_inet_pton-1.0.1.tar.gz deleted file mode 100644 index dfb77887..00000000 Binary files a/tests/pypi/win-inet-pton/win_inet_pton-1.0.1.tar.gz and /dev/null differ diff --git a/tests/pypi/wrapt/wrapt-1.10.11.tar.gz b/tests/pypi/wrapt/wrapt-1.10.11.tar.gz deleted file mode 100644 index 7f6870e2..00000000 Binary files a/tests/pypi/wrapt/wrapt-1.10.11.tar.gz and /dev/null differ diff --git a/tests/pypi/xlrd/xlrd-1.1.0-py2.py3-none-any.whl b/tests/pypi/xlrd/xlrd-1.1.0-py2.py3-none-any.whl deleted file mode 100644 index fd326f8a..00000000 Binary files a/tests/pypi/xlrd/xlrd-1.1.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/xlrd/xlrd-1.1.0.tar.gz b/tests/pypi/xlrd/xlrd-1.1.0.tar.gz deleted file mode 100644 index 6f8d5666..00000000 Binary files a/tests/pypi/xlrd/xlrd-1.1.0.tar.gz and /dev/null differ diff --git a/tests/pypi/xlwt/xlwt-1.3.0-py2.py3-none-any.whl b/tests/pypi/xlwt/xlwt-1.3.0-py2.py3-none-any.whl deleted file mode 100644 index ab824454..00000000 Binary files a/tests/pypi/xlwt/xlwt-1.3.0-py2.py3-none-any.whl and /dev/null differ diff --git a/tests/pypi/xlwt/xlwt-1.3.0.tar.gz b/tests/pypi/xlwt/xlwt-1.3.0.tar.gz deleted file mode 100644 index f9a65e06..00000000 Binary files a/tests/pypi/xlwt/xlwt-1.3.0.tar.gz and /dev/null differ diff --git a/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-manylinux1_i686.whl b/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-manylinux1_i686.whl deleted file mode 100644 index ab6c0e0c..00000000 Binary files a/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-manylinux1_i686.whl and /dev/null differ diff --git a/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-manylinux1_x86_64.whl b/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-manylinux1_x86_64.whl deleted file mode 100644 index baeeb2c1..00000000 Binary files a/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-manylinux1_x86_64.whl and /dev/null differ diff --git a/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-win32.whl b/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-win32.whl deleted file mode 100644 index 45fe89ed..00000000 Binary files a/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-win32.whl and /dev/null differ diff --git a/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-win_amd64.whl b/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-win_amd64.whl deleted file mode 100644 index e11d5c62..00000000 Binary files a/tests/pypi/yarl/yarl-1.1.1-cp36-cp36m-win_amd64.whl and /dev/null differ