Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-osc-tiny for openSUSE:Factory 
checked in at 2026-03-11 20:57:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-osc-tiny (Old)
 and      /work/SRC/openSUSE:Factory/.python-osc-tiny.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-osc-tiny"

Wed Mar 11 20:57:28 2026 rev:43 rq:1338338 version:0.12.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-osc-tiny/python-osc-tiny.changes  
2025-11-25 15:55:57.110334803 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-osc-tiny.new.8177/python-osc-tiny.changes    
    2026-03-11 20:59:46.596947380 +0100
@@ -1,0 +2,18 @@
+Wed Mar 11 13:47:51 UTC 2026 - maintenance-obs-robot 
<[email protected]>
+
+- Release 0.12.0
+  ## What's Changed
+  * fix: include cached-property as a conditional dependency by @dcermak in 
https://github.com/SUSE/osc-tiny/pull/223
+  * Add py.typed by @dcermak in https://github.com/SUSE/osc-tiny/pull/222
+  * feat: add extension for the /published/ route by @dcermak in 
https://github.com/SUSE/osc-tiny/pull/226
+  * chore: new version 0.12.0 by @dcermak in 
https://github.com/SUSE/osc-tiny/pull/227
+
+-------------------------------------------------------------------
+Wed Mar 11 12:38:20 UTC 2026 - dancermak <[email protected]>
+
+- Release 0.12.0
+  - feat: add extension for the /published/ route
+  - chore: add py.typed marker
+  - fix: include cached-property as a conditional dependency
+
+-------------------------------------------------------------------

Old:
----
  osc_tiny-0.11.0.tar.gz

New:
----
  osc_tiny-0.12.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-osc-tiny.spec ++++++
--- /var/tmp/diff_new_pack.bpJTWE/_old  2026-03-11 20:59:47.148970114 +0100
+++ /var/tmp/diff_new_pack.bpJTWE/_new  2026-03-11 20:59:47.152970279 +0100
@@ -19,7 +19,7 @@
 %define skip_python2 1
 %{?sle15allpythons}
 Name:           python-osc-tiny
-Version:        0.11.0
+Version:        0.12.0
 Release:        0
 Summary:        Client API for openSUSE BuildService
 License:        MIT

++++++ osc_tiny-0.11.0.tar.gz -> osc_tiny-0.12.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/MANIFEST.in 
new/osc_tiny-0.12.0/MANIFEST.in
--- old/osc_tiny-0.11.0/MANIFEST.in     2025-11-25 10:35:56.000000000 +0100
+++ new/osc_tiny-0.12.0/MANIFEST.in     2026-03-11 14:47:05.000000000 +0100
@@ -1,3 +1,4 @@
 include *.md
 include LICENSE
-include requirements*.txt
\ No newline at end of file
+include requirements*.txt
+include osctiny/py.typed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/PKG-INFO new/osc_tiny-0.12.0/PKG-INFO
--- old/osc_tiny-0.11.0/PKG-INFO        2025-11-25 10:36:08.642153300 +0100
+++ new/osc_tiny-0.12.0/PKG-INFO        2026-03-11 14:47:08.794050700 +0100
@@ -1,17 +1,16 @@
 Metadata-Version: 2.4
 Name: osc-tiny
-Version: 0.11.0
-Summary: Client API for openSUSE BuildService
+Version: 0.12.0
+Summary: Client API for the Open Build Service
 Home-page: https://github.com/SUSE/osc-tiny
 Author: Andreas Hasenkopf
 Author-email: [email protected]
 Maintainer: SUSE Maintenance Automation Engineering team
 Maintainer-email: [email protected]
-License: MIT
+License-Expression: MIT
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
 Classifier: Intended Audience :: System Administrators
-Classifier: License :: OSI Approved :: MIT License
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
@@ -20,6 +19,8 @@
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
 Description-Content-Type: text/markdown
 License-File: LICENSE
 Requires-Dist: lxml
@@ -28,14 +29,15 @@
 Requires-Dist: pytz
 Requires-Dist: pyyaml
 Requires-Dist: urllib3
+Requires-Dist: cached-property; python_version < "3.8"
 Dynamic: author
 Dynamic: author-email
 Dynamic: classifier
 Dynamic: description
 Dynamic: description-content-type
 Dynamic: home-page
-Dynamic: license
 Dynamic: license-file
+Dynamic: license-expression
 Dynamic: maintainer
 Dynamic: maintainer-email
 Dynamic: requires-dist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/osc_tiny.egg-info/PKG-INFO 
new/osc_tiny-0.12.0/osc_tiny.egg-info/PKG-INFO
--- old/osc_tiny-0.11.0/osc_tiny.egg-info/PKG-INFO      2025-11-25 
10:36:08.000000000 +0100
+++ new/osc_tiny-0.12.0/osc_tiny.egg-info/PKG-INFO      2026-03-11 
14:47:08.000000000 +0100
@@ -1,17 +1,16 @@
 Metadata-Version: 2.4
 Name: osc-tiny
-Version: 0.11.0
-Summary: Client API for openSUSE BuildService
+Version: 0.12.0
+Summary: Client API for the Open Build Service
 Home-page: https://github.com/SUSE/osc-tiny
 Author: Andreas Hasenkopf
 Author-email: [email protected]
 Maintainer: SUSE Maintenance Automation Engineering team
 Maintainer-email: [email protected]
-License: MIT
+License-Expression: MIT
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
 Classifier: Intended Audience :: System Administrators
-Classifier: License :: OSI Approved :: MIT License
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
@@ -20,6 +19,8 @@
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
 Description-Content-Type: text/markdown
 License-File: LICENSE
 Requires-Dist: lxml
@@ -28,14 +29,15 @@
 Requires-Dist: pytz
 Requires-Dist: pyyaml
 Requires-Dist: urllib3
+Requires-Dist: cached-property; python_version < "3.8"
 Dynamic: author
 Dynamic: author-email
 Dynamic: classifier
 Dynamic: description
 Dynamic: description-content-type
 Dynamic: home-page
-Dynamic: license
 Dynamic: license-file
+Dynamic: license-expression
 Dynamic: maintainer
 Dynamic: maintainer-email
 Dynamic: requires-dist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/osc_tiny.egg-info/SOURCES.txt 
new/osc_tiny-0.12.0/osc_tiny.egg-info/SOURCES.txt
--- old/osc_tiny-0.11.0/osc_tiny.egg-info/SOURCES.txt   2025-11-25 
10:36:08.000000000 +0100
+++ new/osc_tiny-0.12.0/osc_tiny.egg-info/SOURCES.txt   2026-03-11 
14:47:08.000000000 +0100
@@ -3,7 +3,6 @@
 README.md
 requirements.txt
 requirements_devel.txt
-requirements_pre38.txt
 setup.py
 osc_tiny.egg-info/PKG-INFO
 osc_tiny.egg-info/SOURCES.txt
@@ -12,6 +11,7 @@
 osc_tiny.egg-info/top_level.txt
 osctiny/__init__.py
 osctiny/osc.py
+osctiny/py.typed
 osctiny/extensions/__init__.py
 osctiny/extensions/attributes.py
 osctiny/extensions/bs_requests.py
@@ -22,6 +22,7 @@
 osctiny/extensions/origin.py
 osctiny/extensions/packages.py
 osctiny/extensions/projects.py
+osctiny/extensions/published.py
 osctiny/extensions/search.py
 osctiny/extensions/staging.py
 osctiny/extensions/users.py
@@ -39,6 +40,7 @@
 osctiny/tests/test_origin.py
 osctiny/tests/test_packages.py
 osctiny/tests/test_projects.py
+osctiny/tests/test_published.py
 osctiny/tests/test_requests.py
 osctiny/tests/test_search.py
 osctiny/tests/test_staging.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/osc_tiny.egg-info/requires.txt 
new/osc_tiny-0.12.0/osc_tiny.egg-info/requires.txt
--- old/osc_tiny-0.11.0/osc_tiny.egg-info/requires.txt  2025-11-25 
10:36:08.000000000 +0100
+++ new/osc_tiny-0.12.0/osc_tiny.egg-info/requires.txt  2026-03-11 
14:47:08.000000000 +0100
@@ -4,3 +4,6 @@
 pytz
 pyyaml
 urllib3
+
+[:python_version < "3.8"]
+cached-property
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/osctiny/__init__.py 
new/osc_tiny-0.12.0/osctiny/__init__.py
--- old/osc_tiny-0.11.0/osctiny/__init__.py     2025-11-25 10:35:56.000000000 
+0100
+++ new/osc_tiny-0.12.0/osctiny/__init__.py     2026-03-11 14:47:05.000000000 
+0100
@@ -1,9 +1,9 @@
 # pylint: disable=missing-docstring
 from .osc import Osc
 from .extensions import bs_requests, buildresults, comments, packages, \
-    projects, search, users
+    projects, published, search, users
 
 
 __all__ = ['Osc', 'bs_requests', 'buildresults', 'comments', 'packages',
-           'projects', 'search', 'users']
-__version__ = "0.11.0"
+           'projects', 'published', 'search', 'users']
+__version__ = "0.12.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/osctiny/extensions/buildresults.py 
new/osc_tiny-0.12.0/osctiny/extensions/buildresults.py
--- old/osc_tiny-0.11.0/osctiny/extensions/buildresults.py      2025-11-25 
10:35:56.000000000 +0100
+++ new/osc_tiny-0.12.0/osctiny/extensions/buildresults.py      2026-03-11 
14:47:05.000000000 +0100
@@ -4,6 +4,7 @@
 """
 # pylint: disable=too-few-public-methods
 from urllib.parse import urljoin
+from warnings import warn
 
 from ..utils.base import ExtensionBase
 
@@ -115,8 +116,8 @@
         """
         Get a list of published binaries in a repository
 
-        Returns the directory listing of published packages for a given
-        project, repository, and architecture combination.
+        .. deprecated:: 0.12.0
+            Use 
:py:meth:`osctiny.extensions.published.Published.get_binary_list` instead.
 
         :param project: Project name
         :param repo: Repository name
@@ -124,15 +125,14 @@
         :param params: Additional parameters
         :return: Objectified XML element containing directory entries
         :rtype: lxml.objectify.ObjectifiedElement
-
         """
-        response = self.osc.request(
-            method="GET",
-            url=urljoin(self.osc.url, f"/published/{project}/{repo}/{arch}"),
-            params=params,
+        warn(
+            "Build.get_published_list is deprecated. "
+            "Use osc.published.get_binary_list instead.",
+            DeprecationWarning,
+            stacklevel=2,
         )
-
-        return self.osc.get_objectified_xml(response)
+        return self.osc.published.get_binary_list(project, repo, arch, 
**params)
 
     def get_status_and_build_id(self, project, repo, arch):
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/osctiny/extensions/published.py 
new/osc_tiny-0.12.0/osctiny/extensions/published.py
--- old/osc_tiny-0.11.0/osctiny/extensions/published.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/osc_tiny-0.12.0/osctiny/extensions/published.py 2026-03-11 
14:47:05.000000000 +0100
@@ -0,0 +1,61 @@
+"""
+Published binaries extension
+-----------------------------
+"""
+
+from urllib.parse import urljoin
+
+from ..utils.base import ExtensionBase
+
+
+class Published(ExtensionBase):
+    """
+    Osc extension for retrieving published binaries
+
+    .. versionadded:: 0.12.0
+    """
+
+    base_path = "/published"
+
+    def get(self, project: str, repo: str, **params):
+        """
+        Get published repository info
+
+        Returns directory listing or metadata (e.g. ``view=publishedpath``)
+        for a given project and repository.
+
+        :param project: Project name
+        :param repo: Repository name
+        :param params: Additional parameters
+        :return: Objectified XML element
+        :rtype: lxml.objectify.ObjectifiedElement
+        """
+        response = self.osc.request(
+            method="GET",
+            url=urljoin(self.osc.url, f"{self.base_path}/{project}/{repo}"),
+            params=params,
+        )
+
+        return self.osc.get_objectified_xml(response)
+
+    def get_binary_list(self, project: str, repo: str, arch: str, **params):
+        """
+        Get a list of published binaries in a repository
+
+        Returns the directory listing of published packages for a given
+        project, repository, and architecture combination.
+
+        :param project: Project name
+        :param repo: Repository name
+        :param arch: Architecture name
+        :param params: Additional parameters
+        :return: Objectified XML element containing directory entries
+        :rtype: lxml.objectify.ObjectifiedElement
+        """
+        response = self.osc.request(
+            method="GET",
+            url=urljoin(self.osc.url, 
f"{self.base_path}/{project}/{repo}/{arch}"),
+            params=params,
+        )
+
+        return self.osc.get_objectified_xml(response)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/osctiny/osc.py 
new/osc_tiny-0.12.0/osctiny/osc.py
--- old/osc_tiny-0.11.0/osctiny/osc.py  2025-11-25 10:35:56.000000000 +0100
+++ new/osc_tiny-0.12.0/osctiny/osc.py  2026-03-11 14:47:05.000000000 +0100
@@ -30,6 +30,7 @@
 from .extensions.origin import Origin
 from .extensions.packages import Package
 from .extensions.projects import Project
+from .extensions.published import Published
 from .extensions.bs_requests import Request as BsRequest
 from .extensions.search import Search
 from .extensions.staging import Staging
@@ -173,6 +174,7 @@
         self.origins = Origin(osc_obj=self)
         self.packages = Package(osc_obj=self)
         self.projects = Project(osc_obj=self)
+        self.published = Published(osc_obj=self)
         self.requests = BsRequest(osc_obj=self)
         self.search = Search(osc_obj=self)
         self.staging = Staging(osc_obj=self)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/osctiny/tests/test_published.py 
new/osc_tiny-0.12.0/osctiny/tests/test_published.py
--- old/osc_tiny-0.11.0/osctiny/tests/test_published.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/osc_tiny-0.12.0/osctiny/tests/test_published.py 2026-03-11 
14:47:05.000000000 +0100
@@ -0,0 +1,119 @@
+import re
+import warnings
+
+import responses
+
+from .base import OscTest
+
+
+class PublishedTest(OscTest):
+    @responses.activate
+    def test_get(self):
+        project = "openSUSE:Factory"
+        repo = "standard"
+
+        response_body = """
+        <directory>
+          <entry name="x86_64"/>
+          <entry name="i586"/>
+        </directory>
+        """
+
+        self.mock_request(
+            method=responses.GET,
+            
url=re.compile(f"{re.escape(self.osc.url)}/published/{project}/{repo}"),
+            body=response_body,
+        )
+
+        response = self.osc.published.get(project=project, repo=repo)
+        entries = response.findall("entry")
+        self.assertEqual(len(entries), 2)
+        self.assertEqual(entries[0].get("name"), "x86_64")
+
+    @responses.activate
+    def test_get_publishedpath(self):
+        project = "SUSE:SLFO:1.1:Staging:I"
+        repo = "standard"
+
+        response_body = """<publishedpath project="SUSE:SLFO:1.1:Staging:I" 
repository="standard">
+  <path>SUSE:/SLFO:/1.1:/Staging:/I/standard</path>
+  
<url>https://download.opensuse.org/obs/SUSE:/SLFO:/1.1:/Staging:/I/standard</url>
+</publishedpath>
+"""
+
+        self.mock_request(
+            method=responses.GET,
+            
url=re.compile(f"{re.escape(self.osc.url)}/published/{project}/{repo}"),
+            body=response_body,
+        )
+
+        response = self.osc.published.get(
+            project=project, repo=repo, view="publishedpath"
+        )
+        self.assertIsNotNone(response)
+        self.assertEqual(
+            response.url,
+            
"https://download.opensuse.org/obs/SUSE:/SLFO:/1.1:/Staging:/I/standard";,
+        )
+
+    @responses.activate
+    def test_get_binary_list(self):
+        project = "openSUSE:Factory"
+        repo = "standard"
+        arch = "x86_64"
+
+        response_body = """
+        <directory>
+          <entry name="acme-webserver-1.2.3-1.1.x86_64.rpm"/>
+          <entry name="python-foobar-2.0.1-4.2.x86_64.rpm"/>
+          <entry name="libcoolstuff3-0.5.7-2.1.x86_64.rpm"/>
+        </directory>
+        """
+
+        self.mock_request(
+            method=responses.GET,
+            url=re.compile(
+                f"{re.escape(self.osc.url)}/published/{project}/{repo}/{arch}"
+            ),
+            body=response_body,
+        )
+
+        response = self.osc.published.get_binary_list(
+            project=project, repo=repo, arch=arch
+        )
+        entries = response.findall("entry")
+        self.assertEqual(len(entries), 3)
+        self.assertEqual(entries[0].get("name"), 
"acme-webserver-1.2.3-1.1.x86_64.rpm")
+        self.assertEqual(entries[2].get("name"), 
"libcoolstuff3-0.5.7-2.1.x86_64.rpm")
+
+    @responses.activate
+    def test_build_get_published_list_deprecated(self):
+        project = "openSUSE:Factory"
+        repo = "standard"
+        arch = "x86_64"
+
+        response_body = """
+        <directory>
+          <entry name="acme-webserver-1.2.3-1.1.x86_64.rpm"/>
+        </directory>
+        """
+
+        self.mock_request(
+            method=responses.GET,
+            url=re.compile(
+                f"{re.escape(self.osc.url)}/published/{project}/{repo}/{arch}"
+            ),
+            body=response_body,
+        )
+
+        with warnings.catch_warnings(record=True) as w:
+            warnings.simplefilter("always")
+            response = self.osc.build.get_published_list(
+                project=project, repo=repo, arch=arch
+            )
+            self.assertEqual(len(w), 1)
+            self.assertTrue(issubclass(w[0].category, DeprecationWarning))
+            self.assertIn("deprecated", str(w[0].message).lower())
+
+        entries = response.findall("entry")
+        self.assertEqual(len(entries), 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/osctiny/utils/base.py 
new/osc_tiny-0.12.0/osctiny/utils/base.py
--- old/osc_tiny-0.11.0/osctiny/utils/base.py   2025-11-25 10:35:56.000000000 
+0100
+++ new/osc_tiny-0.12.0/osctiny/utils/base.py   2026-03-11 14:47:05.000000000 
+0100
@@ -4,10 +4,17 @@
 """
 # pylint: disable=too-few-public-methods,
 
+from typing import TYPE_CHECKING
+
+
+if TYPE_CHECKING:
+    from osctiny import Osc
+
 
 class ExtensionBase:
     """
     Base class for extensions of the :py:class:`Ocs` entry point.
     """
+
     def __init__(self, osc_obj: "Osc"):
         self.osc = osc_obj
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/requirements.txt 
new/osc_tiny-0.12.0/requirements.txt
--- old/osc_tiny-0.11.0/requirements.txt        2025-11-25 10:35:56.000000000 
+0100
+++ new/osc_tiny-0.12.0/requirements.txt        2026-03-11 14:47:05.000000000 
+0100
@@ -4,3 +4,4 @@
 pytz
 pyyaml
 urllib3
+cached-property; python_version < '3.8'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/requirements_pre38.txt 
new/osc_tiny-0.12.0/requirements_pre38.txt
--- old/osc_tiny-0.11.0/requirements_pre38.txt  2025-11-25 10:35:56.000000000 
+0100
+++ new/osc_tiny-0.12.0/requirements_pre38.txt  1970-01-01 01:00:00.000000000 
+0100
@@ -1 +0,0 @@
-cached-property
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osc_tiny-0.11.0/setup.py new/osc_tiny-0.12.0/setup.py
--- old/osc_tiny-0.11.0/setup.py        2025-11-25 10:35:56.000000000 +0100
+++ new/osc_tiny-0.12.0/setup.py        2026-03-11 14:47:05.000000000 +0100
@@ -1,6 +1,5 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-from sys import version_info
 from setuptools import setup, find_packages
 
 
@@ -13,10 +12,6 @@
     with open("requirements.txt", "r") as fh:
         requirements += _filter(fh.readlines())
 
-    if version_info.minor < 8:
-        with open("requirements_pre38.txt", "r") as fh:
-            requirements += _filter(fh.readlines())
-
     return requirements
 
 
@@ -26,8 +21,8 @@
 
 setup(
     name='osc-tiny',
-    version='0.11.0',
-    description='Client API for openSUSE BuildService',
+    version='0.12.0',
+    description='Client API for the Open Build Service',
     long_description=long_description,
     long_description_content_type="text/markdown",
     author='Andreas Hasenkopf',
@@ -36,13 +31,13 @@
     maintainer_email='[email protected]',
     url='https://github.com/SUSE/osc-tiny',
     packages=find_packages(),
-    license='MIT',
+    package_data={"osctiny": ["py.typed"]},
+    license_expression='MIT',
     install_requires=get_requires(),
     classifiers=[
         "Development Status :: 5 - Production/Stable",
         "Intended Audience :: Developers",
         "Intended Audience :: System Administrators",
-        "License :: OSI Approved :: MIT License",
         "Operating System :: OS Independent",
         "Programming Language :: Python :: 3.6",
         "Programming Language :: Python :: 3.7",
@@ -51,5 +46,7 @@
         "Programming Language :: Python :: 3.10",
         "Programming Language :: Python :: 3.11",
         "Programming Language :: Python :: 3.12",
+        "Programming Language :: Python :: 3.13",
+        "Programming Language :: Python :: 3.14",
     ]
 )

Reply via email to