caronc / apprise

Apprise - Push Notifications that work with just about every platform!
https://hub.docker.com/r/caronc/apprise
BSD 2-Clause "Simplified" License
11.71k stars 410 forks source link

Python 3.12 Support #1031

Closed caronc closed 9 months ago

caronc commented 9 months ago

Description:

Related issue (if applicable): #1030

This was created in lieu of the ticket opened that Apprise no longer worked under Python v3.12.

I added in the logic to test it here and everything appears okay.

Checklist

Testing

# Create a virtual environment to work in as follows:
git clone git@github.com:caronc/apprise.git

# Change into our new directory
cd apprise

# Run entire test suite:
docker-compose run --rm test.py312 bin/checkdone.sh
mattpackwood commented 9 months ago

OK, number 1 with highlight, having uninstalled Python "everywhere" and done a reboot / reinstall I am running fine with Apprise 1.7.0 and Python 3.12.1...

But...

I am getting:

(apprise) Matt-Packwoods-iMac:apprise $ docker-compose run --rm test.py312 bin/checkdone.sh
no configuration file provided: not found

Complete trace below:

Matt-Packwoods-iMac:~ $ pwd
/Users/mattpackwood
Matt-Packwoods-iMac:~ $ python3 -m venv apprise
Matt-Packwoods-iMac:~ $ cd apprise
Matt-Packwoods-iMac:apprise $ source bin/activate
(apprise) Matt-Packwoods-iMac:apprise $ pip install git+https://github.com/caronc/apprise.git@1030-python-3-12-support
Collecting git+https://github.com/caronc/apprise.git@1030-python-3-12-support
  Cloning https://github.com/caronc/apprise.git (to revision 1030-python-3-12-support) to /private/var/folders/gk/_qs_cswx7gg1bqn88szg5v5w0000gn/T/pip-req-build-mlqupdgg
  Running command git clone --filter=blob:none --quiet https://github.com/caronc/apprise.git /private/var/folders/gk/_qs_cswx7gg1bqn88szg5v5w0000gn/T/pip-req-build-mlqupdgg
  Running command git checkout -b 1030-python-3-12-support --track origin/1030-python-3-12-support
  Switched to a new branch '1030-python-3-12-support'
  branch '1030-python-3-12-support' set up to track 'origin/1030-python-3-12-support'.
  Resolved https://github.com/caronc/apprise.git to commit e050f20ca1f3878b5ec8c0e060ff87d32ef060ef
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting certifi (from apprise==1.7.0)
  Obtaining dependency information for certifi from https://files.pythonhosted.org/packages/64/62/428ef076be88fa93716b576e4a01f919d25968913e817077a386fcbe4f42/certifi-2023.11.17-py3-none-any.whl.metadata
  Using cached certifi-2023.11.17-py3-none-any.whl.metadata (2.2 kB)
Collecting requests (from apprise==1.7.0)
  Obtaining dependency information for requests from https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl.metadata
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting requests-oauthlib (from apprise==1.7.0)
  Using cached requests_oauthlib-1.3.1-py2.py3-none-any.whl (23 kB)
Collecting click>=5.0 (from apprise==1.7.0)
  Obtaining dependency information for click>=5.0 from https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl.metadata
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting markdown (from apprise==1.7.0)
  Obtaining dependency information for markdown from https://files.pythonhosted.org/packages/70/58/2c5a654173937d9f540a4971c569b44dcd55e5424a484d954cdaeebcf79c/Markdown-3.5.1-py3-none-any.whl.metadata
  Using cached Markdown-3.5.1-py3-none-any.whl.metadata (7.1 kB)
Collecting PyYAML (from apprise==1.7.0)
  Obtaining dependency information for PyYAML from https://files.pythonhosted.org/packages/84/02/404de95ced348b73dd84f70e15a41843d817ff8c1744516bf78358f2ffd2/PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl.metadata
  Using cached PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl.metadata (2.1 kB)
Collecting charset-normalizer<4,>=2 (from requests->apprise==1.7.0)
  Obtaining dependency information for charset-normalizer<4,>=2 from https://files.pythonhosted.org/packages/3a/52/9f9d17c3b54dc238de384c4cb5a2ef0e27985b42a0e5cc8e8a31d918d48d/charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl.metadata
  Using cached charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl.metadata (33 kB)
Collecting idna<4,>=2.5 (from requests->apprise==1.7.0)
  Obtaining dependency information for idna<4,>=2.5 from https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl.metadata
  Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests->apprise==1.7.0)
  Obtaining dependency information for urllib3<3,>=1.21.1 from https://files.pythonhosted.org/packages/96/94/c31f58c7a7f470d5665935262ebd7455c7e4c7782eb525658d3dbf4b9403/urllib3-2.1.0-py3-none-any.whl.metadata
  Using cached urllib3-2.1.0-py3-none-any.whl.metadata (6.4 kB)
Collecting oauthlib>=3.0.0 (from requests-oauthlib->apprise==1.7.0)
  Using cached oauthlib-3.2.2-py3-none-any.whl (151 kB)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Using cached certifi-2023.11.17-py3-none-any.whl (162 kB)
Using cached Markdown-3.5.1-py3-none-any.whl (102 kB)
Using cached PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl (165 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl (119 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Using cached urllib3-2.1.0-py3-none-any.whl (104 kB)
Building wheels for collected packages: apprise
  Building wheel for apprise (pyproject.toml) ... done
  Created wheel for apprise: filename=apprise-1.7.0-py3-none-any.whl size=1224402 sha256=ca386514314ab13a75aadf1dcc3b6a52c843d4b4b904cde743dee5ef9bcf955e
  Stored in directory: /private/var/folders/gk/_qs_cswx7gg1bqn88szg5v5w0000gn/T/pip-ephem-wheel-cache-8yn41c46/wheels/6b/41/35/437bb380801cf3c8b64964c1ad812afe20c80a272e82eb5917
Successfully built apprise
Installing collected packages: urllib3, PyYAML, oauthlib, markdown, idna, click, charset-normalizer, certifi, requests, requests-oauthlib, apprise
Successfully installed PyYAML-6.0.1 apprise-1.7.0 certifi-2023.11.17 charset-normalizer-3.3.2 click-8.1.7 idna-3.6 markdown-3.5.1 oauthlib-3.2.2 requests-2.31.0 requests-oauthlib-1.3.1 urllib3-2.1.0

[notice] A new release of pip is available: 23.2.1 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
(apprise) Matt-Packwoods-iMac:apprise $ docker-compose run --rm test.py312 bin/checkdone.sh
no configuration file provided: not found
(apprise) Matt-Packwoods-iMac:apprise $ ls -lat bin/checkdone.sh
ls: bin/checkdone.sh: No such file or directory
(apprise) Matt-Packwoods-iMac:apprise $ 
caronc commented 9 months ago

Try this instead (make sure you're in the cloned repo):

docker-compose run --rm test.py312 bash

# now you'll gain access to a terminal inside your image... now do:
bin/checkdone.sh
mattpackwood commented 9 months ago

Sorry, no joy...

(apprise) Matt-Packwoods-iMac:apprise $ docker-compose run --rm test.py312 bash
no configuration file provided: not found

I have searched through what pip pulled down and cannot find anything called test.py312 - is that the configuration file?

I am executing the docker command while sitting at /Users/mattpackwood/apprise.

When I type ls I see:

(apprise) Matt-Packwoods-iMac:apprise $ ls
bin        include    lib        pyvenv.cfg

I ran a find looking for the test, here is what came up:

(apprise) Matt-Packwoods-iMac:apprise $ find . -name "*test*"   
./lib/python3.11/site-packages/markdown/__pycache__/test_tools.cpython-311.pyc
./lib/python3.11/site-packages/markdown/test_tools.py
./lib/python3.11/site-packages/click/__pycache__/testing.cpython-311.pyc
./lib/python3.11/site-packages/click/testing.py
./lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-311.pyc
./lib/python3.11/site-packages/pip/_vendor/webencodings/tests.py
./lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/testing.cpython-311.pyc
./lib/python3.11/site-packages/pip/_vendor/pyparsing/testing.py
./lib/python3.11/site-packages/pip/_vendor/colorama/tests
./lib/python3.11/site-packages/pip/_vendor/colorama/tests/isatty_test.py
./lib/python3.11/site-packages/pip/_vendor/colorama/tests/initialise_test.py
./lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/winterm_test.cpython-311.pyc
./lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/initialise_test.cpython-311.pyc
./lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/isatty_test.cpython-311.pyc
./lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/ansi_test.cpython-311.pyc
./lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/ansitowin32_test.cpython-311.pyc
./lib/python3.11/site-packages/pip/_vendor/colorama/tests/ansi_test.py
./lib/python3.11/site-packages/pip/_vendor/colorama/tests/winterm_test.py
./lib/python3.11/site-packages/pip/_vendor/colorama/tests/ansitowin32_test.py
./lib/python3.11/site-packages/setuptools/command/__pycache__/test.cpython-311.pyc
./lib/python3.11/site-packages/setuptools/command/test.py
(apprise) Matt-Packwoods-iMac:apprise $
caronc commented 9 months ago

So the problem is that you're not following the test instructions i provided. It's almost as though your just running the last 2 actions. Perhaps you're still using brew?

If you check out the branch, and change into it. The configuration (missing for you based on your shared output); would exist and the last 2 commands would work 😉.

Either way, i can confirm Python 3.12 works fine. I'm going to close off this issue. 🚀

mattpackwood commented 9 months ago

No issues that it is running but...

There was a step I think you assumed in your instructions that I needed to figure out, see below.

# Create a virtual environment to work in as follows:
python3 -m venv apprise

# Change into our new directory
cd apprise

# Activate our virtual environment
source bin/activate

# Install the branch
pip install git+https://github.com/caronc/apprise.git@1030-python-3-12-support

THEN clone the branch, cd into the downloaded branch <- I assumed the pip was pulling everything I needed, MY mistake.

# Run entire test suite:
docker-compose run --rm test.py312 bin/checkdone.sh

I am NOT trying to be a pain and profound apologies if I am coming across that way, I am trying to figure this stuff out.
Inside the Virtual Environment I checked and the Python it is using is: /Library/Frameworks/Python.framework/Versions/3.12/bin/python3

Results were:


FAILED test/test_apprise_translations.py::test_apprise_trans_add - AssertionError: assert False is True
============ 1 failed, 400 passed, 50 skipped, 4 warnings in 50.80s ============
Tests failed.```
caronc commented 9 months ago

THEN clone the branch, cd into the downloaded branch

@mattpackwood I'm so sorry, you're absolutely correct that the test didn't have the git clone option vs normal testing which includes the pip/package install instead. I updated the test reference.

I am NOT trying to be a pain ...

You're absolutely not at all. I'm sorry for being short. I absolutely appreciate everything you do! you seem to disappear for a year.. or two, and then just surface with 5-6 issues! :rocket: :+1: :slightly_smiling_face:

I will investigate the error you got. I'm not sure what happened there (it didn't do it to me in my environment)

mattpackwood commented 9 months ago

No worries, yep, sorry I do seem to do that don't I! I have some other things that keep me distracted I am afraid, I spend my time working in the space between Engineering and Project Management so some years I am up to my ears in Budgets and Forecasts and the next I am working in Digital Twins and Robotics so it depends on where the "needle it that particular year".