kdeldycke/meta-package-manager

Bar plugin not working because `--plugin-output` results `IndexError`

om4csaba opened this issue · 4 comments

Stack trace:

Traceback (most recent call last):
  File "/opt/homebrew/bin/mpm", line 8, in <module>
    sys.exit(mpm())
  File "/opt/homebrew/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/click_extra/commands.py", line 136, in main
    super().main(*args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/opt/homebrew/lib/python3.9/site-packages/click_extra/commands.py", line 169, in invoke
    return super().invoke(ctx)
  File "/opt/homebrew/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/homebrew/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/homebrew/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/meta_package_manager/cli.py", line 475, in outdated
    BarPluginRenderer().print(outdated_data)
  File "/opt/homebrew/lib/python3.9/site-packages/meta_package_manager/output.py", line 335, in print
    echo(self.render(outdated_data).rstrip())
  File "/opt/homebrew/lib/python3.9/site-packages/meta_package_manager/output.py", line 329, in render
    self._render(outdated_data)
  File "/opt/homebrew/lib/python3.9/site-packages/meta_package_manager/output.py", line 292, in _render
    formatted_lines = self.render_table([p[0] for p in table]).splitlines()
  File "/opt/homebrew/lib/python3.9/site-packages/meta_package_manager/output.py", line 253, in render_table
    return tabulate(
  File "/opt/homebrew/lib/python3.9/site-packages/tabulate.py", line 1601, in tabulate
    aligns[idx] = align
IndexError: list assignment index out of range
❯  mpm --version                                                                                                                                                             
mpm, version 5.0.1
{'username': '-', 'guid': 'a1453dc61817fbe0197fd5eb3607a16', 'hostname': '-', 'hostfqdn': '-', 'uname': {'system': 'Darwin', 'node': '-', 'release': '21.4.0', 'version': 'Darwin Kernel Version 21.4.0: Fri Mar 18 00:46:32 PDT 2022; root:xnu-8020.101.4~15/RELEASE_ARM64_T6000', 'machine': 'arm64', 'processor': 'arm'}, 'linux_dist_name': '', 'linux_dist_version': '', 'cpu_count': 10, 'fs_encoding': 'utf-8', 'ulimit_soft': 256, 'ulimit_hard': 9223372036854775807, 'cwd': '-', 'umask': '0o2', 'python': {'argv': '-', 'bin': '-', 'version': '3.9.12 (main, Mar 26 2022, 15:44:31) [Clang 13.1.6 (clang-1316.0.21.2)]', 'compiler': 'Clang 13.1.6 (clang-1316.0.21.2)', 'build_date': 'Mar 26 2022 15:44:31', 'version_info': [3, 9, 12, 'final', 0], 'features': {'openssl': 'OpenSSL 1.1.1n  15 Mar 2022', 'expat': 'expat_2.4.1', 'sqlite': '3.38.3', 'tkinter': '', 'zlib': '1.2.11', 'unicode_wide': True, 'readline': True, '64bit': True, 'ipv6': True, 'threading': True, 'urandom': True}}, 'time_utc': '2022-04-29 07:40:19.308844', 'time_utc_offset': 8.0, '_eco_version': '1.0.1'}
Click for output of mpm --verbosity DEBUG outdated --plugin-output
debug: Verbosity set to DEBUG.
debug: Search for configuration in default location...
debug: No default configuration found.
debug: No configuration provided.
debug: mpm, version 5.0.1
debug: {'username': '-', 'guid': '113bb2d6d51fd6e52078d4e09f9ca57', 'hostname': '-', 'hostfqdn': '-', 'uname': {'system': 'Darwin', 'node': '-', 'release': '21.4.0', 'version': 'Darwin Kernel Version 21.4.0: Fri Mar 18 00:46:32 PDT 2022; root:xnu-8020.101.4~15/RELEASE_ARM64_T6000', 'machine': 'arm64', 'processor': 'arm'}, 'linux_dist_name': '', 'linux_dist_version': '', 'cpu_count': 10, 'fs_encoding': 'utf-8', 'ulimit_soft': 256, 'ulimit_hard': 9223372036854775807, 'cwd': '-', 'umask': '0o2', 'python': {'argv': '-', 'bin': '-', 'version': '3.9.12 (main, Mar 26 2022, 15:44:31) [Clang 13.1.6 (clang-1316.0.21.2)]', 'compiler': 'Clang 13.1.6 (clang-1316.0.21.2)', 'build_date': 'Mar 26 2022 15:44:31', 'version_info': [3, 9, 12, 'final', 0], 'features': {'openssl': 'OpenSSL 1.1.1n  15 Mar 2022', 'expat': 'expat_2.4.1', 'sqlite': '3.38.3', 'tkinter': '', 'zlib': '1.2.11', 'unicode_wide': True, 'readline': True, '64bit': True, 'ipv6': True, 'threading': True, 'urandom': True}}, 'time_utc': '2022-04-29 07:34:15.548680', 'time_utc_offset': 8.0, '_eco_version': '1.0.1'}
debug: apm CLI not found.
debug: apm is supported: True; found at: None; is executable: False; is fresh: False.
warning: Skip unavailable apm manager.
debug: brew CLI found at /opt/homebrew/bin/brew
debug: ► HOMEBREW_NO_ANALYTICS=1 HOMEBREW_NO_ENV_HINTS=1 HOMEBREW_NO_AUTO_UPDATE=1 /opt/homebrew/bin/brew --version
debug:   Homebrew 3.4.9
debug:   Homebrew/homebrew-core (git revision 4127b1601d8; last commit 2022-04-29)
debug:   Homebrew/homebrew-cask (git revision f21b2074c8; last commit 2022-04-29)
debug: Extracted version: '3.4.9'
debug: Parsed version: <TokenizedString 3.4.9 => (<Token:string='3',integer=3>, <Token:string='4',integer=4>, <Token:string='9',integer=9>)>
debug: brew is supported: True; found at: /opt/homebrew/bin/brew; is executable: True; is fresh: True.
debug: ► HOMEBREW_NO_ANALYTICS=1 HOMEBREW_NO_ENV_HINTS=1 HOMEBREW_NO_AUTO_UPDATE=1 /opt/homebrew/bin/brew outdated --json=v2 --formula
debug:   {
debug:     "formulae": [
debug:
debug:     ],
debug:     "casks": [
debug:
debug:     ]
debug:   }
debug: brew CLI found at /opt/homebrew/bin/brew
debug: ► HOMEBREW_NO_ANALYTICS=1 HOMEBREW_NO_ENV_HINTS=1 HOMEBREW_NO_AUTO_UPDATE=1 /opt/homebrew/bin/brew --version
debug:   Homebrew 3.4.9
debug:   Homebrew/homebrew-core (git revision 4127b1601d8; last commit 2022-04-29)
debug:   Homebrew/homebrew-cask (git revision f21b2074c8; last commit 2022-04-29)
debug: Extracted version: '3.4.9'
debug: Parsed version: <TokenizedString 3.4.9 => (<Token:string='3',integer=3>, <Token:string='4',integer=4>, <Token:string='9',integer=9>)>
debug: cask is supported: True; found at: /opt/homebrew/bin/brew; is executable: True; is fresh: True.
debug: ► HOMEBREW_NO_ANALYTICS=1 HOMEBREW_NO_ENV_HINTS=1 HOMEBREW_NO_AUTO_UPDATE=1 /opt/homebrew/bin/brew outdated --json=v2 --cask
debug:   {
debug:     "formulae": [
debug:
debug:     ],
debug:     "casks": [
debug:
debug:     ]
debug:   }
debug: composer CLI found at /opt/homebrew/bin/composer
debug: ► /opt/homebrew/bin/composer --version
debug:   Composer version 2.3.5 2022-04-13 16:43:00
debug: Extracted version: '2.3.5'
debug: Parsed version: <TokenizedString 2.3.5 => (<Token:string='2',integer=2>, <Token:string='3',integer=3>, <Token:string='5',integer=5>)>
debug: composer is supported: True; found at: /opt/homebrew/bin/composer; is executable: True; is fresh: True.
debug: ► /opt/homebrew/bin/composer global outdated --format=json
debug:   {
debug:       "installed": []
debug:   }
warning:   Changed current directory to ::dredacted::/.composer
warning:   Info from https://repo.packagist.org: #StandWithUkraine
debug: gem CLI found at /opt/homebrew/opt/ruby/bin/gem
debug: ► /opt/homebrew/opt/ruby/bin/gem --version
debug:   3.3.11
debug: Extracted version: '3.3.11'
debug: Parsed version: <TokenizedString 3.3.11 => (<Token:string='3',integer=3>, <Token:string='3',integer=3>, <Token:string='11',integer=11>)>
debug: gem is supported: True; found at: /opt/homebrew/opt/ruby/bin/gem; is executable: True; is fresh: True.
debug: ► /opt/homebrew/opt/ruby/bin/gem outdated --quiet
debug: mas CLI not found.
debug: mas is supported: True; found at: None; is executable: False; is fresh: False.
warning: Skip unavailable mas manager.
debug: npm CLI found at /opt/homebrew/bin/npm
debug: ► /opt/homebrew/bin/npm --version
debug:   8.8.0
debug: Extracted version: '8.8.0'
debug: Parsed version: <TokenizedString 8.8.0 => (<Token:string='8',integer=8>, <Token:string='8',integer=8>, <Token:string='0',integer=0>)>
debug: npm is supported: True; found at: /opt/homebrew/bin/npm; is executable: True; is fresh: True.
debug: ► /opt/homebrew/bin/npm --global --progress=false --json --no-update-notifier outdated
debug:   {}
debug: python3 CLI found at /opt/homebrew/bin/python3
debug: ► /opt/homebrew/bin/python3 -m pip --no-color --version
debug:   pip 22.0.4 from /opt/homebrew/lib/python3.9/site-packages/pip (python 3.9)
debug: Extracted version: '22.0.4'
debug: Parsed version: <TokenizedString 22.0.4 => (<Token:string='22',integer=22>, <Token:string='0',integer=0>, <Token:string='4',integer=4>)>
debug: pip is supported: True; found at: /opt/homebrew/bin/python3; is executable: True; is fresh: True.
debug: ► /opt/homebrew/bin/python3 -m pip --no-color list --format=json --outdated --verbose --quiet
debug:   [{"name": "lark-parser", "version": "0.7.8", "location": "/opt/homebrew/lib/python3.9/site-packages", "installer": "pip", "latest_version": "0.12.0", "latest_filetype": "wheel"}, {"name": "Pygments", "version": "2.11.2", "location": "/opt/homebrew/lib/python3.9/site-packages", "installer": "pip", "latest_version": "2.12.0", "latest_filetype": "wheel"}, {"name": "pymdown-extensions", "version": "9.3", "location": "/opt/homebrew/lib/python3.9/site-packages", "installer": "pip", "latest_version": "9.4", "latest_filetype": "wheel"}]
warning: pip does not implement upgrade_all command.
debug: Fallback to direct mpm call: ('/opt/homebrew/bin/mpm', '--pip', 'upgrade')
debug: steamcmd CLI not found.
debug: steamcmd is supported: True; found at: None; is executable: False; is fresh: False.
warning: Skip unavailable steamcmd manager.
debug: code CLI found at /opt/homebrew/bin/code
debug: ► /opt/homebrew/bin/code --version
debug:   1.66.2
debug:   dfd34e8260c270da74b5c2d86d61aee4b6d56977
debug:   arm64
debug: Extracted version: '1.66.2'
debug: Parsed version: <TokenizedString 1.66.2 => (<Token:string='1',integer=1>, <Token:string='66',integer=66>, <Token:string='2',integer=2>)>
debug: vscode is supported: True; found at: /opt/homebrew/bin/code; is executable: True; is fresh: True.
warning: vscode does not implement outdated command.
debug: yarn CLI not found.
debug: yarn is supported: True; found at: None; is executable: False; is fresh: False.
warning: Skip unavailable yarn manager.
Traceback (most recent call last):
  File "/opt/homebrew/bin/mpm", line 8, in <module>
    sys.exit(mpm())
  File "/opt/homebrew/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/click_extra/commands.py", line 136, in main
    super().main(*args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/opt/homebrew/lib/python3.9/site-packages/click_extra/commands.py", line 169, in invoke
    return super().invoke(ctx)
  File "/opt/homebrew/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/homebrew/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/homebrew/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/opt/homebrew/lib/python3.9/site-packages/meta_package_manager/cli.py", line 475, in outdated
    BarPluginRenderer().print(outdated_data)
  File "/opt/homebrew/lib/python3.9/site-packages/meta_package_manager/output.py", line 335, in print
    echo(self.render(outdated_data).rstrip())
  File "/opt/homebrew/lib/python3.9/site-packages/meta_package_manager/output.py", line 329, in render
    self._render(outdated_data)
  File "/opt/homebrew/lib/python3.9/site-packages/meta_package_manager/output.py", line 292, in _render
    formatted_lines = self.render_table([p[0] for p in table]).splitlines()
  File "/opt/homebrew/lib/python3.9/site-packages/meta_package_manager/output.py", line 253, in render_table
    return tabulate(
  File "/opt/homebrew/lib/python3.9/site-packages/tabulate.py", line 1601, in tabulate
    aligns[idx] = align
IndexError: list assignment index out of range
Click for output of mpm --verbosity DEBUG --all-managers managers
debug: Verbosity set to DEBUG.
debug: Search for configuration in default location...
debug: No default configuration found.
debug: No configuration provided.
debug: mpm, version 5.0.1
debug: {'username': '-', 'guid': 'cedacb7e220ee9a9dfea5db43386e68', 'hostname': '-', 'hostfqdn': '-', 'uname': {'system': 'Darwin', 'node': '-', 'release': '21.4.0', 'version': 'Darwin Kernel Version 21.4.0: Fri Mar 18 00:46:32 PDT 2022; root:xnu-8020.101.4~15/RELEASE_ARM64_T6000', 'machine': 'arm64', 'processor': 'arm'}, 'linux_dist_name': '', 'linux_dist_version': '', 'cpu_count': 10, 'fs_encoding': 'utf-8', 'ulimit_soft': 256, 'ulimit_hard': 9223372036854775807, 'cwd': '-', 'umask': '0o2', 'python': {'argv': '-', 'bin': '-', 'version': '3.9.12 (main, Mar 26 2022, 15:44:31) [Clang 13.1.6 (clang-1316.0.21.2)]', 'compiler': 'Clang 13.1.6 (clang-1316.0.21.2)', 'build_date': 'Mar 26 2022 15:44:31', 'version_info': [3, 9, 12, 'final', 0], 'features': {'openssl': 'OpenSSL 1.1.1n  15 Mar 2022', 'expat': 'expat_2.4.1', 'sqlite': '3.38.3', 'tkinter': '', 'zlib': '1.2.11', 'unicode_wide': True, 'readline': True, '64bit': True, 'ipv6': True, 'threading': True, 'urandom': True}}, 'time_utc': '2022-04-29 07:35:18.500556', 'time_utc_offset': 8.0, '_eco_version': '1.0.1'}
debug: apm CLI not found.
debug: apt CLI found at /usr/bin/apt
debug: ► /usr/bin/apt --version
error:   The operation couldn’t be completed. Unable to locate a Java Runtime.
error:   Please visit http://www.java.com for information on installing Java.
debug: apt CLI found at /usr/bin/apt
debug: ► /usr/bin/apt version apt
error:   The operation couldn’t be completed. Unable to locate a Java Runtime.
error:   Please visit http://www.java.com for information on installing Java.
debug: brew CLI found at /opt/homebrew/bin/brew
debug: ► HOMEBREW_NO_ANALYTICS=1 HOMEBREW_NO_ENV_HINTS=1 HOMEBREW_NO_AUTO_UPDATE=1 /opt/homebrew/bin/brew --version
debug:   Homebrew 3.4.9
debug:   Homebrew/homebrew-core (git revision 4127b1601d8; last commit 2022-04-29)
debug:   Homebrew/homebrew-cask (git revision f21b2074c8; last commit 2022-04-29)
debug: Extracted version: '3.4.9'
debug: Parsed version: <TokenizedString 3.4.9 => (<Token:string='3',integer=3>, <Token:string='4',integer=4>, <Token:string='9',integer=9>)>
debug: brew CLI found at /opt/homebrew/bin/brew
debug: ► HOMEBREW_NO_ANALYTICS=1 HOMEBREW_NO_ENV_HINTS=1 HOMEBREW_NO_AUTO_UPDATE=1 /opt/homebrew/bin/brew --version
debug:   Homebrew 3.4.9
debug:   Homebrew/homebrew-core (git revision 4127b1601d8; last commit 2022-04-29)
debug:   Homebrew/homebrew-cask (git revision f21b2074c8; last commit 2022-04-29)
debug: Extracted version: '3.4.9'
debug: Parsed version: <TokenizedString 3.4.9 => (<Token:string='3',integer=3>, <Token:string='4',integer=4>, <Token:string='9',integer=9>)>
debug: choco CLI not found.
debug: composer CLI found at /opt/homebrew/bin/composer
debug: ► /opt/homebrew/bin/composer --version
debug:   Composer version 2.3.5 2022-04-13 16:43:00
debug: Extracted version: '2.3.5'
debug: Parsed version: <TokenizedString 2.3.5 => (<Token:string='2',integer=2>, <Token:string='3',integer=3>, <Token:string='5',integer=5>)>
debug: dnf CLI not found.
debug: emerge CLI not found.
debug: flatpak CLI not found.
debug: gem CLI found at /opt/homebrew/opt/ruby/bin/gem
debug: ► /opt/homebrew/opt/ruby/bin/gem --version
debug:   3.3.11
debug: Extracted version: '3.3.11'
debug: Parsed version: <TokenizedString 3.3.11 => (<Token:string='3',integer=3>, <Token:string='3',integer=3>, <Token:string='11',integer=11>)>
debug: mas CLI not found.
debug: npm CLI found at /opt/homebrew/bin/npm
debug: ► /opt/homebrew/bin/npm --version
debug:   8.8.0
debug: Extracted version: '8.8.0'
debug: Parsed version: <TokenizedString 8.8.0 => (<Token:string='8',integer=8>, <Token:string='8',integer=8>, <Token:string='0',integer=0>)>
debug: opkg CLI not found.
debug: pacman CLI not found.
debug: python3 CLI found at /opt/homebrew/bin/python3
debug: ► /opt/homebrew/bin/python3 -m pip --no-color --version
debug:   pip 22.0.4 from /opt/homebrew/lib/python3.9/site-packages/pip (python 3.9)
debug: Extracted version: '22.0.4'
debug: Parsed version: <TokenizedString 22.0.4 => (<Token:string='22',integer=22>, <Token:string='0',integer=0>, <Token:string='4',integer=4>)>
debug: snap CLI not found.
debug: steamcmd CLI not found.
debug: code CLI found at /opt/homebrew/bin/code
debug: ► /opt/homebrew/bin/code --version
debug:   1.66.2
debug:   dfd34e8260c270da74b5c2d86d61aee4b6d56977
debug:   arm64
debug: Extracted version: '1.66.2'
debug: Parsed version: <TokenizedString 1.66.2 => (<Token:string='1',integer=1>, <Token:string='66',integer=66>, <Token:string='2',integer=2>)>
debug: yarn CLI not found.
debug: yum CLI not found.
debug: zypper CLI not found.
╭────────────────────┬──────────┬────────────────┬──────────────────────────────────┬────────────┬──────────╮
│ Package manager    │ ID       │ Supported      │ CLI                              │ Executable │ Version  │
├────────────────────┼──────────┼────────────────┼──────────────────────────────────┼────────────┼──────────┤
│ Atom's apm         │ apm      │ ✓              │ ✘ apm not found                  │            │          │
│ APT                │ apt      │ ✘ Linux only   │ ✓ /usr/bin/apt                   │ ✓          │ ✘        │
│ Linux Mint's apt   │ apt-mint │ ✘ Linux only   │ ✓ /usr/bin/apt                   │ ✓          │ ✘        │
│ Homebrew Formulae  │ brew     │ ✓              │ ✓ /opt/homebrew/bin/brew         │ ✓          │ ✓ 3.4.9  │
│ Homebrew Cask      │ cask     │ ✓              │ ✓ /opt/homebrew/bin/brew         │ ✓          │ ✓ 3.4.9  │
│ Chocolatey         │ choco    │ ✘ Windows only │ ✘ choco not found                │            │          │
│ PHP's Composer     │ composer │ ✓              │ ✓ /opt/homebrew/bin/composer     │ ✓          │ ✓ 2.3.5  │
│ DNF                │ dnf      │ ✘ Linux only   │ ✘ dnf not found                  │            │          │
│ Emerge             │ emerge   │ ✘ Linux only   │ ✘ emerge not found               │            │          │
│ Flatpak            │ flatpak  │ ✘ Linux only   │ ✘ flatpak not found              │            │          │
│ Ruby Gems          │ gem      │ ✓              │ ✓ /opt/homebrew/opt/ruby/bin/gem │ ✓          │ ✓ 3.3.11 │
│ Mac AppStore       │ mas      │ ✓              │ ✘ mas not found                  │            │          │
│ Node's npm         │ npm      │ ✓              │ ✓ /opt/homebrew/bin/npm          │ ✓          │ ✓ 8.8.0  │
│ OPKG               │ opkg     │ ✘ Linux only   │ ✘ opkg not found                 │            │          │
│ Pacman             │ pacman   │ ✘ Linux only   │ ✘ pacman not found               │            │          │
│ Pip                │ pip      │ ✓              │ ✓ /opt/homebrew/bin/python3      │ ✓          │ ✓ 22.0.4 │
│ Snap               │ snap     │ ✘ Linux only   │ ✘ snap not found                 │            │          │
│ SteamCMD           │ steamcmd │ ✓              │ ✘ steamcmd not found             │            │          │
│ Visual Studio Code │ vscode   │ ✓              │ ✓ /opt/homebrew/bin/code         │ ✓          │ ✓ 1.66.2 │
│ Node's yarn        │ yarn     │ ✓              │ ✘ yarn not found                 │            │          │
│ YUM                │ yum      │ ✘ Linux only   │ ✘ yum not found                  │            │          │
│ Zypper             │ zypper   │ ✘ Linux only   │ ✘ zypper not found               │            │          │
╰────────────────────┴──────────┴────────────────┴──────────────────────────────────┴────────────┴──────────╯

Yes, I can confirm the issue. I observed it on my machine too.

I realized my little arithmetics around table-like rendering for Xbar/SwiftBar are not bullet-proof. I'll try to fix it for the next release of mpm.

Sorry @om4csaba for the delay. I just fixed the bug upstream and it will be part of the upcoming mpm v5.3.0 release.

Hi @kdeldycke, thanks for the update. It works like a charm 👍

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.