pipenv icon indicating copy to clipboard operation
pipenv copied to clipboard

Provide a nicer error message if `python_version` in Pipfile is written without quotation marks

Open budziq opened this issue 6 years ago • 3 comments

Hi!

Is your feature request related to a problem? Please describe.

Recently I've had few minutes wasted on debugging pipenv when working on legacy python script written by someone else that had error in the Pipfile python_version. Namely It had the version written without quotation marks as a float instead as a TOML string.

Make sure to mention your debugging experience if the documented solution failed.

running $ pipenv lock with Pipfile broken in such way results in

cryptic backtrace
Traceback (most recent call last):
  File "/home/budziq/.local/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/home/budziq/.local/lib/python3.5/site-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/budziq/.local/lib/python3.5/site-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/budziq/.local/lib/python3.5/site-packages/pipenv/vendor/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/budziq/.local/lib/python3.5/site-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/budziq/.local/lib/python3.5/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/budziq/.local/lib/python3.5/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/home/budziq/.local/lib/python3.5/site-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/budziq/.local/lib/python3.5/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/budziq/.local/lib/python3.5/site-packages/pipenv/cli/command.py", line 319, in lock
    ensure_project(three=state.three, python=state.python, pypi_mirror=state.pypi_mirror)
  File "/home/budziq/.local/lib/python3.5/site-packages/pipenv/core.py", line 581, in ensure_project
    python_version(path_to_python) or ""
TypeError: 'in <string>' requires string as left operand, not Float

Which I was able to solve only after dropping to ipdb and seeing that somewhere in the backtrace the problematic variable was a toml.Float which led me to looking into the Pipfile closer. But for a few minutes I was certain that my installation of pipenv is broken.

Describe the solution you'd like

Ideally a nice error message suggesting broken Pipfile

Additional context

  • Linux AMDC2119 4.15.0-42-generic #45~16.04.1-Ubuntu SMP Mon Nov 19 13:02:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • Python 3.5.2

$ pipenv --support

Pipenv version: '2018.11.26'

Pipenv location: '/home/budziq/.local/lib/python3.5/site-packages/pipenv'

Python location: '/usr/bin/python3'

Python installations found:

  • 3.5.2: /usr/bin/python3.5m
  • 3.5.2: /usr/bin/python3.5
  • 2.7.12: /usr/bin/python

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.5.2',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '4.15.0-42-generic',
 'platform_system': 'Linux',
 'platform_version': '#45~16.04.1-Ubuntu SMP Mon Nov 19 13:02:27 UTC 2018',
 'python_full_version': '3.5.2',
 'python_version': '3.5',
 'sys_platform': 'linux'}

System environment variables:

  • IRBRC
  • TMUX_PWD_%11
  • TMUX_PWD_%15
  • DBUS_SESSION_BUS_ADDRESS
  • LOGNAME
  • rvm_bin_path
  • GEM_HOME
  • PAGER
  • LC_CTYPE
  • PIP_SHIMS_BASE_MODULE
  • USER
  • rvm_prefix
  • GTK_OVERLAY_SCROLLING
  • SHLVL
  • /home/budziq/.cargo/bin:/home/budziq/.local/bin:/home/budziq/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • TMUX_PWD_%9
  • QT_ACCESSIBILITY
  • rvm_version
  • XMODIFIERS
  • GEM_PATH
  • UPSTART_EVENTS
  • TMUX_PWD_%14
  • LSCOLORS
  • GDMSESSION
  • XAUTHORITY
  • TMUX_PWD_%4
  • LS_COLORS
  • SESSIONTYPE
  • DEFAULTS_PATH
  • LC_MEASUREMENT
  • TMUX_PWD_%3
  • TMUX_PWD_%7
  • _system_arch
  • TMUX_PWD_%17
  • XDG_SESSION_TYPE
  • XDG_CONFIG_DIRS
  • TMUX_PWD_%13
  • XDG_SEAT_PATH
  • QT_LINUX_ACCESSIBILITY_ALWAYS_ON
  • GPG_AGENT_INFO
  • IM_CONFIG_PHASE
  • GNOME_KEYRING_PID
  • CLUTTER_BACKEND
  • TMUX_PWD_%19
  • LESS
  • PATH
  • XDG_VTNR
  • LC_PAPER
  • XDG_SEAT
  • _
  • XDG_GREETER_DATA_DIR
  • SSH_AUTH_SOCK
  • QT_IM_MODULE
  • XDG_SESSION_DESKTOP
  • XDG_RUNTIME_DIR
  • LANGUAGE
  • TMUX_PWD_%8
  • PIP_PYTHON_PATH
  • GBS_ROOT
  • OLDPWD
  • CARGO_HOME
  • CLUTTER_IM_MODULE
  • rvm_path
  • LC_IDENTIFICATION
  • TERM
  • QT4_IM_MODULE
  • EVENT_NOEPOLL
  • SESSION_MANAGER
  • XDG_CURRENT_DESKTOP
  • RUST_SRC_PATH
  • QT_STYLE_OVERRIDE
  • PWD
  • LC_ADDRESS
  • XDG_MENU_PREFIX
  • LANG
  • TMUX_PWD_%1
  • PIP_DISABLE_PIP_VERSION_CHECK
  • TMUX_PWD_%12
  • J2REDIR
  • TMUX_PWD_%2
  • RUBY_VERSION
  • GLADE_MODULE_PATH
  • PYTHONDONTWRITEBYTECODE
  • INSTANCE
  • MANDATORY_PATH
  • TMUX_PWD_%10
  • SHELL
  • TMUX_PWD_%6
  • TMUX
  • LC_TELEPHONE
  • PYTHONFINDER_IGNORE_UNSUPPORTED
  • TMUX_PANE
  • VTE_VERSION
  • TMUX_PWD_%0
  • XDG_SESSION_PATH
  • TMUX_PWD_%5
  • TMUX_PWD_%18
  • MY_RUBY_HOME
  • GDM_LANG
  • DERBY_HOME
  • LC_NUMERIC
  • _system_version
  • JAVA_HOME
  • UPSTART_JOB
  • _system_name
  • _system_type
  • LC_MONETARY
  • GBS_RPMS
  • LC_TIME
  • UPSTART_INSTANCE
  • DISPLAY
  • GLADE_CATALOG_PATH
  • SESSION
  • J2SDKDIR
  • GLADE_PIXMAP_PATH
  • UPSTART_SESSION
  • TMUX_PWD_%16
  • HAWK3_BUILD_CONF
  • XDG_DATA_DIRS
  • GNOME_KEYRING_CONTROL
  • DESKTOP_SESSION
  • LC_NAME
  • GTK_IM_MODULE
  • HOME
  • XDG_SESSION_ID
  • JOB

Pipenv–specific environment variables:

Debug–specific environment variables:

  • PATH: /home/budziq/.rvm/gems/ruby-head/bin:/home/budziq/.rvm/gems/ruby-head@global/bin:/home/budziq/.rvm/rubies/ruby-head/bin:/home/budziq/.cargo/bin:/home/budziq/.local/bin:/home/budziq/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/budziq/arm-2010q1/bin:/home/budziq/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/budziq/dotfiles/bin:/home/budziq/.rvm/bin:/usr/local/go/bin:/home/budziq/.cargo/bin
  • SHELL: /usr/bin/zsh
  • LANG: en_US.UTF-8
  • PWD: /ssd_drive/muxpi

Contents of Pipfile ('/ssd_drive/muxpi/Pipfile'):

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

[packages]
requests = "*"
serial = "*"

[dev-packages]
pylint = "*"
ipython = "*"

[requires]
python_version = 3.5

Contents of Pipfile.lock ('/ssd_drive/muxpi/Pipfile.lock'):

{
    "_meta": {
        "hash": {
            "sha256": "0509f9b3dc5b51b31e06f09662b4d4fd0795a6ee8d89862c77b4813e72152b36"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.5"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "certifi": {
            "hashes": [
                "sha256:47f9c83ef4c0c621eaef743f133f09fa8a74a9b75f037e8624f83bd1b6626cb7",
                "sha256:993f830721089fef441cdfeb4b2c8c9df86f0c63239f06bd025a76a7daddb033"
            ],
            "version": "==2018.11.29"
        },
        "chardet": {
            "hashes": [
                "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
                "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
            ],
            "version": "==3.0.4"
        },
        "future": {
            "hashes": [
                "sha256:67045236dcfd6816dc439556d009594abf643e5eb48992e36beac09c2ca659b8"
            ],
            "version": "==0.17.1"
        },
        "idna": {
            "hashes": [
                "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407",
                "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"
            ],
            "version": "==2.8"
        },
        "iso8601": {
            "hashes": [
                "sha256:210e0134677cc0d02f6028087fee1df1e1d76d372ee1db0bf30bf66c5c1c89a3",
                "sha256:49c4b20e1f38aa5cf109ddcd39647ac419f928512c869dc01d5c7098eddede82",
                "sha256:bbbae5fb4a7abfe71d4688fd64bff70b91bbd74ef6a99d964bab18f7fdf286dd"
            ],
            "version": "==0.1.12"
        },
        "pyyaml": {
            "hashes": [
                "sha256:3d7da3009c0f3e783b2c873687652d83b1bbfd5c88e9813fb7e5b03c0dd3108b",
                "sha256:3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf",
                "sha256:40c71b8e076d0550b2e6380bada1f1cd1017b882f7e16f09a65be98e017f211a",
                "sha256:558dd60b890ba8fd982e05941927a3911dc409a63dcb8b634feaa0cda69330d3",
                "sha256:a7c28b45d9f99102fa092bb213aa12e0aaf9a6a1f5e395d36166639c1f96c3a1",
                "sha256:aa7dd4a6a427aed7df6fb7f08a580d68d9b118d90310374716ae90b710280af1",
                "sha256:bc558586e6045763782014934bfaf39d48b8ae85a2713117d16c39864085c613",
                "sha256:d46d7982b62e0729ad0175a9bc7e10a566fc07b224d2c79fafb5e032727eaa04",
                "sha256:d5eef459e30b09f5a098b9cea68bebfeb268697f78d647bd255a085371ac7f3f",
                "sha256:e01d3203230e1786cd91ccfdc8f8454c8069c91bee3962ad93b87a4b2860f537",
                "sha256:e170a9e6fcfd19021dd29845af83bb79236068bf5fd4df3327c1be18182b2531"
            ],
            "version": "==3.13"
        },
        "requests": {
            "hashes": [
                "sha256:502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e",
                "sha256:7bf2a778576d825600030a110f3c0e3e8edc51dfaafe1c146e39a2027784957b"
            ],
            "index": "pypi",
            "version": "==2.21.0"
        },
        "serial": {
            "hashes": [
                "sha256:3968852238bb5d6d12176cf0a39f2b83d47f06fa75845973de9a9286b467f87f",
                "sha256:e29dfed56168ccdb7b02e0becfe572e5f93536b885563f647e0fc3aa9f7c9077"
            ],
            "index": "pypi",
            "version": "==0.0.70"
        },
        "urllib3": {
            "hashes": [
                "sha256:61bf29cada3fc2fbefad4fdf059ea4bd1b4a86d2b6d15e1c7c0b582b9752fe39",
                "sha256:de9529817c93f27c8ccbfead6985011db27bd0ddfcdb2d86f3f663385c6a9c22"
            ],
            "version": "==1.24.1"
        }
    },
    "develop": {
        "astroid": {
            "hashes": [
                "sha256:35b032003d6a863f5dcd7ec11abd5cd5893428beaa31ab164982403bcb311f22",
                "sha256:6a5d668d7dc69110de01cdf7aeec69a679ef486862a0850cc0fd5571505b6b7e"
            ],
            "version": "==2.1.0"
        },
        "backcall": {
            "hashes": [
                "sha256:38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4",
                "sha256:bbbf4b1e5cd2bdb08f915895b51081c041bac22394fdfcfdfbe9f14b77c08bf2"
            ],
            "version": "==0.1.0"
        },
        "decorator": {
            "hashes": [
                "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82",
                "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c"
            ],
            "version": "==4.3.0"
        },
        "ipython": {
            "hashes": [
                "sha256:6a9496209b76463f1dec126ab928919aaf1f55b38beb9219af3fe202f6bbdd12",
                "sha256:f69932b1e806b38a7818d9a1e918e5821b685715040b48e59c657b3c7961b742"
            ],
            "index": "pypi",
            "version": "==7.2.0"
        },
        "ipython-genutils": {
            "hashes": [
                "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8",
                "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"
            ],
            "version": "==0.2.0"
        },
        "isort": {
            "hashes": [
                "sha256:1153601da39a25b14ddc54955dbbacbb6b2d19135386699e2ad58517953b34af",
                "sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8",
                "sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497"
            ],
            "version": "==4.3.4"
        },
        "jedi": {
            "hashes": [
                "sha256:571702b5bd167911fe9036e5039ba67f820d6502832285cde8c881ab2b2149fd",
                "sha256:c8481b5e59d34a5c7c42e98f6625e633f6ef59353abea6437472c7ec2093f191"
            ],
            "version": "==0.13.2"
        },
        "lazy-object-proxy": {
            "hashes": [
                "sha256:0ce34342b419bd8f018e6666bfef729aec3edf62345a53b537a4dcc115746a33",
                "sha256:1b668120716eb7ee21d8a38815e5eb3bb8211117d9a90b0f8e21722c0758cc39",
                "sha256:209615b0fe4624d79e50220ce3310ca1a9445fd8e6d3572a896e7f9146bbf019",
                "sha256:27bf62cb2b1a2068d443ff7097ee33393f8483b570b475db8ebf7e1cba64f088",
                "sha256:27ea6fd1c02dcc78172a82fc37fcc0992a94e4cecf53cb6d73f11749825bd98b",
                "sha256:2c1b21b44ac9beb0fc848d3993924147ba45c4ebc24be19825e57aabbe74a99e",
                "sha256:2df72ab12046a3496a92476020a1a0abf78b2a7db9ff4dc2036b8dd980203ae6",
                "sha256:320ffd3de9699d3892048baee45ebfbbf9388a7d65d832d7e580243ade426d2b",
                "sha256:50e3b9a464d5d08cc5227413db0d1c4707b6172e4d4d915c1c70e4de0bbff1f5",
                "sha256:5276db7ff62bb7b52f77f1f51ed58850e315154249aceb42e7f4c611f0f847ff",
                "sha256:61a6cf00dcb1a7f0c773ed4acc509cb636af2d6337a08f362413c76b2b47a8dd",
                "sha256:6ae6c4cb59f199d8827c5a07546b2ab7e85d262acaccaacd49b62f53f7c456f7",
                "sha256:7661d401d60d8bf15bb5da39e4dd72f5d764c5aff5a86ef52a042506e3e970ff",
                "sha256:7bd527f36a605c914efca5d3d014170b2cb184723e423d26b1fb2fd9108e264d",
                "sha256:7cb54db3535c8686ea12e9535eb087d32421184eacc6939ef15ef50f83a5e7e2",
                "sha256:7f3a2d740291f7f2c111d86a1c4851b70fb000a6c8883a59660d95ad57b9df35",
                "sha256:81304b7d8e9c824d058087dcb89144842c8e0dea6d281c031f59f0acf66963d4",
                "sha256:933947e8b4fbe617a51528b09851685138b49d511af0b6c0da2539115d6d4514",
                "sha256:94223d7f060301b3a8c09c9b3bc3294b56b2188e7d8179c762a1cda72c979252",
                "sha256:ab3ca49afcb47058393b0122428358d2fbe0408cf99f1b58b295cfeb4ed39109",
                "sha256:bd6292f565ca46dee4e737ebcc20742e3b5be2b01556dafe169f6c65d088875f",
                "sha256:cb924aa3e4a3fb644d0c463cad5bc2572649a6a3f68a7f8e4fbe44aaa6d77e4c",
                "sha256:d0fc7a286feac9077ec52a927fc9fe8fe2fabab95426722be4c953c9a8bede92",
                "sha256:ddc34786490a6e4ec0a855d401034cbd1242ef186c20d79d2166d6a4bd449577",
                "sha256:e34b155e36fa9da7e1b7c738ed7767fc9491a62ec6af70fe9da4a057759edc2d",
                "sha256:e5b9e8f6bda48460b7b143c3821b21b452cb3a835e6bbd5dd33aa0c8d3f5137d",
                "sha256:e81ebf6c5ee9684be8f2c87563880f93eedd56dd2b6146d8a725b50b7e5adb0f",
                "sha256:eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a",
                "sha256:f460d1ceb0e4a5dcb2a652db0904224f367c9b3c1470d5a7683c0480e582468b"
            ],
            "version": "==1.3.1"
        },
        "mccabe": {
            "hashes": [
                "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42",
                "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"
            ],
            "version": "==0.6.1"
        },
        "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"
        },
        "prompt-toolkit": {
            "hashes": [
                "sha256:c1d6aff5252ab2ef391c2fe498ed8c088066f66bc64a8d5c095bbf795d9fec34",
                "sha256:d4c47f79b635a0e70b84fdb97ebd9a274203706b1ee5ed44c10da62755cf3ec9",
                "sha256:fd17048d8335c1e6d5ee403c3569953ba3eb8555d710bfc548faf0712666ea39"
            ],
            "version": "==2.0.7"
        },
        "ptyprocess": {
            "hashes": [
                "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0",
                "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f"
            ],
            "version": "==0.6.0"
        },
        "pygments": {
            "hashes": [
                "sha256:5ffada19f6203563680669ee7f53b64dabbeb100eb51b61996085e99c03b284a",
                "sha256:e8218dd399a61674745138520d0d4cf2621d7e032439341bc3f647bff125818d"
            ],
            "version": "==2.3.1"
        },
        "pylint": {
            "hashes": [
                "sha256:689de29ae747642ab230c6d37be2b969bf75663176658851f456619aacf27492",
                "sha256:771467c434d0d9f081741fec1d64dfb011ed26e65e12a28fe06ca2f61c4d556c"
            ],
            "index": "pypi",
            "version": "==2.2.2"
        },
        "six": {
            "hashes": [
                "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c",
                "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73"
            ],
            "version": "==1.12.0"
        },
        "traitlets": {
            "hashes": [
                "sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835",
                "sha256:c6cb5e6f57c5a9bdaa40fa71ce7b4af30298fbab9ece9815b5d995ab6217c7d9"
            ],
            "version": "==4.3.2"
        },
        "typed-ast": {
            "hashes": [
                "sha256:0555eca1671ebe09eb5f2176723826f6f44cca5060502fea259de9b0e893ab53",
                "sha256:0ca96128ea66163aea13911c9b4b661cb345eb729a20be15c034271360fc7474",
                "sha256:16ccd06d614cf81b96de42a37679af12526ea25a208bce3da2d9226f44563868",
                "sha256:1e21ae7b49a3f744958ffad1737dfbdb43e1137503ccc59f4e32c4ac33b0bd1c",
                "sha256:37670c6fd857b5eb68aa5d193e14098354783b5138de482afa401cc2644f5a7f",
                "sha256:46d84c8e3806619ece595aaf4f37743083f9454c9ea68a517f1daa05126daf1d",
                "sha256:5b972bbb3819ece283a67358103cc6671da3646397b06e7acea558444daf54b2",
                "sha256:6306ffa64922a7b58ee2e8d6f207813460ca5a90213b4a400c2e730375049246",
                "sha256:6cb25dc95078931ecbd6cbcc4178d1b8ae8f2b513ae9c3bd0b7f81c2191db4c6",
                "sha256:7e19d439fee23620dea6468d85bfe529b873dace39b7e5b0c82c7099681f8a22",
                "sha256:7f5cd83af6b3ca9757e1127d852f497d11c7b09b4716c355acfbebf783d028da",
                "sha256:81e885a713e06faeef37223a5b1167615db87f947ecc73f815b9d1bbd6b585be",
                "sha256:94af325c9fe354019a29f9016277c547ad5d8a2d98a02806f27a7436b2da6735",
                "sha256:b1e5445c6075f509d5764b84ce641a1535748801253b97f3b7ea9d948a22853a",
                "sha256:cb061a959fec9a514d243831c514b51ccb940b58a5ce572a4e209810f2507dcf",
                "sha256:cc8d0b703d573cbabe0d51c9d68ab68df42a81409e4ed6af45a04a95484b96a5",
                "sha256:da0afa955865920edb146926455ec49da20965389982f91e926389666f5cf86a",
                "sha256:dc76738331d61818ce0b90647aedde17bbba3d3f9e969d83c1d9087b4f978862",
                "sha256:e7ec9a1445d27dbd0446568035f7106fa899a36f55e52ade28020f7b3845180d",
                "sha256:f741ba03feb480061ab91a465d1a3ed2d40b52822ada5b4017770dfcb88f839f",
                "sha256:fe800a58547dd424cd286b7270b967b5b3316b993d86453ede184a17b5a6b17d"
            ],
            "markers": "python_version < '3.7' and implementation_name == 'cpython'",
            "version": "==1.1.1"
        },
        "wcwidth": {
            "hashes": [
                "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e",
                "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c"
            ],
            "version": "==0.1.7"
        },
        "wrapt": {
            "hashes": [
                "sha256:d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6"
            ],
            "version": "==1.10.11"
        }
    }
}

budziq avatar Dec 20 '18 16:12 budziq

We have implemented a full validation mechanism for both Pipfile and Pipfile.lock in plette, but it is not rolled into pipenv yet.

frostming avatar Dec 21 '18 00:12 frostming

Rather than throwing an error, I prefer to normalize it silently for users.

frostming avatar Dec 21 '18 01:12 frostming

This will be possibly solved with: https://github.com/pypa/pipenv/pull/5339

matteius avatar Sep 16 '22 04:09 matteius