Hi, I hope my 2 cents help.
On Tue, 04 Feb 2025 18:57:17 +0000 Markus Koller <mar...@snafu.ch> wrote:
Package: visidata Version: 3.0.2-1 Severity: important Dear Maintainer, The wrapper in /usr/bin/vd stopped working and now fails with this error: Traceback (most recent call last): File "/usr/bin/vd", line 6, in <module> visidata.main.vd_cli() ^^^^^^^^^^^^^^^^^^^^ AttributeError: 'function' object has no attribute 'vd_cli' This bug was probably introduced with the recent 3.0.2-1 update. I couldn't find any upstream issues so I assume it's a packaging problem.
This is likely a bug in upstream, although I did not see any related issue: installing version 3.0.2 from PyPI in a venv shows the same buggy behavior.
The file /usr/lib/python3/dist-packages/visidata/main.py does have a 'vd_cli' method, so I'm not sure what's going on.
I think it's a symbol shadowing issue. The `main` symbol is resolved as the `main` function from `random`. One can observe this as follows: $ python >>> import visidata.main >>> type(visidata.main) <class 'function'> >>> import inspect >>> inspect.getfile(visidata.main) '/usr/lib/python3.13/random.py'
Also /usr/bin/visidata still works fine, but I figured I'd set the severity to Important because I assume many users only call 'vd' and may not be aware of the alternative 'visidata' command. Which also makes me wonder if 'vd' could/should just be a symlink to 'visidata' :)
This looks like it has been addressed in newer version of visidata, as the imports have been reworked (see https://github.com/saulpw/visidata/commit/85ddd768258c7dab2c95fa9fc79432e558d0c021).
Installing the new version (3.1.1 as of today) in a venv works fine. Raphaël