Translation components API.

See the Weblate's Web API documentation for detailed description of the API.

GET /api/components/python-docs/latest%252Flatestwhatsnew32/changes/?format=api&page=30
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 1575,
    "next": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/changes/?format=api&page=31",
    "previous": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/changes/?format=api&page=29",
    "results": [
        {
            "unit": "https://hosted.weblate.org/api/units/108796568/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.343590+01:00",
            "action": 13,
            "target": ":meth:`xml.etree.ElementTree.TreeBuilder.end` closes the current element",
            "old": ":meth:`xml.etree.ElementTree.TreeBuilder.end` closes the current element",
            "details": {
                "state": 100,
                "source": ":meth:`xml.etree.ElementTree.TreeBuilder.end` closes the current element",
                "old_state": 100
            },
            "id": 71033280,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033280/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796562/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.333743+01:00",
            "action": 13,
            "target": ":meth:`xml.etree.ElementTree.Element.itertext` creates a text iterator over an element and its subelements",
            "old": ":meth:`xml.etree.ElementTree.Element.itertext` creates a text iterator over an element and its subelements",
            "details": {
                "state": 100,
                "source": ":meth:`xml.etree.ElementTree.Element.itertext` creates a text iterator over an element and its subelements",
                "old_state": 100
            },
            "id": 71033279,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033279/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796557/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.322536+01:00",
            "action": 13,
            "target": ":meth:`xml.etree.ElementTree.Element.iterfind` searches an element and subelements",
            "old": ":meth:`xml.etree.ElementTree.Element.iterfind` searches an element and subelements",
            "details": {
                "state": 100,
                "source": ":meth:`xml.etree.ElementTree.Element.iterfind` searches an element and subelements",
                "old_state": 100
            },
            "id": 71033278,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033278/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796552/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.311778+01:00",
            "action": 13,
            "target": ":meth:`xml.etree.ElementTree.Element.extend` for appending a sequence of zero or more elements",
            "old": ":meth:`xml.etree.ElementTree.Element.extend` for appending a sequence of zero or more elements",
            "details": {
                "state": 100,
                "source": ":meth:`xml.etree.ElementTree.Element.extend` for appending a sequence of zero or more elements",
                "old_state": 100
            },
            "id": 71033277,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033277/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796547/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.303139+01:00",
            "action": 13,
            "target": ":func:`xml.etree.ElementTree.tostringlist` for string representation including all sublists",
            "old": ":func:`xml.etree.ElementTree.tostringlist` for string representation including all sublists",
            "details": {
                "state": 100,
                "source": ":func:`xml.etree.ElementTree.tostringlist` for string representation including all sublists",
                "old_state": 100
            },
            "id": 71033276,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033276/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796542/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.293484+01:00",
            "action": 13,
            "target": ":func:`xml.etree.ElementTree.register_namespace` for registering a global namespace prefix",
            "old": ":func:`xml.etree.ElementTree.register_namespace` for registering a global namespace prefix",
            "details": {
                "state": 100,
                "source": ":func:`xml.etree.ElementTree.register_namespace` for registering a global namespace prefix",
                "old_state": 100
            },
            "id": 71033275,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033275/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796537/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.283630+01:00",
            "action": 13,
            "target": ":func:`xml.etree.ElementTree.fromstringlist` which builds an XML document from a sequence of fragments",
            "old": ":func:`xml.etree.ElementTree.fromstringlist` which builds an XML document from a sequence of fragments",
            "details": {
                "state": 100,
                "source": ":func:`xml.etree.ElementTree.fromstringlist` which builds an XML document from a sequence of fragments",
                "old_state": 100
            },
            "id": 71033274,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033274/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796535/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.273679+01:00",
            "action": 13,
            "target": "Several new and useful functions and methods have been added:",
            "old": "Several new and useful functions and methods have been added:",
            "details": {
                "state": 100,
                "source": "Several new and useful functions and methods have been added:",
                "old_state": 100
            },
            "id": 71033273,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033273/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796533/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.263760+01:00",
            "action": 13,
            "target": "The :mod:`xml.etree.ElementTree` package and its :mod:`xml.etree.cElementTree` counterpart have been updated to version 1.3.",
            "old": "The :mod:`xml.etree.ElementTree` package and its :mod:`xml.etree.cElementTree` counterpart have been updated to version 1.3.",
            "details": {
                "state": 100,
                "source": "The :mod:`xml.etree.ElementTree` package and its :mod:`xml.etree.cElementTree` counterpart have been updated to version 1.3.",
                "old_state": 100
            },
            "id": 71033272,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033272/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796531/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.254140+01:00",
            "action": 13,
            "target": "elementtree",
            "old": "elementtree",
            "details": {
                "state": 100,
                "source": "elementtree",
                "old_state": 100
            },
            "id": 71033271,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033271/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796529/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.244484+01:00",
            "action": 13,
            "target": "(Proposed and implemented by R. David Murray, :issue:`4661` and :issue:`10321`.)",
            "old": "(Proposed and implemented by R. David Murray, :issue:`4661` and :issue:`10321`.)",
            "details": {
                "state": 100,
                "source": "(Proposed and implemented by R. David Murray, :issue:`4661` and :issue:`10321`.)",
                "old_state": 100
            },
            "id": 71033270,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033270/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796527/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.235010+01:00",
            "action": 13,
            "target": "The :mod:`smtplib` :class:`~smtplib.SMTP` class now accepts a byte string for the *msg* argument to the :meth:`~smtplib.SMTP.sendmail` method, and a new method, :meth:`~smtplib.SMTP.send_message` accepts a :class:`~email.message.Message` object and can optionally obtain the *from_addr* and *to_addrs* addresses directly from the object.",
            "old": "The :mod:`smtplib` :class:`~smtplib.SMTP` class now accepts a byte string for the *msg* argument to the :meth:`~smtplib.SMTP.sendmail` method, and a new method, :meth:`~smtplib.SMTP.send_message` accepts a :class:`~email.message.Message` object and can optionally obtain the *from_addr* and *to_addrs* addresses directly from the object.",
            "details": {
                "state": 100,
                "source": "The :mod:`smtplib` :class:`~smtplib.SMTP` class now accepts a byte string for the *msg* argument to the :meth:`~smtplib.SMTP.sendmail` method, and a new method, :meth:`~smtplib.SMTP.send_message` accepts a :class:`~email.message.Message` object and can optionally obtain the *from_addr* and *to_addrs* addresses directly from the object.",
                "old_state": 100
            },
            "id": 71033269,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033269/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796525/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.223946+01:00",
            "action": 13,
            "target": "A new class :class:`~email.generator.BytesGenerator` produces bytes as output, preserving any unchanged non-ASCII data that was present in the input used to build the model, including message bodies with a :mailheader:`Content-Transfer-Encoding` of *8bit*.",
            "old": "A new class :class:`~email.generator.BytesGenerator` produces bytes as output, preserving any unchanged non-ASCII data that was present in the input used to build the model, including message bodies with a :mailheader:`Content-Transfer-Encoding` of *8bit*.",
            "details": {
                "state": 100,
                "source": "A new class :class:`~email.generator.BytesGenerator` produces bytes as output, preserving any unchanged non-ASCII data that was present in the input used to build the model, including message bodies with a :mailheader:`Content-Transfer-Encoding` of *8bit*.",
                "old_state": 100
            },
            "id": 71033268,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033268/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796523/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.213486+01:00",
            "action": 13,
            "target": "Headers with unencoded non-ASCII bytes are deemed to be :rfc:`2047`\\ -encoded using the *unknown-8bit* character set.",
            "old": "Headers with unencoded non-ASCII bytes are deemed to be :rfc:`2047`\\ -encoded using the *unknown-8bit* character set.",
            "details": {
                "state": 100,
                "source": "Headers with unencoded non-ASCII bytes are deemed to be :rfc:`2047`\\ -encoded using the *unknown-8bit* character set.",
                "old_state": 100
            },
            "id": 71033267,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033267/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796521/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.203263+01:00",
            "action": 13,
            "target": "Given bytes input to the model, :class:`~email.generator.Generator` will convert message bodies that have a :mailheader:`Content-Transfer-Encoding` of *8bit* to instead have a *7bit* :mailheader:`Content-Transfer-Encoding`.",
            "old": "Given bytes input to the model, :class:`~email.generator.Generator` will convert message bodies that have a :mailheader:`Content-Transfer-Encoding` of *8bit* to instead have a *7bit* :mailheader:`Content-Transfer-Encoding`.",
            "details": {
                "state": 100,
                "source": "Given bytes input to the model, :class:`~email.generator.Generator` will convert message bodies that have a :mailheader:`Content-Transfer-Encoding` of *8bit* to instead have a *7bit* :mailheader:`Content-Transfer-Encoding`.",
                "old_state": 100
            },
            "id": 71033266,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033266/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796519/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.190212+01:00",
            "action": 13,
            "target": "Given bytes input to the model, :meth:`~email.message.Message.get_payload` will by default decode a message body that has a :mailheader:`Content-Transfer-Encoding` of *8bit* using the charset specified in the MIME headers and return the resulting string.",
            "old": "Given bytes input to the model, :meth:`~email.message.Message.get_payload` will by default decode a message body that has a :mailheader:`Content-Transfer-Encoding` of *8bit* using the charset specified in the MIME headers and return the resulting string.",
            "details": {
                "state": 100,
                "source": "Given bytes input to the model, :meth:`~email.message.Message.get_payload` will by default decode a message body that has a :mailheader:`Content-Transfer-Encoding` of *8bit* using the charset specified in the MIME headers and return the resulting string.",
                "old_state": 100
            },
            "id": 71033265,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033265/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796517/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.177542+01:00",
            "action": 13,
            "target": "New functions :func:`~email.message_from_bytes` and :func:`~email.message_from_binary_file`, and new classes :class:`~email.parser.BytesFeedParser` and :class:`~email.parser.BytesParser` allow binary message data to be parsed into model objects.",
            "old": "New functions :func:`~email.message_from_bytes` and :func:`~email.message_from_binary_file`, and new classes :class:`~email.parser.BytesFeedParser` and :class:`~email.parser.BytesParser` allow binary message data to be parsed into model objects.",
            "details": {
                "state": 100,
                "source": "New functions :func:`~email.message_from_bytes` and :func:`~email.message_from_binary_file`, and new classes :class:`~email.parser.BytesFeedParser` and :class:`~email.parser.BytesParser` allow binary message data to be parsed into model objects.",
                "old_state": 100
            },
            "id": 71033264,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033264/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796515/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.166949+01:00",
            "action": 13,
            "target": "The usability of the :mod:`email` package in Python 3 has been mostly fixed by the extensive efforts of R. David Murray.  The problem was that emails are typically read and stored in the form of :class:`bytes` rather than :class:`str` text, and they may contain multiple encodings within a single email.  So, the email package had to be extended to parse and generate email messages in bytes format.",
            "old": "The usability of the :mod:`email` package in Python 3 has been mostly fixed by the extensive efforts of R. David Murray.  The problem was that emails are typically read and stored in the form of :class:`bytes` rather than :class:`str` text, and they may contain multiple encodings within a single email.  So, the email package had to be extended to parse and generate email messages in bytes format.",
            "details": {
                "state": 100,
                "source": "The usability of the :mod:`email` package in Python 3 has been mostly fixed by the extensive efforts of R. David Murray.  The problem was that emails are typically read and stored in the form of :class:`bytes` rather than :class:`str` text, and they may contain multiple encodings within a single email.  So, the email package had to be extended to parse and generate email messages in bytes format.",
                "old_state": 100
            },
            "id": 71033263,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033263/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796513/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.156658+01:00",
            "action": 13,
            "target": "email",
            "old": "email",
            "details": {
                "state": 100,
                "source": "email",
                "old_state": 100
            },
            "id": 71033262,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033262/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796511/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.148544+01:00",
            "action": 13,
            "target": "In addition, more classes now implement a :term:`context manager` to support convenient and reliable resource clean-up using a :keyword:`with` statement.",
            "old": "In addition, more classes now implement a :term:`context manager` to support convenient and reliable resource clean-up using a :keyword:`with` statement.",
            "details": {
                "state": 100,
                "source": "In addition, more classes now implement a :term:`context manager` to support convenient and reliable resource clean-up using a :keyword:`with` statement.",
                "old_state": 100
            },
            "id": 71033261,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033261/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796509/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.137288+01:00",
            "action": 13,
            "target": "Another significant win is the addition of substantially better support for *SSL* connections and security certificates.",
            "old": "Another significant win is the addition of substantially better support for *SSL* connections and security certificates.",
            "details": {
                "state": 100,
                "source": "Another significant win is the addition of substantially better support for *SSL* connections and security certificates.",
                "old_state": 100
            },
            "id": 71033260,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033260/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796507/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.128750+01:00",
            "action": 13,
            "target": "Throughout the standard library, there has been more careful attention to encodings and text versus bytes issues.  In particular, interactions with the operating system are now better able to exchange non-ASCII data using the Windows MBCS encoding, locale-aware encodings, or UTF-8.",
            "old": "Throughout the standard library, there has been more careful attention to encodings and text versus bytes issues.  In particular, interactions with the operating system are now better able to exchange non-ASCII data using the Windows MBCS encoding, locale-aware encodings, or UTF-8.",
            "details": {
                "state": 100,
                "source": "Throughout the standard library, there has been more careful attention to encodings and text versus bytes issues.  In particular, interactions with the operating system are now better able to exchange non-ASCII data using the Windows MBCS encoding, locale-aware encodings, or UTF-8.",
                "old_state": 100
            },
            "id": 71033259,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033259/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796505/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.118665+01:00",
            "action": 13,
            "target": "The biggest news for Python 3.2 is that the :mod:`email` package, :mod:`mailbox` module, and :mod:`nntplib` modules now work correctly with the bytes/text model in Python 3.  For the first time, there is correct handling of messages with mixed encodings.",
            "old": "The biggest news for Python 3.2 is that the :mod:`email` package, :mod:`mailbox` module, and :mod:`nntplib` modules now work correctly with the bytes/text model in Python 3.  For the first time, there is correct handling of messages with mixed encodings.",
            "details": {
                "state": 100,
                "source": "The biggest news for Python 3.2 is that the :mod:`email` package, :mod:`mailbox` module, and :mod:`nntplib` modules now work correctly with the bytes/text model in Python 3.  For the first time, there is correct handling of messages with mixed encodings.",
                "old_state": 100
            },
            "id": 71033258,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033258/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796503/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.108661+01:00",
            "action": 13,
            "target": "Python's standard library has undergone significant maintenance efforts and quality improvements.",
            "old": "Python's standard library has undergone significant maintenance efforts and quality improvements.",
            "details": {
                "state": 100,
                "source": "Python's standard library has undergone significant maintenance efforts and quality improvements.",
                "old_state": 100
            },
            "id": 71033257,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033257/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796501/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.100896+01:00",
            "action": 13,
            "target": "New, Improved, and Deprecated Modules",
            "old": "New, Improved, and Deprecated Modules",
            "details": {
                "state": 100,
                "source": "New, Improved, and Deprecated Modules",
                "old_state": 100
            },
            "id": 71033256,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033256/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796499/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.092927+01:00",
            "action": 13,
            "target": "(Required extensive work by Victor Stinner in :issue:`9425`.)",
            "old": "(Required extensive work by Victor Stinner in :issue:`9425`.)",
            "details": {
                "state": 100,
                "source": "(Required extensive work by Victor Stinner in :issue:`9425`.)",
                "old_state": 100
            },
            "id": 71033255,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033255/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796497/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.082830+01:00",
            "action": 13,
            "target": "Python's import mechanism can now load modules installed in directories with non-ASCII characters in the path name.  This solved an aggravating problem with home directories for users with non-ASCII characters in their usernames.",
            "old": "Python's import mechanism can now load modules installed in directories with non-ASCII characters in the path name.  This solved an aggravating problem with home directories for users with non-ASCII characters in their usernames.",
            "details": {
                "state": 100,
                "source": "Python's import mechanism can now load modules installed in directories with non-ASCII characters in the path name.  This solved an aggravating problem with home directories for users with non-ASCII characters in their usernames.",
                "old_state": 100
            },
            "id": 71033254,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033254/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796495/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.073617+01:00",
            "action": 13,
            "target": "(See :issue:`10518`.)",
            "old": "(See :issue:`10518`.)",
            "details": {
                "state": 100,
                "source": "(See :issue:`10518`.)",
                "old_state": 100
            },
            "id": 71033253,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033253/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796493/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.062777+01:00",
            "action": 13,
            "target": "The :func:`callable` builtin function from Py2.x was resurrected.  It provides a concise, readable alternative to using an :term:`abstract base class` in an expression like ``isinstance(x, collections.Callable)``:",
            "old": "The :func:`callable` builtin function from Py2.x was resurrected.  It provides a concise, readable alternative to using an :term:`abstract base class` in an expression like ``isinstance(x, collections.Callable)``:",
            "details": {
                "state": 100,
                "source": "The :func:`callable` builtin function from Py2.x was resurrected.  It provides a concise, readable alternative to using an :term:`abstract base class` in an expression like ``isinstance(x, collections.Callable)``:",
                "old_state": 100
            },
            "id": 71033252,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033252/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796491/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.052736+01:00",
            "action": 13,
            "target": "(Contributed by Daniel Stutzbach in :issue:`9213`, by Alexander Belopolsky in :issue:`2690`, and by Nick Coghlan in :issue:`10889`.)",
            "old": "(Contributed by Daniel Stutzbach in :issue:`9213`, by Alexander Belopolsky in :issue:`2690`, and by Nick Coghlan in :issue:`10889`.)",
            "details": {
                "state": 100,
                "source": "(Contributed by Daniel Stutzbach in :issue:`9213`, by Alexander Belopolsky in :issue:`2690`, and by Nick Coghlan in :issue:`10889`.)",
                "old_state": 100
            },
            "id": 71033251,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033251/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796489/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.043516+01:00",
            "action": 13,
            "target": ":class:`range` objects now support *index* and *count* methods. This is part of an effort to make more objects fully implement the :class:`collections.Sequence` :term:`abstract base class`.  As a result, the language will have a more uniform API.  In addition, :class:`range` objects now support slicing and negative indices, even with values larger than :attr:`sys.maxsize`.  This makes *range* more interoperable with lists::",
            "old": ":class:`range` objects now support *index* and *count* methods. This is part of an effort to make more objects fully implement the :class:`collections.Sequence` :term:`abstract base class`.  As a result, the language will have a more uniform API.  In addition, :class:`range` objects now support slicing and negative indices, even with values larger than :attr:`sys.maxsize`.  This makes *range* more interoperable with lists::",
            "details": {
                "state": 100,
                "source": ":class:`range` objects now support *index* and *count* methods. This is part of an effort to make more objects fully implement the :class:`collections.Sequence` :term:`abstract base class`.  As a result, the language will have a more uniform API.  In addition, :class:`range` objects now support slicing and negative indices, even with values larger than :attr:`sys.maxsize`.  This makes *range* more interoperable with lists::",
                "old_state": 100
            },
            "id": 71033250,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033250/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796487/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.033979+01:00",
            "action": 13,
            "target": "(Added by Antoine Pitrou and Georg Brandl in :issue:`10093` and :issue:`477863`.)",
            "old": "(Added by Antoine Pitrou and Georg Brandl in :issue:`10093` and :issue:`477863`.)",
            "details": {
                "state": 100,
                "source": "(Added by Antoine Pitrou and Georg Brandl in :issue:`10093` and :issue:`477863`.)",
                "old_state": 100
            },
            "id": 71033249,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033249/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796485/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.024072+01:00",
            "action": 13,
            "target": "A :exc:`ResourceWarning` is also issued when a :term:`file object` is destroyed without having been explicitly closed.  While the deallocator for such object ensures it closes the underlying operating system resource (usually, a file descriptor), the delay in deallocating the object could produce various issues, especially under Windows.  Here is an example of enabling the warning from the command line:",
            "old": "A :exc:`ResourceWarning` is also issued when a :term:`file object` is destroyed without having been explicitly closed.  While the deallocator for such object ensures it closes the underlying operating system resource (usually, a file descriptor), the delay in deallocating the object could produce various issues, especially under Windows.  Here is an example of enabling the warning from the command line:",
            "details": {
                "state": 100,
                "source": "A :exc:`ResourceWarning` is also issued when a :term:`file object` is destroyed without having been explicitly closed.  While the deallocator for such object ensures it closes the underlying operating system resource (usually, a file descriptor), the delay in deallocating the object could produce various issues, especially under Windows.  Here is an example of enabling the warning from the command line:",
                "old_state": 100
            },
            "id": 71033248,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033248/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796483/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.013783+01:00",
            "action": 13,
            "target": "A :exc:`ResourceWarning` is issued at interpreter shutdown if the :data:`gc.garbage` list isn't empty, and if :attr:`gc.DEBUG_UNCOLLECTABLE` is set, all uncollectable objects are printed.  This is meant to make the programmer aware that their code contains object finalization issues.",
            "old": "A :exc:`ResourceWarning` is issued at interpreter shutdown if the :data:`gc.garbage` list isn't empty, and if :attr:`gc.DEBUG_UNCOLLECTABLE` is set, all uncollectable objects are printed.  This is meant to make the programmer aware that their code contains object finalization issues.",
            "details": {
                "state": 100,
                "source": "A :exc:`ResourceWarning` is issued at interpreter shutdown if the :data:`gc.garbage` list isn't empty, and if :attr:`gc.DEBUG_UNCOLLECTABLE` is set, all uncollectable objects are printed.  This is meant to make the programmer aware that their code contains object finalization issues.",
                "old_state": 100
            },
            "id": 71033247,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033247/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796481/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:36.004431+01:00",
            "action": 13,
            "target": "A new warning category, :exc:`ResourceWarning`, has been added.  It is emitted when potential issues with resource consumption or cleanup are detected.  It is silenced by default in normal release builds but can be enabled through the means provided by the :mod:`warnings` module, or on the command line.",
            "old": "A new warning category, :exc:`ResourceWarning`, has been added.  It is emitted when potential issues with resource consumption or cleanup are detected.  It is silenced by default in normal release builds but can be enabled through the means provided by the :mod:`warnings` module, or on the command line.",
            "details": {
                "state": 100,
                "source": "A new warning category, :exc:`ResourceWarning`, has been added.  It is emitted when potential issues with resource consumption or cleanup are detected.  It is silenced by default in normal release builds but can be enabled through the means provided by the :mod:`warnings` module, or on the command line.",
                "old_state": 100
            },
            "id": 71033246,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033246/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796479/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.993376+01:00",
            "action": 13,
            "target": "(Suggested by Barry Warsaw and implemented by Philip Jenvey in :issue:`7301`.)",
            "old": "(Suggested by Barry Warsaw and implemented by Philip Jenvey in :issue:`7301`.)",
            "details": {
                "state": 100,
                "source": "(Suggested by Barry Warsaw and implemented by Philip Jenvey in :issue:`7301`.)",
                "old_state": 100
            },
            "id": 71033245,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033245/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796477/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.982518+01:00",
            "action": 13,
            "target": "Warnings are now easier to control using the :envvar:`PYTHONWARNINGS` environment variable as an alternative to using ``-W`` at the command line:",
            "old": "Warnings are now easier to control using the :envvar:`PYTHONWARNINGS` environment variable as an alternative to using ``-W`` at the command line:",
            "details": {
                "state": 100,
                "source": "Warnings are now easier to control using the :envvar:`PYTHONWARNINGS` environment variable as an alternative to using ``-W`` at the command line:",
                "old_state": 100
            },
            "id": 71033244,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033244/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796475/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.971166+01:00",
            "action": 13,
            "target": "(Suggested by Arfrever Frehtes Taifersar Arahesis and implemented by Benjamin Peterson in :issue:`8413`.)",
            "old": "(Suggested by Arfrever Frehtes Taifersar Arahesis and implemented by Benjamin Peterson in :issue:`8413`.)",
            "details": {
                "state": 100,
                "source": "(Suggested by Arfrever Frehtes Taifersar Arahesis and implemented by Benjamin Peterson in :issue:`8413`.)",
                "old_state": 100
            },
            "id": 71033243,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033243/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796473/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.961630+01:00",
            "action": 13,
            "target": "The internal :c:type:`structsequence` tool now creates subclasses of tuple. This means that C structures like those returned by :func:`os.stat`, :func:`time.gmtime`, and :attr:`sys.version_info` now work like a :term:`named tuple` and now work with functions and methods that expect a tuple as an argument.  This is a big step forward in making the C structures as flexible as their pure Python counterparts:",
            "old": "The internal :c:type:`structsequence` tool now creates subclasses of tuple. This means that C structures like those returned by :func:`os.stat`, :func:`time.gmtime`, and :attr:`sys.version_info` now work like a :term:`named tuple` and now work with functions and methods that expect a tuple as an argument.  This is a big step forward in making the C structures as flexible as their pure Python counterparts:",
            "details": {
                "state": 100,
                "source": "The internal :c:type:`structsequence` tool now creates subclasses of tuple. This means that C structures like those returned by :func:`os.stat`, :func:`time.gmtime`, and :attr:`sys.version_info` now work like a :term:`named tuple` and now work with functions and methods that expect a tuple as an argument.  This is a big step forward in making the C structures as flexible as their pure Python counterparts:",
                "old_state": 100
            },
            "id": 71033242,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033242/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796471/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.949705+01:00",
            "action": 13,
            "target": "(See :issue:`4617`.)",
            "old": "(See :issue:`4617`.)",
            "details": {
                "state": 100,
                "source": "(See :issue:`4617`.)",
                "old_state": 100
            },
            "id": 71033241,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033241/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796469/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.938846+01:00",
            "action": 13,
            "target": "This is now allowed.  Remember that the target of an :keyword:`except` clause is cleared, so this code which used to work with Python 2.6, raised a :exc:`SyntaxError` with Python 3.1 and now works again::",
            "old": "This is now allowed.  Remember that the target of an :keyword:`except` clause is cleared, so this code which used to work with Python 2.6, raised a :exc:`SyntaxError` with Python 3.1 and now works again::",
            "details": {
                "state": 100,
                "source": "This is now allowed.  Remember that the target of an :keyword:`except` clause is cleared, so this code which used to work with Python 2.6, raised a :exc:`SyntaxError` with Python 3.1 and now works again::",
                "old_state": 100
            },
            "id": 71033240,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033240/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796467/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.927814+01:00",
            "action": 13,
            "target": "Previously it was illegal to delete a name from the local namespace if it occurs as a free variable in a nested block::",
            "old": "Previously it was illegal to delete a name from the local namespace if it occurs as a free variable in a nested block::",
            "details": {
                "state": 100,
                "source": "Previously it was illegal to delete a name from the local namespace if it occurs as a free variable in a nested block::",
                "old_state": 100
            },
            "id": 71033239,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033239/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796465/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.918395+01:00",
            "action": 13,
            "target": "(Added by Antoine Pitrou; :issue:`9757`.)",
            "old": "(Added by Antoine Pitrou; :issue:`9757`.)",
            "details": {
                "state": 100,
                "source": "(Added by Antoine Pitrou; :issue:`9757`.)",
                "old_state": 100
            },
            "id": 71033191,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033191/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796460/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.908200+01:00",
            "action": 13,
            "target": ":class:`memoryview` objects now have a :meth:`~memoryview.release()` method and they also now support the context management protocol.  This allows timely release of any resources that were acquired when requesting a buffer from the original object.",
            "old": ":class:`memoryview` objects now have a :meth:`~memoryview.release()` method and they also now support the context management protocol.  This allows timely release of any resources that were acquired when requesting a buffer from the original object.",
            "details": {
                "state": 100,
                "source": ":class:`memoryview` objects now have a :meth:`~memoryview.release()` method and they also now support the context management protocol.  This allows timely release of any resources that were acquired when requesting a buffer from the original object.",
                "old_state": 100
            },
            "id": 71033189,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033189/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796456/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.898226+01:00",
            "action": 13,
            "target": "(Proposed and implemented by Mark Dickinson; :issue:`9337`.)",
            "old": "(Proposed and implemented by Mark Dickinson; :issue:`9337`.)",
            "details": {
                "state": 100,
                "source": "(Proposed and implemented by Mark Dickinson; :issue:`9337`.)",
                "old_state": 100
            },
            "id": 71033187,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033187/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796452/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.888308+01:00",
            "action": 13,
            "target": "The :func:`str` of a float or complex number is now the same as its :func:`repr`. Previously, the :func:`str` form was shorter but that just caused confusion and is no longer needed now that the shortest possible :func:`repr` is displayed by default:",
            "old": "The :func:`str` of a float or complex number is now the same as its :func:`repr`. Previously, the :func:`str` form was shorter but that just caused confusion and is no longer needed now that the shortest possible :func:`repr` is displayed by default:",
            "details": {
                "state": 100,
                "source": "The :func:`str` of a float or complex number is now the same as its :func:`repr`. Previously, the :func:`str` form was shorter but that just caused confusion and is no longer needed now that the shortest possible :func:`repr` is displayed by default:",
                "old_state": 100
            },
            "id": 71033185,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033185/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796448/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.878325+01:00",
            "action": 13,
            "target": "(Discovered by Yury Selivanov and fixed by Benjamin Peterson; :issue:`9666`.)",
            "old": "(Discovered by Yury Selivanov and fixed by Benjamin Peterson; :issue:`9666`.)",
            "details": {
                "state": 100,
                "source": "(Discovered by Yury Selivanov and fixed by Benjamin Peterson; :issue:`9666`.)",
                "old_state": 100
            },
            "id": 71033183,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033183/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796445/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.869263+01:00",
            "action": 13,
            "target": "The :func:`hasattr` function works by calling :func:`getattr` and detecting whether an exception is raised.  This technique allows it to detect methods created dynamically by :meth:`__getattr__` or :meth:`__getattribute__` which would otherwise be absent from the class dictionary.  Formerly, *hasattr* would catch any exception, possibly masking genuine errors.  Now, *hasattr* has been tightened to only catch :exc:`AttributeError` and let other exceptions pass through::",
            "old": "The :func:`hasattr` function works by calling :func:`getattr` and detecting whether an exception is raised.  This technique allows it to detect methods created dynamically by :meth:`__getattr__` or :meth:`__getattribute__` which would otherwise be absent from the class dictionary.  Formerly, *hasattr* would catch any exception, possibly masking genuine errors.  Now, *hasattr* has been tightened to only catch :exc:`AttributeError` and let other exceptions pass through::",
            "details": {
                "state": 100,
                "source": "The :func:`hasattr` function works by calling :func:`getattr` and detecting whether an exception is raised.  This technique allows it to detect methods created dynamically by :meth:`__getattr__` or :meth:`__getattribute__` which would otherwise be absent from the class dictionary.  Formerly, *hasattr* would catch any exception, possibly masking genuine errors.  Now, *hasattr* has been tightened to only catch :exc:`AttributeError` and let other exceptions pass through::",
                "old_state": 100
            },
            "id": 71033181,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033181/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796443/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.859477+01:00",
            "action": 13,
            "target": "(Contributed by Marcin Wojdyr in :issue:`1772833`).",
            "old": "(Contributed by Marcin Wojdyr in :issue:`1772833`).",
            "details": {
                "state": 100,
                "source": "(Contributed by Marcin Wojdyr in :issue:`1772833`).",
                "old_state": 100
            },
            "id": 71033180,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033180/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796441/?format=api",
            "component": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/python-docs/latest%252Flatestwhatsnew32/en/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-11-08T16:39:35.850018+01:00",
            "action": 13,
            "target": "The interpreter can now be started with a quiet option, ``-q``, to prevent the copyright and version information from being displayed in the interactive mode.  The option can be introspected using the :attr:`sys.flags` attribute:",
            "old": "The interpreter can now be started with a quiet option, ``-q``, to prevent the copyright and version information from being displayed in the interactive mode.  The option can be introspected using the :attr:`sys.flags` attribute:",
            "details": {
                "state": 100,
                "source": "The interpreter can now be started with a quiet option, ``-q``, to prevent the copyright and version information from being displayed in the interactive mode.  The option can be introspected using the :attr:`sys.flags` attribute:",
                "old_state": 100
            },
            "id": 71033179,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033179/?format=api"
        }
    ]
}