Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-dj-database-url for 
openSUSE:Factory checked in at 2026-05-10 16:48:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-dj-database-url (Old)
 and      /work/SRC/openSUSE:Factory/.python-dj-database-url.new.1966 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-dj-database-url"

Sun May 10 16:48:18 2026 rev:13 rq:1352257 version:3.1.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-dj-database-url/python-dj-database-url.changes
    2025-07-14 10:57:58.336226937 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-dj-database-url.new.1966/python-dj-database-url.changes
  2026-05-10 16:48:57.942354190 +0200
@@ -1,0 +2,19 @@
+Sun May 10 09:56:40 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 3.1.2:
+  * Bump cryptography from 46.0.3 to 46.0.5
+  * Bump django from 5.2.9 to 5.2.11
+  * Bump urllib3 from 2.6.2 to 2.6.3
+  * Bump wheel from 0.45.1 to 0.46.2
+- update to 3.1.1:
+  * Add tests directory to source distribution
+  * Switch linting and formatting from flake8+isort+black to
+    ruff; add typos to pre-commit; fix typos
+  * Add project URLs to pyproject.toml
+  * Update .pre-commit-config.yaml to use pinned version numbers.
+- update to 3.1.0:
+  * Update license to BSD-3-Clause in setup.py
+  * CI: run typechecks only once, not for each Django/Python
+    version
+
+-------------------------------------------------------------------

Old:
----
  dj_database_url-3.0.1.tar.gz

New:
----
  dj_database_url-3.1.2.tar.gz

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

Other differences:
------------------
++++++ python-dj-database-url.spec ++++++
--- /var/tmp/diff_new_pack.S7dxON/_old  2026-05-10 16:48:59.426414925 +0200
+++ /var/tmp/diff_new_pack.S7dxON/_new  2026-05-10 16:48:59.434415253 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-dj-database-url
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,22 +18,21 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-dj-database-url
-Version:        3.0.1
+Version:        3.1.2
 Release:        0
 Summary:        Utility to use database URLs in Django applications
 License:        BSD-3-Clause
 Group:          Development/Languages/Python
 URL:            https://github.com/jazzband/dj-database-url
 Source:         
https://files.pythonhosted.org/packages/source/d/dj-database-url/dj_database_url-%{version}.tar.gz
-BuildRequires:  %{python_module Django > 4.2}
-BuildRequires:  %{python_module devel >= 3.9}
+BuildRequires:  %{python_module Django >= 4.2}
+BuildRequires:  %{python_module devel >= 3.10}
 BuildRequires:  %{python_module packaging}
 BuildRequires:  %{python_module pip}
-BuildRequires:  %{python_module setuptools}
-BuildRequires:  %{python_module wheel}
+BuildRequires:  %{python_module uv-build >= 0.9.17}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
-Requires:       python-Django > 4.2
+Requires:       python-Django >= 4.2
 BuildArch:      noarch
 %python_subpackages
 

++++++ dj_database_url-3.0.1.tar.gz -> dj_database_url-3.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dj_database_url-3.0.1/PKG-INFO 
new/dj_database_url-3.1.2/PKG-INFO
--- old/dj_database_url-3.0.1/PKG-INFO  2025-07-02 11:29:20.456748700 +0200
+++ new/dj_database_url-3.1.2/PKG-INFO  1970-01-01 01:00:00.000000000 +0100
@@ -1,19 +1,15 @@
 Metadata-Version: 2.4
 Name: dj-database-url
-Version: 3.0.1
+Version: 3.1.2
 Summary: Use Database URLs in your Django Application.
-Home-page: https://github.com/jazzband/dj-database-url
-Author: Original Author: Kenneth Reitz, Maintained by: JazzBand Community
-License: BSD
-Project-URL: GitHub, https://github.com/jazzband/dj-database-url/
-Project-URL: Release log, 
https://github.com/jazzband/dj-database-url/blob/master/CHANGELOG.md
-Platform: any
+Author: Jazzband community
+License-Expression: BSD-3-Clause
+License-File: LICENSE
 Classifier: Environment :: Web Environment
 Classifier: Framework :: Django
 Classifier: Framework :: Django :: 4.2
-Classifier: Framework :: Django :: 5.0
-Classifier: Framework :: Django :: 5.1
 Classifier: Framework :: Django :: 5.2
+Classifier: Framework :: Django :: 6
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: BSD License
 Classifier: Operating System :: OS Independent
@@ -27,20 +23,13 @@
 Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: 3.13
 Classifier: Programming Language :: Python :: 3.14
+Requires-Dist: django>=4.2
+Requires-Python: >=3.10
+Project-URL: Homepage, https://jazzband.co/projects/dj-database-url
+Project-URL: Changelog, 
https://github.com/jazzband/dj-database-url/blob/master/CHANGELOG.md
+Project-URL: Funding, 
https://psfmember.org/civicrm/contribute/transact/?reset=1&id=34
+Project-URL: Bug, https://github.com/jazzband/dj-database-url/issues
 Description-Content-Type: text/x-rst
-License-File: LICENSE
-Requires-Dist: Django>=4.2
-Dynamic: author
-Dynamic: classifier
-Dynamic: description
-Dynamic: description-content-type
-Dynamic: home-page
-Dynamic: license
-Dynamic: license-file
-Dynamic: platform
-Dynamic: project-url
-Dynamic: requires-dist
-Dynamic: summary
 
 DJ-Database-URL
 ~~~~~~~~~~~~~~~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dj_database_url-3.0.1/dj_database_url/__init__.py 
new/dj_database_url-3.1.2/dj_database_url/__init__.py
--- old/dj_database_url-3.0.1/dj_database_url/__init__.py       2025-07-02 
11:29:13.000000000 +0200
+++ new/dj_database_url-3.1.2/dj_database_url/__init__.py       1970-01-01 
01:00:00.000000000 +0100
@@ -1,32 +1,33 @@
 import logging
 import os
 import urllib.parse as urlparse
-from typing import Any, Callable, Dict, List, Optional, TypedDict, Union
+from collections.abc import Callable
+from typing import Any, TypedDict
 
 DEFAULT_ENV = "DATABASE_URL"
-ENGINE_SCHEMES: Dict[str, "Engine"] = {}
+ENGINE_SCHEMES: dict[str, "Engine"] = {}
 
 
 # From https://docs.djangoproject.com/en/stable/ref/settings/#databases
 class DBConfig(TypedDict, total=False):
     ATOMIC_REQUESTS: bool
     AUTOCOMMIT: bool
-    CONN_MAX_AGE: Optional[int]
+    CONN_MAX_AGE: int | None
     CONN_HEALTH_CHECKS: bool
     DISABLE_SERVER_SIDE_CURSORS: bool
     ENGINE: str
     HOST: str
     NAME: str
-    OPTIONS: Dict[str, Any]
+    OPTIONS: dict[str, Any]
     PASSWORD: str
-    PORT: Union[str, int]
-    TEST: Dict[str, Any]
+    PORT: str | int
+    TEST: dict[str, Any]
     TIME_ZONE: str
     USER: str
 
 
 PostprocessCallable = Callable[[DBConfig], None]
-OptionType = Union[int, str, bool]
+OptionType = int | str | bool
 
 
 class ParseError(ValueError):
@@ -38,7 +39,7 @@
 
 
 class UnknownSchemeError(ValueError):
-    def __init__(self, scheme: str) -> None:
+    def __init__(self, scheme: str):
         self.scheme = scheme
 
     def __str__(self) -> str:
@@ -59,7 +60,7 @@
         self,
         backend: str,
         postprocess: PostprocessCallable = default_postprocess,
-    ) -> None:
+    ):
         self.backend = backend
         self.postprocess = postprocess
 
@@ -125,13 +126,13 @@
 
 def config(
     env: str = DEFAULT_ENV,
-    default: Optional[str] = None,
-    engine: Optional[str] = None,
-    conn_max_age: int = 0,
+    default: str | None = None,
+    engine: str | None = None,
+    conn_max_age: int | None = 0,
     conn_health_checks: bool = False,
     disable_server_side_cursors: bool = False,
     ssl_require: bool = False,
-    test_options: Optional[Dict[str, Any]] = None,
+    test_options: dict[str, Any] | None = None,
 ) -> DBConfig:
     """Returns configured DATABASE dictionary from DATABASE_URL."""
     s = os.environ.get(env, default)
@@ -157,12 +158,12 @@
 
 def parse(
     url: str,
-    engine: Optional[str] = None,
-    conn_max_age: int = 0,
+    engine: str | None = None,
+    conn_max_age: int | None = 0,
     conn_health_checks: bool = False,
     disable_server_side_cursors: bool = False,
     ssl_require: bool = False,
-    test_options: Optional[Dict[str, Any]] = None,
+    test_options: dict[str, Any] | None = None,
 ) -> DBConfig:
     """Parses a database URL and returns configured DATABASE dictionary."""
     settings = _convert_to_settings(
@@ -216,7 +217,7 @@
     return parsed_config
 
 
-def _parse_option_values(values: List[str]) -> Union[OptionType, 
List[OptionType]]:
+def _parse_option_values(values: list[str]) -> OptionType | list[OptionType]:
     parsed_values = [_parse_value(v) for v in values]
     return parsed_values[0] if len(parsed_values) == 1 else parsed_values
 
@@ -230,12 +231,12 @@
 
 
 def _convert_to_settings(
-    engine: Optional[str],
-    conn_max_age: int,
+    engine: str | None,
+    conn_max_age: int | None,
     conn_health_checks: bool,
     disable_server_side_cursors: bool,
     ssl_require: bool,
-    test_options: Optional[dict[str, Any]],
+    test_options: dict[str, Any] | None,
 ) -> DBConfig:
     settings: DBConfig = {
         "CONN_MAX_AGE": conn_max_age,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dj_database_url-3.0.1/dj_database_url.egg-info/PKG-INFO 
new/dj_database_url-3.1.2/dj_database_url.egg-info/PKG-INFO
--- old/dj_database_url-3.0.1/dj_database_url.egg-info/PKG-INFO 2025-07-02 
11:29:20.000000000 +0200
+++ new/dj_database_url-3.1.2/dj_database_url.egg-info/PKG-INFO 1970-01-01 
01:00:00.000000000 +0100
@@ -1,321 +0,0 @@
-Metadata-Version: 2.4
-Name: dj-database-url
-Version: 3.0.1
-Summary: Use Database URLs in your Django Application.
-Home-page: https://github.com/jazzband/dj-database-url
-Author: Original Author: Kenneth Reitz, Maintained by: JazzBand Community
-License: BSD
-Project-URL: GitHub, https://github.com/jazzband/dj-database-url/
-Project-URL: Release log, 
https://github.com/jazzband/dj-database-url/blob/master/CHANGELOG.md
-Platform: any
-Classifier: Environment :: Web Environment
-Classifier: Framework :: Django
-Classifier: Framework :: Django :: 4.2
-Classifier: Framework :: Django :: 5.0
-Classifier: Framework :: Django :: 5.1
-Classifier: Framework :: Django :: 5.2
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: BSD License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3
-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/x-rst
-License-File: LICENSE
-Requires-Dist: Django>=4.2
-Dynamic: author
-Dynamic: classifier
-Dynamic: description
-Dynamic: description-content-type
-Dynamic: home-page
-Dynamic: license
-Dynamic: license-file
-Dynamic: platform
-Dynamic: project-url
-Dynamic: requires-dist
-Dynamic: summary
-
-DJ-Database-URL
-~~~~~~~~~~~~~~~
-
-.. image:: https://jazzband.co/static/img/badge.png
-   :target: https://jazzband.co/
-   :alt: Jazzband
-
-.. image:: 
https://github.com/jazzband/dj-database-url/actions/workflows/test.yml/badge.svg
-   :target: 
https://github.com/jazzband/dj-database-url/actions/workflows/test.yml
-
-.. image:: 
https://codecov.io/gh/jazzband/dj-database-url/branch/master/graph/badge.svg?token=7srBUpszOa
-   :target: https://codecov.io/gh/jazzband/dj-database-url
-
-This simple Django utility allows you to utilize the
-`12factor <http://www.12factor.net/backing-services>`_ inspired
-``DATABASE_URL`` environment variable to configure your Django application.
-
-The ``dj_database_url.config`` method returns a Django database connection
-dictionary, populated with all the data specified in your URL. There is
-also a `conn_max_age` argument to easily enable Django's connection pool.
-
-If you'd rather not use an environment variable, you can pass a URL in directly
-instead to ``dj_database_url.parse``.
-
-Installation
-------------
-
-Installation is simple:
-
-.. code-block:: console
-
-    $ pip install dj-database-url
-
-Usage
------
-
-1. If ``DATABASES`` is already defined:
-
-- Configure your database in ``settings.py`` from ``DATABASE_URL``:
-
-  .. code-block:: python
-
-      import dj_database_url
-
-      DATABASES['default'] = dj_database_url.config(
-          conn_max_age=600,
-          conn_health_checks=True,
-      )
-
-- Provide a default:
-
-  .. code-block:: python
-
-      DATABASES['default'] = dj_database_url.config(
-          default='postgres://...',
-          conn_max_age=600,
-          conn_health_checks=True,
-      )
-
-- Parse an arbitrary Database URL:
-
-  .. code-block:: python
-
-      DATABASES['default'] = dj_database_url.parse(
-          'postgres://...',
-          conn_max_age=600,
-          conn_health_checks=True,
-      )
-
-2. If ``DATABASES`` is not defined:
-
-- Configure your database in ``settings.py`` from ``DATABASE_URL``:
-
-  .. code-block:: python
-
-      import dj_database_url
-
-      DATABASES = {
-          'default': dj_database_url.config(
-              conn_max_age=600,
-              conn_health_checks=True,
-          ),
-      }
-
-- You can provide a default, used if the ``DATABASE_URL`` setting is not 
defined:
-
-  .. code-block:: python
-
-      DATABASES = {
-          'default': dj_database_url.config(
-              default='postgres://...',
-              conn_max_age=600,
-              conn_health_checks=True,
-          )
-      }
-
-- Parse an arbitrary Database URL:
-
-  .. code-block:: python
-
-      DATABASES = {
-          'default': dj_database_url.parse(
-              'postgres://...',
-              conn_max_age=600,
-              conn_health_checks=True,
-          )
-      }
-
-``conn_max_age`` sets the |CONN_MAX_AGE setting|__, which tells Django to
-persist database connections between requests, up to the given lifetime in
-seconds. If you do not provide a value, it will follow Django’s default of
-``0``. Setting it is recommended for performance.
-
-.. |CONN_MAX_AGE setting| replace:: ``CONN_MAX_AGE`` setting
-__ https://docs.djangoproject.com/en/stable/ref/settings/#conn-max-age
-
-``conn_health_checks`` sets the |CONN_HEALTH_CHECKS setting|__ (new in Django
-4.1), which tells Django to check a persisted connection still works at the
-start of each request. If you do not provide a value, it will follow Django’s
-default of ``False``. Enabling it is recommended if you set a non-zero
-``conn_max_age``.
-
-.. |CONN_HEALTH_CHECKS setting| replace:: ``CONN_HEALTH_CHECKS`` setting
-__ https://docs.djangoproject.com/en/stable/ref/settings/#conn-health-checks
-
-Strings passed to `dj_database_url` must be valid URLs; in
-particular, special characters must be url-encoded. The following url will 
raise
-a `ValueError`:
-
-.. code-block:: plaintext
-
-    postgres://user:p#ssword!@localhost/foobar
-
-and should instead be passed as:
-
-.. code-block:: plaintext
-
-    postgres://user:p%23ssword!@localhost/foobar
-
-`TEST <https://docs.djangoproject.com/en/stable/ref/settings/#test>`_ settings 
can be configured using the ``test_options`` attribute::
-
-    DATABASES['default'] = dj_database_url.config(default='postgres://...', 
test_options={'NAME': 'mytestdatabase'})
-
-
-Supported Databases
--------------------
-
-Support currently exists for PostgreSQL, PostGIS, MySQL, MySQL (GIS),
-Oracle, Oracle (GIS), Redshift, CockroachDB, Timescale, Timescale (GIS) and 
SQLite.
-
-If you want to use
-some non-default backends, you need to register them first:
-
-.. code-block:: python
-
-    import dj_database_url
-
-    # registration should be performed only once
-    dj_database_url.register("mysql-connector", "mysql.connector.django")
-
-    assert 
dj_database_url.parse("mysql-connector://user:password@host:port/db-name") == {
-        "ENGINE": "mysql.connector.django",
-        # ...other connection params
-    }
-
-Some backends need further config adjustments (e.g. oracle and mssql
-expect ``PORT`` to be a string). For such cases you can provide a
-post-processing function to ``register()`` (note that ``register()`` is
-used as a **decorator(!)** in this case):
-
-.. code-block:: python
-
-    import dj_database_url
-
-    @dj_database_url.register("mssql", "sql_server.pyodbc")
-    def stringify_port(config):
-        config["PORT"] = str(config["PORT"])
-
-    @dj_database_url.register("redshift", "django_redshift_backend")
-    def apply_current_schema(config):
-        options = config["OPTIONS"]
-        schema = options.pop("currentSchema", None)
-        if schema:
-            options["options"] = f"-c search_path={schema}"
-
-    @dj_database_url.register("snowflake", "django_snowflake")
-    def adjust_snowflake_config(config):
-        config.pop("PORT", None)
-        config["ACCOUNT"] = config.pop("HOST")
-        name, _, schema = config["NAME"].partition("/")
-        if schema:
-            config["SCHEMA"] = schema
-            config["NAME"] = name
-        options = config.get("OPTIONS", {})
-        warehouse = options.pop("warehouse", None)
-        if warehouse:
-            config["WAREHOUSE"] = warehouse
-        role = options.pop("role", None)
-        if role:
-            config["ROLE"] = role
-
-URL schema
-----------
-
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| Engine               | Django Backend                                | URL   
                                           |
-+======================+===============================================+==================================================+
-| PostgreSQL           | ``django.db.backends.postgresql`` [1]_        | 
``postgres://USER:PASSWORD@HOST:PORT/NAME`` [2]_ |
-|                      |                                               | 
``postgresql://USER:PASSWORD@HOST:PORT/NAME``    |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| PostGIS              | ``django.contrib.gis.db.backends.postgis``    | 
``postgis://USER:PASSWORD@HOST:PORT/NAME``       |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| MSSQL                | ``sql_server.pyodbc``                         | 
``mssql://USER:PASSWORD@HOST:PORT/NAME``         |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| MSSQL [5]_           | ``mssql``                                     | 
``mssqlms://USER:PASSWORD@HOST:PORT/NAME``       |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| MySQL                | ``django.db.backends.mysql``                  | 
``mysql://USER:PASSWORD@HOST:PORT/NAME`` [2]_    |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| MySQL (GIS)          | ``django.contrib.gis.db.backends.mysql``      | 
``mysqlgis://USER:PASSWORD@HOST:PORT/NAME``      |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| SQLite               | ``django.db.backends.sqlite3``                | 
``sqlite:///PATH`` [3]_                          |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| SpatiaLite           | ``django.contrib.gis.db.backends.spatialite`` | 
``spatialite:///PATH`` [3]_                      |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| Oracle               | ``django.db.backends.oracle``                 | 
``oracle://USER:PASSWORD@HOST:PORT/NAME`` [4]_   |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| Oracle (GIS)         | ``django.contrib.gis.db.backends.oracle``     | 
``oraclegis://USER:PASSWORD@HOST:PORT/NAME``     |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| Redshift             | ``django_redshift_backend``                   | 
``redshift://USER:PASSWORD@HOST:PORT/NAME``      |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| CockroachDB          | ``django_cockroachdb``                        | 
``cockroach://USER:PASSWORD@HOST:PORT/NAME``     |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| Timescale [6]_       | ``timescale.db.backends.postgresql``          | 
``timescale://USER:PASSWORD@HOST:PORT/NAME``     |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-| Timescale (GIS) [6]_ | ``timescale.db.backend.postgis``              | 
``timescalegis://USER:PASSWORD@HOST:PORT/NAME``  |
-+----------------------+-----------------------------------------------+--------------------------------------------------+
-
-.. [1] The django.db.backends.postgresql backend is named 
django.db.backends.postgresql_psycopg2 in older releases. For
-       backwards compatibility, the old name still works in newer versions. 
(The new name does not work in older versions).
-.. [2] With PostgreSQL or CloudSQL, you can also use unix domain socket paths 
with
-       `percent encoding 
<http://www.postgresql.org/docs/9.2/interactive/libpq-connect.html#AEN38162>`_:
-       ``postgres://%2Fvar%2Flib%2Fpostgresql/dbname``
-       
``mysql://uf07k1i6d8ia0v@%2fcloudsql%2fproject%3alocation%3ainstance/dbname``
-.. [3] SQLite connects to file based databases. The same URL format is used, 
omitting
-       the hostname, and using the "file" portion as the filename of the 
database.
-       This has the effect of four slashes being present for an absolute file 
path:
-       ``sqlite:////full/path/to/your/database/file.sqlite``.
-.. [4] Note that when connecting to Oracle the URL isn't in the form you may 
know
-       from using other Oracle tools (like SQLPlus) i.e. user and password are 
separated
-       by ``:`` not by ``/``. Also you can omit ``HOST`` and ``PORT``
-       and provide a full DSN string or TNS name in ``NAME`` part.
-.. [5] Microsoft official `mssql-django 
<https://github.com/microsoft/mssql-django>`_ adapter.
-.. [6] Using the django-timescaledb Package which must be installed.
-
-
-Contributing
-------------
-
-We welcome contributions to this project. Projects can take two forms:
-
-1. Raising issues or helping others through the github issue tracker.
-2. Contributing code.
-
-Raising Issues or helping others:
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When submitting an issue or helping other remember you are talking to humans 
who have feelings, jobs and lives of their
-own. Be nice, be kind, be polite. Remember english may not be someone first 
language, if you do not understand or
-something is not clear be polite and re-ask/ re-word.
-
-Contributing code:
-^^^^^^^^^^^^^^^^^^
-
-* Before writing code be sure to check existing PR's and issues in the tracker.
-* Write code to the pylint spec.
-* Large or wide sweeping changes will take longer, and may face more scrutiny 
than smaller confined changes.
-* Code should be pass `black` and `flake8` validation.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dj_database_url-3.0.1/dj_database_url.egg-info/SOURCES.txt 
new/dj_database_url-3.1.2/dj_database_url.egg-info/SOURCES.txt
--- old/dj_database_url-3.0.1/dj_database_url.egg-info/SOURCES.txt      
2025-07-02 11:29:20.000000000 +0200
+++ new/dj_database_url-3.1.2/dj_database_url.egg-info/SOURCES.txt      
1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-LICENSE
-README.rst
-pyproject.toml
-setup.py
-dj_database_url/__init__.py
-dj_database_url/py.typed
-dj_database_url.egg-info/PKG-INFO
-dj_database_url.egg-info/SOURCES.txt
-dj_database_url.egg-info/dependency_links.txt
-dj_database_url.egg-info/requires.txt
-dj_database_url.egg-info/top_level.txt
-tests/test_dj_database_url.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dj_database_url-3.0.1/dj_database_url.egg-info/dependency_links.txt 
new/dj_database_url-3.1.2/dj_database_url.egg-info/dependency_links.txt
--- old/dj_database_url-3.0.1/dj_database_url.egg-info/dependency_links.txt     
2025-07-02 11:29:20.000000000 +0200
+++ new/dj_database_url-3.1.2/dj_database_url.egg-info/dependency_links.txt     
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dj_database_url-3.0.1/dj_database_url.egg-info/requires.txt 
new/dj_database_url-3.1.2/dj_database_url.egg-info/requires.txt
--- old/dj_database_url-3.0.1/dj_database_url.egg-info/requires.txt     
2025-07-02 11:29:20.000000000 +0200
+++ new/dj_database_url-3.1.2/dj_database_url.egg-info/requires.txt     
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-Django>=4.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dj_database_url-3.0.1/dj_database_url.egg-info/top_level.txt 
new/dj_database_url-3.1.2/dj_database_url.egg-info/top_level.txt
--- old/dj_database_url-3.0.1/dj_database_url.egg-info/top_level.txt    
2025-07-02 11:29:20.000000000 +0200
+++ new/dj_database_url-3.1.2/dj_database_url.egg-info/top_level.txt    
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-dj_database_url
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dj_database_url-3.0.1/pyproject.toml 
new/dj_database_url-3.1.2/pyproject.toml
--- old/dj_database_url-3.0.1/pyproject.toml    2025-07-02 11:29:13.000000000 
+0200
+++ new/dj_database_url-3.1.2/pyproject.toml    1970-01-01 01:00:00.000000000 
+0100
@@ -1,5 +1,61 @@
-[tool.black]
-skip-string-normalization = 1
+[project]
+name = "dj-database-url"
+version = "3.1.2"
+description = "Use Database URLs in your Django Application."
+authors = [
+    { name = "Jazzband community" }
+]
+readme = "README.rst"
+requires-python = ">=3.10"
+license = "BSD-3-Clause"
+license-files = ["LICENSE"]
+dependencies = [
+    "django>=4.2",
+]
+classifiers = [
+    "Environment :: Web Environment",
+    "Framework :: Django",
+    "Framework :: Django :: 4.2",
+    "Framework :: Django :: 5.2",
+    "Framework :: Django :: 6",
+    "Intended Audience :: Developers",
+    "License :: OSI Approved :: BSD License",
+    "Operating System :: OS Independent",
+    "Programming Language :: Python",
+    "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
+    "Topic :: Software Development :: Libraries :: Python Modules",
+    "Programming Language :: Python",
+    "Programming Language :: Python :: 3",
+    "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",
+]
+
+[project.urls]
+Homepage = "https://jazzband.co/projects/dj-database-url";
+Changelog = 
"https://github.com/jazzband/dj-database-url/blob/master/CHANGELOG.md";
+Funding = "https://psfmember.org/civicrm/contribute/transact/?reset=1&id=34";
+Bug = "https://github.com/jazzband/dj-database-url/issues";
+
+[build-system]
+requires = ["uv_build>=0.9.17,<0.10.0"]
+build-backend = "uv_build"
+
+[tool.uv.build-backend]
+module-name = "dj_database_url"
+module-root = ""
+source-include = ["dj_database_url/py.typed", "tests/**"]
+
+[tool.ruff]
+line-length = 88
+
+[tool.ruff.lint]
+extend-select = ["B", "I"]
+
+[tool.ruff.format]
+quote-style = "preserve"
 
 [tool.mypy]
 show_error_codes=true
@@ -9,3 +65,15 @@
 
 [tool.pyright]
 typeCheckingMode = "strict"
+
+[dependency-groups]
+dev = [
+    "coverage>=7.13.0",
+    "mypy>=1.19.1",
+    "pyright>=1.1.407",
+    "pytest>=9.0.2",
+    "ruff>=0.14.10",
+    "setuptools>=80.9.0",
+    "twine>=6.2.0",
+    "wheel>=0.45.1",
+]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dj_database_url-3.0.1/setup.cfg 
new/dj_database_url-3.1.2/setup.cfg
--- old/dj_database_url-3.0.1/setup.cfg 2025-07-02 11:29:20.456748700 +0200
+++ new/dj_database_url-3.1.2/setup.cfg 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-[egg_info]
-tag_build = 
-tag_date = 0
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dj_database_url-3.0.1/setup.py 
new/dj_database_url-3.1.2/setup.py
--- old/dj_database_url-3.0.1/setup.py  2025-07-02 11:29:13.000000000 +0200
+++ new/dj_database_url-3.1.2/setup.py  1970-01-01 01:00:00.000000000 +0100
@@ -1,50 +0,0 @@
-from pathlib import Path
-
-from setuptools import setup  # pyright: ignore[reportUnknownVariableType]
-
-readme = Path("README.rst").read_text()
-
-setup(
-    name="dj-database-url",
-    version="3.0.1",
-    url="https://github.com/jazzband/dj-database-url";,
-    license="BSD",
-    author="Original Author: Kenneth Reitz, Maintained by: JazzBand Community",
-    description="Use Database URLs in your Django Application.",
-    long_description=readme,
-    long_description_content_type="text/x-rst",
-    packages=["dj_database_url"],
-    install_requires=["Django>=4.2"],
-    include_package_data=True,
-    package_data={
-        "dj_database_url": ["py.typed"],
-    },
-    platforms="any",
-    project_urls={
-        "GitHub": "https://github.com/jazzband/dj-database-url/";,
-        "Release log": (
-            
"https://github.com/jazzband/dj-database-url/blob/master/CHANGELOG.md";
-        ),
-    },
-    classifiers=[
-        "Environment :: Web Environment",
-        "Framework :: Django",
-        "Framework :: Django :: 4.2",
-        "Framework :: Django :: 5.0",
-        "Framework :: Django :: 5.1",
-        "Framework :: Django :: 5.2",
-        "Intended Audience :: Developers",
-        "License :: OSI Approved :: BSD License",
-        "Operating System :: OS Independent",
-        "Programming Language :: Python",
-        "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
-        "Topic :: Software Development :: Libraries :: Python Modules",
-        "Programming Language :: Python",
-        "Programming Language :: Python :: 3",
-        "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",
-    ],
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dj_database_url-3.0.1/tests/test_dj_database_url.py 
new/dj_database_url-3.1.2/tests/test_dj_database_url.py
--- old/dj_database_url-3.0.1/tests/test_dj_database_url.py     2025-07-02 
11:29:13.000000000 +0200
+++ new/dj_database_url-3.1.2/tests/test_dj_database_url.py     1970-01-01 
01:00:00.000000000 +0100
@@ -266,8 +266,8 @@
 
         assert url["CONN_MAX_AGE"] == conn_max_age
 
-    def test_config_conn_max_age_setting(self) -> None:
-        conn_max_age = 600
+    def test_config_conn_max_age_setting_none(self) -> None:
+        conn_max_age = None
         with mock.patch.dict(
             os.environ,
             {
@@ -680,9 +680,9 @@
     def test_options_int_values(self) -> None:
         """Ensure that options with integer values are parsed correctly."""
         url = dj_database_url.parse(
-            "mysql://user:[email protected]:15036/db?connect_timout=3"
+            "mysql://user:[email protected]:15036/db?connect_timeout=3"
         )
-        assert url["OPTIONS"] == {'connect_timout': 3}
+        assert url["OPTIONS"] == {'connect_timeout': 3}
 
     @mock.patch.dict(
         os.environ,

Reply via email to