Pipenv: PIP_EXTRA_INDEX_URL has stopped working when it comes to locking

Created on 4 Oct 2018  Â·  8Comments  Â·  Source: pypa/pipenv

Issue description

I have a private PyPI repo (not a mirror!) that contains a private package chet-tools.
PIP_EXTRA_INDEX_URL is set to that repo's URL.

pipenv-2018.5.18: PIP_EXTRA_INDEX_URL works, pipenv install chet-tools outputs something like:

Installing chet-tools...
â ‹Installing 'chet-tools'
$ "/home/p-himik/dev/git/strayhorn/.venv/bin/pip" install   --verbose    "chet-tools" -i https://pypi.python.org/simple --exists-action w
Created temporary directory: /tmp/pip-ephem-wheel-cache-3nlrhfds
Created temporary directory: /tmp/pip-req-tracker-o4vx89uk
Created requirements tracker '/tmp/pip-req-tracker-o4vx89uk'
Created temporary directory: /tmp/pip-install-g6t9_xxv
Looking in indexes: https://pypi.python.org/simple, %private_repo_url%/
Collecting chet-tools
  2 location(s) to search for versions of chet-tools:
  * https://pypi.python.org/simple/chet-tools/
  * %private_repo_url%/chet-tools/
  Getting page https://pypi.python.org/simple/chet-tools/
  Looking up "https://pypi.python.org/simple/chet-tools/" in the cache
  Returning cached "301 Moved Permanently" response (ignoring date and etag information)
  Looking up "https://pypi.org/simple/chet-tools/" in the cache
  No cache entry available
  Starting new HTTPS connection (1): pypi.org:443
  https://pypi.org:443 "GET /simple/chet-tools/ HTTP/1.1" 404 13
  Status code 404 not in (200, 203, 300, 301)
  Could not fetch URL https://pypi.python.org/simple/chet-tools/: 404 Client Error: Not Found for url: https://pypi.org/simple/chet-tools/ - skipping
  Getting page %private_repo_url%/chet-tools/
  Looking up "%private_repo_url%/chet-tools/" in the cache
  Current age based on date: 937
  Freshness lifetime from request max-age: 600
  Starting new HTTPS connection (1): repo.fury.io:443
  %private_repo_url% "GET %private_repo_url_piece%/chet-tools/ HTTP/1.1" 304 0
  Analyzing links from page %private_repo_url%/chet-tools/
    Found link %private_repo_url%/-/ver_23V4MH/chet_tools-1.0.0.tar.gz#md5=1407a596a3c3d709d2dbfab4b323d2d6 (from %private_repo_url%/chet-tools/), version: 1.0.0
    Found link %private_repo_url%/-/ver_Gcesm/chet_tools-1.1.0.tar.gz#md5=c119a7c19ed47917a49d855dfd8f8445 (from %private_repo_url%/chet-tools/), version: 1.1.0
    Found link %private_repo_url%/-/ver_1GieGh/chet_tools-1.2.0.tar.gz#md5=77a095714272b8cc62b411d8b2b68b39 (from %private_repo_url%/chet-tools/), version: 1.2.0
    Found link %private_repo_url%/-/ver_Xw9IR/chet_tools-1.3.0.tar.gz#md5=28cae27c16f886c5cd6fbe69fd083747 (from %private_repo_url%/chet-tools/), version: 1.3.0
    Found link %private_repo_url%/-/ver_ebm1n/chet_tools-1.4.0.tar.gz#md5=57f922bb9f823f4076fcaf4856412273 (from %private_repo_url%/chet-tools/), version: 1.4.0
  Using version 1.4.0 (newest of versions: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0)
  Using cached wheel link: file:///home/p-himik/.cache/pipenv/wheels/09/25/cc/8abe326483a97ab707612069145b173ba20e8035b57b349036/chet_tools-1.4.0-cp37-none-any.whl
  Added chet-tools from file:///home/p-himik/.cache/pipenv/wheels/09/25/cc/8abe326483a97ab707612069145b173ba20e8035b57b349036/chet_tools-1.4.0-cp37-none-any.whl to build tracker '/tmp/pip-req-tracker-o4vx89uk'
  Removed chet-tools from file:///home/p-himik/.cache/pipenv/wheels/09/25/cc/8abe326483a97ab707612069145b173ba20e8035b57b349036/chet_tools-1.4.0-cp37-none-any.whl from build tracker '/tmp/pip-req-tracker-o4vx89uk'
Requirement already satisfied: attrs>=17.2 in ./.venv/lib/python3.7/site-packages (from chet-tools) (18.2.0)
Requirement already satisfied: pytz>=2017.3 in ./.venv/lib/python3.7/site-packages (from chet-tools) (2018.5)
Installing collected packages: chet-tools

Successfully installed chet-tools-1.4.0
Cleaning up...
Removed build tracker '/tmp/pip-req-tracker-o4vx89uk'

Adding chet-tools to Pipfile's [packages]...
Pipfile.lock (c5050c) out of date, updating to (c1e7c0)...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches chet-tools (from -r /tmp/pipenv-aruk1o_3-requirements/pipenv-46j3qfrw-constraints.txt (line 22))
No versions found
Was https://pypi.python.org/simple reachable?

pipenv-2018.6.25: PIP_EXTRA_INDEX_URL has stopped working, and is still not working in 2018.7.1. Output of pipenv install chet-tools with 2018.7.1:

Installing chet-tools…
â ‹Installing 'chet-tools'
$ "/home/p-himik/dev/git/strayhorn/.venv/bin/pip" install   --verbose    "chet-tools" -i https://pypi.python.org/simple --exists-action w
Created temporary directory: /tmp/pip-ephem-wheel-cache-26bmirnt
Created temporary directory: /tmp/pip-req-tracker-l4txd3kh
Created requirements tracker '/tmp/pip-req-tracker-l4txd3kh'
Created temporary directory: /tmp/pip-install-4_1mtwy0
Looking in indexes: https://pypi.python.org/simple, %private_repo_url%/
Collecting chet-tools
  2 location(s) to search for versions of chet-tools:
  * https://pypi.python.org/simple/chet-tools/
  * %private_repo_url%/chet-tools/
  Getting page https://pypi.python.org/simple/chet-tools/
  Looking up "https://pypi.python.org/simple/chet-tools/" in the cache
  Returning cached "301 Moved Permanently" response (ignoring date and etag information)
  Looking up "https://pypi.org/simple/chet-tools/" in the cache
  No cache entry available
  Starting new HTTPS connection (1): pypi.org:443
  https://pypi.org:443 "GET /simple/chet-tools/ HTTP/1.1" 404 13
  Status code 404 not in (200, 203, 300, 301)
  Could not fetch URL https://pypi.python.org/simple/chet-tools/: 404 Client Error: Not Found for url: https://pypi.org/simple/chet-tools/ - skipping
  Getting page %private_repo_url%/chet-tools/
  Looking up "%private_repo_url%/chet-tools/" in the cache
  Current age based on date: 357
  Freshness lifetime from request max-age: 600
  The response is "fresh", returning cached response
  600 > 357
  Analyzing links from page %private_repo_url%/chet-tools/
    Found link %private_repo_url%/-/ver_23V4MH/chet_tools-1.0.0.tar.gz#md5=1407a596a3c3d709d2dbfab4b323d2d6 (from %private_repo_url%/chet-tools/), version: 1.0.0
    Found link %private_repo_url%/-/ver_Gcesm/chet_tools-1.1.0.tar.gz#md5=c119a7c19ed47917a49d855dfd8f8445 (from %private_repo_url%/chet-tools/), version: 1.1.0
    Found link %private_repo_url%/-/ver_1GieGh/chet_tools-1.2.0.tar.gz#md5=77a095714272b8cc62b411d8b2b68b39 (from %private_repo_url%/chet-tools/), version: 1.2.0
    Found link %private_repo_url%/-/ver_Xw9IR/chet_tools-1.3.0.tar.gz#md5=28cae27c16f886c5cd6fbe69fd083747 (from %private_repo_url%/chet-tools/), version: 1.3.0
    Found link %private_repo_url%/-/ver_ebm1n/chet_tools-1.4.0.tar.gz#md5=57f922bb9f823f4076fcaf4856412273 (from %private_repo_url%/chet-tools/), version: 1.4.0
  Using version 1.4.0 (newest of versions: 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0)
  Using cached wheel link: file:///home/p-himik/.cache/pip/wheels/09/25/cc/8abe326483a97ab707612069145b173ba20e8035b57b349036/chet_tools-1.4.0-cp37-none-any.whl
  Added chet-tools from file:///home/p-himik/.cache/pip/wheels/09/25/cc/8abe326483a97ab707612069145b173ba20e8035b57b349036/chet_tools-1.4.0-cp37-none-any.whl to build tracker '/tmp/pip-req-tracker-l4txd3kh'
  Removed chet-tools from file:///home/p-himik/.cache/pip/wheels/09/25/cc/8abe326483a97ab707612069145b173ba20e8035b57b349036/chet_tools-1.4.0-cp37-none-any.whl from build tracker '/tmp/pip-req-tracker-l4txd3kh'
Requirement already satisfied: attrs>=17.2 in ./.venv/lib/python3.7/site-packages (from chet-tools) (18.2.0)
Requirement already satisfied: pytz>=2017.3 in ./.venv/lib/python3.7/site-packages (from chet-tools) (2018.5)
Installing collected packages: chet-tools

Successfully installed chet-tools-1.4.0
Cleaning up...
Removed build tracker '/tmp/pip-req-tracker-l4txd3kh'

Adding chet-tools to Pipfile's [packages]…
Pipfile.lock (c5050c) out of date, updating to (c1e7c0)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…

None of the relevant steps described in "Frequently Encountered Pipenv Problems" work - removing cache does nothing and running pipenv lock --clear produces the same warning/error.

Expected result

I'd expect the result of 2018.7.1 to be the same as of 2018.5.18 and chet-tools being added to Pipfile.lock.

Actual result

Provided above in the comparison. chet-tools is not in Pipfile.lock.
Running pipenv install --skip-lock followed by pipenv graph does not show anything of interest.

Steps to replicate

Hard to provide the exact steps, given that the whole setup is more complicated than just a single file and involves a private repository. Please let me know what I should add to the issue description.


$ pipenv --support

Pipenv version: '2018.7.1'

Pipenv location: '/home/p-himik/.pyenv/versions/3.6.4/lib/python3.6/site-packages/pipenv'

Python location: '/home/p-himik/.pyenv/versions/3.6.4/bin/python3.6'

Other Python installations in PATH:

  • 2.7: /usr/bin/python2.7
  • 2.7: /usr/bin/python2.7
  • 3.6: /home/p-himik/.pyenv/versions/3.6.4/bin/python3.6m
  • 3.6: /home/p-himik/.pyenv/versions/3.6.4/bin/python3.6
  • 3.6: /home/p-himik/.pyenv/shims/python3.6
  • 3.6: /home/p-himik/.pyenv/versions/3.6.4/bin/python3.6
  • 3.6: /home/p-himik/.pyenv/shims/python3.6
  • 3.6: /usr/bin/python3.6
  • 3.7: /home/p-himik/dev/git/strayhorn/.venv/bin/python3.7m
  • 3.7: /home/p-himik/dev/git/strayhorn/.venv/bin/python3.7
  • 3.7: /home/p-himik/.pyenv/shims/python3.7
  • 3.7: /home/p-himik/.pyenv/shims/python3.7

  • 3.6.4: /home/p-himik/.pyenv/versions/3.6.4/bin/python

  • 3.7.0: /home/p-himik/dev/git/strayhorn/.venv/bin/python
  • 3.6.4: /home/p-himik/.pyenv/shims/python
  • 3.6.4: /home/p-himik/.pyenv/versions/3.6.4/bin/python
  • 3.6.4: /home/p-himik/.pyenv/shims/python
  • 2.7.15: /usr/bin/python
  • 2.7.15: /usr/bin/python2
  • 3.6.4: /home/p-himik/.pyenv/versions/3.6.4/bin/python3
  • 3.7.0: /home/p-himik/dev/git/strayhorn/.venv/bin/python3
  • 3.6.4: /home/p-himik/.pyenv/shims/python3
  • 3.6.4: /home/p-himik/.pyenv/versions/3.6.4/bin/python3
  • 3.6.4: /home/p-himik/.pyenv/shims/python3
  • 3.6.6: /usr/bin/python3

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.6.4',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '4.15.0-36-generic',
 'platform_system': 'Linux',
 'platform_version': '#39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018',
 'python_full_version': '3.6.4',
 'python_version': '3.6',
 'sys_platform': 'linux'}

System environment variables:

  • CLUTTER_IM_MODULE
  • PIPENV_VENV_IN_PROJECT
  • CONDA_SHLVL
  • LS_COLORS
  • LC_MEASUREMENT
  • git_setup_aliases
  • LC_PAPER
  • LC_MONETARY
  • TERMINATOR_UUID
  • DISABLE_UPDATE_PROMPT
  • LANG
  • LESS
  • FZF_DEFAULT_COMMAND
  • DISPLAY
  • PYENV_ROOT
  • JAVA8_HOME
  • OLDPWD
  • INVOCATION_ID
  • AWS_SECRET_ACCESS_KEY
  • GTK2_MODULES
  • COLORTERM
  • PYENV_VIRTUALENV_INIT
  • VIRTUAL_ENV_DISABLE_PROMPT
  • JAVA_HOME
  • PYENV_HOOK_PATH
  • gs_max_changes
  • XDG_VTNR
  • SAVEHIST
  • STRAYHORN_S3_BUCKET_ALPHA
  • ga_auto_remove
  • GIT_BINARY
  • SSH_AUTH_SOCK
  • VIRTUAL_ENV
  • HIST_STAMPS
  • FZF_CTRL_T_COMMAND
  • LC_NAME
  • XDG_SESSION_ID
  • HUSHLOGIN
  • GIT_ROOT
  • USER
  • PYENV_DIR
  • PAGER
  • FZF_DEFAULT_OPTS
  • LSCOLORS
  • QT4_IM_MODULE
  • AWESOME_WALLPAPER
  • PIP_PYTHON_PATH
  • PYTHONNOUSERSITE
  • STRAYHORN_S3_BUCKET_OMEGA
  • STRAYHORN_S3_REGION
  • PWD
  • GIT_REPO_DIR
  • HOME
  • LC_CTYPE
  • JOURNAL_STREAM
  • COMMON_ENV_HAS_BEEN_SET
  • SSH_AGENT_PID
  • PIP_EXTRA_INDEX_URL
  • PYENV_VERSION
  • QT_ACCESSIBILITY
  • JAVA7_HOME
  • HISTFILE
  • ANACONDA_HOME
  • PIPENV_ACTIVE
  • TERMINATOR_DBUS_NAME
  • JDK_HOME
  • _git_cmd
  • GIT_SUBREPO_ROOT
  • LC_ADDRESS
  • LC_NUMERIC
  • MARKPATH
  • GTK_MODULES
  • TERMINATOR_DBUS_PATH
  • MAIL
  • WINDOWPATH
  • VTE_VERSION
  • SHELL
  • TERM
  • e2
  • e1
  • JAVA9_HOME
  • git_status_command
  • QT_IM_MODULE
  • XMODIFIERS
  • GPG_AGENT_INFO
  • WINEARCH
  • DISABLE_AUTO_UPDATE
  • PYTHONDONTWRITEBYTECODE
  • git_env_char
  • AWS_ACCESS_KEY_ID
  • SHLVL
  • XDG_SEAT
  • PYENV_SHELL
  • scmbDir
  • MANPATH
  • ZSH_BASE
  • LC_TELEPHONE
  • LOGNAME
  • DBUS_SESSION_BUS_ADDRESS
  • XDG_RUNTIME_DIR
  • XAUTHORITY
  • GIT_REPOS
  • PATH
  • ZSHRC
  • LC_IDENTIFICATION
  • XDG_SESSION_COOKIE
  • HISTSIZE
  • DEFAULT_USER
  • HH_CONFIG
  • GTK_IM_MODULE
  • LC_TIME

Pipenv–specific environment variables:

  • PIPENV_VENV_IN_PROJECT: 1
  • PIPENV_ACTIVE: 1

Debug–specific environment variables:

  • PATH: /home/p-himik/.pyenv/versions/3.6.4/bin:/home/p-himik/.pyenv/libexec:/home/p-himik/.pyenv/plugins/python-build/bin:/home/p-himik/.pyenv/plugins/pyenv-virtualenv/bin:/home/p-himik/.pyenv/plugins/pyenv-update/bin:/home/p-himik/.pyenv/plugins/pyenv-installer/bin:/home/p-himik/.pyenv/plugins/pyenv-doctor/bin:/home/p-himik/dev/git/strayhorn/.venv/bin:/home/p-himik/.zgen/ingydotnet/git-subrepo-master/lib:/home/p-himik/.pyenv/plugins/pyenv-virtualenv/shims:/home/p-himik/.pyenv/shims:/home/p-himik/.pyenv/versions/3.6.4/bin:/home/p-himik/.pyenv/libexec:/home/p-himik/.pyenv/plugins/python-build/bin:/home/p-himik/.pyenv/plugins/pyenv-virtualenv/bin:/home/p-himik/.pyenv/plugins/pyenv-update/bin:/home/p-himik/.pyenv/plugins/pyenv-installer/bin:/home/p-himik/.pyenv/plugins/pyenv-doctor/bin:/home/p-himik/.zgen/ingydotnet/git-subrepo-master/lib:/home/p-himik/.pyenv/shims:/home/p-himik/bin:/home/p-himik/.local/bin:/opt/jdk1.8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/p-himik/.pyenv/bin:/home/p-himik/.fzf/bin
  • SHELL: /usr/bin/zsh
  • LANG: en_US.UTF-8
  • PWD: /home/p-himik/dev/git/strayhorn
  • VIRTUAL_ENV: /home/p-himik/dev/git/strayhorn/.venv

Contents of Pipfile ('/home/p-himik/dev/git/strayhorn/Pipfile'):

[[source]]
url = "https://pypi.python.org/simple"
name = "pypi"
verify_ssl = true

[packages]
asgiref = "*"
channels = "*"
daphne = "*"
dj-database-url = "*"
Django = "*"
djangorestframework = "*"
django-rest-auth = "*"
"psycopg2" = "*"
redis = "*"
django-extensions = "*"
django-migrate-sql = "*"
django-guardian = "*"
mwparserfromhell = "*"
requests = "*"
requests-futures = "*"
musicxml_parser = "*"
transit-python = {editable = true, git = "https://github.com/p-himik/transit-python.git", ref = "fix-none-key"}
uWSGI = "*"
"boto3" = "*"
edn_format = "*"
celery = {git = "https://github.com/celery/celery.git", ref = "e700276"}
chet-tools = "*"

[requires]
python_full_version = "3.7.0"

[dev-packages]
ipython = "*"
pytest = "*"
pytest-django = "*"
pytest-randomly = "*"
pytest-cov = "*"
pytest-mock = "*"
django-dynamic-fixture = "*"
pytest-pycharm = "*"
pytest-xdist = "*"

Contents of Pipfile.lock ('/home/p-himik/dev/git/strayhorn/Pipfile.lock'):

{
    "_meta": {
        "hash": {
            "sha256": "b32c9aa784c00b81f86de1d7344a088c5526a015e75408c2f37d4097c3c5050c"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_full_version": "3.7.0"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.python.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "asgiref": {
            "hashes": [
                "sha256:9b05dcd41a6a89ca8c6e7f7e4089c3f3e76b5af60aebb81ae6d455ad81989c97",
                "sha256:b21dc4c43d7aba5a844f4c48b8f49d56277bc34937fd9f9cb93ec97fde7e3082"
            ],
            "index": "pypi",
            "version": "==2.3.2"
        },
        "async-timeout": {
            "hashes": [
                "sha256:474d4bc64cee20603e225eb1ece15e248962958b45a3648a9f5cc29e827a610c",
                "sha256:b3c0ddc416736619bd4a95ca31de8da6920c3b9a140c64dbef2b2fa7bf521287"
            ],
            "version": "==3.0.0"
        },
        "attrs": {
            "hashes": [
                "sha256:10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69",
                "sha256:ca4be454458f9dec299268d472aaa5a11f67a4ff70093396e1ceae9c76cf4bbb"
            ],
            "version": "==18.2.0"
        },
        "autobahn": {
            "hashes": [
                "sha256:3d3e16b5f5ec36cad9e38536e11688346b8a78e09b551bada541d8476ac33f54",
                "sha256:d98b924f06865700116ee616027e4a6d678004a7b44e0d01cb262eab333112d6"
            ],
            "version": "==18.9.2"
        },
        "automat": {
            "hashes": [
                "sha256:cbd78b83fa2d81fe2a4d23d258e1661dd7493c9a50ee2f1a5b2cac61c1793b0e",
                "sha256:fdccab66b68498af9ecfa1fa43693abe546014dd25cf28543cbe9d1334916a58"
            ],
            "version": "==0.7.0"
        },
        "boto3": {
            "hashes": [
                "sha256:7d2ae0a759ede09474387dae246d8fe9c1f07e98fa3366ebffd0536571558261",
                "sha256:abc08c826c0628cb22fee2a2a5a21bad6a7f261042c652e4f994f376333cf52c"
            ],
            "index": "pypi",
            "version": "==1.9.16"
        },
        "botocore": {
            "hashes": [
                "sha256:1a80610b35a85825224e34c48e3d47660c728f63b8ab0c5a0ca49629686e2f41",
                "sha256:1f4f69e1403462c2d37967ce4bbdd0affe90e8a91899a340e59ee952552c5b09"
            ],
            "version": "==1.12.16"
        },
        "celery": {
            "git": "https://github.com/celery/celery.git",
            "ref": "e700276"
        },
        "certifi": {
            "hashes": [
                "sha256:376690d6f16d32f9d1fe8932551d80b23e9d393a8578c5633a2ed39a64861638",
                "sha256:456048c7e371c089d0a77a5212fb37a2c2dce1e24146e3b7e0261736aaeaa22a"
            ],
            "version": "==2018.8.24"
        },
        "channels": {
            "hashes": [
                "sha256:7c21c049a3d50b55745dd8b1c0bedb969013d15893e844c7e5a4d901131572b6",
                "sha256:8d503d18b92cef488ba68808a2205e055d29a6a1abae92d277f8f7a9c8752f13"
            ],
            "index": "pypi",
            "version": "==2.1.3"
        },
        "chardet": {
            "hashes": [
                "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
                "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
            ],
            "version": "==3.0.4"
        },
        "constantly": {
            "hashes": [
                "sha256:586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35",
                "sha256:dd2fa9d6b1a51a83f0d7dd76293d734046aa176e384bf6e33b7e44880eb37c5d"
            ],
            "version": "==15.1.0"
        },
        "daphne": {
            "hashes": [
                "sha256:e2a5f5a334fb9cd1bd61893f0880e66c9463dae1a8010b50be8a7277ccb54480",
                "sha256:eb6177389c63ed8f0d92db065c7a045359ad79ccf14ad9fc8450a77f66749701"
            ],
            "index": "pypi",
            "version": "==2.2.2"
        },
        "dj-database-url": {
            "hashes": [
                "sha256:4aeaeb1f573c74835b0686a2b46b85990571159ffc21aa57ecd4d1e1cb334163",
                "sha256:851785365761ebe4994a921b433062309eb882fedd318e1b0fcecc607ed02da9"
            ],
            "index": "pypi",
            "version": "==0.5.0"
        },
        "django": {
            "hashes": [
                "sha256:acdcc1f61fdb0a0c82a1d3bf1879a414e7732ea894a7632af7f6d66ec7ab5bb3",
                "sha256:efbcad7ebb47daafbcead109b38a5bd519a3c3cd92c6ed0f691ff97fcdd16b45"
            ],
            "index": "pypi",
            "version": "==2.1.2"
        },
        "django-extensions": {
            "hashes": [
                "sha256:30cb6a8c7d6f75a55edf0c0c4491bd98f8264ae1616ce105f9cecac4387edd07",
                "sha256:4ad86a7a5e84f1c77db030761ae87a600647250c652030a2b71a16e87f3a3d62"
            ],
            "index": "pypi",
            "version": "==2.1.3"
        },
        "django-guardian": {
            "hashes": [
                "sha256:8836ac9263c9bd8c162efa5fbd0729f7f8ef83008c8da298e8e2aa81ea624c47",
                "sha256:c3c0ab257c9d94ce154b9ee32994e3cff8b350c384040705514e14a9fb7c8191"
            ],
            "index": "pypi",
            "version": "==1.4.9"
        },
        "django-migrate-sql": {
            "hashes": [
                "sha256:07d0abfb51c4881c9cfcb1ecf5b78460aa5feeb76b51975338a4b705db415a3b",
                "sha256:435e0ef19ee4e8dcfba2b733ae672b33517e74610ce767f0da0ea2f4e0d93317"
            ],
            "index": "pypi",
            "version": "==0.1.1"
        },
        "django-rest-auth": {
            "hashes": [
                "sha256:ad155a0ed1061b32e3e46c9b25686e397644fd6acfd35d5c03bc6b9d2fc6c82a"
            ],
            "index": "pypi",
            "version": "==0.9.3"
        },
        "djangorestframework": {
            "hashes": [
                "sha256:b6714c3e4b0f8d524f193c91ecf5f5450092c2145439ac2769711f7eba89a9d9",
                "sha256:c375e4f95a3a64fccac412e36fb42ba36881e52313ec021ef410b40f67cddca4"
            ],
            "index": "pypi",
            "version": "==3.8.2"
        },
        "docutils": {
            "hashes": [
                "sha256:02aec4bd92ab067f6ff27a38a38a41173bf01bed8f89157768c1573f53e474a6",
                "sha256:51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274",
                "sha256:7a4bd47eaf6596e1295ecb11361139febe29b084a87bf005bf899f9a42edc3c6"
            ],
            "version": "==0.14"
        },
        "edn-format": {
            "hashes": [
                "sha256:ac38d2f5b358d05e8387f69d225067041fd0f80a7af56cb37120faebb1344643"
            ],
            "index": "pypi",
            "version": "==0.6.1"
        },
        "hyperlink": {
            "hashes": [
                "sha256:98da4218a56b448c7ec7d2655cb339af1f7d751cf541469bb4fc28c4a4245b34",
                "sha256:f01b4ff744f14bc5d0a22a6b9f1525ab7d6312cb0ff967f59414bbac52f0a306"
            ],
            "version": "==18.0.0"
        },
        "idna": {
            "hashes": [
                "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e",
                "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16"
            ],
            "version": "==2.7"
        },
        "incremental": {
            "hashes": [
                "sha256:717e12246dddf231a349175f48d74d93e2897244939173b01974ab6661406b9f",
                "sha256:7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3"
            ],
            "version": "==17.5.0"
        },
        "jmespath": {
            "hashes": [
                "sha256:6a81d4c9aa62caf061cb517b4d9ad1dd300374cd4706997aff9cd6aedd61fc64",
                "sha256:f11b4461f425740a1d908e9a3f7365c3d2e569f6ca68a2ff8bc5bcd9676edd63"
            ],
            "version": "==0.9.3"
        },
        "lxml": {
            "hashes": [
                "sha256:02bc220d61f46e9b9d5a53c361ef95e9f5e1d27171cd461dddb17677ae2289a5",
                "sha256:22f253b542a342755f6cfc047fe4d3a296515cf9b542bc6e261af45a80b8caf6",
                "sha256:2f31145c7ff665b330919bfa44aacd3a0211a76ca7e7b441039d2a0b0451e415",
                "sha256:36720698c29e7a9626a0dc802ef8885f8f0239bfd1689628ecd459a061f2807f",
                "sha256:438a1b0203545521f6616132bfe0f4bca86f8a401364008b30e2b26ec408ce85",
                "sha256:4815892904c336bbaf73dafd54f45f69f4021c22b5bad7332176bbf4fb830568",
                "sha256:5be031b0f15ad63910d8e5038b489d95a79929513b3634ad4babf77100602588",
                "sha256:5c93ae37c3c588e829b037fdfbd64a6e40c901d3f93f7beed6d724c44829a3ad",
                "sha256:60842230678674cdac4a1cf0f707ef12d75b9a4fc4a565add4f710b5fcf185d5",
                "sha256:62939a8bb6758d1bf923aa1c13f0bcfa9bf5b2fc0f5fa917a6e25db5fe0cfa4e",
                "sha256:75830c06a62fe7b8fe3bbb5f269f0b308f19f3949ac81cfd40062f47c1455faf",
                "sha256:81992565b74332c7c1aff6a913a3e906771aa81c9d0c68c68113cffcae45bc53",
                "sha256:8c892fb0ee52c594d9a7751c7d7356056a9682674b92cc1c4dc968ff0f30c52f",
                "sha256:9d862e3cf4fc1f2837dedce9c42269c8c76d027e49820a548ac89fdcee1e361f",
                "sha256:a623965c086a6e91bb703d4da62dabe59fe88888e82c4117d544e11fd74835d6",
                "sha256:a7783ab7f6a508b0510490cef9f857b763d796ba7476d9703f89722928d1e113",
                "sha256:aab09fbe8abfa3b9ce62aaf45aca2d28726b1b9ee44871dbe644050a2fff4940",
                "sha256:abf181934ac3ef193832fb973fd7f6149b5c531903c2ec0f1220941d73eee601",
                "sha256:ae07fa0c115733fce1e9da96a3ac3fa24801742ca17e917e0c79d63a01eeb843",
                "sha256:b9c78242219f674ab645ec571c9a95d70f381319a23911941cd2358a8e0521cf",
                "sha256:bccb267678b870d9782c3b44d0cefe3ba0e329f9af8c946d32bf3778e7a4f271",
                "sha256:c4df4d27f4c93b2cef74579f00b1d3a31a929c7d8023f870c4b476f03a274db4",
                "sha256:caf0e50b546bb60dfa99bb18dfa6748458a83131ecdceaf5c071d74907e7e78a",
                "sha256:d3266bd3ac59ac4edcd5fa75165dee80b94a3e5c91049df5f7c057ccf097551c",
                "sha256:db0d213987bcd4e6d41710fb4532b22315b0d8fb439ff901782234456556aed1",
                "sha256:dbbd5cf7690a40a9f0a9325ab480d0fccf46d16b378eefc08e195d84299bfae1",
                "sha256:e16e07a0ec3a75b5ee61f2b1003c35696738f937dc8148fbda9fe2147ccb6e61",
                "sha256:e175a006725c7faadbe69e791877d09936c0ef2cf49d01b60a6c1efcb0e8be6f",
                "sha256:edd9c13a97f6550f9da2236126bb51c092b3b1ce6187f2bd966533ad794bbb5e",
                "sha256:fa39ea60d527fbdd94215b5e5552f1c6a912624521093f1384a491a8ad89ad8b"
            ],
            "version": "==4.2.5"
        },
        "msgpack-python": {
            "hashes": [
                "sha256:378cc8a6d3545b532dfd149da715abae4fda2a3adb6d74e525d0d5e51f46909b"
            ],
            "version": "==0.5.6"
        },
        "music21": {
            "hashes": [
                "sha256:071a74cd1738e36b2f99ab30bd1b77f7c0527c93bd169c6891de47e2a4cebf85"
            ],
            "version": "==5.3.0"
        },
        "musicxml-parser": {
            "hashes": [
                "sha256:664fc9affbc93e68f6c4b94fdb1421fc2e973dafff350fdbda79313eb9685a93"
            ],
            "index": "pypi",
            "version": "==2.2.0"
        },
        "mwparserfromhell": {
            "hashes": [
                "sha256:2ab2822ffc965711f5350b44850d2e2d2c5b715acba0116787449475df6ff855",
                "sha256:3142ff4bafa587013aaf7e23f71ed5fa4e84fc119c1abc02cbaab7571db5691a",
                "sha256:50114436fc3eda52db46daed02848b0bc966ca7c5e6877a3de259df6f1023246",
                "sha256:6dbeb936d91f5eeb5c92591fb25a9225fab2ba4697d034d246c542f06702f181",
                "sha256:6e92c89e480c3c7c0533b5177692d899968dd44a2e826065578cfae63997d653",
                "sha256:71b22081bec43ac6bd2966506b8422c71a9603d83880aab727e7d0fd0fd0e2d4",
                "sha256:73f536a2514160f9d3186e144e271cc12dfaed129ac9ef5bed623273f5ced4a6",
                "sha256:8d7f2146940c333d5874592903b03e5e709beac526aaff94d01a4cf42397f498",
                "sha256:9ef3c5a0927cccad13533d80acff296edf7d6c05a57894b870948e1f3592d92e",
                "sha256:bbaacf6527b4fcb5485225f5a9b29b65b4edbf3d50aab372f58e80bb920953d9",
                "sha256:c4beaa1c790f19d6f8437be8d9e96dd49ec8146530d2ebe1e2a7d07b1a7c7e17"
            ],
            "index": "pypi",
            "version": "==0.5.1"
        },
        "ply": {
            "hashes": [
                "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3",
                "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce"
            ],
            "version": "==3.11"
        },
        "psycopg2": {
            "hashes": [
                "sha256:0b9e48a1c1505699a64ac58815ca99104aacace8321e455072cee4f7fe7b2698",
                "sha256:0f4c784e1b5a320efb434c66a50b8dd7e30a7dc047e8f45c0a8d2694bfe72781",
                "sha256:0fdbaa32c9eb09ef09d425dc154628fca6fa69d2f7c1a33f889abb7e0efb3909",
                "sha256:11fbf688d5c953c0a5ba625cc42dea9aeb2321942c7c5ed9341a68f865dc8cb1",
                "sha256:19eaac4eb25ab078bd0f28304a0cb08702d120caadfe76bb1e6846ed1f68635e",
                "sha256:3232ec1a3bf4dba97fbf9b03ce12e4b6c1d01ea3c85773903a67ced725728232",
                "sha256:36f8f9c216fcca048006f6dd60e4d3e6f406afde26cfb99e063f137070139eaf",
                "sha256:59c1a0e4f9abe970062ed35d0720935197800a7ef7a62b3a9e3a70588d9ca40b",
                "sha256:6506c5ff88750948c28d41852c09c5d2a49f51f28c6d90cbf1b6808e18c64e88",
                "sha256:6bc3e68ee16f571681b8c0b6d5c0a77bef3c589012352b3f0cf5520e674e9d01",
                "sha256:6dbbd7aabbc861eec6b910522534894d9dbb507d5819bc982032c3ea2e974f51",
                "sha256:6e737915de826650d1a5f7ff4ac6cf888a26f021a647390ca7bafdba0e85462b",
                "sha256:6ed9b2cfe85abc720e8943c1808eeffd41daa73e18b7c1e1a228b0b91f768ccc",
                "sha256:711ec617ba453fdfc66616db2520db3a6d9a891e3bf62ef9aba4c95bb4e61230",
                "sha256:844dacdf7530c5c612718cf12bc001f59b2d9329d35b495f1ff25045161aa6af",
                "sha256:86b52e146da13c896e50c5a3341a9448151f1092b1a4153e425d1e8b62fec508",
                "sha256:985c06c2a0f227131733ae58d6a541a5bc8b665e7305494782bebdb74202b793",
                "sha256:a86dfe45f4f9c55b1a2312ff20a59b30da8d39c0e8821d00018372a2a177098f",
                "sha256:aa3cd07f7f7e3183b63d48300666f920828a9dbd7d7ec53d450df2c4953687a9",
                "sha256:b1964ed645ef8317806d615d9ff006c0dadc09dfc54b99ae67f9ba7a1ec9d5d2",
                "sha256:b2abbff9e4141484bb89b96eb8eae186d77bc6d5ffbec6b01783ee5c3c467351",
                "sha256:cc33c3a90492e21713260095f02b12bee02b8d1f2c03a221d763ce04fa90e2e9",
                "sha256:d7de3bf0986d777807611c36e809b77a13bf1888f5c8db0ebf24b47a52d10726",
                "sha256:db5e3c52576cc5b93a959a03ccc3b02cb8f0af1fbbdc80645f7a215f0b864f3a",
                "sha256:e168aa795ffbb11379c942cf95bf813c7db9aa55538eb61de8c6815e092416f5",
                "sha256:e9ca911f8e2d3117e5241d5fa9aaa991cb22fb0792627eeada47425d706b5ec8",
                "sha256:eccf962d41ca46e6326b97c8fe0a6687b58dfc1a5f6540ed071ff1474cea749e",
                "sha256:efa19deae6b9e504a74347fe5e25c2cb9343766c489c2ae921b05f37338b18d1",
                "sha256:f4b0460a21f784abe17b496f66e74157a6c36116fa86da8bf6aa028b9e8ad5fe",
                "sha256:f93d508ca64d924d478fb11e272e09524698f0c581d9032e68958cfbdd41faef"
            ],
            "index": "pypi",
            "version": "==2.7.5"
        },
        "pyhamcrest": {
            "hashes": [
                "sha256:6b672c02fdf7470df9674ab82263841ce8333fb143f32f021f6cb26f0e512420",
                "sha256:7a4bdade0ed98c699d728191a058a60a44d2f9c213c51e2dd1e6fb42f2c6128a",
                "sha256:8ffaa0a53da57e89de14ced7185ac746227a8894dbd5a3c718bf05ddbd1d56cd",
                "sha256:bac0bea7358666ce52e3c6c85139632ed89f115e9af52d44b3c36e0bf8cf16a9",
                "sha256:f30e9a310bcc1808de817a92e95169ffd16b60cbc5a016a49c8d0e8ababfae79"
            ],
            "version": "==1.9.0"
        },
        "pyrfc3339": {
            "hashes": [
                "sha256:67196cb83b470709c580bb4738b83165e67c6cc60e1f2e4f286cfcb402a926f4",
                "sha256:81b8cbe1519cdb79bed04910dd6fa4e181faf8c88dff1e1b987b5f7ab23a5b1a"
            ],
            "version": "==1.1"
        },
        "python-dateutil": {
            "hashes": [
                "sha256:1adb80e7a782c12e52ef9a8182bebeb73f1d7e24e374397af06fb4956c8dc5c0",
                "sha256:e27001de32f627c22380a688bcc43ce83504a7bc5da472209b4c70f02829f0b8"
            ],
            "markers": "python_version >= '2.7'",
            "version": "==2.7.3"
        },
        "pytz": {
            "hashes": [
                "sha256:a061aa0a9e06881eb8b3b2b43f05b9439d6583c206d0a6c340ff72a7b6669053",
                "sha256:ffb9ef1de172603304d9d2819af6f5ece76f2e85ec10692a524dd876e72bf277"
            ],
            "version": "==2018.5"
        },
        "redis": {
            "hashes": [
                "sha256:8a1900a9f2a0a44ecf6e8b5eb3e967a9909dfed219ad66df094f27f7d6f330fb",
                "sha256:a22ca993cea2962dbb588f9f30d0015ac4afcc45bee27d3978c0dbe9e97c6c0f"
            ],
            "index": "pypi",
            "version": "==2.10.6"
        },
        "requests": {
            "hashes": [
                "sha256:63b52e3c866428a224f97cab011de738c36aec0185aa91cfacd418b5d58911d1",
                "sha256:ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a"
            ],
            "index": "pypi",
            "version": "==2.19.1"
        },
        "requests-futures": {
            "hashes": [
                "sha256:a9ca2c3480b6fac29ec5de59c146742e2ab2b60f8c68581766094edb52ea7bad"
            ],
            "index": "pypi",
            "version": "==0.9.7"
        },
        "s3transfer": {
            "hashes": [
                "sha256:90dc18e028989c609146e241ea153250be451e05ecc0c2832565231dacdf59c1",
                "sha256:c7a9ec356982d5e9ab2d4b46391a7d6a950e2b04c472419f5fdec70cc0ada72f"
            ],
            "version": "==0.1.13"
        },
        "six": {
            "hashes": [
                "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
                "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
            ],
            "version": "==1.11.0"
        },
        "transit-python": {
            "editable": true,
            "git": "https://github.com/p-himik/transit-python.git",
            "ref": "fix-none-key"
        },
        "twisted": {
            "hashes": [
                "sha256:5de7b79b26aee64efe63319bb8f037af88c21287d1502b39706c818065b3d5a4",
                "sha256:95ae985716e8107816d8d0df249d558dbaabb677987cc2ace45272c166b267e4"
            ],
            "version": "==18.7.0"
        },
        "txaio": {
            "hashes": [
                "sha256:67e360ac73b12c52058219bb5f8b3ed4105d2636707a36a7cdafb56fe06db7fe",
                "sha256:b6b235d432cc58ffe111b43e337db71a5caa5d3eaa88f0eacf60b431c7626ef5"
            ],
            "version": "==18.8.1"
        },
        "urllib3": {
            "hashes": [
                "sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
                "sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
            ],
            "version": "==1.23"
        },
        "uwsgi": {
            "hashes": [
                "sha256:d2318235c74665a60021a4fc7770e9c2756f9fc07de7b8c22805efe85b5ab277"
            ],
            "index": "pypi",
            "version": "==2.0.17.1"
        },
        "zope.interface": {
            "hashes": [
                "sha256:21506674d30c009271fe68a242d330c83b1b9d76d62d03d87e1e9528c61beea6",
                "sha256:3d184aff0756c44fff7de69eb4cd5b5311b6f452d4de28cb08343b3f21993763",
                "sha256:467d364b24cb398f76ad5e90398d71b9325eb4232be9e8a50d6a3b3c7a1c8789",
                "sha256:57c38470d9f57e37afb460c399eb254e7193ac7fb8042bd09bdc001981a9c74c",
                "sha256:9ada83f4384bbb12dedc152bcdd46a3ac9f5f7720d43ac3ce3e8e8b91d733c10",
                "sha256:a1daf9c5120f3cc6f2b5fef8e1d2a3fb7bbbb20ed4bfdc25bc8364bc62dcf54b",
                "sha256:e6b77ae84f2b8502d99a7855fa33334a1eb6159de45626905cb3e454c023f339",
                "sha256:e881ef610ff48aece2f4ee2af03d2db1a146dc7c705561bd6089b2356f61641f",
                "sha256:f41037260deaacb875db250021fe883bf536bf6414a4fd25b25059b02e31b120"
            ],
            "version": "==4.5.0"
        }
    },
    "develop": {
        "apipkg": {
            "hashes": [
                "sha256:37228cda29411948b422fae072f57e31d3396d2ee1c9783775980ee9c9990af6",
                "sha256:58587dd4dc3daefad0487f6d9ae32b4542b185e1c36db6993290e7c41ca2b47c"
            ],
            "version": "==1.5"
        },
        "atomicwrites": {
            "hashes": [
                "sha256:0312ad34fcad8fac3704d441f7b317e50af620823353ec657a53e981f92920c0",
                "sha256:ec9ae8adaae229e4f8446952d204a3e4b5fdd2d099f9be3aaf556120135fb3ee"
            ],
            "version": "==1.2.1"
        },
        "attrs": {
            "hashes": [
                "sha256:10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69",
                "sha256:ca4be454458f9dec299268d472aaa5a11f67a4ff70093396e1ceae9c76cf4bbb"
            ],
            "version": "==18.2.0"
        },
        "backcall": {
            "hashes": [
                "sha256:38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4",
                "sha256:bbbf4b1e5cd2bdb08f915895b51081c041bac22394fdfcfdfbe9f14b77c08bf2"
            ],
            "version": "==0.1.0"
        },
        "coverage": {
            "hashes": [
                "sha256:03481e81d558d30d230bc12999e3edffe392d244349a90f4ef9b88425fac74ba",
                "sha256:0b136648de27201056c1869a6c0d4e23f464750fd9a9ba9750b8336a244429ed",
                "sha256:104ab3934abaf5be871a583541e8829d6c19ce7bde2923b2751e0d3ca44db60a",
                "sha256:10a46017fef60e16694a30627319f38a2b9b52e90182dddb6e37dcdab0f4bf95",
                "sha256:15b111b6a0f46ee1a485414a52a7ad1d703bdf984e9ed3c288a4414d3871dcbd",
                "sha256:198626739a79b09fa0a2f06e083ffd12eb55449b5f8bfdbeed1df4910b2ca640",
                "sha256:1c383d2ef13ade2acc636556fd544dba6e14fa30755f26812f54300e401f98f2",
                "sha256:23d341cdd4a0371820eb2b0bd6b88f5003a7438bbedb33688cd33b8eae59affd",
                "sha256:28b2191e7283f4f3568962e373b47ef7f0392993bb6660d079c62bd50fe9d162",
                "sha256:2a5b73210bad5279ddb558d9a2bfedc7f4bf6ad7f3c988641d83c40293deaec1",
                "sha256:2eb564bbf7816a9d68dd3369a510be3327f1c618d2357fa6b1216994c2e3d508",
                "sha256:337ded681dd2ef9ca04ef5d93cfc87e52e09db2594c296b4a0a3662cb1b41249",
                "sha256:3a2184c6d797a125dca8367878d3b9a178b6fdd05fdc2d35d758c3006a1cd694",
                "sha256:3c79a6f7b95751cdebcd9037e4d06f8d5a9b60e4ed0cd231342aa8ad7124882a",
                "sha256:3d72c20bd105022d29b14a7d628462ebdc61de2f303322c0212a054352f3b287",
                "sha256:3eb42bf89a6be7deb64116dd1cc4b08171734d721e7a7e57ad64cc4ef29ed2f1",
                "sha256:4635a184d0bbe537aa185a34193898eee409332a8ccb27eea36f262566585000",
                "sha256:56e448f051a201c5ebbaa86a5efd0ca90d327204d8b059ab25ad0f35fbfd79f1",
                "sha256:5a13ea7911ff5e1796b6d5e4fbbf6952381a611209b736d48e675c2756f3f74e",
                "sha256:69bf008a06b76619d3c3f3b1983f5145c75a305a0fea513aca094cae5c40a8f5",
                "sha256:6bc583dc18d5979dc0f6cec26a8603129de0304d5ae1f17e57a12834e7235062",
                "sha256:701cd6093d63e6b8ad7009d8a92425428bc4d6e7ab8d75efbb665c806c1d79ba",
                "sha256:7608a3dd5d73cb06c531b8925e0ef8d3de31fed2544a7de6c63960a1e73ea4bc",
                "sha256:76ecd006d1d8f739430ec50cc872889af1f9c1b6b8f48e29941814b09b0fd3cc",
                "sha256:7aa36d2b844a3e4a4b356708d79fd2c260281a7390d678a10b91ca595ddc9e99",
                "sha256:7d3f553904b0c5c016d1dad058a7554c7ac4c91a789fca496e7d8347ad040653",
                "sha256:7e1fe19bd6dce69d9fd159d8e4a80a8f52101380d5d3a4d374b6d3eae0e5de9c",
                "sha256:8c3cb8c35ec4d9506979b4cf90ee9918bc2e49f84189d9bf5c36c0c1119c6558",
                "sha256:9d6dd10d49e01571bf6e147d3b505141ffc093a06756c60b053a859cb2128b1f",
                "sha256:9e112fcbe0148a6fa4f0a02e8d58e94470fc6cb82a5481618fea901699bf34c4",
                "sha256:ac4fef68da01116a5c117eba4dd46f2e06847a497de5ed1d64bb99a5fda1ef91",
                "sha256:b8815995e050764c8610dbc82641807d196927c3dbed207f0a079833ffcf588d",
                "sha256:be6cfcd8053d13f5f5eeb284aa8a814220c3da1b0078fa859011c7fffd86dab9",
                "sha256:c1bb572fab8208c400adaf06a8133ac0712179a334c09224fb11393e920abcdd",
                "sha256:de4418dadaa1c01d497e539210cb6baa015965526ff5afc078c57ca69160108d",
                "sha256:e05cb4d9aad6233d67e0541caa7e511fa4047ed7750ec2510d466e806e0255d6",
                "sha256:e4d96c07229f58cb686120f168276e434660e4358cc9cf3b0464210b04913e77",
                "sha256:f3f501f345f24383c0000395b26b726e46758b71393267aeae0bd36f8b3ade80",
                "sha256:f8a923a85cb099422ad5a2e345fe877bbc89a8a8b23235824a93488150e45f6e"
            ],
            "version": "==4.5.1"
        },
        "decorator": {
            "hashes": [
                "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82",
                "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c"
            ],
            "version": "==4.3.0"
        },
        "django-dynamic-fixture": {
            "hashes": [
                "sha256:f8f44d8276fddb8a89a48c623fbf11d49e912e44cdee66785b7da85731f840aa"
            ],
            "index": "pypi",
            "version": "==2.0.0"
        },
        "execnet": {
            "hashes": [
                "sha256:a7a84d5fa07a089186a329528f127c9d73b9de57f1a1131b82bb5320ee651f6a",
                "sha256:fc155a6b553c66c838d1a22dba1dc9f5f505c43285a878c6f74a79c024750b83"
            ],
            "version": "==1.5.0"
        },
        "ipython": {
            "hashes": [
                "sha256:47b17ea874454a5c2eacc2732b04a750d260b01ba479323155ac8a39031f5535",
                "sha256:9fed506c3772c875a3048bc134a25e6f5e997b1569b2636f6a5d891f34cbfd46"
            ],
            "index": "pypi",
            "version": "==7.0.1"
        },
        "ipython-genutils": {
            "hashes": [
                "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8",
                "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"
            ],
            "version": "==0.2.0"
        },
        "jedi": {
            "hashes": [
                "sha256:0191c447165f798e6a730285f2eee783fff81b0d3df261945ecb80983b5c3ca7",
                "sha256:b7493f73a2febe0dc33d51c99b474547f7f6c0b2c8fb2b21f453eef204c12148"
            ],
            "version": "==0.13.1"
        },
        "more-itertools": {
            "hashes": [
                "sha256:c187a73da93e7a8acc0001572aebc7e3c69daf7bf6881a2cea10650bd4420092",
                "sha256:c476b5d3a34e12d40130bc2f935028b5f636df8f372dc2c1c01dc19681b2039e",
                "sha256:fcbfeaea0be121980e15bc97b3817b5202ca73d0eae185b4550cbfce2a3ebb3d"
            ],
            "version": "==4.3.0"
        },
        "parso": {
            "hashes": [
                "sha256:35704a43a3c113cce4de228ddb39aab374b8004f4f2407d070b6a2ca784ce8a2",
                "sha256:895c63e93b94ac1e1690f5fdd40b65f07c8171e3e53cbd7793b5b96c0e0a7f24"
            ],
            "version": "==0.3.1"
        },
        "pexpect": {
            "hashes": [
                "sha256:2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba",
                "sha256:3fbd41d4caf27fa4a377bfd16fef87271099463e6fa73e92a52f92dfee5d425b"
            ],
            "markers": "sys_platform != 'win32'",
            "version": "==4.6.0"
        },
        "pickleshare": {
            "hashes": [
                "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca",
                "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"
            ],
            "version": "==0.7.5"
        },
        "pluggy": {
            "hashes": [
                "sha256:6e3836e39f4d36ae72840833db137f7b7d35105079aee6ec4a62d9f80d594dd1",
                "sha256:95eb8364a4708392bae89035f45341871286a333f749c3141c20573d2b3876e1"
            ],
            "version": "==0.7.1"
        },
        "prompt-toolkit": {
            "hashes": [
                "sha256:5eff0c9fd652384ecfe730bbcdf3658868725c6928fbf608d9338834d7a974b6",
                "sha256:81da9ecf6ca6806a549697529af8ec3ac5b739c13ac14607218e650db1b53131",
                "sha256:c67c1c264d8a0d9e1070e9272bacee00f76c81daab7bc4bf09ff991bd1e224a7"
            ],
            "version": "==2.0.5"
        },
        "ptyprocess": {
            "hashes": [
                "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0",
                "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f"
            ],
            "version": "==0.6.0"
        },
        "py": {
            "hashes": [
                "sha256:06a30435d058473046be836d3fc4f27167fd84c45b99704f2fb5509ef61f9af1",
                "sha256:50402e9d1c9005d759426988a492e0edaadb7f4e68bcddfea586bc7432d009c6"
            ],
            "version": "==1.6.0"
        },
        "pygments": {
            "hashes": [
                "sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d",
                "sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc"
            ],
            "version": "==2.2.0"
        },
        "pytest": {
            "hashes": [
                "sha256:7e258ee50338f4e46957f9e09a0f10fb1c2d05493fa901d113a8dafd0790de4e",
                "sha256:9332147e9af2dcf46cd7ceb14d5acadb6564744ddff1fe8c17f0ce60ece7d9a2"
            ],
            "index": "pypi",
            "version": "==3.8.2"
        },
        "pytest-cov": {
            "hashes": [
                "sha256:513c425e931a0344944f84ea47f3956be0e416d95acbd897a44970c8d926d5d7",
                "sha256:e360f048b7dae3f2f2a9a4d067b2dd6b6a015d384d1577c994a43f3f7cbad762"
            ],
            "index": "pypi",
            "version": "==2.6.0"
        },
        "pytest-django": {
            "hashes": [
                "sha256:49e9ffc856bc6a1bec1c26c5c7b7213dff7cc8bc6b64d624c4d143d04aff0bcf",
                "sha256:b379282feaf89069cb790775ab6bbbd2bd2038a68c7ef9b84a41898e0b551081"
            ],
            "index": "pypi",
            "version": "==3.4.3"
        },
        "pytest-forked": {
            "hashes": [
                "sha256:e4500cd0509ec4a26535f7d4112a8cc0f17d3a41c29ffd4eab479d2a55b30805",
                "sha256:f275cb48a73fc61a6710726348e1da6d68a978f0ec0c54ece5a5fae5977e5a08"
            ],
            "version": "==0.2"
        },
        "pytest-mock": {
            "hashes": [
                "sha256:53801e621223d34724926a5c98bd90e8e417ce35264365d39d6c896388dcc928",
                "sha256:d89a8209d722b8307b5e351496830d5cc5e192336003a485443ae9adeb7dd4c0"
            ],
            "index": "pypi",
            "version": "==1.10.0"
        },
        "pytest-pycharm": {
            "hashes": [
                "sha256:78839dd69958548718ad52fe17cad7834bb76362b025acbb08e8ca6edad6793a",
                "sha256:86f24ed21cdeb483be64f4e8b89d87ed8393de63a60665f9f3915175c64247f2",
                "sha256:9e51c032f5c5953e65aac4b486dd7d7abe4322fc7e951328f229630b3e6bd09f"
            ],
            "index": "pypi",
            "version": "==0.5.0"
        },
        "pytest-randomly": {
            "hashes": [
                "sha256:6db5e03d72b54052b9b379dc3cfa4749c19bfe4de161cf3eb24762049f4ce9be",
                "sha256:92ec6745d3ebdd690ecb598648748c9601f16f5afacf83ccef2b50d23e6edb7f"
            ],
            "index": "pypi",
            "version": "==1.2.3"
        },
        "pytest-xdist": {
            "hashes": [
                "sha256:06aa39361694c9365baaa03bec71159b59ad06c9826c6279ebba368cb3571561",
                "sha256:1ef0d05c905cfa0c5442c90e9e350e65c6ada120e33a00a066ca51c89f5f869a"
            ],
            "index": "pypi",
            "version": "==1.23.2"
        },
        "simplegeneric": {
            "hashes": [
                "sha256:dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173"
            ],
            "version": "==0.8.1"
        },
        "six": {
            "hashes": [
                "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
                "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
            ],
            "version": "==1.11.0"
        },
        "traitlets": {
            "hashes": [
                "sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835",
                "sha256:c6cb5e6f57c5a9bdaa40fa71ce7b4af30298fbab9ece9815b5d995ab6217c7d9"
            ],
            "version": "==4.3.2"
        },
        "wcwidth": {
            "hashes": [
                "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e",
                "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c"
            ],
            "version": "==0.1.7"
        }
    }
}

Most helpful comment

https://pipenv.readthedocs.io/en/latest/advanced/#injecting-credentials-into-pipfiles-via-environment-variables

All 8 comments

I ran into a lot of problems trying to use PIP_EXTRA_INDEX_URL. I believe the preferred way to handle extra indices is to use another [[source]] section in your Pipfile, e.g.

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[[source]]
url = "https://my-index.com/simple"
verify_ssl = true
name = "my-index"

This also lets you specify where to find specific packages if you want, e.g.

package = {version="~=1.0.2", index="my-index"}

@alexbecker This is not a solution since such URL can include credentials. In one of the projects I work on, each developer has their own credentials.

@p-himik I believe you are out of luck then. Last time I reported PIP_EXTRA_INDEX_URL was broken, the maintainers told me not to expect it to work: https://github.com/pypa/pipenv/issues/1285

It is possible to inject credentials through environment variables.

https://pipenv.readthedocs.io/en/latest/advanced/#injecting-credentials-into-pipfiles-via-environment-variables

@techalchemy Thanks! That section definitely wasn't there the last time I checked the docs.

I guess this is a non-issue then?
If so, would it make sense to add a note when a package couldn't be found saying that PIP_EXTRA_INDEX_URL variable is not actually used?

Ideally it would be worthwhile to be backward compatible and support environment variables like this one (and various others e.g. PIP_FIND_LINKS). There are however a lot of moving parts in there, and this would need to be done after we’ve settled the implementation (or it would just break again when we change things). I would say it is likely a good idea to better describe the ideal approach toward this, but probably not to explicitly mention what does not work.

(Closing this since the problem itself is indeed a non-issue. Feel free to propose documentation improvements toward this.)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jacek-jablonski picture jacek-jablonski  Â·  3Comments

AkiraSama picture AkiraSama  Â·  3Comments

ipmb picture ipmb  Â·  3Comments

FooBarQuaxx picture FooBarQuaxx  Â·  3Comments

johnjiang picture johnjiang  Â·  3Comments