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=28
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=29",
    "previous": "https://hosted.weblate.org/api/components/python-docs/latest%252Flatestwhatsnew32/changes/?format=api&page=27",
    "results": [
        {
            "unit": "https://hosted.weblate.org/api/units/108796795/?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:37.396629+01:00",
            "action": 13,
            "target": "Other file-like objects such as :class:`mmap.mmap` and :func:`fileinput.input` also grew auto-closing context managers::",
            "old": "Other file-like objects such as :class:`mmap.mmap` and :func:`fileinput.input` also grew auto-closing context managers::",
            "details": {
                "state": 100,
                "source": "Other file-like objects such as :class:`mmap.mmap` and :func:`fileinput.input` also grew auto-closing context managers::",
                "old_state": 100
            },
            "id": 71033427,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033427/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796793/?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:37.385446+01:00",
            "action": 13,
            "target": "The :class:`ftplib.FTP` class now supports the context management protocol to unconditionally consume :exc:`socket.error` exceptions and to close the FTP connection when done::",
            "old": "The :class:`ftplib.FTP` class now supports the context management protocol to unconditionally consume :exc:`socket.error` exceptions and to close the FTP connection when done::",
            "details": {
                "state": 100,
                "source": "The :class:`ftplib.FTP` class now supports the context management protocol to unconditionally consume :exc:`socket.error` exceptions and to close the FTP connection when done::",
                "old_state": 100
            },
            "id": 71033426,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033426/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796791/?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:37.373997+01:00",
            "action": 13,
            "target": "ftp",
            "old": "ftp",
            "details": {
                "state": 100,
                "source": "ftp",
                "old_state": 100
            },
            "id": 71033425,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033425/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796789/?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:37.364141+01:00",
            "action": 13,
            "target": "(Contributed by Mark Dickinson and Raymond Hettinger.)",
            "old": "(Contributed by Mark Dickinson and Raymond Hettinger.)",
            "details": {
                "state": 100,
                "source": "(Contributed by Mark Dickinson and Raymond Hettinger.)",
                "old_state": 100
            },
            "id": 71033424,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033424/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796787/?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:37.354049+01:00",
            "action": 13,
            "target": "Another useful change for the :mod:`decimal` module is that the :attr:`Context.clamp` attribute is now public.  This is useful in creating contexts that correspond to the decimal interchange formats specified in IEEE 754 (see :issue:`8540`).",
            "old": "Another useful change for the :mod:`decimal` module is that the :attr:`Context.clamp` attribute is now public.  This is useful in creating contexts that correspond to the decimal interchange formats specified in IEEE 754 (see :issue:`8540`).",
            "details": {
                "state": 100,
                "source": "Another useful change for the :mod:`decimal` module is that the :attr:`Context.clamp` attribute is now public.  This is useful in creating contexts that correspond to the decimal interchange formats specified in IEEE 754 (see :issue:`8540`).",
                "old_state": 100
            },
            "id": 71033423,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033423/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796785/?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:37.344616+01:00",
            "action": 13,
            "target": "Similar changes were made to :class:`fractions.Fraction` so that the :meth:`~fractions.Fraction.from_float()` and :meth:`~fractions.Fraction.from_decimal` methods are no longer needed (:issue:`8294`):",
            "old": "Similar changes were made to :class:`fractions.Fraction` so that the :meth:`~fractions.Fraction.from_float()` and :meth:`~fractions.Fraction.from_decimal` methods are no longer needed (:issue:`8294`):",
            "details": {
                "state": 100,
                "source": "Similar changes were made to :class:`fractions.Fraction` so that the :meth:`~fractions.Fraction.from_float()` and :meth:`~fractions.Fraction.from_decimal` methods are no longer needed (:issue:`8294`):",
                "old_state": 100
            },
            "id": 71033422,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033422/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796783/?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:37.335244+01:00",
            "action": 13,
            "target": "Mixed type comparisons are now fully supported so that :class:`~decimal.Decimal` objects can be directly compared with :class:`float` and :class:`fractions.Fraction` (:issue:`2531` and :issue:`8188`).",
            "old": "Mixed type comparisons are now fully supported so that :class:`~decimal.Decimal` objects can be directly compared with :class:`float` and :class:`fractions.Fraction` (:issue:`2531` and :issue:`8188`).",
            "details": {
                "state": 100,
                "source": "Mixed type comparisons are now fully supported so that :class:`~decimal.Decimal` objects can be directly compared with :class:`float` and :class:`fractions.Fraction` (:issue:`2531` and :issue:`8188`).",
                "old_state": 100
            },
            "id": 71033421,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033421/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796781/?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:37.324970+01:00",
            "action": 13,
            "target": "The :class:`decimal.Decimal` constructor now accepts :class:`float` objects directly so there in no longer a need to use the :meth:`~decimal.Decimal.from_float` method (:issue:`8257`).",
            "old": "The :class:`decimal.Decimal` constructor now accepts :class:`float` objects directly so there in no longer a need to use the :meth:`~decimal.Decimal.from_float` method (:issue:`8257`).",
            "details": {
                "state": 100,
                "source": "The :class:`decimal.Decimal` constructor now accepts :class:`float` objects directly so there in no longer a need to use the :meth:`~decimal.Decimal.from_float` method (:issue:`8257`).",
                "old_state": 100
            },
            "id": 71033420,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033420/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796779/?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:37.315265+01:00",
            "action": 13,
            "target": "An early decision to limit the inter-operability of various numeric types has been relaxed.  It is still unsupported (and ill-advised) to have implicit mixing in arithmetic expressions such as ``Decimal('1.1') + float('1.1')`` because the latter loses information in the process of constructing the binary float.  However, since existing floating point value can be converted losslessly to either a decimal or rational representation, it makes sense to add them to the constructor and to support mixed-type comparisons.",
            "old": "An early decision to limit the inter-operability of various numeric types has been relaxed.  It is still unsupported (and ill-advised) to have implicit mixing in arithmetic expressions such as ``Decimal('1.1') + float('1.1')`` because the latter loses information in the process of constructing the binary float.  However, since existing floating point value can be converted losslessly to either a decimal or rational representation, it makes sense to add them to the constructor and to support mixed-type comparisons.",
            "details": {
                "state": 100,
                "source": "An early decision to limit the inter-operability of various numeric types has been relaxed.  It is still unsupported (and ill-advised) to have implicit mixing in arithmetic expressions such as ``Decimal('1.1') + float('1.1')`` because the latter loses information in the process of constructing the binary float.  However, since existing floating point value can be converted losslessly to either a decimal or rational representation, it makes sense to add them to the constructor and to support mixed-type comparisons.",
                "old_state": 100
            },
            "id": 71033419,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033419/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796777/?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:37.305467+01:00",
            "action": 13,
            "target": "Some of the hashing details are exposed through a new attribute, :attr:`sys.hash_info`, which describes the bit width of the hash value, the prime modulus, the hash values for *infinity* and *nan*, and the multiplier used for the imaginary part of a number:",
            "old": "Some of the hashing details are exposed through a new attribute, :attr:`sys.hash_info`, which describes the bit width of the hash value, the prime modulus, the hash values for *infinity* and *nan*, and the multiplier used for the imaginary part of a number:",
            "details": {
                "state": 100,
                "source": "Some of the hashing details are exposed through a new attribute, :attr:`sys.hash_info`, which describes the bit width of the hash value, the prime modulus, the hash values for *infinity* and *nan*, and the multiplier used for the imaginary part of a number:",
                "old_state": 100
            },
            "id": 71033418,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033418/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796775/?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:37.294633+01:00",
            "action": 13,
            "target": "Mark Dickinson crafted an elegant and efficient scheme for assuring that different numeric datatypes will have the same hash value whenever their actual values are equal (:issue:`8188`)::",
            "old": "Mark Dickinson crafted an elegant and efficient scheme for assuring that different numeric datatypes will have the same hash value whenever their actual values are equal (:issue:`8188`)::",
            "details": {
                "state": 100,
                "source": "Mark Dickinson crafted an elegant and efficient scheme for assuring that different numeric datatypes will have the same hash value whenever their actual values are equal (:issue:`8188`)::",
                "old_state": 100
            },
            "id": 71033417,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033417/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796773/?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:37.283471+01:00",
            "action": 13,
            "target": "decimal and fractions",
            "old": "decimal and fractions",
            "details": {
                "state": 100,
                "source": "decimal and fractions",
                "old_state": 100
            },
            "id": 71033416,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033416/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796771/?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:37.274014+01:00",
            "action": 13,
            "target": "(Contributed by Michael Foord in :issue:`9110`.)",
            "old": "(Contributed by Michael Foord in :issue:`9110`.)",
            "details": {
                "state": 100,
                "source": "(Contributed by Michael Foord in :issue:`9110`.)",
                "old_state": 100
            },
            "id": 71033415,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033415/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796769/?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:37.266115+01:00",
            "action": 13,
            "target": "In the above example, there is not a clean way for the *track_entry_and_exit* context manager to return a logging instance for use in the body of enclosed statements.",
            "old": "In the above example, there is not a clean way for the *track_entry_and_exit* context manager to return a logging instance for use in the body of enclosed statements.",
            "details": {
                "state": 100,
                "source": "In the above example, there is not a clean way for the *track_entry_and_exit* context manager to return a logging instance for use in the body of enclosed statements.",
                "old_state": 100
            },
            "id": 71033414,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033414/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796767/?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:37.254576+01:00",
            "action": 13,
            "target": "Trying to fulfill two roles at once places some limitations on the technique. Context managers normally have the flexibility to return an argument usable by a :keyword:`with` statement, but there is no parallel for function decorators.",
            "old": "Trying to fulfill two roles at once places some limitations on the technique. Context managers normally have the flexibility to return an argument usable by a :keyword:`with` statement, but there is no parallel for function decorators.",
            "details": {
                "state": 100,
                "source": "Trying to fulfill two roles at once places some limitations on the technique. Context managers normally have the flexibility to return an argument usable by a :keyword:`with` statement, but there is no parallel for function decorators.",
                "old_state": 100
            },
            "id": 71033413,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033413/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796765/?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:37.243506+01:00",
            "action": 13,
            "target": "Now, it can be used as a decorator as well::",
            "old": "Now, it can be used as a decorator as well::",
            "details": {
                "state": 100,
                "source": "Now, it can be used as a decorator as well::",
                "old_state": 100
            },
            "id": 71033412,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033412/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796763/?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:37.233661+01:00",
            "action": 13,
            "target": "Formerly, this would have only been usable as a context manager::",
            "old": "Formerly, this would have only been usable as a context manager::",
            "details": {
                "state": 100,
                "source": "Formerly, this would have only been usable as a context manager::",
                "old_state": 100
            },
            "id": 71033411,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033411/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796761/?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:37.223619+01:00",
            "action": 13,
            "target": "For example, it is sometimes useful to wrap functions or groups of statements with a logger that can track the time of entry and time of exit.  Rather than writing both a function decorator and a context manager for the task, the :func:`~contextlib.contextmanager` provides both capabilities in a single definition::",
            "old": "For example, it is sometimes useful to wrap functions or groups of statements with a logger that can track the time of entry and time of exit.  Rather than writing both a function decorator and a context manager for the task, the :func:`~contextlib.contextmanager` provides both capabilities in a single definition::",
            "details": {
                "state": 100,
                "source": "For example, it is sometimes useful to wrap functions or groups of statements with a logger that can track the time of entry and time of exit.  Rather than writing both a function decorator and a context manager for the task, the :func:`~contextlib.contextmanager` provides both capabilities in a single definition::",
                "old_state": 100
            },
            "id": 71033410,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033410/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796759/?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:37.213962+01:00",
            "action": 13,
            "target": "The basic idea is that both context managers and function decorators can be used for pre-action and post-action wrappers.  Context managers wrap a group of statements using a :keyword:`with` statement, and function decorators wrap a group of statements enclosed in a function.  So, occasionally there is a need to write a pre-action or post-action wrapper that can be used in either role.",
            "old": "The basic idea is that both context managers and function decorators can be used for pre-action and post-action wrappers.  Context managers wrap a group of statements using a :keyword:`with` statement, and function decorators wrap a group of statements enclosed in a function.  So, occasionally there is a need to write a pre-action or post-action wrapper that can be used in either role.",
            "details": {
                "state": 100,
                "source": "The basic idea is that both context managers and function decorators can be used for pre-action and post-action wrappers.  Context managers wrap a group of statements using a :keyword:`with` statement, and function decorators wrap a group of statements enclosed in a function.  So, occasionally there is a need to write a pre-action or post-action wrapper that can be used in either role.",
                "old_state": 100
            },
            "id": 71033409,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033409/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796757/?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:37.204291+01:00",
            "action": 13,
            "target": "As a convenience, this new functionality is used by :func:`~contextlib.contextmanager` so that no extra effort is needed to support both roles.",
            "old": "As a convenience, this new functionality is used by :func:`~contextlib.contextmanager` so that no extra effort is needed to support both roles.",
            "details": {
                "state": 100,
                "source": "As a convenience, this new functionality is used by :func:`~contextlib.contextmanager` so that no extra effort is needed to support both roles.",
                "old_state": 100
            },
            "id": 71033408,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033408/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796755/?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:37.193655+01:00",
            "action": 13,
            "target": "There is a new and slightly mind-blowing tool :class:`~contextlib.ContextDecorator` that is helpful for creating a :term:`context manager` that does double duty as a function decorator.",
            "old": "There is a new and slightly mind-blowing tool :class:`~contextlib.ContextDecorator` that is helpful for creating a :term:`context manager` that does double duty as a function decorator.",
            "details": {
                "state": 100,
                "source": "There is a new and slightly mind-blowing tool :class:`~contextlib.ContextDecorator` that is helpful for creating a :term:`context manager` that does double duty as a function decorator.",
                "old_state": 100
            },
            "id": 71033407,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033407/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796753/?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:37.183492+01:00",
            "action": 13,
            "target": "contextlib",
            "old": "contextlib",
            "details": {
                "state": 100,
                "source": "contextlib",
                "old_state": 100
            },
            "id": 71033406,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033406/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796751/?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:37.175769+01:00",
            "action": 13,
            "target": "(New dialect suggested by Jay Talbot in :issue:`5975`, and the new method suggested by Ed Abraham in :issue:`1537721`.)",
            "old": "(New dialect suggested by Jay Talbot in :issue:`5975`, and the new method suggested by Ed Abraham in :issue:`1537721`.)",
            "details": {
                "state": 100,
                "source": "(New dialect suggested by Jay Talbot in :issue:`5975`, and the new method suggested by Ed Abraham in :issue:`1537721`.)",
                "old_state": 100
            },
            "id": 71033405,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033405/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796749/?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:37.166414+01:00",
            "action": 13,
            "target": "The :class:`csv.DictWriter` has a new method, :meth:`~csv.DictWriter.writeheader` for writing-out an initial row to document the field names::",
            "old": "The :class:`csv.DictWriter` has a new method, :meth:`~csv.DictWriter.writeheader` for writing-out an initial row to document the field names::",
            "details": {
                "state": 100,
                "source": "The :class:`csv.DictWriter` has a new method, :meth:`~csv.DictWriter.writeheader` for writing-out an initial row to document the field names::",
                "old_state": 100
            },
            "id": 71033404,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033404/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796747/?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:37.155987+01:00",
            "action": 13,
            "target": "The :mod:`csv` module now supports a new dialect, :class:`~csv.unix_dialect`, which applies quoting for all fields and a traditional Unix style with ``'\\n'`` as the line terminator.  The registered dialect name is ``unix``.",
            "old": "The :mod:`csv` module now supports a new dialect, :class:`~csv.unix_dialect`, which applies quoting for all fields and a traditional Unix style with ``'\\n'`` as the line terminator.  The registered dialect name is ``unix``.",
            "details": {
                "state": 100,
                "source": "The :mod:`csv` module now supports a new dialect, :class:`~csv.unix_dialect`, which applies quoting for all fields and a traditional Unix style with ``'\\n'`` as the line terminator.  The registered dialect name is ``unix``.",
                "old_state": 100
            },
            "id": 71033403,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033403/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796745/?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:37.146552+01:00",
            "action": 13,
            "target": "csv",
            "old": "csv",
            "details": {
                "state": 100,
                "source": "csv",
                "old_state": 100
            },
            "id": 71033402,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033402/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796743/?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:37.138553+01:00",
            "action": 13,
            "target": "There were a number of other improvements that add flexibility and simplify configuration.  See the module documentation for a full listing of changes in Python 3.2.",
            "old": "There were a number of other improvements that add flexibility and simplify configuration.  See the module documentation for a full listing of changes in Python 3.2.",
            "details": {
                "state": 100,
                "source": "There were a number of other improvements that add flexibility and simplify configuration.  See the module documentation for a full listing of changes in Python 3.2.",
                "old_state": 100
            },
            "id": 71033401,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033401/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796741/?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:37.128654+01:00",
            "action": 13,
            "target": "The use of filters has been simplified.  Instead of creating a :class:`~logging.Filter` object, the predicate can be any Python callable that returns ``True`` or ``False``.",
            "old": "The use of filters has been simplified.  Instead of creating a :class:`~logging.Filter` object, the predicate can be any Python callable that returns ``True`` or ``False``.",
            "details": {
                "state": 100,
                "source": "The use of filters has been simplified.  Instead of creating a :class:`~logging.Filter` object, the predicate can be any Python callable that returns ``True`` or ``False``.",
                "old_state": 100
            },
            "id": 71033400,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033400/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796739/?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:37.118575+01:00",
            "action": 13,
            "target": "If no configuration is set-up before a logging event occurs, there is now a default configuration using a :class:`~logging.StreamHandler` directed to :attr:`sys.stderr` for events of ``WARNING`` level or higher.  Formerly, an event occurring before a configuration was set-up would either raise an exception or silently drop the event depending on the value of :attr:`logging.raiseExceptions`.  The new default handler is stored in :attr:`logging.lastResort`.",
            "old": "If no configuration is set-up before a logging event occurs, there is now a default configuration using a :class:`~logging.StreamHandler` directed to :attr:`sys.stderr` for events of ``WARNING`` level or higher.  Formerly, an event occurring before a configuration was set-up would either raise an exception or silently drop the event depending on the value of :attr:`logging.raiseExceptions`.  The new default handler is stored in :attr:`logging.lastResort`.",
            "details": {
                "state": 100,
                "source": "If no configuration is set-up before a logging event occurs, there is now a default configuration using a :class:`~logging.StreamHandler` directed to :attr:`sys.stderr` for events of ``WARNING`` level or higher.  Formerly, an event occurring before a configuration was set-up would either raise an exception or silently drop the event depending on the value of :attr:`logging.raiseExceptions`.  The new default handler is stored in :attr:`logging.lastResort`.",
                "old_state": 100
            },
            "id": 71033399,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033399/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796737/?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:37.107719+01:00",
            "action": 13,
            "target": "The :func:`logging.basicConfig` set-up function gained a *style* argument to support three different types of string formatting.  It defaults to \"%\" for traditional %-formatting, can be set to \"{\" for the new :meth:`str.format` style, or can be set to \"$\" for the shell-style formatting provided by :class:`string.Template`.  The following three configurations are equivalent::",
            "old": "The :func:`logging.basicConfig` set-up function gained a *style* argument to support three different types of string formatting.  It defaults to \"%\" for traditional %-formatting, can be set to \"{\" for the new :meth:`str.format` style, or can be set to \"$\" for the shell-style formatting provided by :class:`string.Template`.  The following three configurations are equivalent::",
            "details": {
                "state": 100,
                "source": "The :func:`logging.basicConfig` set-up function gained a *style* argument to support three different types of string formatting.  It defaults to \"%\" for traditional %-formatting, can be set to \"{\" for the new :meth:`str.format` style, or can be set to \"$\" for the shell-style formatting provided by :class:`string.Template`.  The following three configurations are equivalent::",
                "old_state": 100
            },
            "id": 71033398,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033398/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796735/?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:37.097103+01:00",
            "action": 13,
            "target": "The logging documentation has been augmented by a :ref:`basic tutorial <logging-basic-tutorial>`\\, an :ref:`advanced tutorial <logging-advanced-tutorial>`\\, and a :ref:`cookbook <logging-cookbook>` of logging recipes.  These documents are the fastest way to learn about logging.",
            "old": "The logging documentation has been augmented by a :ref:`basic tutorial <logging-basic-tutorial>`\\, an :ref:`advanced tutorial <logging-advanced-tutorial>`\\, and a :ref:`cookbook <logging-cookbook>` of logging recipes.  These documents are the fastest way to learn about logging.",
            "details": {
                "state": 100,
                "source": "The logging documentation has been augmented by a :ref:`basic tutorial <logging-basic-tutorial>`\\, an :ref:`advanced tutorial <logging-advanced-tutorial>`\\, and a :ref:`cookbook <logging-cookbook>` of logging recipes.  These documents are the fastest way to learn about logging.",
                "old_state": 100
            },
            "id": 71033397,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033397/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796733/?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:37.087078+01:00",
            "action": 13,
            "target": "In addition to dictionary-based configuration described above, the :mod:`logging` package has many other improvements.",
            "old": "In addition to dictionary-based configuration described above, the :mod:`logging` package has many other improvements.",
            "details": {
                "state": 100,
                "source": "In addition to dictionary-based configuration described above, the :mod:`logging` package has many other improvements.",
                "old_state": 100
            },
            "id": 71033396,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033396/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796731/?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:37.076837+01:00",
            "action": 13,
            "target": "logging",
            "old": "logging",
            "details": {
                "state": 100,
                "source": "logging",
                "old_state": 100
            },
            "id": 71033395,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033395/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796729/?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:37.069082+01:00",
            "action": 13,
            "target": "(Contributed by Raymond Hettinger in :issue:`9826` and :issue:`9840`.)",
            "old": "(Contributed by Raymond Hettinger in :issue:`9826` and :issue:`9840`.)",
            "details": {
                "state": 100,
                "source": "(Contributed by Raymond Hettinger in :issue:`9826` and :issue:`9840`.)",
                "old_state": 100
            },
            "id": 71033394,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033394/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796727/?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:37.058457+01:00",
            "action": 13,
            "target": "To help write such :meth:`__repr__` methods, the :mod:`reprlib` module has a new decorator, :func:`~reprlib.recursive_repr`, for detecting recursive calls to :meth:`__repr__` and substituting a placeholder string instead::",
            "old": "To help write such :meth:`__repr__` methods, the :mod:`reprlib` module has a new decorator, :func:`~reprlib.recursive_repr`, for detecting recursive calls to :meth:`__repr__` and substituting a placeholder string instead::",
            "details": {
                "state": 100,
                "source": "To help write such :meth:`__repr__` methods, the :mod:`reprlib` module has a new decorator, :func:`~reprlib.recursive_repr`, for detecting recursive calls to :meth:`__repr__` and substituting a placeholder string instead::",
                "old_state": 100
            },
            "id": 71033393,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033393/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796725/?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:37.048011+01:00",
            "action": 13,
            "target": "When writing a :meth:`__repr__` method for a custom container, it is easy to forget to handle the case where a member refers back to the container itself. Python's builtin objects such as :class:`list` and :class:`set` handle self-reference by displaying \"...\" in the recursive part of the representation string.",
            "old": "When writing a :meth:`__repr__` method for a custom container, it is easy to forget to handle the case where a member refers back to the container itself. Python's builtin objects such as :class:`list` and :class:`set` handle self-reference by displaying \"...\" in the recursive part of the representation string.",
            "details": {
                "state": 100,
                "source": "When writing a :meth:`__repr__` method for a custom container, it is easy to forget to handle the case where a member refers back to the container itself. Python's builtin objects such as :class:`list` and :class:`set` handle self-reference by displaying \"...\" in the recursive part of the representation string.",
                "old_state": 100
            },
            "id": 71033392,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033392/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796723/?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:37.037240+01:00",
            "action": 13,
            "target": "reprlib",
            "old": "reprlib",
            "details": {
                "state": 100,
                "source": "reprlib",
                "old_state": 100
            },
            "id": 71033391,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033391/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796721/?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:37.026802+01:00",
            "action": 13,
            "target": "(Contributed by Antoine Pitrou in :issue:`5506`.)",
            "old": "(Contributed by Antoine Pitrou in :issue:`5506`.)",
            "details": {
                "state": 100,
                "source": "(Contributed by Antoine Pitrou in :issue:`5506`.)",
                "old_state": 100
            },
            "id": 71033390,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033390/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796719/?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:37.015253+01:00",
            "action": 13,
            "target": "The :class:`io.BytesIO` has a new method, :meth:`~io.BytesIO.getbuffer`, which provides functionality similar to :func:`memoryview`.  It creates an editable view of the data without making a copy.  The buffer's random access and support for slice notation are well-suited to in-place editing::",
            "old": "The :class:`io.BytesIO` has a new method, :meth:`~io.BytesIO.getbuffer`, which provides functionality similar to :func:`memoryview`.  It creates an editable view of the data without making a copy.  The buffer's random access and support for slice notation are well-suited to in-place editing::",
            "details": {
                "state": 100,
                "source": "The :class:`io.BytesIO` has a new method, :meth:`~io.BytesIO.getbuffer`, which provides functionality similar to :func:`memoryview`.  It creates an editable view of the data without making a copy.  The buffer's random access and support for slice notation are well-suited to in-place editing::",
                "old_state": 100
            },
            "id": 71033389,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033389/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796717/?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.993673+01:00",
            "action": 13,
            "target": "io",
            "old": "io",
            "details": {
                "state": 100,
                "source": "io",
                "old_state": 100
            },
            "id": 71033388,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033388/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796715/?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.982622+01:00",
            "action": 13,
            "target": "(Patch submitted by Daniel Urban; :issue:`5867`.)",
            "old": "(Patch submitted by Daniel Urban; :issue:`5867`.)",
            "details": {
                "state": 100,
                "source": "(Patch submitted by Daniel Urban; :issue:`5867`.)",
                "old_state": 100
            },
            "id": 71033387,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033387/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796713/?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.971024+01:00",
            "action": 13,
            "target": "These tools make it possible to define an :term:`abstract base class` that requires a particular :func:`classmethod` or :func:`staticmethod` to be implemented::",
            "old": "These tools make it possible to define an :term:`abstract base class` that requires a particular :func:`classmethod` or :func:`staticmethod` to be implemented::",
            "details": {
                "state": 100,
                "source": "These tools make it possible to define an :term:`abstract base class` that requires a particular :func:`classmethod` or :func:`staticmethod` to be implemented::",
                "old_state": 100
            },
            "id": 71033386,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033386/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796711/?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.959459+01:00",
            "action": 13,
            "target": "The :mod:`abc` module now supports :func:`~abc.abstractclassmethod` and :func:`~abc.abstractstaticmethod`.",
            "old": "The :mod:`abc` module now supports :func:`~abc.abstractclassmethod` and :func:`~abc.abstractstaticmethod`.",
            "details": {
                "state": 100,
                "source": "The :mod:`abc` module now supports :func:`~abc.abstractclassmethod` and :func:`~abc.abstractstaticmethod`.",
                "old_state": 100
            },
            "id": 71033385,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033385/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796709/?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.947751+01:00",
            "action": 13,
            "target": "abc",
            "old": "abc",
            "details": {
                "state": 100,
                "source": "abc",
                "old_state": 100
            },
            "id": 71033384,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033384/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796707/?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.931691+01:00",
            "action": 13,
            "target": "(Contributed by Mark Dickinson.)",
            "old": "(Contributed by Mark Dickinson.)",
            "details": {
                "state": 100,
                "source": "(Contributed by Mark Dickinson.)",
                "old_state": 100
            },
            "id": 71033383,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033383/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796705/?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.918607+01:00",
            "action": 13,
            "target": "The :func:`~math.gamma` function is a continuous extension of the factorial function.  See https://en.wikipedia.org/wiki/Gamma_function for details.  Because the function is related to factorials, it grows large even for small values of *x*, so there is also a :func:`~math.lgamma` function for computing the natural logarithm of the gamma function:",
            "old": "The :func:`~math.gamma` function is a continuous extension of the factorial function.  See https://en.wikipedia.org/wiki/Gamma_function for details.  Because the function is related to factorials, it grows large even for small values of *x*, so there is also a :func:`~math.lgamma` function for computing the natural logarithm of the gamma function:",
            "details": {
                "state": 100,
                "source": "The :func:`~math.gamma` function is a continuous extension of the factorial function.  See https://en.wikipedia.org/wiki/Gamma_function for details.  Because the function is related to factorials, it grows large even for small values of *x*, so there is also a :func:`~math.lgamma` function for computing the natural logarithm of the gamma function:",
                "old_state": 100
            },
            "id": 71033382,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033382/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796703/?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.905051+01:00",
            "action": 13,
            "target": "The :func:`~math.erf` function computes a probability integral or `Gaussian error function <https://en.wikipedia.org/wiki/Error_function>`_.  The complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:",
            "old": "The :func:`~math.erf` function computes a probability integral or `Gaussian error function <https://en.wikipedia.org/wiki/Error_function>`_.  The complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:",
            "details": {
                "state": 100,
                "source": "The :func:`~math.erf` function computes a probability integral or `Gaussian error function <https://en.wikipedia.org/wiki/Error_function>`_.  The complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:",
                "old_state": 100
            },
            "id": 71033381,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033381/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796701/?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.893489+01:00",
            "action": 13,
            "target": "The :func:`~math.expm1` function computes ``e**x-1`` for small values of *x* without incurring the loss of precision that usually accompanies the subtraction of nearly equal quantities:",
            "old": "The :func:`~math.expm1` function computes ``e**x-1`` for small values of *x* without incurring the loss of precision that usually accompanies the subtraction of nearly equal quantities:",
            "details": {
                "state": 100,
                "source": "The :func:`~math.expm1` function computes ``e**x-1`` for small values of *x* without incurring the loss of precision that usually accompanies the subtraction of nearly equal quantities:",
                "old_state": 100
            },
            "id": 71033380,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033380/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796699/?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.882046+01:00",
            "action": 13,
            "target": "The :func:`~math.isfinite` function provides a reliable and fast way to detect special values.  It returns ``True`` for regular numbers and ``False`` for *Nan* or *Infinity*:",
            "old": "The :func:`~math.isfinite` function provides a reliable and fast way to detect special values.  It returns ``True`` for regular numbers and ``False`` for *Nan* or *Infinity*:",
            "details": {
                "state": 100,
                "source": "The :func:`~math.isfinite` function provides a reliable and fast way to detect special values.  It returns ``True`` for regular numbers and ``False`` for *Nan* or *Infinity*:",
                "old_state": 100
            },
            "id": 71033379,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033379/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/108796697/?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.871349+01:00",
            "action": 13,
            "target": "The :mod:`math` module has been updated with six new functions inspired by the C99 standard.",
            "old": "The :mod:`math` module has been updated with six new functions inspired by the C99 standard.",
            "details": {
                "state": 100,
                "source": "The :mod:`math` module has been updated with six new functions inspired by the C99 standard.",
                "old_state": 100
            },
            "id": 71033378,
            "action_name": "Source string added",
            "url": "https://hosted.weblate.org/api/changes/71033378/?format=api"
        }
    ]
}