Giter Site home page Giter Site logo

Comments (4)

pradyunsg avatar pradyunsg commented on June 16, 2024 1

It should, but it doesn't, because... the existing pip resolver doesn't actually do the right thing. :)

pip's resolver is seeing the tablib requirement before the tablib[pandas] requirement, and moving forward with the first one (because the name matches an already-made choice). That's how the old resolver works (it's a bug, yes), it's a really stupid bug but it's fairly tricky to solve correctly in the current approach of the resolver.

We'd fix this in the next-gen resolver for pip though, which is what we're collecting test cases like this here for!

from zazo.

pradyunsg avatar pradyunsg commented on June 16, 2024

Thanks for filing this @atugushev! IIUC, records[pandas] should depend on tablib[pandas], instead of the plain tablib.

from zazo.

ddelange avatar ddelange commented on June 16, 2024

@pradyunsg shouldn't pip actually install pandas when records[pandas] has tablib in install_requires and tablib[pandas] in extras_require (i.e. union of all extras provided by install_requires and any chosen extras_require)?

this combo, of tablib with and without [pandas] should imo correctly result in pandas being installed:

$ pipgrip --tree  --lock records[pandas]==0.5.3

records[pandas]==0.5.3 (0.5.3)
├── docopt (0.6.2)
├── openpyxl<2.5.0 (2.4.11)
│   ├── et-xmlfile (1.0.1)
│   └── jdcal (1.4.1)
├── sqlalchemy (1.3.16)
├── tablib>=0.11.4 (1.1.0)
└── tablib[pandas] (1.1.0)
    └── pandas (1.0.3)
        ├── numpy>=1.13.3 (1.18.2)
        ├── python-dateutil>=2.6.1 (2.8.1)
        │   └── six>=1.5 (1.14.0)
        └── pytz>=2017.2 (2019.3)

$ cat ./pipgrip.lock

records==0.5.3
docopt==0.6.2
openpyxl==2.4.11
et-xmlfile==1.0.1
jdcal==1.4.1
sqlalchemy==1.3.16
tablib==1.1.0
pandas==1.0.3
numpy==1.18.2
python-dateutil==2.8.1
six==1.14.0
pytz==2019.3

from zazo.

atugushev avatar atugushev commented on June 16, 2024

Fixed in the new resolver 👍🏼

from zazo.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.