Skip to content

asciitree has no wheels #1370

Closed
Closed
@Carreau

Description

@Carreau

Zarr version

all

Numcodecs version

NA

Python Version

all

Operating System

all

Installation

pip install --only-binary ':all:' zarr

Description

Zarr depends on asciitree, which does not publish wheel.

When trying to install and avoiding tar.gz for various reasons this make it harder to install zarr.

The --only-binary ':all:' is useful in CI to make sure that binary artifact are available for all dependencies and usually to make sure the end user does not need to have a compiler. In some cases, you may want to ensure all your dependencies have wheels as you do not want code execution at install time. Plus, even for python, wheel install is usually faster, and dependency resolution does not need to run setup.py.

Because if depends on asciitree, zarr is one package cannot be installed with --only-binary ':all:' flag, and contaminate all the dependees. (you can use --no-binary asciitree to work around this specific dependency so not critical)

It would be great zarr would only rely on packages that have wheels.

As asciitree seem unmaintained, as author does not resond to issue asking for wheels, nor have seen a commit in 3years.

This is likely because its feature complete?

So solution might be:

  • Vendor asciitree
  • Repackage with wheel under a different package name (but same import name).
  • Custom code.

Steps to reproduce

$ pip install --only-binary ':all:' zarr
Collecting zarr
  Using cached zarr-2.14.2-py3-none-any.whl (203 kB)
  ...
  Using cached zarr-2.5.0-py3-none-any.whl (131 kB)
ERROR: Cannot install zarr==2.10.0, ... zarr==2.9.4 and zarr==2.9.5 because these package versions have conflicting dependencies.

The conflict is caused by:
    zarr 2.14.2 depends on asciitree
    ...
    zarr 2.5.0 depends on asciitree

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

Additional output

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew features or improvements

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions