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=31
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=32",
    "previous": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/changes/?format=api&page=30",
    "results": [
        {
            "unit": "https://hosted.weblate.org/api/units/108796439/?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.840104+01:00",
            "action": 13,
            "target": "(Suggested by Raymond Hettinger and implemented by Eric Smith in :issue:`6081`.)",
            "old": "(Suggested by Raymond Hettinger and implemented by Eric Smith in :issue:`6081`.)",
            "details": {
                "state": 100,
                "source": "(Suggested by Raymond Hettinger and implemented by Eric Smith in :issue:`6081`.)",
                "old_state": 100
            },
            "id": 71033178,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033178/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796437/?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.830336+01:00",
            "action": 13,
            "target": "There is also a new :meth:`str.format_map` method that extends the capabilities of the existing :meth:`str.format` method by accepting arbitrary :term:`mapping` objects.  This new method makes it possible to use string formatting with any of Python's many dictionary-like objects such as :class:`~collections.defaultdict`, :class:`~shelve.Shelf`, :class:`~configparser.ConfigParser`, or :mod:`dbm`.  It is also useful with custom :class:`dict` subclasses that normalize keys before look-up or that supply a :meth:`__missing__` method for unknown keys::",
            "old": "There is also a new :meth:`str.format_map` method that extends the capabilities of the existing :meth:`str.format` method by accepting arbitrary :term:`mapping` objects.  This new method makes it possible to use string formatting with any of Python's many dictionary-like objects such as :class:`~collections.defaultdict`, :class:`~shelve.Shelf`, :class:`~configparser.ConfigParser`, or :mod:`dbm`.  It is also useful with custom :class:`dict` subclasses that normalize keys before look-up or that supply a :meth:`__missing__` method for unknown keys::",
            "details": {
                "state": 100,
                "source": "There is also a new :meth:`str.format_map` method that extends the capabilities of the existing :meth:`str.format` method by accepting arbitrary :term:`mapping` objects.  This new method makes it possible to use string formatting with any of Python's many dictionary-like objects such as :class:`~collections.defaultdict`, :class:`~shelve.Shelf`, :class:`~configparser.ConfigParser`, or :mod:`dbm`.  It is also useful with custom :class:`dict` subclasses that normalize keys before look-up or that supply a :meth:`__missing__` method for unknown keys::",
                "old_state": 100
            },
            "id": 71033177,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033177/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796435/?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.817691+01:00",
            "action": 13,
            "target": "(Suggested by Mark Dickinson and implemented by Eric Smith in :issue:`7094`.)",
            "old": "(Suggested by Mark Dickinson and implemented by Eric Smith in :issue:`7094`.)",
            "details": {
                "state": 100,
                "source": "(Suggested by Mark Dickinson and implemented by Eric Smith in :issue:`7094`.)",
                "old_state": 100
            },
            "id": 71033176,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033176/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796433/?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.808940+01:00",
            "action": 13,
            "target": "String formatting for :func:`format` and :meth:`str.format` gained new capabilities for the format character **#**.  Previously, for integers in binary, octal, or hexadecimal, it caused the output to be prefixed with '0b', '0o', or '0x' respectively.  Now it can also handle floats, complex, and Decimal, causing the output to always have a decimal point even when no digits follow it.",
            "old": "String formatting for :func:`format` and :meth:`str.format` gained new capabilities for the format character **#**.  Previously, for integers in binary, octal, or hexadecimal, it caused the output to be prefixed with '0b', '0o', or '0x' respectively.  Now it can also handle floats, complex, and Decimal, causing the output to always have a decimal point even when no digits follow it.",
            "details": {
                "state": 100,
                "source": "String formatting for :func:`format` and :meth:`str.format` gained new capabilities for the format character **#**.  Previously, for integers in binary, octal, or hexadecimal, it caused the output to be prefixed with '0b', '0o', or '0x' respectively.  Now it can also handle floats, complex, and Decimal, causing the output to always have a decimal point even when no digits follow it.",
                "old_state": 100
            },
            "id": 71033175,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033175/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796431/?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.799118+01:00",
            "action": 13,
            "target": "Some smaller changes made to the core Python language are:",
            "old": "Some smaller changes made to the core Python language are:",
            "details": {
                "state": 100,
                "source": "Some smaller changes made to the core Python language are:",
                "old_state": 100
            },
            "id": 71033174,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033174/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796429/?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.788533+01:00",
            "action": 13,
            "target": "Other Language Changes",
            "old": "Other Language Changes",
            "details": {
                "state": 100,
                "source": "Other Language Changes",
                "old_state": 100
            },
            "id": 71033173,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033173/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796427/?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.780705+01:00",
            "action": 13,
            "target": "PEP written by Phillip Eby.",
            "old": "PEP written by Phillip Eby.",
            "details": {
                "state": 100,
                "source": "PEP written by Phillip Eby.",
                "old_state": 100
            },
            "id": 71033172,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033172/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796425/?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.770979+01:00",
            "action": 13,
            "target": ":pep:`3333` - Python Web Server Gateway Interface v1.0.1",
            "old": ":pep:`3333` - Python Web Server Gateway Interface v1.0.1",
            "details": {
                "state": 100,
                "source": ":pep:`3333` - Python Web Server Gateway Interface v1.0.1",
                "old_state": 100
            },
            "id": 71033171,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033171/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796423/?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.752780+01:00",
            "action": 13,
            "target": "For server implementers writing CGI-to-WSGI pathways or other CGI-style protocols, the users must to be able access the environment using native strings even though the underlying platform may have a different convention.  To bridge this gap, the :mod:`wsgiref` module has a new function, :func:`wsgiref.handlers.read_environ` for transcoding CGI variables from :attr:`os.environ` into native strings and returning a new dictionary.",
            "old": "For server implementers writing CGI-to-WSGI pathways or other CGI-style protocols, the users must to be able access the environment using native strings even though the underlying platform may have a different convention.  To bridge this gap, the :mod:`wsgiref` module has a new function, :func:`wsgiref.handlers.read_environ` for transcoding CGI variables from :attr:`os.environ` into native strings and returning a new dictionary.",
            "details": {
                "state": 100,
                "source": "For server implementers writing CGI-to-WSGI pathways or other CGI-style protocols, the users must to be able access the environment using native strings even though the underlying platform may have a different convention.  To bridge this gap, the :mod:`wsgiref` module has a new function, :func:`wsgiref.handlers.read_environ` for transcoding CGI variables from :attr:`os.environ` into native strings and returning a new dictionary.",
                "old_state": 100
            },
            "id": 71033170,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033170/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796421/?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.744590+01:00",
            "action": 13,
            "target": "Values yielded by an application or sent using the :meth:`write` method must be byte strings.  The :func:`start_response` function and environ must use native strings.  The two cannot be mixed.",
            "old": "Values yielded by an application or sent using the :meth:`write` method must be byte strings.  The :func:`start_response` function and environ must use native strings.  The two cannot be mixed.",
            "details": {
                "state": 100,
                "source": "Values yielded by an application or sent using the :meth:`write` method must be byte strings.  The :func:`start_response` function and environ must use native strings.  The two cannot be mixed.",
                "old_state": 100
            },
            "id": 71033169,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033169/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796419/?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.734820+01:00",
            "action": 13,
            "target": "If instead, the app encoded output headers or decoded input headers, then the headers will need to be re-encoded to Latin-1.  For example, an output header encoded in utf-8 was using ``h.encode('utf-8')`` now needs to convert from bytes to native strings using ``h.encode('utf-8').decode('latin-1')``.",
            "old": "If instead, the app encoded output headers or decoded input headers, then the headers will need to be re-encoded to Latin-1.  For example, an output header encoded in utf-8 was using ``h.encode('utf-8')`` now needs to convert from bytes to native strings using ``h.encode('utf-8').decode('latin-1')``.",
            "details": {
                "state": 100,
                "source": "If instead, the app encoded output headers or decoded input headers, then the headers will need to be re-encoded to Latin-1.  For example, an output header encoded in utf-8 was using ``h.encode('utf-8')`` now needs to convert from bytes to native strings using ``h.encode('utf-8').decode('latin-1')``.",
                "old_state": 100
            },
            "id": 71033168,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033168/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796417/?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.724940+01:00",
            "action": 13,
            "target": "If the app already used strings for headers in Python 2, no change is needed.",
            "old": "If the app already used strings for headers in Python 2, no change is needed.",
            "details": {
                "state": 100,
                "source": "If the app already used strings for headers in Python 2, no change is needed.",
                "old_state": 100
            },
            "id": 71033167,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033167/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796415/?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.714753+01:00",
            "action": 13,
            "target": "For developers porting WSGI applications from Python 2, here are the salient points:",
            "old": "For developers porting WSGI applications from Python 2, here are the salient points:",
            "details": {
                "state": 100,
                "source": "For developers porting WSGI applications from Python 2, here are the salient points:",
                "old_state": 100
            },
            "id": 71033165,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033165/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796413/?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.704187+01:00",
            "action": 13,
            "target": "The *native strings* are always of type :class:`str` but are restricted to code points between *U+0000* through *U+00FF* which are translatable to bytes using *Latin-1* encoding.  These strings are used for the keys and values in the environment dictionary and for response headers and statuses in the :func:`start_response` function.  They must follow :rfc:`2616` with respect to encoding. That is, they must either be *ISO-8859-1* characters or use :rfc:`2047` MIME encoding.",
            "old": "The *native strings* are always of type :class:`str` but are restricted to code points between *U+0000* through *U+00FF* which are translatable to bytes using *Latin-1* encoding.  These strings are used for the keys and values in the environment dictionary and for response headers and statuses in the :func:`start_response` function.  They must follow :rfc:`2616` with respect to encoding. That is, they must either be *ISO-8859-1* characters or use :rfc:`2047` MIME encoding.",
            "details": {
                "state": 100,
                "source": "The *native strings* are always of type :class:`str` but are restricted to code points between *U+0000* through *U+00FF* which are translatable to bytes using *Latin-1* encoding.  These strings are used for the keys and values in the environment dictionary and for response headers and statuses in the :func:`start_response` function.  They must follow :rfc:`2616` with respect to encoding. That is, they must either be *ISO-8859-1* characters or use :rfc:`2047` MIME encoding.",
                "old_state": 100
            },
            "id": 71033164,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033164/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796411/?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.695353+01:00",
            "action": 13,
            "target": "The PEP differentiates so-called *native strings* that are used for request/response headers and metadata versus *byte strings* which are used for the bodies of requests and responses.",
            "old": "The PEP differentiates so-called *native strings* that are used for request/response headers and metadata versus *byte strings* which are used for the bodies of requests and responses.",
            "details": {
                "state": 100,
                "source": "The PEP differentiates so-called *native strings* that are used for request/response headers and metadata versus *byte strings* which are used for the bodies of requests and responses.",
                "old_state": 100
            },
            "id": 71033163,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033163/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796409/?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.684508+01:00",
            "action": 13,
            "target": "This informational PEP clarifies how bytes/text issues are to be handled by the WSGI protocol.  The challenge is that string handling in Python 3 is most conveniently handled with the :class:`str` type even though the HTTP protocol is itself bytes oriented.",
            "old": "This informational PEP clarifies how bytes/text issues are to be handled by the WSGI protocol.  The challenge is that string handling in Python 3 is most conveniently handled with the :class:`str` type even though the HTTP protocol is itself bytes oriented.",
            "details": {
                "state": 100,
                "source": "This informational PEP clarifies how bytes/text issues are to be handled by the WSGI protocol.  The challenge is that string handling in Python 3 is most conveniently handled with the :class:`str` type even though the HTTP protocol is itself bytes oriented.",
                "old_state": 100
            },
            "id": 71033162,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033162/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796407/?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.674060+01:00",
            "action": 13,
            "target": "PEP 3333: Python Web Server Gateway Interface v1.0.1",
            "old": "PEP 3333: Python Web Server Gateway Interface v1.0.1",
            "details": {
                "state": 100,
                "source": "PEP 3333: Python Web Server Gateway Interface v1.0.1",
                "old_state": 100
            },
            "id": 71033161,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033161/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796405/?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.665647+01:00",
            "action": 13,
            "target": ":pep:`3149` - ABI Version Tagged .so Files",
            "old": ":pep:`3149` - ABI Version Tagged .so Files",
            "details": {
                "state": 100,
                "source": ":pep:`3149` - ABI Version Tagged .so Files",
                "old_state": 100
            },
            "id": 71033160,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033160/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796403/?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.657308+01:00",
            "action": 13,
            "target": "In Python itself, the tags are accessible from functions in the :mod:`sysconfig` module::",
            "old": "In Python itself, the tags are accessible from functions in the :mod:`sysconfig` module::",
            "details": {
                "state": 100,
                "source": "In Python itself, the tags are accessible from functions in the :mod:`sysconfig` module::",
                "old_state": 100
            },
            "id": 71033159,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033159/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796401/?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.647545+01:00",
            "action": 13,
            "target": "The common directory is \"pyshared\" and the file names are made distinct by identifying the Python implementation (such as CPython, PyPy, Jython, etc.), the major and minor version numbers, and optional build flags (such as \"d\" for debug, \"m\" for pymalloc, \"u\" for wide-unicode).  For an arbitrary package \"foo\", you may see these files when the distribution package is installed::",
            "old": "The common directory is \"pyshared\" and the file names are made distinct by identifying the Python implementation (such as CPython, PyPy, Jython, etc.), the major and minor version numbers, and optional build flags (such as \"d\" for debug, \"m\" for pymalloc, \"u\" for wide-unicode).  For an arbitrary package \"foo\", you may see these files when the distribution package is installed::",
            "details": {
                "state": 100,
                "source": "The common directory is \"pyshared\" and the file names are made distinct by identifying the Python implementation (such as CPython, PyPy, Jython, etc.), the major and minor version numbers, and optional build flags (such as \"d\" for debug, \"m\" for pymalloc, \"u\" for wide-unicode).  For an arbitrary package \"foo\", you may see these files when the distribution package is installed::",
                "old_state": 100
            },
            "id": 71033158,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033158/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796399/?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.636586+01:00",
            "action": 13,
            "target": "The PYC repository directory allows multiple bytecode cache files to be co-located.  This PEP implements a similar mechanism for shared object files by giving them a common directory and distinct names for each version.",
            "old": "The PYC repository directory allows multiple bytecode cache files to be co-located.  This PEP implements a similar mechanism for shared object files by giving them a common directory and distinct names for each version.",
            "details": {
                "state": 100,
                "source": "The PYC repository directory allows multiple bytecode cache files to be co-located.  This PEP implements a similar mechanism for shared object files by giving them a common directory and distinct names for each version.",
                "old_state": 100
            },
            "id": 71033157,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033157/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796397/?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.626475+01:00",
            "action": 13,
            "target": "PEP 3149: ABI Version Tagged .so Files",
            "old": "PEP 3149: ABI Version Tagged .so Files",
            "details": {
                "state": 100,
                "source": "PEP 3149: ABI Version Tagged .so Files",
                "old_state": 100
            },
            "id": 71033156,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033156/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796395/?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.616390+01:00",
            "action": 13,
            "target": "PEP written by Barry Warsaw.",
            "old": "PEP written by Barry Warsaw.",
            "details": {
                "state": 100,
                "source": "PEP written by Barry Warsaw.",
                "old_state": 100
            },
            "id": 71033155,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033155/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796392/?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.605510+01:00",
            "action": 13,
            "target": ":pep:`3147` - PYC Repository Directories",
            "old": ":pep:`3147` - PYC Repository Directories",
            "details": {
                "state": 100,
                "source": ":pep:`3147` - PYC Repository Directories",
                "old_state": 100
            },
            "id": 71033154,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033154/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796388/?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.594950+01:00",
            "action": 13,
            "target": "The :mod:`importlib.abc` module has been updated with new :term:`abstract base classes <abstract base class>` for loading bytecode files.  The obsolete ABCs, :class:`~importlib.abc.PyLoader` and :class:`~importlib.abc.PyPycLoader`, have been deprecated (instructions on how to stay Python 3.1 compatible are included with the documentation).",
            "old": "The :mod:`importlib.abc` module has been updated with new :term:`abstract base classes <abstract base class>` for loading bytecode files.  The obsolete ABCs, :class:`~importlib.abc.PyLoader` and :class:`~importlib.abc.PyPycLoader`, have been deprecated (instructions on how to stay Python 3.1 compatible are included with the documentation).",
            "details": {
                "state": 100,
                "source": "The :mod:`importlib.abc` module has been updated with new :term:`abstract base classes <abstract base class>` for loading bytecode files.  The obsolete ABCs, :class:`~importlib.abc.PyLoader` and :class:`~importlib.abc.PyPycLoader`, have been deprecated (instructions on how to stay Python 3.1 compatible are included with the documentation).",
                "old_state": 100
            },
            "id": 71033152,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033152/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796384/?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.584508+01:00",
            "action": 13,
            "target": "The :mod:`py_compile` and :mod:`compileall` modules have been updated to reflect the new naming convention and target directory.  The command-line invocation of *compileall* has new options: ``-i`` for specifying a list of files and directories to compile and ``-b`` which causes bytecode files to be written to their legacy location rather than *__pycache__*.",
            "old": "The :mod:`py_compile` and :mod:`compileall` modules have been updated to reflect the new naming convention and target directory.  The command-line invocation of *compileall* has new options: ``-i`` for specifying a list of files and directories to compile and ``-b`` which causes bytecode files to be written to their legacy location rather than *__pycache__*.",
            "details": {
                "state": 100,
                "source": "The :mod:`py_compile` and :mod:`compileall` modules have been updated to reflect the new naming convention and target directory.  The command-line invocation of *compileall* has new options: ``-i`` for specifying a list of files and directories to compile and ``-b`` which causes bytecode files to be written to their legacy location rather than *__pycache__*.",
                "old_state": 100
            },
            "id": 71033150,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033150/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796380/?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.573164+01:00",
            "action": 13,
            "target": "Scripts that try to deduce source filename from the imported file now need to be smarter.  It is no longer sufficient to simply strip the \"c\" from a \".pyc\" filename.  Instead, use the new functions in the :mod:`imp` module:",
            "old": "Scripts that try to deduce source filename from the imported file now need to be smarter.  It is no longer sufficient to simply strip the \"c\" from a \".pyc\" filename.  Instead, use the new functions in the :mod:`imp` module:",
            "details": {
                "state": 100,
                "source": "Scripts that try to deduce source filename from the imported file now need to be smarter.  It is no longer sufficient to simply strip the \"c\" from a \".pyc\" filename.  Instead, use the new functions in the :mod:`imp` module:",
                "old_state": 100
            },
            "id": 71033148,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033148/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796376/?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.564035+01:00",
            "action": 13,
            "target": "The tag that is unique to each interpreter is accessible from the :mod:`imp` module:",
            "old": "The tag that is unique to each interpreter is accessible from the :mod:`imp` module:",
            "details": {
                "state": 100,
                "source": "The tag that is unique to each interpreter is accessible from the :mod:`imp` module:",
                "old_state": 100
            },
            "id": 71033146,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033146/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796373/?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.555196+01:00",
            "action": 13,
            "target": "Imported modules now have a :attr:`__cached__` attribute which stores the name of the actual file that was imported:",
            "old": "Imported modules now have a :attr:`__cached__` attribute which stores the name of the actual file that was imported:",
            "details": {
                "state": 100,
                "source": "Imported modules now have a :attr:`__cached__` attribute which stores the name of the actual file that was imported:",
                "old_state": 100
            },
            "id": 71033144,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033144/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796370/?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.544354+01:00",
            "action": 13,
            "target": "Aside from the filenames and target directories, the new scheme has a few aspects that are visible to the programmer:",
            "old": "Aside from the filenames and target directories, the new scheme has a few aspects that are visible to the programmer:",
            "details": {
                "state": 100,
                "source": "Aside from the filenames and target directories, the new scheme has a few aspects that are visible to the programmer:",
                "old_state": 100
            },
            "id": 71033142,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033142/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796365/?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.533655+01:00",
            "action": 13,
            "target": "To solve this problem, Python's import machinery has been extended to use distinct filenames for each interpreter.  Instead of Python 3.2 and Python 3.3 and Unladen Swallow each competing for a file called \"mymodule.pyc\", they will now look for \"mymodule.cpython-32.pyc\", \"mymodule.cpython-33.pyc\", and \"mymodule.unladen10.pyc\".  And to prevent all of these new files from cluttering source directories, the *pyc* files are now collected in a \"__pycache__\" directory stored under the package directory.",
            "old": "To solve this problem, Python's import machinery has been extended to use distinct filenames for each interpreter.  Instead of Python 3.2 and Python 3.3 and Unladen Swallow each competing for a file called \"mymodule.pyc\", they will now look for \"mymodule.cpython-32.pyc\", \"mymodule.cpython-33.pyc\", and \"mymodule.unladen10.pyc\".  And to prevent all of these new files from cluttering source directories, the *pyc* files are now collected in a \"__pycache__\" directory stored under the package directory.",
            "details": {
                "state": 100,
                "source": "To solve this problem, Python's import machinery has been extended to use distinct filenames for each interpreter.  Instead of Python 3.2 and Python 3.3 and Unladen Swallow each competing for a file called \"mymodule.pyc\", they will now look for \"mymodule.cpython-32.pyc\", \"mymodule.cpython-33.pyc\", and \"mymodule.unladen10.pyc\".  And to prevent all of these new files from cluttering source directories, the *pyc* files are now collected in a \"__pycache__\" directory stored under the package directory.",
                "old_state": 100
            },
            "id": 71033140,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033140/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796361/?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.520647+01:00",
            "action": 13,
            "target": "The issue of \"pyc fights\" has become more pronounced as it has become commonplace for Linux distributions to ship with multiple versions of Python. These conflicts also arise with CPython alternatives such as Unladen Swallow.",
            "old": "The issue of \"pyc fights\" has become more pronounced as it has become commonplace for Linux distributions to ship with multiple versions of Python. These conflicts also arise with CPython alternatives such as Unladen Swallow.",
            "details": {
                "state": 100,
                "source": "The issue of \"pyc fights\" has become more pronounced as it has become commonplace for Linux distributions to ship with multiple versions of Python. These conflicts also arise with CPython alternatives such as Unladen Swallow.",
                "old_state": 100
            },
            "id": 71033138,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033138/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796357/?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.508216+01:00",
            "action": 13,
            "target": "Python's scheme for caching bytecode in *.pyc* files did not work well in environments with multiple Python interpreters.  If one interpreter encountered a cached file created by another interpreter, it would recompile the source and overwrite the cached file, thus losing the benefits of caching.",
            "old": "Python's scheme for caching bytecode in *.pyc* files did not work well in environments with multiple Python interpreters.  If one interpreter encountered a cached file created by another interpreter, it would recompile the source and overwrite the cached file, thus losing the benefits of caching.",
            "details": {
                "state": 100,
                "source": "Python's scheme for caching bytecode in *.pyc* files did not work well in environments with multiple Python interpreters.  If one interpreter encountered a cached file created by another interpreter, it would recompile the source and overwrite the cached file, thus losing the benefits of caching.",
                "old_state": 100
            },
            "id": 71033136,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033136/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796353/?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.496049+01:00",
            "action": 13,
            "target": "PEP 3147:  PYC Repository Directories",
            "old": "PEP 3147:  PYC Repository Directories",
            "details": {
                "state": 100,
                "source": "PEP 3147:  PYC Repository Directories",
                "old_state": 100
            },
            "id": 71033134,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033134/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796350/?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.484761+01:00",
            "action": 13,
            "target": ":ref:`Code for computing prime numbers in parallel<processpoolexecutor-example>`, an example demonstrating :class:`~concurrent.futures.ProcessPoolExecutor`.",
            "old": ":ref:`Code for computing prime numbers in parallel<processpoolexecutor-example>`, an example demonstrating :class:`~concurrent.futures.ProcessPoolExecutor`.",
            "details": {
                "state": 100,
                "source": ":ref:`Code for computing prime numbers in parallel<processpoolexecutor-example>`, an example demonstrating :class:`~concurrent.futures.ProcessPoolExecutor`.",
                "old_state": 100
            },
            "id": 71033132,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033132/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796346/?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.474493+01:00",
            "action": 13,
            "target": ":ref:`Code for Threaded Parallel URL reads<threadpoolexecutor-example>`, an example using threads to fetch multiple web pages in parallel.",
            "old": ":ref:`Code for Threaded Parallel URL reads<threadpoolexecutor-example>`, an example using threads to fetch multiple web pages in parallel.",
            "details": {
                "state": 100,
                "source": ":ref:`Code for Threaded Parallel URL reads<threadpoolexecutor-example>`, an example using threads to fetch multiple web pages in parallel.",
                "old_state": 100
            },
            "id": 71033131,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033131/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796342/?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.462866+01:00",
            "action": 13,
            "target": "PEP written by Brian Quinlan.",
            "old": "PEP written by Brian Quinlan.",
            "details": {
                "state": 100,
                "source": "PEP written by Brian Quinlan.",
                "old_state": 100
            },
            "id": 71033129,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033129/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796338/?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.453060+01:00",
            "action": 13,
            "target": ":pep:`3148` - Futures -- Execute Computations Asynchronously",
            "old": ":pep:`3148` - Futures -- Execute Computations Asynchronously",
            "details": {
                "state": 100,
                "source": ":pep:`3148` - Futures -- Execute Computations Asynchronously",
                "old_state": 100
            },
            "id": 71033127,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033127/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796332/?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.441015+01:00",
            "action": 13,
            "target": "A simple of example of :class:`~concurrent.futures.ThreadPoolExecutor` is a launch of four parallel threads for copying files::",
            "old": "A simple of example of :class:`~concurrent.futures.ThreadPoolExecutor` is a launch of four parallel threads for copying files::",
            "details": {
                "state": 100,
                "source": "A simple of example of :class:`~concurrent.futures.ThreadPoolExecutor` is a launch of four parallel threads for copying files::",
                "old_state": 100
            },
            "id": 71033125,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033125/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796328/?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.427504+01:00",
            "action": 13,
            "target": "Both classes share a common interface with three methods: :meth:`~concurrent.futures.Executor.submit` for scheduling a callable and returning a :class:`~concurrent.futures.Future` object; :meth:`~concurrent.futures.Executor.map` for scheduling many asynchronous calls at a time, and :meth:`~concurrent.futures.Executor.shutdown` for freeing resources.  The class is a :term:`context manager` and can be used in a :keyword:`with` statement to assure that resources are automatically released when currently pending futures are done executing.",
            "old": "Both classes share a common interface with three methods: :meth:`~concurrent.futures.Executor.submit` for scheduling a callable and returning a :class:`~concurrent.futures.Future` object; :meth:`~concurrent.futures.Executor.map` for scheduling many asynchronous calls at a time, and :meth:`~concurrent.futures.Executor.shutdown` for freeing resources.  The class is a :term:`context manager` and can be used in a :keyword:`with` statement to assure that resources are automatically released when currently pending futures are done executing.",
            "details": {
                "state": 100,
                "source": "Both classes share a common interface with three methods: :meth:`~concurrent.futures.Executor.submit` for scheduling a callable and returning a :class:`~concurrent.futures.Future` object; :meth:`~concurrent.futures.Executor.map` for scheduling many asynchronous calls at a time, and :meth:`~concurrent.futures.Executor.shutdown` for freeing resources.  The class is a :term:`context manager` and can be used in a :keyword:`with` statement to assure that resources are automatically released when currently pending futures are done executing.",
                "old_state": 100
            },
            "id": 71033122,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033122/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796324/?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.415820+01:00",
            "action": 13,
            "target": "Ideally, each application should share a single executor across multiple components so that process and thread limits can be centrally managed.  This solves the design challenge that arises when each component has its own competing strategy for resource management.",
            "old": "Ideally, each application should share a single executor across multiple components so that process and thread limits can be centrally managed.  This solves the design challenge that arises when each component has its own competing strategy for resource management.",
            "details": {
                "state": 100,
                "source": "Ideally, each application should share a single executor across multiple components so that process and thread limits can be centrally managed.  This solves the design challenge that arises when each component has its own competing strategy for resource management.",
                "old_state": 100
            },
            "id": 71033120,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033120/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796320/?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.402597+01:00",
            "action": 13,
            "target": "The primary offering of the new module is a pair of executor classes for launching and managing calls.  The goal of the executors is to make it easier to use existing tools for making parallel calls. They save the effort needed to setup a pool of resources, launch the calls, create a results queue, add time-out handling, and limit the total number of threads, processes, or remote procedure calls.",
            "old": "The primary offering of the new module is a pair of executor classes for launching and managing calls.  The goal of the executors is to make it easier to use existing tools for making parallel calls. They save the effort needed to setup a pool of resources, launch the calls, create a results queue, add time-out handling, and limit the total number of threads, processes, or remote procedure calls.",
            "details": {
                "state": 100,
                "source": "The primary offering of the new module is a pair of executor classes for launching and managing calls.  The goal of the executors is to make it easier to use existing tools for making parallel calls. They save the effort needed to setup a pool of resources, launch the calls, create a results queue, add time-out handling, and limit the total number of threads, processes, or remote procedure calls.",
                "old_state": 100
            },
            "id": 71033118,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033118/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796315/?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.387879+01:00",
            "action": 13,
            "target": "The design for :mod:`concurrent.futures` was inspired by the *java.util.concurrent* package.  In that model, a running call and its result are represented by a :class:`~concurrent.futures.Future` object that abstracts features common to threads, processes, and remote procedure calls.  That object supports status checks (running or done), timeouts, cancellations, adding callbacks, and access to results or exceptions.",
            "old": "The design for :mod:`concurrent.futures` was inspired by the *java.util.concurrent* package.  In that model, a running call and its result are represented by a :class:`~concurrent.futures.Future` object that abstracts features common to threads, processes, and remote procedure calls.  That object supports status checks (running or done), timeouts, cancellations, adding callbacks, and access to results or exceptions.",
            "details": {
                "state": 100,
                "source": "The design for :mod:`concurrent.futures` was inspired by the *java.util.concurrent* package.  In that model, a running call and its result are represented by a :class:`~concurrent.futures.Future` object that abstracts features common to threads, processes, and remote procedure calls.  That object supports status checks (running or done), timeouts, cancellations, adding callbacks, and access to results or exceptions.",
                "old_state": 100
            },
            "id": 71033116,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033116/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796311/?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.373355+01:00",
            "action": 13,
            "target": "Code for creating and managing concurrency is being collected in a new top-level namespace, *concurrent*.  Its first member is a *futures* package which provides a uniform high-level interface for managing threads and processes.",
            "old": "Code for creating and managing concurrency is being collected in a new top-level namespace, *concurrent*.  Its first member is a *futures* package which provides a uniform high-level interface for managing threads and processes.",
            "details": {
                "state": 100,
                "source": "Code for creating and managing concurrency is being collected in a new top-level namespace, *concurrent*.  Its first member is a *futures* package which provides a uniform high-level interface for managing threads and processes.",
                "old_state": 100
            },
            "id": 71033113,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033113/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796276/?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.361165+01:00",
            "action": 13,
            "target": "PEP 3148:  The ``concurrent.futures`` module",
            "old": "PEP 3148:  The ``concurrent.futures`` module",
            "details": {
                "state": 100,
                "source": "PEP 3148:  The ``concurrent.futures`` module",
                "old_state": 100
            },
            "id": 71033111,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033111/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796272/?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.173839+01:00",
            "action": 13,
            "target": "PEP written by Vinay Sajip.",
            "old": "PEP written by Vinay Sajip.",
            "details": {
                "state": 100,
                "source": "PEP written by Vinay Sajip.",
                "old_state": 100
            },
            "id": 71033094,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033094/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796268/?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.162987+01:00",
            "action": 13,
            "target": ":pep:`391` - Dictionary Based Configuration for Logging",
            "old": ":pep:`391` - Dictionary Based Configuration for Logging",
            "details": {
                "state": 100,
                "source": ":pep:`391` - Dictionary Based Configuration for Logging",
                "old_state": 100
            },
            "id": 71033092,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033092/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796264/?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.152396+01:00",
            "action": 13,
            "target": "If that dictionary is stored in a file called :file:`conf.json`, it can be loaded and called with code like this::",
            "old": "If that dictionary is stored in a file called :file:`conf.json`, it can be loaded and called with code like this::",
            "details": {
                "state": 100,
                "source": "If that dictionary is stored in a file called :file:`conf.json`, it can be loaded and called with code like this::",
                "old_state": 100
            },
            "id": 71033090,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033090/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796261/?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.139670+01:00",
            "action": 13,
            "target": "To support a more flexible style, the module now offers :func:`logging.config.dictConfig` for specifying logging configuration with plain Python dictionaries.  The configuration options include formatters, handlers, filters, and loggers.  Here's a working example of a configuration dictionary::",
            "old": "To support a more flexible style, the module now offers :func:`logging.config.dictConfig` for specifying logging configuration with plain Python dictionaries.  The configuration options include formatters, handlers, filters, and loggers.  Here's a working example of a configuration dictionary::",
            "details": {
                "state": 100,
                "source": "To support a more flexible style, the module now offers :func:`logging.config.dictConfig` for specifying logging configuration with plain Python dictionaries.  The configuration options include formatters, handlers, filters, and loggers.  Here's a working example of a configuration dictionary::",
                "old_state": 100
            },
            "id": 71033088,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033088/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796259/?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.126350+01:00",
            "action": 13,
            "target": "The :mod:`logging` module provided two kinds of configuration, one style with function calls for each option or another style driven by an external file saved in a :mod:`ConfigParser` format.  Those options did not provide the flexibility to create configurations from JSON or YAML files, nor did they support incremental configuration, which is needed for specifying logger options from a command line.",
            "old": "The :mod:`logging` module provided two kinds of configuration, one style with function calls for each option or another style driven by an external file saved in a :mod:`ConfigParser` format.  Those options did not provide the flexibility to create configurations from JSON or YAML files, nor did they support incremental configuration, which is needed for specifying logger options from a command line.",
            "details": {
                "state": 100,
                "source": "The :mod:`logging` module provided two kinds of configuration, one style with function calls for each option or another style driven by an external file saved in a :mod:`ConfigParser` format.  Those options did not provide the flexibility to create configurations from JSON or YAML files, nor did they support incremental configuration, which is needed for specifying logger options from a command line.",
                "old_state": 100
            },
            "id": 71033087,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033087/?format=api"
        }
    ]
}