Teichlab / cellphonedb

MIT License
339 stars 105 forks source link

Missing project documentation on PyPI #269

Closed jma1991 closed 3 years ago

jma1991 commented 3 years ago

I am planning on submitting cellphonedb to the bioconda-recipes repository. I am using conda's skeleton command to pull information from the PyPI repository and automatically build the recipe. However, I am encountering this error:

$ conda skeleton pypi --version 2.1.5 --python-version 3.7 cellphonedb
Using url https://files.pythonhosted.org/packages/fc/8e/d1a7289367e8299218a4a1b3c0e6df2390d56f34c2c3b5b5def70630d517/CellPhoneDB-2.1.5.tar.gz (12.0 MB) for cellphonedb.
Downloading cellphonedb
PyPI URL:  https://files.pythonhosted.org/packages/fc/8e/d1a7289367e8299218a4a1b3c0e6df2390d56f34c2c3b5b5def70630d517/CellPhoneDB-2.1.5.tar.gz
Using cached download
Unpacking cellphonedb...
done
working in /var/folders/5r/s597hc5j3w93_x8_tn57w3g80000gn/T/tmp15ru0injconda_skeleton_CellPhoneDB-2.1.5.tar.gz
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done

## Package Plan ##

  environment location: /opt/miniconda3/conda-bld/skeleton_1613724919243/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold

The following NEW packages will be INSTALLED:

    ca-certificates: 2020.12.5-h033912b_0       conda-forge
    certifi:         2020.12.5-py37hf985489_1   conda-forge
    libcxx:          11.0.1-habf9029_0          conda-forge
    libffi:          3.3-h046ec9c_2             conda-forge
    ncurses:         6.2-h2e338ed_4             conda-forge
    openssl:         1.1.1j-hbcf498f_0          conda-forge
    patch:           2.7.6-hbcf498f_1002        conda-forge
    pip:             21.0.1-pyhd8ed1ab_0        conda-forge
    python:          3.7.9-h7728216_100_cpython conda-forge
    python_abi:      3.7-1_cp37m                conda-forge
    pyyaml:          5.4.1-py37hf967b71_0       conda-forge
    readline:        8.0-h0678c8f_2             conda-forge
    setuptools:      49.6.0-py37hf985489_3      conda-forge
    sqlite:          3.34.0-h17101e1_0          conda-forge
    tk:              8.6.10-h0419947_1          conda-forge
    wheel:           0.36.2-pyhd3deb0d_0        conda-forge
    xz:              5.2.5-haf1e3a3_1           conda-forge
    yaml:            0.2.5-haf1e3a3_0           conda-forge
    zlib:            1.2.11-h7795811_1010       conda-forge

Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done
Applying patch: /var/folders/5r/s597hc5j3w93_x8_tn57w3g80000gn/T/tmp15ru0injconda_skeleton_CellPhoneDB-2.1.5.tar.gz/pypi-distutils.patch
Applying patch: /var/folders/5r/s597hc5j3w93_x8_tn57w3g80000gn/T/tmp15ru0injconda_skeleton_CellPhoneDB-2.1.5.tar.gz/pypi-distutils.patch with args:
['-Np0', '-i', '/var/folders/5r/s597hc5j3w93_x8_tn57w3g80000gn/T/tmpljmli50r/pypi-distutils.patch.native', '--binary']
patching file core.py
Hunk #1 succeeded at 168 with fuzz 2 (offset 1 line).
patching file core.py
Hunk #1 succeeded at 168 with fuzz 2 (offset 1 line).

Leaving build/test directories:
  Work:
 /opt/miniconda3/conda-bld/skeleton_1613724919243/work
  Test:
 /opt/miniconda3/conda-bld/skeleton_1613724919243/test_tmp
Leaving build/test environments:
  Test:
source activate  /opt/miniconda3/conda-bld/skeleton_1613724919243/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac
  Build:
source activate  /opt/miniconda3/conda-bld/skeleton_1613724919243/_build_env

Traceback (most recent call last):
  File "/opt/miniconda3/bin/conda-skeleton", line 11, in <module>
    sys.exit(main())
  File "/opt/miniconda3/lib/python3.8/site-packages/conda_build/cli/main_skeleton.py", line 65, in main
    return execute(sys.argv[1:])
  File "/opt/miniconda3/lib/python3.8/site-packages/conda_build/cli/main_skeleton.py", line 60, in execute
    api.skeletonize(args.packages, args.repo, output_dir=args.output_dir, recursive=args.recursive,
  File "/opt/miniconda3/lib/python3.8/site-packages/conda_build/api.py", line 276, in skeletonize
    skeleton_return = module.skeletonize(packages, output_dir=output_dir, version=version,
  File "/opt/miniconda3/lib/python3.8/site-packages/conda_build/skeletons/pypi.py", line 317, in skeletonize
    get_package_metadata(package, d, data, output_dir, python_version,
  File "/opt/miniconda3/lib/python3.8/site-packages/conda_build/skeletons/pypi.py", line 755, in get_package_metadata
    metadata["summary"] = get_summary(pkginfo)
  File "/opt/miniconda3/lib/python3.8/site-packages/conda_build/skeletons/pypi.py", line 904, in get_summary
    return pkginfo.get("summary", "Summary of the package").replace('"', r'\"')
AttributeError: 'NoneType' object has no attribute 'replace'

From what I can see, the error is caused by the empty summary section of the PyPI repository. Would it possible for someone on the team to flesh out the PyPI repository?

prete commented 3 years ago

I'm pretty sure conda's summary is actually setup.py description and it's there since PR #284