Description
Unstructured's setup.py
contains this line:
python_requires=">=3.9.0,<3.13",
which causes no end of problems when people want to use Unstructured as a library, and also want to use other libraries at the same time. It also wastes a lot of bandwidth. This is particularly problematic when using Poetry.
For why you should not do this: https://iscinumpy.dev/post/bound-version-constraints/#pinning-the-python-version-is-special
And, if you use Poetry, as soon as someone caps the Python version, every Poetry project that uses it must also cap, even if you believe it is a detestable practice and confusing to users. It is also wrong unless you fully pin the dependency that forced the cap - if the dependency drops it in a patch release or something else you support, you no longer would need the cap. Even worse, if someone adds a cap or tightens a cap, unless they yank every single older release, a locking solver like Poetry or PDM will backsolve to the last versions without the cap so that the lock file it creates will be “valid” on all the Python versions you are requesting!