toabctl / metaextract

get metadata for python modules
Apache License 2.0
7 stars 4 forks source link

TypeError: Object of type SpecifierSet is not JSON serializable #11

Closed jayvdb closed 4 years ago

jayvdb commented 4 years ago

Sometimes, version fields are now SpecifierSet. See https://github.com/dephell/dephell/pull/285 and https://github.com/pypa/setuptools/issues/1889 also related.

> metaextract setuptools-41.4.0.zip 
Traceback (most recent call last):
  File "setup.py", line 149, in <module>
    dist = setuptools.setup(**setup_params)
  File "/tmp/metaextract_ph4xpq3m/setuptools-41.4.0/setuptools/__init__.py", line 145, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib64/python3.7/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib64/python3.7/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/python3.7/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.7/site-packages/metaextract/metaextract.py", line 85, in run
    sort_keys=True))
  File "/usr/lib64/python3.7/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/usr/lib64/python3.7/json/encoder.py", line 201, in encode
    chunks = list(chunks)
  File "/usr/lib64/python3.7/json/encoder.py", line 431, in _iterencode
    yield from _iterencode_dict(o, _current_indent_level)
  File "/usr/lib64/python3.7/json/encoder.py", line 405, in _iterencode_dict
    yield from chunks
  File "/usr/lib64/python3.7/json/encoder.py", line 405, in _iterencode_dict
    yield from chunks
  File "/usr/lib64/python3.7/json/encoder.py", line 438, in _iterencode
    o = _default(o)
  File "/usr/lib64/python3.7/json/encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type SpecifierSet is not JSON serializable