Comments (6)
I messed up with PyPI. I have just released version 4.0.9 which is identical to 4.0.7 and 4.0.8 but has the right name.
from decorator.
Unfortunately the new dependency solver in pip introduced in 20.3 chokes on this mispackaging.
It made the installation of Spyder fail: spyder-ide/spyder#14365
It would be best if you "yank" those releases to let pip know it is better to not use these, but don't break other people's build that have pinned this:
https://www.python.org/dev/peps/pep-0592/
from decorator.
I did not know about "yanking". It is a very useful feature indeed. Thanks for pointing the issue out, version 4.0.7 is yanked now.
from decorator.
Well, "yanking" did not exist in 2016! But you forgot to yank 4.0.8 as well.
from decorator.
I did not forget, 4.0.8 was even more broken, with the files missing on PyPI, so I just removed it. BTW, I do not understand why spyder is using a version of 4 years ago, given that there are newer versions totally compatible with the past. I guess it is IPython or numpy or some other of your dependencies which is listing explicitly an old version of the module.
from decorator.
Ah.. pip seems indeed to install this correctly. So thank you!
The problem is not that pip chooses to install such an old version, but it seems it wants to introspect all possible versions for a package to decide and than to install what is the best one to install.
And well, as far as I could see by inspecting the dependency tree of Spyder none of the dependencies specify any version of this package explicitly. So, any dependency resolver should just install the latest version instead. However, the new dependency resolver of pip seemingly does not have this shortcut build in. (They hopefully do that in the future.)
So, it goes ahead and introspects all possible versions anyway. Which include downloading it all en verifying them apparently.
And seemingly it will just completely abort mission if any of the old versions are mispackaged. Would have been better if it just skips those I guess, but hopefully another thing that will be included. Additionally, I would presume that a dependency resolver does not have to go trough years of old packages. It should just loop over the newest versions and stop immediately if any of the newest versions suffices the requirements.
from decorator.
Related Issues (20)
- pylint warning W1113: keyword-arg-before-vararg HOT 1
- Regression in 5.1.0 - decorator.contextmanager no longer compat with contextlib.contextmanager HOT 4
- `FunctionMaker.create()` fails when given a function definition with a return type annotation. HOT 1
- Functionmaker.create (from doc example) fails with kwarg-only functions HOT 6
- `FunctionMaker.create` raises unexpected SyntaxError when return is present as substring for async function
- How to make `@decorator` with other decorators? HOT 3
- TypeError: missing 1 required positional argument HOT 1
- <=3.4.2 can't be installed with modern setuptools HOT 2
- Continuous fuzzing by way of OSS-Fuzz
- compatibility issue with kwargs HOT 2
- Not preserving low level signature metadada HOT 1
- decorator whether to support decorator partial functions?
- Confusion about license using HOT 1
- Making __name__ optional attribute of decorated-function if underlying function is missing it. HOT 3
- Compatibility with Python 3.12 - RuntimeError: There is no current event loop in thread 'MainThread'.
- Unable to pull 4.4.2 from the repo only pulls in 4.2.1 HOT 1
- [BUG] kwargs are not respected HOT 3
- Create SECURITY.md
- Create a decorator for both sync and async function HOT 1
- Erroneous `%` ? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from decorator.