-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to PrettyTable #82
Comments
Hmm, that's a breaking change to be considered in the next major release. |
I came here to suggest the same thing. Since |
I was just following the implementation of the In the current version of prettytable 2.5.0, the number of dependent packages has increased. https://github.com/jazzband/prettytable/blob/2.5.0/setup.cfg
So, after switching from |
This is a good point... Ideally there wouldn't need to be extra system packages, but I do think that anything that Perhaps the additional dependencies are a motivation to stay with Then there is the extra question of what happens when |
Yes, in the case where
I read a bit about how the dependency was added to I have one idea and solution. That's vendoring original -from prettytable import PrettyTable
+from ._vendor.prettytable import PrettyTable
SYSTEM_PACKAGES = (
__pkgname__,
'pip',
- 'PTable' if PTABLE else 'prettytable',
'setuptools',
'wheel',
) This idea will resolve the dependency of That's the problem with this idea:
|
That is a great idea I hadn't considered. It basically solves two issues because now you don't have to consider it a system package and have the ability to fix an issue if one arises. If there are no issues, then nothing needs to be changed, right? I think this is a great path forward. |
Another similar option would be to fork and release |
distros have policies that require de-vendor packages, because they require separate copyright metadata for each component with different author/copyright/etc. And PTable cant be de-vendored because it clashes with PrettyTable. Note https://pypi.org/project/ptable2/ already exists, and it uses I would suggest vendoring the jazzband PrettyTable , and either removing the extra deps, slightly reducing the functionality, or also vendoring those. I would argue that pip-license needs to be multi-lingual as I (as creator of https://github.com/jayvdb/pypidb) have seen plenty of python package metadata needing wcwidth. But if you are going to vendor, as maintainer of the SUSE pip-licenses, I dont mind if I have to de-vendor PrettyTable - that is doable. There is no clash to worry about. The tool https://pypi.org/project/vendoring/ should be suitable for recursive vendoring, if you want to go down that path. Its warning about not using the tool is effectively repeating what I've said above. |
@jayvdb Thanks for the information. I understand that there is a problem with the installation directory. I usually use a various distro packages and have a lot of respect for the maintainers. In reality, in some distro environments, the combination of pip-licenses and jazzband PrettyTable is broken and does not work as reported in #119. This is a problem we want to solve.
Thanks, I've touched up the vendoring package a bit too. This tool is optimized for pip development, which is a bit over-specified. For example, we do not currently maintain It is a difficult choice whether to vendoring wcwidth as well as a single package... Your advice has been greatly helpful. |
I currently don't have much time to spend on this project, but we need to resolve the issue of dependence on PTable. I get the following message when I Installing collected packages: PTable
DEPRECATION: PTable is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
Running setup.py install for PTable ... done |
Switching to Is that what you think is the best option? |
I agree the best option is to switch to jazzband/prettytable. Much time is needed to realize the migration plan. |
This issue has been resolved in pip-licenses 4.x |
PrettyTable is now maintained by jazzband and a new release is out.
The text was updated successfully, but these errors were encountered: