Skip to content
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

Add Valkey support #175

Merged
merged 1 commit into from
Aug 12, 2024
Merged

Add Valkey support #175

merged 1 commit into from
Aug 12, 2024

Conversation

zzzeek
Copy link
Contributor

@zzzeek zzzeek commented Aug 7, 2024

This is a copy of redis with names changed for Valkey.

installing pifpaf under modern environments requires that #176 and #177 are fixed first.

Valkey is a fork of Redis that is growing extremely fast in popularity with the support of heavy hitters like AWS, Google, Oracle, and others.

To implement this, I added an entirely new driver, rather than trying to add options to the existing redis driver. this way the two drivers can be developed independently if/when redis / valkey start to diverge.

jd
jd previously approved these changes Aug 8, 2024
Copy link
Owner

@jd jd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

setup.cfg Outdated
Comment on lines 22 to 24
packages = find_namespace:
include_package_data = true
zip_safe = false
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd so a second pr for this

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this needed? we dont ship any package data that is not python?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is the whole templates folder that seems to have ".inc" files

image

im not a setuptools expert however the way the file was before, with current tooling the entire "drivers" folder does not get installed

here's the demo, install from github master

[classic@framework tmp]$ python -V
Python 3.12.4
[classic@framework tmp]$ python -m venv .venv
[classic@framework tmp]$ .venv/bin/pip install git+https://github.com/jd/pifpaf/ 
Collecting git+https://github.com/jd/pifpaf/
  Cloning https://github.com/jd/pifpaf/ to /tmp/pip-req-build-857aijje
  Running command git clone --filter=blob:none --quiet https://github.com/jd/pifpaf/ /tmp/pip-req-build-857aijje
  Resolved https://github.com/jd/pifpaf/ to commit d37bae254a627c0aef2e760b697336080193681f
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting daiquiri (from pifpaf==3.1.6.dev46+gd37bae2)
  Using cached daiquiri-3.2.5.1-py3-none-any.whl.metadata (1.6 kB)
Collecting click (from pifpaf==3.1.6.dev46+gd37bae2)
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting jinja2 (from pifpaf==3.1.6.dev46+gd37bae2)
  Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting fixtures (from pifpaf==3.1.6.dev46+gd37bae2)
  Using cached fixtures-4.1.0-py3-none-any.whl.metadata (21 kB)
Collecting packaging (from pifpaf==3.1.6.dev46+gd37bae2)
  Using cached packaging-24.1-py3-none-any.whl.metadata (3.2 kB)
Collecting psutil (from pifpaf==3.1.6.dev46+gd37bae2)
  Using cached psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (21 kB)
Collecting xattr (from pifpaf==3.1.6.dev46+gd37bae2)
  Using cached xattr-1.1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.8 kB)
Collecting python-json-logger (from daiquiri->pifpaf==3.1.6.dev46+gd37bae2)
  Using cached python_json_logger-2.0.7-py3-none-any.whl.metadata (6.5 kB)
Collecting pbr>=5.7.0 (from fixtures->pifpaf==3.1.6.dev46+gd37bae2)
  Using cached pbr-6.0.0-py2.py3-none-any.whl.metadata (1.3 kB)
Collecting MarkupSafe>=2.0 (from jinja2->pifpaf==3.1.6.dev46+gd37bae2)
  Using cached MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)
Collecting cffi>=1.16.0 (from xattr->pifpaf==3.1.6.dev46+gd37bae2)
  Using cached cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting pycparser (from cffi>=1.16.0->xattr->pifpaf==3.1.6.dev46+gd37bae2)
  Using cached pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Using cached daiquiri-3.2.5.1-py3-none-any.whl (19 kB)
Using cached fixtures-4.1.0-py3-none-any.whl (64 kB)
Using cached jinja2-3.1.4-py3-none-any.whl (133 kB)
Using cached packaging-24.1-py3-none-any.whl (53 kB)
Using cached psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (290 kB)
Using cached xattr-1.1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (39 kB)
Using cached cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479 kB)
Using cached MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
Using cached pbr-6.0.0-py2.py3-none-any.whl (107 kB)
Using cached python_json_logger-2.0.7-py3-none-any.whl (8.1 kB)
Using cached pycparser-2.22-py3-none-any.whl (117 kB)
Building wheels for collected packages: pifpaf
  Building wheel for pifpaf (pyproject.toml) ... done
  Created wheel for pifpaf: filename=pifpaf-3.1.6.dev46+gd37bae2-py3-none-any.whl size=10519 sha256=d402d2cfe624a36ec51f5efce945dd2c93cf524a887b7b3fd509ff0ad6aff4a7
  Stored in directory: /tmp/pip-ephem-wheel-cache-vpc4bvlc/wheels/21/51/37/1f567de3e004a4469dc2c2da83baf62eef0247babfac0f6cdd
Successfully built pifpaf
Installing collected packages: python-json-logger, pycparser, psutil, pbr, packaging, MarkupSafe, click, jinja2, fixtures, daiquiri, cffi, xattr, pifpaf
Successfully installed MarkupSafe-2.1.5 cffi-1.17.0 click-8.1.7 daiquiri-3.2.5.1 fixtures-4.1.0 jinja2-3.1.4 packaging-24.1 pbr-6.0.0 pifpaf-3.1.6.dev46+gd37bae2 psutil-6.0.0 pycparser-2.22 python-json-logger-2.0.7 xattr-1.1.0

[notice] A new release of pip is available: 23.3.2 -> 24.2
[notice] To update, run: python3.12 -m pip install --upgrade pip
[classic@framework tmp]$ .venv/bin/pifpaf run redis
CRITICAL [root] Traceback (most recent call last):
  File "/home/classic/tmp/.venv/bin/pifpaf", line 8, in <module>
    sys.exit(run_main())
             ^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib64/python3.12/site-packages/pifpaf/__main__.py", line 299, in run_main
    return main.main(standalone_mode=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib64/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib64/python3.12/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib64/python3.12/site-packages/click/core.py", line 1682, in invoke
    cmd_name, cmd, args = self.resolve_command(ctx, args)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib64/python3.12/site-packages/click/core.py", line 1729, in resolve_command
    cmd = self.get_command(ctx, cmd_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib64/python3.12/site-packages/pifpaf/__main__.py", line 133, in get_command
    plugin = [e for e in DAEMONS if e.name == name][0].load()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/importlib/metadata/__init__.py", line 205, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1324, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'pifpaf.drivers'


I didnt get the impression pifpaf was really being actively maintained, if we have maintainers here, then I would just report these two setuptools-related issues as bugs and maybe you guys could fix them the way you want? I just need valkey to be in the drivers for openstack-ish reasons

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is tracked in #177

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to answer: no it is passively being maintained (I just review), it seems pifpaf lost traction years ago in favor of other solution (Docker) which makes sense to me. :)

But I'm happy to merge whatever improve/fix the package. Smaller changes are easier to review though!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still use it for running tests in Arch packaging because utilizing docker inside unprivileged systemd-nspawn env is still more frustrated.

You can see the "Required By" section on https://archlinux.org/packages/extra/any/pifpaf/ for how many packages are still helped this way as of now :)

Sorry for not showing up enough for helping to maintain pifpaf here, though...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to answer: no it is passively being maintained (I just review), it seems pifpaf lost traction years ago in favor of other solution (Docker) which makes sense to me. :)

how do I run docker from a tox.ini file in a clean way that shuts down afterwards? is there a recipe for that? plus I use podman anyway, but hardcoding podman commands into tox.ini is not exactly portable

setup.cfg Outdated
@@ -29,6 +30,7 @@ install_requires =
fixtures
packaging
psutil
setuptools
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

setuptools is not a runtime dependency

Copy link
Contributor Author

@zzzeek zzzeek Aug 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is as of python 3.12

gh-95299: Do not pre-install setuptools in virtual environments created with venv. This means that distutils, setuptools, pkg_resources, and easy_install will no longer available by default; to access these run pip install setuptools in the activated virtual environment.

the better solution would be to remove pifpaf's dependencies on pkg_resources (seems to no longer be in master) and distutils (is still in master), however this is an existing bug in pifpaf for the moment

[classic@framework tmp]$ python -m venv .venv
[classic@framework tmp]$ .venv/bin/pip install pifpaf
Collecting pifpaf
  Using cached pifpaf-3.1.5-py3-none-any.whl.metadata (7.0 kB)
Collecting daiquiri (from pifpaf)
  Using cached daiquiri-3.2.5.1-py3-none-any.whl.metadata (1.6 kB)
Collecting click (from pifpaf)
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting pbr (from pifpaf)
  Using cached pbr-6.0.0-py2.py3-none-any.whl.metadata (1.3 kB)
Collecting jinja2 (from pifpaf)
  Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting fixtures (from pifpaf)
  Using cached fixtures-4.1.0-py3-none-any.whl.metadata (21 kB)
Collecting psutil (from pifpaf)
  Using cached psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (21 kB)
Collecting xattr (from pifpaf)
  Using cached xattr-1.1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.8 kB)
Collecting python-json-logger (from daiquiri->pifpaf)
  Using cached python_json_logger-2.0.7-py3-none-any.whl.metadata (6.5 kB)
Collecting MarkupSafe>=2.0 (from jinja2->pifpaf)
  Using cached MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)
Collecting cffi>=1.16.0 (from xattr->pifpaf)
  Using cached cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting pycparser (from cffi>=1.16.0->xattr->pifpaf)
  Using cached pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Using cached pifpaf-3.1.5-py3-none-any.whl (62 kB)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Using cached daiquiri-3.2.5.1-py3-none-any.whl (19 kB)
Using cached fixtures-4.1.0-py3-none-any.whl (64 kB)
Using cached pbr-6.0.0-py2.py3-none-any.whl (107 kB)
Using cached jinja2-3.1.4-py3-none-any.whl (133 kB)
Using cached psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (290 kB)
Using cached xattr-1.1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (39 kB)
Using cached cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479 kB)
Using cached MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
Using cached python_json_logger-2.0.7-py3-none-any.whl (8.1 kB)
Using cached pycparser-2.22-py3-none-any.whl (117 kB)
Installing collected packages: python-json-logger, pycparser, psutil, pbr, MarkupSafe, click, jinja2, fixtures, daiquiri, cffi, xattr, pifpaf
Successfully installed MarkupSafe-2.1.5 cffi-1.17.0 click-8.1.7 daiquiri-3.2.5.1 fixtures-4.1.0 jinja2-3.1.4 pbr-6.0.0 pifpaf-3.1.5 psutil-6.0.0 pycparser-2.22 python-json-logger-2.0.7 xattr-1.1.0

[notice] A new release of pip is available: 23.3.2 -> 24.2
[notice] To update, run: python3.12 -m pip install --upgrade pip
[classic@framework tmp]$ .venv/bin/pifpaf run redis
Traceback (most recent call last):
  File "/home/classic/tmp/.venv/bin/pifpaf", line 5, in <module>
    from pifpaf.__main__ import run_main
  File "/home/classic/tmp/.venv/lib64/python3.12/site-packages/pifpaf/__main__.py", line 31, in <module>
    import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pkg_resoruces is not in master but distutils still is, here's an install from master branch

(.venv) [classic@framework pifpaf:add_valkey]$ pip install .
Processing /home/classic/dev/pifpaf
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting daiquiri (from pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached daiquiri-3.2.5.1-py3-none-any.whl.metadata (1.6 kB)
Collecting click (from pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting jinja2 (from pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting fixtures (from pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached fixtures-4.1.0-py3-none-any.whl.metadata (21 kB)
Collecting packaging (from pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached packaging-24.1-py3-none-any.whl.metadata (3.2 kB)
Collecting psutil (from pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (21 kB)
Collecting xattr (from pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached xattr-1.1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.8 kB)
Collecting python-json-logger (from daiquiri->pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached python_json_logger-2.0.7-py3-none-any.whl.metadata (6.5 kB)
Collecting pbr>=5.7.0 (from fixtures->pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached pbr-6.0.0-py2.py3-none-any.whl.metadata (1.3 kB)
Collecting MarkupSafe>=2.0 (from jinja2->pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)
Collecting cffi>=1.16.0 (from xattr->pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting pycparser (from cffi>=1.16.0->xattr->pifpaf==3.1.6.dev47+ge7251a1.d20240808)
  Using cached pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Using cached daiquiri-3.2.5.1-py3-none-any.whl (19 kB)
Using cached fixtures-4.1.0-py3-none-any.whl (64 kB)
Using cached jinja2-3.1.4-py3-none-any.whl (133 kB)
Using cached packaging-24.1-py3-none-any.whl (53 kB)
Using cached psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (290 kB)
Using cached xattr-1.1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (39 kB)
Using cached cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479 kB)
Using cached MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
Using cached pbr-6.0.0-py2.py3-none-any.whl (107 kB)
Using cached python_json_logger-2.0.7-py3-none-any.whl (8.1 kB)
Using cached pycparser-2.22-py3-none-any.whl (117 kB)
Building wheels for collected packages: pifpaf
  Building wheel for pifpaf (pyproject.toml) ... done
  Created wheel for pifpaf: filename=pifpaf-3.1.6.dev47+ge7251a1.d20240808-py3-none-any.whl size=61472 sha256=4646f6c6d5e10e7b6fc5c7d0a96164a316be1f0e9772578c51168701b5fb055d
  Stored in directory: /tmp/pip-ephem-wheel-cache-2nk31oob/wheels/6a/5c/ed/c42abf20db70490f731c7550eee38a8793ca115412ab3a65fb
Successfully built pifpaf
Installing collected packages: python-json-logger, pycparser, psutil, pbr, packaging, MarkupSafe, click, jinja2, fixtures, daiquiri, cffi, xattr, pifpaf
Successfully installed MarkupSafe-2.1.5 cffi-1.17.0 click-8.1.7 daiquiri-3.2.5.1 fixtures-4.1.0 jinja2-3.1.4 packaging-24.1 pbr-6.0.0 pifpaf-3.1.6.dev47+ge7251a1.d20240808 psutil-6.0.0 pycparser-2.22 python-json-logger-2.0.7 xattr-1.1.0

[notice] A new release of pip is available: 24.1.2 -> 24.2
[notice] To update, run: pip install --upgrade pip
(.venv) [classic@framework pifpaf:add_valkey]$ cd ~/tmp/
(.venv) [classic@framework tmp]$ pifpaf run redis
CRITICAL [root] Traceback (most recent call last):
  File "/home/classic/tmp/.venv/bin/pifpaf", line 8, in <module>
    sys.exit(run_main())
             ^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib/python3.12/site-packages/pifpaf/__main__.py", line 299, in run_main
    return main.main(standalone_mode=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib/python3.12/site-packages/click/core.py", line 1682, in invoke
    cmd_name, cmd, args = self.resolve_command(ctx, args)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib/python3.12/site-packages/click/core.py", line 1729, in resolve_command
    cmd = self.get_command(ctx, cmd_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/classic/tmp/.venv/lib/python3.12/site-packages/pifpaf/__main__.py", line 133, in get_command
    plugin = [e for e in DAEMONS if e.name == name][0].load()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/importlib/metadata/__init__.py", line 205, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/home/classic/tmp/.venv/lib/python3.12/site-packages/pifpaf/drivers/__init__.py", line 24, in <module>
    from distutils import spawn
ModuleNotFoundError: No module named 'distutils'


Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is tracked in #176 .

setup.cfg Outdated
@@ -29,6 +30,7 @@ install_requires =
fixtures
packaging
psutil
setuptools
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

setuptools is not a runtime dependency

setup.cfg Outdated
Comment on lines 22 to 24
packages = find_namespace:
include_package_data = true
zip_safe = false
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this needed? we dont ship any package data that is not python?

@mergify mergify bot dismissed stale reviews from tobias-urdin and jd August 8, 2024 14:03

Pull request has been modified.

@zzzeek zzzeek requested review from tobias-urdin and jd August 8, 2024 14:03
Copy link
Collaborator

@tobias-urdin tobias-urdin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, lets just pull this in and check the other separately, python packaging is such as mess

Copy link
Collaborator

@tobias-urdin tobias-urdin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please rebase this on #178 and use shutil.which()

Copy link
Collaborator

@tobias-urdin tobias-urdin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is also a failure on pep8

This is a copy of redis with names changed for Valkey.
@zzzeek zzzeek requested a review from tobias-urdin August 9, 2024 14:01
@mergify mergify bot dismissed tobias-urdin’s stale review August 9, 2024 14:01

Pull request has been modified.

@tobias-urdin tobias-urdin merged commit 9f08009 into jd:master Aug 12, 2024
4 of 6 checks passed
@zzzeek
Copy link
Contributor Author

zzzeek commented Aug 14, 2024

thanks very much for the release! all good now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants