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

Python 3.12 Support #1031

Merged
merged 1 commit into from Dec 28, 2023
Merged

Python 3.12 Support #1031

merged 1 commit into from Dec 28, 2023

Conversation

caronc
Copy link
Owner

@caronc caronc commented Dec 28, 2023

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

  • The code change is tested and works locally.
  • There is no commented out code in this PR.
  • No lint errors (use flake8)
  • 100% test coverage

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
Copy link
Contributor

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
Copy link
Owner Author

caronc commented Dec 28, 2023

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

@caronc caronc merged commit eca2db5 into master Dec 28, 2023
12 checks passed
@mattpackwood
Copy link
Contributor

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
Copy link
Owner Author

caronc commented Dec 29, 2023

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
Copy link
Contributor

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
Copy link
Owner Author

caronc commented Dec 29, 2023

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! 🚀 👍 🙂

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

@caronc caronc deleted the 1030-python-3-12-support branch December 29, 2023 18:43
@mattpackwood
Copy link
Contributor

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".

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.

None yet

2 participants