<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/1487f2076d4f4ab4e801e9bdd9e7d38e8b58855b">https://github.com/macports/macports-ports/commit/1487f2076d4f4ab4e801e9bdd9e7d38e8b58855b</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 1487f2076d4f4ab4e801e9bdd9e7d38e8b58855b
</span>Author: Mark Mentovai <mark@mentovai.com>
AuthorDate: Tue Oct 22 23:07:03 2024 -0400

<span style='display:block; white-space:pre;color:#404040;'>    py-oauthlib: add py313 subport
</span>---
 python/py-oauthlib/Portfile                        |  6 ++-
 ...ests.test_filter_params-Python-3.13-compa.patch | 40 +++++++++++++++++
 .../py-oauthlib/files/0002-Fix-CI-Errors-878.patch | 50 ++++++++++++++++++++++
 3 files changed, 95 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-oauthlib/Portfile b/python/py-oauthlib/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 27b767089fd..59054f727f1 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-oauthlib/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-oauthlib/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -25,7 +25,7 @@ checksums           rmd160  3ee553a54b366680ba7d1efb553f7b289720ae11 \
</span>                     sha256  9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918 \
                     size    177352
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions     27 38 39 310 311 312
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     27 38 39 310 311 312 313
</span> 
 if {${name} ne ${subport}} {
     depends_build-append    port:py${python.version}-setuptools
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -37,6 +37,10 @@ if {${name} ne ${subport}} {
</span>     depends_test-append \
                     port:py${python.version}-mock
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0001-Make-UtilsTests.test_filter_params-Python-3.13-compa.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0002-Fix-CI-Errors-878.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     test.run        yes
 
     livecheck.type  none
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-oauthlib/files/0001-Make-UtilsTests.test_filter_params-Python-3.13-compa.patch b/python/py-oauthlib/files/0001-Make-UtilsTests.test_filter_params-Python-3.13-compa.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b740994b9b3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-oauthlib/files/0001-Make-UtilsTests.test_filter_params-Python-3.13-compa.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,40 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From fe020db74199d5284c00d7735aa7d4ddc90f5d61 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 24 Oct 2023 15:08:10 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Make UtilsTests.test_filter_params Python 3.13+ compatible
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Since Python 3.13.0a1, docstrings are automatically dedented.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+See https://github.com/python/cpython/issues/81283
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+and https://docs.python.org/3.13/whatsnew/3.13.html#other-language-changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+As a result, using a docstring with leading space as a test case
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+breaks the test assumption.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The initial commit which introduced this test a decade ago
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(6c0c7914f3a57823834b1be492b307992f943629)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+does not specify why testing the spaces is important.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tests/oauth1/rfc5849/test_utils.py | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git tests/oauth1/rfc5849/test_utils.py tests/oauth1/rfc5849/test_utils.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 013c71a910da..2212890819fc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- tests/oauth1/rfc5849/test_utils.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tests/oauth1/rfc5849/test_utils.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,11 +53,11 @@ class UtilsTests(TestCase):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # The following is an isolated test function used to test the filter_params decorator.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         @filter_params
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         def special_test_function(params, realm=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            """ I am a special test function """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            """I am a special test function"""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return 'OAuth ' + ','.join(['='.join([k, v]) for k, v in params])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # check that the docstring got through
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        self.assertEqual(special_test_function.__doc__, " I am a special test function ")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        self.assertEqual(special_test_function.__doc__, "I am a special test function")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Check that the decorator filtering works as per design.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         #   Any param that does not start with 'oauth'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-oauthlib/files/0002-Fix-CI-Errors-878.patch b/python/py-oauthlib/files/0002-Fix-CI-Errors-878.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7b5addaf609
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-oauthlib/files/0002-Fix-CI-Errors-878.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,50 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 3ba8fd6109ac1f9314215f3373027d86c032dffc Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Shawn Zivontsis <shawnz@shawnz.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 13 Aug 2024 01:25:31 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Fix CI Errors (#878)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Fix new exception type for invalid key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Fix ruff now needs check command
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Fix DeprecationWarning in test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Fix/ignore linter errors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Update codespell ignore list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tests/oauth1/rfc5849/test_signatures.py | 8 +++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 7 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git tests/oauth1/rfc5849/test_signatures.py tests/oauth1/rfc5849/test_signatures.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0dd2859a218e..2c4ce3df96c2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- tests/oauth1/rfc5849/test_signatures.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tests/oauth1/rfc5849/test_signatures.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # -*- coding: utf-8 -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++from jwt import InvalidKeyError
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from oauthlib.oauth1.rfc5849.signature import (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     base_string_uri, collect_parameters, normalize_parameters,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sign_hmac_sha1_with_client, sign_hmac_sha256_with_client,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -765,12 +766,17 @@ MmgDHR2tt8KeYTSgfU+BAkBcaVF91EQ7VXhvyABNYjeYP7lU7orOgdWMa/zbLXSU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Signing needs a private key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        for bad_value in [None, '', 'foobar']:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        for bad_value in [None, '']:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             self.assertRaises(ValueError,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sign_rsa_sha1_with_client,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               self.eg_signature_base_string,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               MockClient(rsa_key=bad_value))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        self.assertRaises(InvalidKeyError,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                            sign_rsa_sha1_with_client,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                            self.eg_signature_base_string,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                            MockClient(rsa_key='foobar'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self.assertRaises(AttributeError,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           sign_rsa_sha1_with_client,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           self.eg_signature_base_string,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>