facelessuser / Rummage

Rummage is a GUI for grep like searches in Python
https://facelessuser.github.io/Rummage/
MIT License
74 stars 10 forks source link

Update to officially support Python 3.10 #434

Closed facelessuser closed 1 year ago

facelessuser commented 2 years ago

WxPython has not provided any wheels yet for Python 3.10, so we will probably wait for that before we test and say we officially support Python 3.10, but it may still work on Python 3.10, we just won't spend time verifying until we have wxPython wheels built for it.

facelessuser commented 2 years ago

For those popping in, this issue hasn't been forgotten. WxPython is just taking its sweet time to put out a release formally supporting Py 3.10. Tried to build it on mac OS again recently, but the build failed sadly.

facelessuser commented 2 years ago

Was able to get this running on mac using a snapshot: https://wxpython.org/Phoenix/snapshot-builds/wxPython-4.1.2a1.dev5308+2258f215-cp310-cp310-macosx_10_10_universal2.whl.

The snapshot is still alpha, and I only tested on mac, but it looks like no changes will be needed for mac, assuming nothing major changes before now and the official wxPython release.

facelessuser commented 1 year ago

Wxpython finally released a 4.2.0 version. I think we can finally start testing for an update.

facelessuser commented 1 year ago

Initial tests show it works fine on macOS, though the colors for pannels probably need adjusting.

facelessuser commented 1 year ago

I feel like every couple of wxPython versions, they change how they calculate panel backgrounds, and they are never right.

I also make the mistake and trying it at night or early morning where the mac shifts the colors of the themes, something that wxPython is never aware of.

facelessuser commented 1 year ago

Ugh, maybe I've never noticed this, but on mac, the colors slightly shift in wxPython as you drag the dialog around. Not to mention colors shift depending on time of day. I think some of those events are handled slightly different, but for panels, they always report the same color. In the past, we always have to adjust them them as it looks weird, so there are cases where the colors don't always match up exactly, but it isn't the end of the world. For now, I'm not going to worry about mac colors.

ghost commented 1 year ago

@facelessuser How can I install this? I cannot install. This is my output:

pip install rummage                                   1 ✘  11s  
Defaulting to user installation because normal site-packages is not writeable
Collecting rummage
  Using cached rummage-4.16.4.tar.gz (7.9 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting wcmatch<9.0,>=8.3
  Using cached wcmatch-8.4.1-py3-none-any.whl (39 kB)
Collecting backrefs<6.0,>=5.2
  Using cached backrefs-5.4-py310-none-any.whl (381 kB)
Collecting filelock
  Using cached filelock-3.9.0-py3-none-any.whl (9.7 kB)
Requirement already satisfied: pygments in /usr/lib/python3.10/site-packages (from rummage) (2.13.0)
Requirement already satisfied: markdown>=3.3.4 in /usr/lib/python3.10/site-packages (from rummage) (3.4.1)
Collecting pymdown-extensions>=9.0
  Using cached pymdown_extensions-9.9.1-py3-none-any.whl (219 kB)
Collecting send2trash
  Using cached Send2Trash-1.8.0-py3-none-any.whl (18 kB)
Collecting bracex>=2.2
  Using cached bracex-2.3.post1-py3-none-any.whl (12 kB)
Collecting wxpython>=4.1.0
  Using cached wxPython-4.2.0.tar.gz (71.0 MB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [8 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-w3h5n8ka/wxpython_8180f8d0ab7848e29085f293d698fc4f/setup.py", line 27, in <module>
          from buildtools.config import Config, msg, opj, runcmd, canGetSOName, getSOName
        File "/tmp/pip-install-w3h5n8ka/wxpython_8180f8d0ab7848e29085f293d698fc4f/buildtools/config.py", line 30, in <module>
          from attrdict import AttrDict
      ModuleNotFoundError: No module named 'attrdict'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
facelessuser commented 1 year ago

If you are on Linux, it is always better to install wxpython first if not already installed. PyPI does not offer up pre-built wheels for wxPython unfortunately, but they do provide a number of pre-built wheels here: https://extras.wxpython.org/wxPython4/extras/linux/. Your distro may already have a package for your python version, that can be installed via their package manager as well. If not, you may have to try and build wxPython yourself. Most of this information is here: https://facelessuser.github.io/Rummage/installation/#linux-prerequisites. If you are one of the more common distros, you have a better chance of finding a pre-built wheel.

facelessuser commented 1 year ago

It seems, Python 3.10 is supported by WxPython, not 3.11 yet, at least no prebuilt wheels. I should probably at least release a package that mentions it supports 3.10. I guess we'll monitor when wxPython 3.11 support gets released.

facelessuser commented 1 year ago

The version is updated and will release shortly. There is nothing functionally different than officially supporting 3.10, though technically it could already be installed on 3.10. I will open a new issue to evaluate Python 3.11 issues as soon as Python 3.11 wheels are available on PyPI.