defnull / multipart

A fast multipart/form-data parser for python
https://multipart.readthedocs.io/
MIT License
135 stars 33 forks source link

Package doesn't declare Python version compatibility #31

Closed jaraco closed 2 years ago

jaraco commented 3 years ago

Attempting to pip install multipart on Python 2 downloads 0.2.4 and crashes:

$ python2.7 -m pip install multipart
Defaulting to user installation because normal site-packages is not writeable
Collecting multipart
  Using cached multipart-0.2.4.tar.gz (22 kB)
    ERROR: Command errored out with exit status 1:
     command: /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pip-install-VSuha5/multipart/setup.py'"'"'; __file__='"'"'/private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pip-install-VSuha5/multipart/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pip-pip-egg-info-NCyLV4
         cwd: /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pip-install-VSuha5/multipart/
    Complete output (7 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pip-install-VSuha5/multipart/setup.py", line 7, in <module>
        from multipart import __version__, __author__, __license__, __doc__
      File "multipart.py", line 22, in <module>
        from urllib.parse import parse_qs
    ImportError: No module named parse
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Ideally, this project would present python_requires to indicate the supported Python versions such that PyPI could include that metadata and pip could exclude invalid versions. At the very least, adding this metadata will help future Python versions navigate the supported versions. I'd also suggest after releasing a fix to "yank" the earlier 0.2.x releases so that they're not presented by default (but still downloadable if explicitly requested) so that pip install multipart works on Python 2 and 3 without pinning any versions.

jaraco commented 3 years ago

More detail on the process is documented here.

cjwatson commented 3 years ago

This plan seems reasonable to me. However, while I can make releases, I don't have permissions to yank existing ones, so @defnull would have to approve this.