alanhamlett/pip-update-requirements

Invalid literal for int

bpereto opened this issue · 1 comments

Hi, awesome stuff.

Some findings...

pur -p "*" throws some error on Django, because there is a Django Version 1.8a1

Traceback (most recent call last):
  File "/devel/project/.venv/bin/pur", line 11, in <module>
    load_entry_point('pur==5.2.0', 'console_scripts', 'pur')()
  File "/devel/project/.venv/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/devel/project/.venv/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/devel/project/.venv/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/devel/project/.venv/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/__init__.py", line 119, in pur
    echo=options['echo'],
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/__init__.py", line 178, in update_requirements
    echo=echo)
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/__init__.py", line 207, in _internal_update_requirements
    for line, req, spec_ver, latest_ver in requirements:
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/__init__.py", line 346, in _get_requirements_and_latest
    minor=minor, patch=patch, pre=pre)
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/utils.py", line 168, in latest_version
    all_candidates = [c for c in all_candidates
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/utils.py", line 169, in <listcomp>
    if less_than(c.version, spec_ver[0], patch=True)]
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/utils.py", line 320, in less_than
    new_minor = int((new_ver[1] if len(new_ver) > 1 else 0) or 0)
ValueError: invalid literal for int() with base 10: '8a1'

pur -m "*" throws some error on pytz, because there is a Pytz Version 2004d:

Traceback (most recent call last):
  File "/devel/project/.venv/bin/pur", line 11, in <module>
    load_entry_point('pur==5.2.0', 'console_scripts', 'pur')()
  File "/devel/project/.venv/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/devel/project/.venv/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/devel/project/.venv/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/devel/project/.venv/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/__init__.py", line 119, in pur
    echo=options['echo'],
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/__init__.py", line 178, in update_requirements
    echo=echo)
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/__init__.py", line 207, in _internal_update_requirements
    for line, req, spec_ver, latest_ver in requirements:
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/__init__.py", line 346, in _get_requirements_and_latest
    minor=minor, patch=patch, pre=pre)
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/utils.py", line 172, in latest_version
    all_candidates = [c for c in all_candidates
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/utils.py", line 173, in <listcomp>
    if less_than(c.version, spec_ver[0])]
  File "/devel/project/.venv/lib/python3.7/site-packages/pur/utils.py", line 315, in less_than
    new_major = int(new_ver[0] or 0)
ValueError: invalid literal for int() with base 10: '2004d'

My requirements.txt to test with:

billiard==3.5.0.3
celery==4.2.0rc2
Django==1.11.11
django-filter==1.0.4
djangorestframework==3.7.7
kombu==4.1.0
packaging==16.8
python-pushover==0.3
pytz==2018.3
redis==2.10.6
requests==2.18.4
six==1.11.0
psycopg2

Fixes with 00a7848 and released in v5.2.1.