Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-zope.i18nmessageid for 
openSUSE:Factory checked in at 2023-05-09 13:06:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zope.i18nmessageid (Old)
 and      /work/SRC/openSUSE:Factory/.python-zope.i18nmessageid.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-zope.i18nmessageid"

Tue May  9 13:06:56 2023 rev:15 rq:1085137 version:6.0.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-zope.i18nmessageid/python-zope.i18nmessageid.changes
      2023-05-04 17:09:59.952162844 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-zope.i18nmessageid.new.1533/python-zope.i18nmessageid.changes
    2023-05-09 13:07:09.572957310 +0200
@@ -1,0 +2,8 @@
+Fri May  5 14:24:11 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 6.0.1:
+  * Drop dependency on ``six``.
+  * Drop support for Python 2.7, 3.5, 3.6.
+  * Add preliminary support for Python 3.12a5.
+
+-------------------------------------------------------------------

Old:
----
  zope.i18nmessageid-5.1.1.tar.gz

New:
----
  zope.i18nmessageid-6.0.1.tar.gz

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

Other differences:
------------------
++++++ python-zope.i18nmessageid.spec ++++++
--- /var/tmp/diff_new_pack.KTJ3xb/_old  2023-05-09 13:07:10.184960953 +0200
+++ /var/tmp/diff_new_pack.KTJ3xb/_new  2023-05-09 13:07:10.196961024 +0200
@@ -25,8 +25,9 @@
 %define psuffix %{nil}
 %bcond_with test
 %endif
+%{?sle15_python_module_pythons}
 Name:           python-zope.i18nmessageid%{psuffix}
-Version:        5.1.1
+Version:        6.0.1
 Release:        0
 Summary:        Zope Location
 License:        ZPL-2.1
@@ -39,7 +40,6 @@
 BuildRequires:  python-rpm-macros
 # SECTION documentation requirements
 BuildRequires:  python3-Sphinx
-Requires:       python-six
 # /SECTION
 # SECTION testing requirements
 %if %{with test}

++++++ zope.i18nmessageid-5.1.1.tar.gz -> zope.i18nmessageid-6.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-5.1.1/.manylinux-install.sh 
new/zope.i18nmessageid-6.0.1/.manylinux-install.sh
--- old/zope.i18nmessageid-5.1.1/.manylinux-install.sh  2022-11-17 
15:09:48.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/.manylinux-install.sh  2023-03-24 
07:58:02.000000000 +0100
@@ -28,9 +28,7 @@
 
 tox_env_map() {
     case $1 in
-        *"cp27"*) echo 'py27';;
-        *"cp35"*) echo 'py35';;
-        *"cp36"*) echo 'py36';;
+        *"cp312"*) echo 'py312';;
         *"cp37"*) echo 'py37';;
         *"cp38"*) echo 'py38';;
         *"cp39"*) echo 'py39';;
@@ -43,16 +41,19 @@
 # Compile wheels
 for PYBIN in /opt/python/*/bin; do
     if \
-       [[ "${PYBIN}" == *"cp27"* ]] || \
-       [[ "${PYBIN}" == *"cp35"* ]] || \
+       [[ "${PYBIN}" == *"cp312"* ]] || \
        [[ "${PYBIN}" == *"cp311"* ]] || \
-       [[ "${PYBIN}" == *"cp36"* ]] || \
        [[ "${PYBIN}" == *"cp37"* ]] || \
        [[ "${PYBIN}" == *"cp38"* ]] || \
        [[ "${PYBIN}" == *"cp39"* ]] || \
        [[ "${PYBIN}" == *"cp310"* ]] ; then
-        "${PYBIN}/pip" install -e /io/
-        "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+        if [[ "${PYBIN}" == *"cp312"* ]] ; then
+            "${PYBIN}/pip" install --pre -e /io/
+            "${PYBIN}/pip" wheel /io/ --pre -w wheelhouse/
+        else
+            "${PYBIN}/pip" install -e /io/
+            "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+        fi
         if [ `uname -m` == 'aarch64' ]; then
           cd /io/
           ${PYBIN}/pip install tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-5.1.1/CHANGES.rst 
new/zope.i18nmessageid-6.0.1/CHANGES.rst
--- old/zope.i18nmessageid-5.1.1/CHANGES.rst    2022-11-17 15:26:18.000000000 
+0100
+++ new/zope.i18nmessageid-6.0.1/CHANGES.rst    2023-03-24 07:58:02.000000000 
+0100
@@ -2,6 +2,20 @@
  Changes
 =========
 
+6.0.1 (2023-03-24)
+==================
+
+- Drop dependency on ``six``.
+
+
+6.0.0 (2023-03-23)
+==================
+
+- Drop support for Python 2.7, 3.5, 3.6.
+
+- Add preliminary support for Python 3.12a5.
+
+
 5.1.1 (2022-11-17)
 ==================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-5.1.1/PKG-INFO 
new/zope.i18nmessageid-6.0.1/PKG-INFO
--- old/zope.i18nmessageid-5.1.1/PKG-INFO       2022-11-17 16:10:00.848174800 
+0100
+++ new/zope.i18nmessageid-6.0.1/PKG-INFO       2023-03-24 07:58:03.586184700 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: zope.i18nmessageid
-Version: 5.1.1
+Version: 6.0.1
 Summary: Message Identifiers for internationalization
 Home-page: https://github.com/zopefoundation/zope.i18nmessageid
 Author: Zope Foundation and Contributors
@@ -12,11 +12,7 @@
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: Zope Public License
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
@@ -28,7 +24,7 @@
 Classifier: Operating System :: OS Independent
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Framework :: Zope :: 3
-Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
+Requires-Python: >=3.7
 Provides-Extra: testing
 Provides-Extra: test
 Provides-Extra: docs
@@ -78,6 +74,20 @@
  Changes
 =========
 
+6.0.1 (2023-03-24)
+==================
+
+- Drop dependency on ``six``.
+
+
+6.0.0 (2023-03-23)
+==================
+
+- Drop support for Python 2.7, 3.5, 3.6.
+
+- Add preliminary support for Python 3.12a5.
+
+
 5.1.1 (2022-11-17)
 ==================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-5.1.1/appveyor.yml 
new/zope.i18nmessageid-6.0.1/appveyor.yml
--- old/zope.i18nmessageid-5.1.1/appveyor.yml   2022-11-17 15:09:48.000000000 
+0100
+++ new/zope.i18nmessageid-6.0.1/appveyor.yml   2023-03-24 07:58:02.000000000 
+0100
@@ -9,14 +9,14 @@
       secure: 
aoZC/+rvJKg8B5GMGIxd1VZ0Oxtmc0lPMiqT2wHP5qBRoZf6tEB7n9u7uCIifcAX1IWsLCRF7DKWvvCQTFJL5HcQvXFQSnEuXvdMT/utFFx9eCCy+Cu+WuWkasGCG+gx9uhMTe01mixi8yujgVj894Xjdv5YyNH2dPeqV5kInTzYrOmKZs1FTvKTlYZNHyYWRnYhyaLBn4FmmeuXuFcd5o05jkaa2dnerW85F3sr7mWbCgL4GpEQ59rYX34Cl4EdEXw+IViTyFWJuZp+k9GCUnzxAmA+vlfoSbZ6JfvTLaU=
 
   matrix:
-    - python: 27-x64
-    - python: 35-x64
-    - python: 36-x64
     - python: 37-x64
     - python: 38-x64
     - python: 39-x64
     - python: 310-x64
     - python: 311-x64
+    # `multibuild` cannot install non-final versions as they are not on
+    # ftp.python.org, so we skip Python 3.11 until its final release:
+    # - python: 312-x64
 
 install:
   - "SET PYTHONVERSION=%PYTHON%"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-5.1.1/docs/_build/doctest/output.txt 
new/zope.i18nmessageid-6.0.1/docs/_build/doctest/output.txt
--- old/zope.i18nmessageid-5.1.1/docs/_build/doctest/output.txt 2022-11-06 
13:20:00.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/docs/_build/doctest/output.txt 1970-01-01 
01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
-Results of doctest builder run on 2022-11-06 13:20:00
-=====================================================
-
-Document: narr
---------------
-1 items passed all tests:
-  36 tests in default
-36 tests in 1 items.
-36 passed and 0 failed.
-Test passed.
-
-Doctest summary
-===============
-   36 tests
-    0 failures in tests
-    0 failures in setup code
-    0 failures in cleanup code
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-5.1.1/docs/_build/html/_sources/api.rst.txt 
new/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/api.rst.txt
--- old/zope.i18nmessageid-5.1.1/docs/_build/html/_sources/api.rst.txt  
2022-11-03 15:37:34.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/api.rst.txt  
1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-:mod:`zope.i18nmessageid` API Reference
-=======================================
-
-:mod:`zope.i18nmessageid.message`
----------------------------------
-
-.. automodule:: zope.i18nmessageid.message
-
-   .. autoclass:: Message
-
-   .. autoclass:: MessageFactory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-5.1.1/docs/_build/html/_sources/hacking.rst.txt 
new/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/hacking.rst.txt
--- old/zope.i18nmessageid-5.1.1/docs/_build/html/_sources/hacking.rst.txt      
2022-11-03 15:37:34.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/hacking.rst.txt      
1970-01-01 01:00:00.000000000 +0100
@@ -1,300 +0,0 @@
-Hacking on :mod:`zope.i18nmessageid`
-====================================
-
-
-Getting the Code
-################
-
-The main repository for :mod:`zope.i18nmessageid` is in the Zope Foundation
-Github repository:
-
-  https://github.com/zopefoundation/zope.i18nmessageid
-
-You can get a read-only checkout from there:
-
-.. code-block:: sh
-
-   $ git clone https://github.com/zopefoundation/zope.i18nmessageid.git
-
-or fork it and get a writeable checkout of your fork:
-
-.. code-block:: sh
-
-   $ git clone g...@github.com/jrandom/zope.i18nmessageid.git
-
-The project also mirrors the trunk from the Github repository as a
-Bazaar branch on Launchpad:
-
-https://code.launchpad.net/zope.i8nmessageid
-
-You can branch the trunk from there using Bazaar:
-
-.. code-block:: sh
-
-   $ bzr branch lp:zope.i8nmessageid
-
-
-
-Working in a ``virtualenv``
-###########################
-
-Installing
-----------
-
-If you use the ``virtualenv`` package to create lightweight Python
-development environments, you can run the tests using nothing more
-than the ``python`` binary in a virtualenv.  First, create a scratch
-environment:
-
-.. code-block:: sh
-
-   $ /path/to/virtualenv --no-site-packages /tmp/hack-zope.i18nmessageid
-
-Next, get this package registered as a "development egg" in the
-environment:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.i8nmessageid/bin/python setup.py develop
-
-Running the tests
------------------
-
-Run the tests using the build-in ``setuptools`` testrunner:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.i8nmessageid/bin/python setup.py test -q
-   running test
-   ....................
-   ----------------------------------------------------------------------
-   Ran 20 tests in 0.001s
-
-   OK
-
-The ``dev`` command alias downloads and installs extra tools, like the
-:mod:`nose` testrunner and the :mod:`coverage` coverage analyzer:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.i8nmessageid/bin/python setup.py dev
-   $ /tmp/hack-zope.i8nmessageid/bin/nosetests
-   running nosetests
-   ....................
-   ----------------------------------------------------------------------
-   Ran 20 tests in 0.030s
-
-   OK
-
-If you have the :mod:`coverage` pacakge installed in the virtualenv,
-you can see how well the tests cover the code:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.i8nmessageid/bin/nosetests --with coverage
-   running nosetests
-   ....................
-   Name                         Stmts   Miss  Cover   Missing
-   ----------------------------------------------------------
-   zope.i18nmessageid               3      0   100%   
-   zope.i18nmessageid.message      36      0   100%   
-   ----------------------------------------------------------
-   TOTAL                           39      0   100%   
-   ----------------------------------------------------------------------
-   Ran 21 tests in 0.036s
-
-   OK
-
-
-Building the documentation
---------------------------
-
-:mod:`zope.i18nmessageid` uses the nifty :mod:`Sphinx` documentation system
-for building its docs.  Using the same virtualenv you set up to run the
-tests, you can build the docs:
-
-The ``docs`` command alias downloads and installs Sphinx and its dependencies:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.i8nmessageid/bin/python setup.py docs
-   ...
-   $ bin/sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
-   ...
-   build succeeded.
-
-You can also test the code snippets in the documentation:
-
-.. code-block:: sh
-
-   $ bin/sphinx-build -b doctest -d docs/_build/doctrees docs 
docs/_build/doctest
-   ...
-   running tests...
-
-   Document: index
-   ---------------
-   1 items passed all tests:
-     17 tests in default
-   17 tests in 1 items.
-   17 passed and 0 failed.
-   Test passed.
-
-   Doctest summary
-   ===============
-      17 tests
-       0 failures in tests
-       0 failures in setup code
-   build succeeded.
-
-
-Using :mod:`zc.buildout`
-########################
-
-Setting up the buildout
------------------------
-
-:mod:`zope.i18nmessageid` ships with its own :file:`buildout.cfg` file and
-:file:`bootstrap.py` for setting up a development buildout:
-
-.. code-block:: sh
-
-   $ /path/to/python2.6 bootstrap.py
-   ...
-   Generated script '.../bin/buildout'
-   $ bin/buildout
-   Develop: '/home/jrandom/projects/Zope/BTK/i18nmessageid/.'
-   ...
-   Generated script '.../bin/sphinx-quickstart'.
-   Generated script '.../bin/sphinx-build'.
-
-
-Running the tests
------------------
-
-You can now run the tests:
-
-.. code-block:: sh
-
-   $ bin/test --all
-   Running zope.testing.testrunner.layer.UnitTests tests:
-     Set up zope.testing.testrunner.layer.UnitTests in 0.000 seconds.
-     Ran 702 tests with 0 failures and 0 errors in 0.000 seconds.
-   Tearing down left over layers:
-     Tear down zope.testing.testrunner.layer.UnitTests in 0.000 seconds.
-
-
-Using :mod:`tox`
-################
-
-
-Running Tests on Multiple Python Versions
------------------------------------------
-
-`tox <http://tox.testrun.org/latest/>`_ is a Python-based test automation
-tool designed to run tests against multiple Python versions.  It creates
-a ``virtualenv`` for each configured version, installs the current package
-and configured dependencies into each ``virtualenv``, and then runs the
-configured commands.
-   
-:mod:`zope.i18nmessageid` configures the following :mod:`tox` environments via
-its ``tox.ini`` file:
-
-- The ``py26``, ``py27``, ``py33``, ``py34``, and ``pypy`` environments
-  builds a ``virtualenv`` with ``pypy``,
-  installs :mod:`zope.i18nmessageid` and dependencies, and runs the tests
-  via ``python setup.py test -q``.
-
-- The ``coverage`` environment builds a ``virtualenv`` with ``python2.6``,
-  installs :mod:`zope.i18nmessageid` and dependencies, installs
-  :mod:`nose` and :mod:`coverage`, and runs ``nosetests`` with statement
-  coverage.
-
-- The ``docs`` environment builds a virtualenv with ``python2.6``, installs
-  :mod:`zope.i18nmessageid` and dependencies, installs ``Sphinx`` and
-  dependencies, and then builds the docs and exercises the doctest snippets.
-
-This example requires that you have a working ``python2.6`` on your path,
-as well as installing ``tox``:
-
-.. code-block:: sh
-
-   $ tox -e py26
-   GLOB sdist-make: .../zope.i18nmessageid/setup.py
-   py26 sdist-reinst: 
.../zope.i18nmessageid/.tox/dist/zope.i18nmessageid-4.0.2dev.zip
-   py26 runtests: commands[0]
-   ...
-   ----------------------------------------------------------------------
-   Ran 1341 tests in 0.477s
-
-   OK
-   ___________________________________ summary 
____________________________________
-   py26: commands succeeded
-   congratulations :)
-
-Running ``tox`` with no arguments runs all the configured environments,
-including building the docs and testing their snippets:
-
-.. code-block:: sh
-
-   $ tox
-   GLOB sdist-make: .../zope.i18nmessageid/setup.py
-   py26 sdist-reinst: 
.../zope.i18nmessageid/.tox/dist/zope.i18nmessageid-4.0.2dev.zip
-   py26 runtests: commands[0]
-   ...
-   Doctest summary
-   ===============
-   678 tests
-      0 failures in tests
-      0 failures in setup code
-      0 failures in cleanup code
-   build succeeded.
-   ___________________________________ summary 
____________________________________
-   py26: commands succeeded
-   py27: commands succeeded
-   py32: commands succeeded
-   pypy: commands succeeded
-   coverage: commands succeeded
-   docs: commands succeeded
-   congratulations :)
-
-
-
-Contributing to :mod:`zope.i18nmessageid`
-#########################################
-
-Submitting a Bug Report
------------------------
-
-:mod:`zope.i18nmessageid` tracks its bugs on Github:
-
-  https://github.com/zopefoundation/zope.i18nmessageid/issues
-
-Please submit bug reports and feature requests there.
-
-Sharing Your Changes
---------------------
-
-.. note::
-
-   Please ensure that all tests are passing before you submit your code.
-   If possible, your submission should include new tests for new features
-   or bug fixes, although it is possible that you may have tested your
-   new code by updating existing tests.
-
-If have made a change you would like to share, the best route is to fork
-the Githb repository, check out your fork, make your changes on a branch
-in your fork, and push it.  You can then submit a pull request from your
-branch:
-
-  https://github.com/zopefoundation/zope.i18nmessageid/pulls
-
-If you branched the code from Launchpad using Bazaar, you have another
-option:  you can "push" your branch to Launchpad:
-
-.. code-block:: sh
-
-   $ bzr push lp:~jrandom/zope.i18nmessageid/cool_feature
-
-After pushing your branch, you can link it to a bug report on Launchpad,
-or request that the maintainers merge your branch using the Launchpad
-"merge request" feature.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-5.1.1/docs/_build/html/_sources/index.rst.txt 
new/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/index.rst.txt
--- old/zope.i18nmessageid-5.1.1/docs/_build/html/_sources/index.rst.txt        
2022-11-03 15:37:34.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/index.rst.txt        
1970-01-01 01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
-:mod:`zope.i18nmessageid` Documentation
-=======================================
-
-Contents:
-
-.. toctree::
-   :maxdepth: 2
-
-   narr
-   api
-   hacking
-
-
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-5.1.1/docs/_build/html/_sources/narr.rst.txt 
new/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/narr.rst.txt
--- old/zope.i18nmessageid-5.1.1/docs/_build/html/_sources/narr.rst.txt 
2022-11-06 13:17:38.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/docs/_build/html/_sources/narr.rst.txt 
1970-01-01 01:00:00.000000000 +0100
@@ -1,169 +0,0 @@
-Using :mod:`zope.i18nmessageid`
-===============================
-
-Rationale
----------
-
-To translate any text, we must be able to discover the source domain
-of the text.  A source domain is an identifier that identifies a
-project that produces program source strings.  Source strings occur as
-literals in python programs, text in templates, and some text in XML
-data.  The project implies a source language and an application
-context.
-
-Messages and Domains
---------------------
-
-We can think of a source domain as a collection of messages and
-associated translation strings.  The domain helps to disambiguate messages
-based on context:  for instance, the message whose source string is ``draw``
-means one thing in a first-person shooter game, and quite another in a
-graphics package:  in the first case, the domain for the message might
-be ``ok_corral``, while in the second it might be ``gimp``.
-
-We often need to create unicode strings that will be displayed by
-separate views.  The view cannot translate the string without knowing
-its source domain.  A string or unicode literal carries no domain
-information, therefore we use instances of the
-:class:`~zope.i18nmessageid.message.Message` class.  Messages are unicode
-strings which carry a translation source domain and possibly a default
-translation.
-
-Message Factories
------------------
-
-Messages are created by a message factory belonging to a given translation
-domain. Each message factory is created by instantiating a
-:class:`~zope.i18nmessageid.message.MessageFactory`, passing the domain
-corresponding to the project which manages the corrresponding translations.
-
-.. doctest::
-
-  >>> from zope.i18nmessageid import MessageFactory
-  >>> factory = MessageFactory('myproject')
-  >>> foo = factory('foo')
-  >>> foo.domain
-  'myproject'
-
-The Zope project uses the ``zope`` domain for its messages.  This package
-exports an already-created factory for that domain:
-
-.. doctest::
-
-  >>> from zope.i18nmessageid import ZopeMessageFactory as _z_
-  >>> foo = _z_('foo')
-  >>> foo.domain
-  'zope'
-
-
-Example Usage
--------------
-
-In this example, we create a message factory and assign it to _.  By
-convention, we use _ as the name of our factory to be compatible with
-translatable string extraction tools such as xgettext.  We then call _
-with a string that needs to be translatable:
-
-.. doctest::
-
-  >>> from zope.i18nmessageid import MessageFactory, Message
-  >>> _ = MessageFactory("futurama")
-  >>> robot = _(u"robot-message", u"${name} is a robot.")
-
-Messages at first seem like they are text strings:
-
-.. doctest::
-
-  >>> import six
-  >>> robot == u'robot-message'
-  True
-  >>> isinstance(robot, six.text_type)
-  True
-
-The additional domain, default and mapping information is available
-through attributes:
-
-.. doctest::
-
-  >>> robot.default == u'${name} is a robot.'
-  True
-  >>> robot.mapping
-  >>> robot.domain
-  'futurama'
-
-The message's attributes are considered part of the immutable message
-object.  They cannot be changed once the message id is created:
-
-.. doctest::
-
-  >>> robot.domain = "planetexpress"
-  Traceback (most recent call last):
-  ...
-  AttributeError: readonly attribute
-
-  >>> robot.default = u"${name} is not a robot."
-  Traceback (most recent call last):
-  ...
-  AttributeError: readonly attribute
-
-  >>> robot.mapping = {u'name': u'Bender'}
-  Traceback (most recent call last):
-  ...
-  AttributeError: readonly attribute
-
-If you need to change their information, you'll have to make a new
-message id object:
-
-.. doctest::
-
-  >>> new_robot = Message(robot, mapping={u'name': u'Bender'})
-  >>> new_robot == u'robot-message'
-  True
-  >>> new_robot.domain
-  'futurama'
-  >>> new_robot.default == u'${name} is a robot.'
-  True
-  >>> new_robot.mapping == {u'name': u'Bender'}
-  True
-
-Last but not least, messages are reduceable for pickling:
-
-.. doctest::
-
-  >>> callable, args = new_robot.__reduce__()
-  >>> callable is Message
-  True
-  >>> args == (u'robot-message',
-  ...          'futurama',
-  ...          u'${name} is a robot.',
-  ...          {u'name': u'Bender'},
-  ...          None,
-  ...          None,
-  ...          None)
-  True
-
-  >>> fembot = Message(u'fembot')
-  >>> callable, args = fembot.__reduce__()
-  >>> callable is Message
-  True
-  >>> args == (u'fembot', None, None, None, None, None, None)
-  True
-
-Pickling and unpickling works, which means we can store message IDs in
-a database:
-
-.. doctest::
-
-   >>> from pickle import dumps, loads
-   >>> pystate = dumps(new_robot)
-   >>> pickle_bot = loads(pystate)
-   >>> (pickle_bot,
-   ...  pickle_bot.domain,
-   ...  pickle_bot.default,
-   ...  pickle_bot.mapping) == (u'robot-message',
-   ...                          'futurama',
-   ...                          u'${name} is a robot.',
-   ...                          {u'name': u'Bender'})
-   True
-   >>> pickle_bot.__reduce__()[0] is Message
-   True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-5.1.1/docs/narr.rst 
new/zope.i18nmessageid-6.0.1/docs/narr.rst
--- old/zope.i18nmessageid-5.1.1/docs/narr.rst  2022-11-06 13:17:38.000000000 
+0100
+++ new/zope.i18nmessageid-6.0.1/docs/narr.rst  2023-03-24 07:58:02.000000000 
+0100
@@ -74,10 +74,9 @@
 
 .. doctest::
 
-  >>> import six
-  >>> robot == u'robot-message'
+  >>> robot == 'robot-message'
   True
-  >>> isinstance(robot, six.text_type)
+  >>> isinstance(robot, str)
   True
 
 The additional domain, default and mapping information is available
@@ -85,7 +84,7 @@
 
 .. doctest::
 
-  >>> robot.default == u'${name} is a robot.'
+  >>> robot.default == '${name} is a robot.'
   True
   >>> robot.mapping
   >>> robot.domain
@@ -106,24 +105,24 @@
   ...
   AttributeError: readonly attribute
 
-  >>> robot.mapping = {u'name': u'Bender'}
+  >>> robot.mapping = {'name': 'Bender'}
   Traceback (most recent call last):
   ...
   AttributeError: readonly attribute
 
-If you need to change their information, you'll have to make a new
+If you need to change their information, yo'll have to make a new
 message id object:
 
 .. doctest::
 
-  >>> new_robot = Message(robot, mapping={u'name': u'Bender'})
-  >>> new_robot == u'robot-message'
+  >>> new_robot = Message(robot, mapping={'name': 'Bender'})
+  >>> new_robot == 'robot-message'
   True
   >>> new_robot.domain
   'futurama'
-  >>> new_robot.default == u'${name} is a robot.'
+  >>> new_robot.default == '${name} is a robot.'
   True
-  >>> new_robot.mapping == {u'name': u'Bender'}
+  >>> new_robot.mapping == {'name': 'Bender'}
   True
 
 Last but not least, messages are reduceable for pickling:
@@ -133,20 +132,20 @@
   >>> callable, args = new_robot.__reduce__()
   >>> callable is Message
   True
-  >>> args == (u'robot-message',
+  >>> args == ('robot-message',
   ...          'futurama',
-  ...          u'${name} is a robot.',
-  ...          {u'name': u'Bender'},
+  ...          '${name} is a robot.',
+  ...          {'name': 'Bender'},
   ...          None,
   ...          None,
   ...          None)
   True
 
-  >>> fembot = Message(u'fembot')
+  >>> fembot = Message('fembot')
   >>> callable, args = fembot.__reduce__()
   >>> callable is Message
   True
-  >>> args == (u'fembot', None, None, None, None, None, None)
+  >>> args == ('fembot', None, None, None, None, None, None)
   True
 
 Pickling and unpickling works, which means we can store message IDs in
@@ -160,10 +159,10 @@
    >>> (pickle_bot,
    ...  pickle_bot.domain,
    ...  pickle_bot.default,
-   ...  pickle_bot.mapping) == (u'robot-message',
+   ...  pickle_bot.mapping) == ('robot-message',
    ...                          'futurama',
-   ...                          u'${name} is a robot.',
-   ...                          {u'name': u'Bender'})
+   ...                          '${name} is a robot.',
+   ...                          {'name': 'Bender'})
    True
    >>> pickle_bot.__reduce__()[0] is Message
    True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-5.1.1/setup.cfg 
new/zope.i18nmessageid-6.0.1/setup.cfg
--- old/zope.i18nmessageid-5.1.1/setup.cfg      2022-11-17 16:10:00.848437800 
+0100
+++ new/zope.i18nmessageid-6.0.1/setup.cfg      2023-03-24 07:58:03.586763000 
+0100
@@ -1,5 +1,5 @@
 [bdist_wheel]
-universal = 1
+universal = 0
 
 [zest.releaser]
 create-wheel = no
@@ -20,7 +20,7 @@
 force_single_line = True
 combine_as_imports = True
 sections = FUTURE,STDLIB,THIRDPARTY,ZOPE,FIRSTPARTY,LOCALFOLDER
-known_third_party = six, docutils, pkg_resources
+known_third_party = six, docutils, pkg_resources, pytz
 known_zope = 
 known_first_party = 
 default_section = ZOPE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-5.1.1/setup.py 
new/zope.i18nmessageid-6.0.1/setup.py
--- old/zope.i18nmessageid-5.1.1/setup.py       2022-11-17 15:26:08.000000000 
+0100
+++ new/zope.i18nmessageid-6.0.1/setup.py       2023-03-24 07:58:02.000000000 
+0100
@@ -18,7 +18,6 @@
 ##############################################################################
 """Setup for zope.i18nmessageid package
 """
-from __future__ import print_function
 
 import os
 import platform
@@ -96,7 +95,7 @@
 
 setup(
     name='zope.i18nmessageid',
-    version='5.1.1',
+    version='6.0.1',
     author='Zope Foundation and Contributors',
     author_email='zope-...@zope.org',
     description='Message Identifiers for internationalization',
@@ -112,11 +111,7 @@
         'Intended Audience :: Developers',
         'License :: OSI Approved :: Zope Public License',
         'Programming Language :: Python',
-        'Programming Language :: Python :: 2',
-        'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.5',
-        'Programming Language :: Python :: 3.6',
         'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: 3.8',
         'Programming Language :: Python :: 3.9',
@@ -134,15 +129,8 @@
     packages=find_packages('src'),
     package_dir={'': 'src'},
     namespace_packages=['zope'],
-    install_requires=['setuptools', 'six'],
-    python_requires=', '.join([
-      '>=2.7',
-      '!=3.0.*',
-      '!=3.1.*',
-      '!=3.2.*',
-      '!=3.3.*',
-      '!=3.4.*',
-    ]),
+    install_requires=['setuptools'],
+    python_requires='>=3.7',
     include_package_data=True,
     test_suite='zope.i18nmessageid.tests.test_suite',
     zip_safe=False,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-5.1.1/src/zope/i18nmessageid/message.py 
new/zope.i18nmessageid-6.0.1/src/zope/i18nmessageid/message.py
--- old/zope.i18nmessageid-5.1.1/src/zope/i18nmessageid/message.py      
2022-11-06 13:07:04.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/src/zope/i18nmessageid/message.py      
2023-03-24 07:58:02.000000000 +0100
@@ -13,14 +13,12 @@
 ##############################################################################
 """I18n Messages and factories.
 """
-import six
-
 
 __docformat__ = "reStructuredText"
 _marker = object()
 
 
-class Message(six.text_type):
+class Message(str):
     """Message (Python implementation)
 
     This is a string used as a message.  It has a domain attribute that is
@@ -36,7 +34,7 @@
 
     def __new__(cls, ustr, domain=_marker, default=_marker, mapping=_marker,
                 msgid_plural=_marker, default_plural=_marker, number=_marker):
-        self = six.text_type.__new__(cls, ustr)
+        self = str.__new__(cls, ustr)
         if isinstance(ustr, self.__class__):
             self.domain = ustr.domain
             self.default = ustr.default
@@ -66,7 +64,7 @@
             self.number = number
 
         if self.number is not None and not isinstance(
-                self.number, six.integer_types + (float,)):
+                self.number, (int, float)):
             raise TypeError('`number` should be an integer or a float')
 
         self._readonly = True
@@ -80,11 +78,11 @@
         if getattr(self, '_readonly', False):
             raise TypeError('readonly attribute')
         else:
-            return six.text_type.__setattr__(self, key, value)
+            return str.__setattr__(self, key, value)
 
     def __getstate__(self):
         return (
-            six.text_type(self), self.domain, self.default, self.mapping,
+            str(self), self.domain, self.default, self.mapping,
             self.msgid_plural, self.default_plural, self.number)
 
     def __reduce__(self):
@@ -101,7 +99,7 @@
     pass
 
 
-class MessageFactory(object):
+class MessageFactory:
     """Factory for creating i18n messages."""
 
     def __init__(self, domain):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-5.1.1/src/zope/i18nmessageid/tests.py 
new/zope.i18nmessageid-6.0.1/src/zope/i18nmessageid/tests.py
--- old/zope.i18nmessageid-5.1.1/src/zope/i18nmessageid/tests.py        
2022-11-06 12:44:51.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/src/zope/i18nmessageid/tests.py        
2023-03-24 07:58:02.000000000 +0100
@@ -151,7 +151,7 @@
         # https://github.com/zopefoundation/zope.i18nmessageid/issues/14
         pref_msg = self._makeOne("${name} Preferences")
         self.assertIsNone(pref_msg.default)
-        copy = self._makeOne(pref_msg, mapping={u'name': u'name'})
+        copy = self._makeOne(pref_msg, mapping={'name': 'name'})
         self.assertIsNone(copy.default)
 
     def test_copy_no_overrides(self):
@@ -220,12 +220,12 @@
              'testings', 'defaults', 2))
 
     def test_non_unicode_default(self):
-        message = self._makeOne(u'str', default=123)
+        message = self._makeOne('str', default=123)
         self.assertEqual(message.default, 123)
 
     def test_non_numeric_number(self):
         with self.assertRaises((TypeError, AttributeError)):
-            self._makeOne(u'str', default=123, number="one")
+            self._makeOne('str', default=123, number="one")
 
 
 @unittest.skipIf(messageid.Message is messageid.pyMessage, "Duplicate tests")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-5.1.1/src/zope.i18nmessageid.egg-info/PKG-INFO 
new/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/PKG-INFO
--- old/zope.i18nmessageid-5.1.1/src/zope.i18nmessageid.egg-info/PKG-INFO       
2022-11-17 16:10:00.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/PKG-INFO       
2023-03-24 07:58:03.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: zope.i18nmessageid
-Version: 5.1.1
+Version: 6.0.1
 Summary: Message Identifiers for internationalization
 Home-page: https://github.com/zopefoundation/zope.i18nmessageid
 Author: Zope Foundation and Contributors
@@ -12,11 +12,7 @@
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: Zope Public License
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
@@ -28,7 +24,7 @@
 Classifier: Operating System :: OS Independent
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Framework :: Zope :: 3
-Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
+Requires-Python: >=3.7
 Provides-Extra: testing
 Provides-Extra: test
 Provides-Extra: docs
@@ -78,6 +74,20 @@
  Changes
 =========
 
+6.0.1 (2023-03-24)
+==================
+
+- Drop dependency on ``six``.
+
+
+6.0.0 (2023-03-23)
+==================
+
+- Drop support for Python 2.7, 3.5, 3.6.
+
+- Add preliminary support for Python 3.12a5.
+
+
 5.1.1 (2022-11-17)
 ==================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-5.1.1/src/zope.i18nmessageid.egg-info/SOURCES.txt 
new/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/SOURCES.txt
--- old/zope.i18nmessageid-5.1.1/src/zope.i18nmessageid.egg-info/SOURCES.txt    
2022-11-17 16:10:00.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/SOURCES.txt    
2023-03-24 07:58:03.000000000 +0100
@@ -19,11 +19,6 @@
 docs/index.rst
 docs/make.bat
 docs/narr.rst
-docs/_build/doctest/output.txt
-docs/_build/html/_sources/api.rst.txt
-docs/_build/html/_sources/hacking.rst.txt
-docs/_build/html/_sources/index.rst.txt
-docs/_build/html/_sources/narr.rst.txt
 src/zope/__init__.py
 src/zope.i18nmessageid.egg-info/PKG-INFO
 src/zope.i18nmessageid.egg-info/SOURCES.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.i18nmessageid-5.1.1/src/zope.i18nmessageid.egg-info/requires.txt 
new/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/requires.txt
--- old/zope.i18nmessageid-5.1.1/src/zope.i18nmessageid.egg-info/requires.txt   
2022-11-17 16:10:00.000000000 +0100
+++ new/zope.i18nmessageid-6.0.1/src/zope.i18nmessageid.egg-info/requires.txt   
2023-03-24 07:58:03.000000000 +0100
@@ -1,5 +1,4 @@
 setuptools
-six
 
 [docs]
 Sphinx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.i18nmessageid-5.1.1/tox.ini 
new/zope.i18nmessageid-6.0.1/tox.ini
--- old/zope.i18nmessageid-5.1.1/tox.ini        2022-11-17 15:11:56.000000000 
+0100
+++ new/zope.i18nmessageid-6.0.1/tox.ini        2023-03-24 07:58:02.000000000 
+0100
@@ -1,31 +1,30 @@
 # Generated from:
 # https://github.com/zopefoundation/meta/tree/master/config/c-code
 [tox]
-minversion = 3.18
+minversion = 4.0
 envlist =
     lint
-    py27,py27-pure
-    py35,py35-pure
-    py36,py36-pure
     py37,py37-pure
     py38,py38-pure
     py39,py39-pure
     py310,py310-pure
     py311,py311-pure
-    pypy
+    py312,py312-pure
     pypy3
     docs
     coverage
 
 [testenv]
 usedevelop = true
+pip_pre = py312: true
 deps =
+    Sphinx
 setenv =
     pure: PURE_PYTHON=1
-    !pure-!pypy-!pypy3: PURE_PYTHON=0
+    !pure-!pypy3: PURE_PYTHON=0
 commands =
     zope-testrunner --test-path=src {posargs:-vc}
-    !py27-!pypy-!pypy3: sphinx-build -b doctest -d {envdir}/.cache/doctrees 
docs {envdir}/.cache/doctest
+    sphinx-build -b doctest -d {envdir}/.cache/doctrees docs 
{envdir}/.cache/doctest
 extras =
     test
     docs
@@ -61,6 +60,7 @@
 
 [testenv:isort-apply]
 basepython = python3
+skip_install = true
 commands_pre =
 deps =
     isort

Reply via email to