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

Reply via email to