From dc09fa67e3ad35ce3fd78fc00abb6b63f1fead89 Mon Sep 17 00:00:00 2001 From: Nikolas Nyby Date: Wed, 8 Oct 2025 11:26:42 -0400 Subject: [PATCH 1/4] :bookmark: release version 1.7.0 --- docs/changelog.rst | 14 ++++++++++++++ docs/conf.py | 4 ++-- setup.py | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index c61948e..9fb50d6 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -71,3 +71,17 @@ here. For additional detail, read the complete `commit history`_. * PR #39: Fix SAML ticket verification failing when response is not namespaced @mbenadda * PR #44: Use Session for making requests & allow customization @intgr +**python-cas 1.7.0** ``[2025-10-08]`` + +* github actions: test on ubuntu 24 (#58) @nikolas +* Update supported python versions (#57) @nikolas +* Test on python 3.10 by default (#56) @nikolas +* Remove old python versions from tox (#55) @nikolas +* Remove universal wheel (#54) @nikolas +* Update pytest (#53) @nikolas +* Add python 3.11 testing, update github actions envs (#52) @nikolas +* setup.py: add classifiers for py3.9, py3.10 (#50) @nikolas +* Add python 3.10 testing (#49) @nikolas +* Fixing 'requests.api' has no attribute 'Session' (#47) @vhelke +* Fix get_proxy_url adding unnecessary '/' (#41) @seayjohnny +* Fix a few typos in changelog (#45) @intgr diff --git a/docs/conf.py b/docs/conf.py index 58cba8e..df232b9 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -53,9 +53,9 @@ # built documents. # # The short X.Y version. -version = '1.6' +version = '1.7' # The full version, including alpha/beta/rc tags. -release = '1.6.0' +release = '1.7.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/setup.py b/setup.py index 520cf6f..f0782fb 100755 --- a/setup.py +++ b/setup.py @@ -40,5 +40,5 @@ py_modules=['cas'], url='https://github.com/python-cas/python-cas', download_url ='https://github.com/python-cas/python-cas/releases', - version='1.6.0', + version='1.7.0', ) From e4203919c425ca8e94a12c89eda37597c21aca46 Mon Sep 17 00:00:00 2001 From: Nikolas Nyby Date: Wed, 5 Nov 2025 14:49:32 -0500 Subject: [PATCH 2/4] Remove `six` dependency --- cas.py | 23 ++++++++++------------- requirements.txt | 1 - setup.py | 1 - 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/cas.py b/cas.py index ce56482..af54035 100644 --- a/cas.py +++ b/cas.py @@ -4,7 +4,7 @@ import requests from lxml import etree -from six.moves.urllib import parse as urllib_parse +from urllib.parse import urljoin, urlencode logger = logging.getLogger(__name__) @@ -103,8 +103,8 @@ def get_login_url(self): params.update({'renew': 'true'}) params.update(self.extra_login_params) - url = urllib_parse.urljoin(self.server_url, 'login') - query = urllib_parse.urlencode(params) + url = urljoin(self.server_url, 'login') + query = urlencode(params) return ''.join([url, '?', query]) def get_logout_url(self, redirect_url=None): @@ -113,10 +113,10 @@ def get_logout_url(self, redirect_url=None): Returns: str: Logout URL """ - url = urllib_parse.urljoin(self.server_url, 'logout') + url = urljoin(self.server_url, 'logout') if redirect_url: params = {self.logout_redirect_param_name: redirect_url} - query = urllib_parse.urlencode(params) + query = urlencode(params) return ''.join([url, '?', query]) return url @@ -127,8 +127,8 @@ def get_proxy_url(self, pgt): str: Proxy URL """ params = {'pgt': pgt, 'targetService': self.service_url} - url = urllib_parse.urljoin(self.server_url, 'proxy') - query = urllib_parse.urlencode(params) + url = urljoin(self.server_url, 'proxy') + query = urlencode(params) return ''.join([url, '?', query]) def get_proxy_ticket(self, pgt): @@ -170,8 +170,7 @@ def verify_ticket(self, ticket): Returns username on success and None on failure. """ params = [('ticket', ticket), ('service', self.service_url)] - url = (urllib_parse.urljoin(self.server_url, 'validate') + '?' + - urllib_parse.urlencode(params)) + url = (urljoin(self.server_url, 'validate') + '?' + urlencode(params)) page = self.session.get( url, stream=True, @@ -211,7 +210,7 @@ def get_verification_response(self, ticket): } if self.proxy_callback: params.update({'pgtUrl': self.proxy_callback}) - base_url = urllib_parse.urljoin(self.server_url, self.url_suffix) + base_url = urljoin(self.server_url, self.url_suffix) page = self.session.get( base_url, params=params, @@ -377,9 +376,7 @@ def fetch_saml_validation(self, ticket): 'content-type': 'text/xml; charset=utf-8', } params = {'TARGET': self.service_url} - saml_validate_url = urllib_parse.urljoin( - self.server_url, 'samlValidate', - ) + saml_validate_url = urljoin(self.server_url, 'samlValidate',) return self.session.post( saml_validate_url, self.get_saml_assertion(ticket), diff --git a/requirements.txt b/requirements.txt index 73e854f..dbf5069 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,2 @@ lxml>=3.4 -six>=1.0.0 requests>=2.0.0 diff --git a/setup.py b/setup.py index f0782fb..eaf3342 100755 --- a/setup.py +++ b/setup.py @@ -28,7 +28,6 @@ ], python_requires=">=3.10", install_requires=[ - 'six>=1.10.0', 'requests>=2.11.1', 'lxml>=3.4', ], From 7b15ddf5f282683ec1b259544431359a9659a106 Mon Sep 17 00:00:00 2001 From: nikolas Date: Wed, 5 Nov 2025 14:53:24 -0500 Subject: [PATCH 3/4] Update github actions versions --- .github/workflows/CI.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 6740e15..0638986 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -16,9 +16,9 @@ jobs: python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Install Dependencies From 2aa69cef76e13e5243a6cba3ec6fc682c84763a5 Mon Sep 17 00:00:00 2001 From: Nikolas Nyby Date: Wed, 5 Nov 2025 14:56:17 -0500 Subject: [PATCH 4/4] :bookmark: release version 1.7.1 --- docs/changelog.rst | 4 ++++ docs/conf.py | 4 ++-- setup.py | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 9fb50d6..a3ea1ab 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -85,3 +85,7 @@ here. For additional detail, read the complete `commit history`_. * Fixing 'requests.api' has no attribute 'Session' (#47) @vhelke * Fix get_proxy_url adding unnecessary '/' (#41) @seayjohnny * Fix a few typos in changelog (#45) @intgr + +**python-cas 1.7.1** ``[2025-11-05]`` + +* Removed dependency on package: six diff --git a/docs/conf.py b/docs/conf.py index df232b9..7e3c9ca 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -46,7 +46,7 @@ # General information about the project. project = 'Python CAS' -copyright = '2015, Ming Chen' +copyright = '2015-2025, Ming Chen' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -55,7 +55,7 @@ # The short X.Y version. version = '1.7' # The full version, including alpha/beta/rc tags. -release = '1.7.0' +release = '1.7.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/setup.py b/setup.py index eaf3342..1beceb9 100755 --- a/setup.py +++ b/setup.py @@ -39,5 +39,5 @@ py_modules=['cas'], url='https://github.com/python-cas/python-cas', download_url ='https://github.com/python-cas/python-cas/releases', - version='1.7.0', + version='1.7.1', )