From e4203919c425ca8e94a12c89eda37597c21aca46 Mon Sep 17 00:00:00 2001 From: Nikolas Nyby Date: Wed, 5 Nov 2025 14:49:32 -0500 Subject: [PATCH 1/2] 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 2aa69cef76e13e5243a6cba3ec6fc682c84763a5 Mon Sep 17 00:00:00 2001 From: Nikolas Nyby Date: Wed, 5 Nov 2025 14:56:17 -0500 Subject: [PATCH 2/2] :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', )