-
-
Notifications
You must be signed in to change notification settings - Fork 43
Add asynchronous context manager support #556
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@adamchainz 👋 This repository doesn't have Copilot instructions. With Copilot instructions, I can understand the repository better, work faster and produce higher quality PRs. I can generate a .github/copilot-instructions.md file for you automatically. Click here to open a pre-filled issue and assign it to me. I'll write the instructions, and then tag you for review. |
@copilot remember to update |
Updated both documentation files:
Commit: 22e143e |
22e143e
to
fcf2b6b
Compare
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.18.0 to 2.19.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/adamchainz/time-machine/blob/main/docs/changelog.rst">time-machine's changelog</a>.</em></p> <blockquote> <h2>2.19.0 (2025-08-19)</h2> <ul> <li> <p>Add marker support to :doc:<code>the pytest plugin <pytest_plugin></code>. Decorate tests with <code>@pytest.mark.time_machine(<destination>)</code> to set time during a test, affecting function-level fixtures as well.</p> <p>Thanks to Javier Buzzi in <code>PR [#499](adamchainz/time-machine#499) <https://github.com/adamchainz/time-machine/pull/499></code>__.</p> </li> <li> <p>Add asynchronous context manager support to <code>time_machine.travel()</code>. You can now use <code>async with time_machine.travel(...):</code> in asynchronous code, per :ref:<code>the documentation <travel-context-manager></code>.</p> <p><code>PR [#556](adamchainz/time-machine#556) <https://github.com/adamchainz/time-machine/issues/556></code>__.</p> </li> <li> <p>Import date and time functions once in the C extension.</p> <p>This should improve speed a little bit, and avoid segmentation faults when the functions have been swapped out, such as when freezegun is in effect. (time-machine still won’t apply if freezegun is in effect.)</p> <p><code>PR [#555](adamchainz/time-machine#555) <https://github.com/adamchainz/time-machine/issues/555></code>__.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/adamchainz/time-machine/commit/c64e79f89bdb02ed01866eb9f74c86006606ecd6"><code>c64e79f</code></a> Version 2.19.0</li> <li><a href="https://github.com/adamchainz/time-machine/commit/aa78214ad6415c96d8e2f6e350457811927e9f3f"><code>aa78214</code></a> Edit changelog</li> <li><a href="https://github.com/adamchainz/time-machine/commit/d4c2e643b7870728ca0b09ea79053d8da5ae7289"><code>d4c2e64</code></a> Edit changelog</li> <li><a href="https://github.com/adamchainz/time-machine/commit/c271664fed8bdd4617f2cdea83e64aec621b449c"><code>c271664</code></a> Tweak title capitalization</li> <li><a href="https://github.com/adamchainz/time-machine/commit/c9775a3c2aed74619db909110152f28dc9cae4cf"><code>c9775a3</code></a> Add asynchronous context manager support (<a href="https://redirect.github.com/adamchainz/time-machine/issues/556">#556</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/130333ed769a2c9e2b87e30dd68414f00dfdde9b"><code>130333e</code></a> Add marker support to pytest plugin (<a href="https://redirect.github.com/adamchainz/time-machine/issues/499">#499</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/428491ed7abc2ce9bc440b2898adea73a676128a"><code>428491e</code></a> Import more once in C extension (<a href="https://redirect.github.com/adamchainz/time-machine/issues/555">#555</a>)</li> <li>See full diff in <a href="https://github.com/adamchainz/time-machine/compare/2.18.0...2.19.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.18.0 to 2.19.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/adamchainz/time-machine/blob/main/docs/changelog.rst">time-machine's changelog</a>.</em></p> <blockquote> <h2>2.19.0 (2025-08-19)</h2> <ul> <li> <p>Add marker support to :doc:<code>the pytest plugin <pytest_plugin></code>. Decorate tests with <code>@pytest.mark.time_machine(<destination>)</code> to set time during a test, affecting function-level fixtures as well.</p> <p>Thanks to Javier Buzzi in <code>PR [#499](adamchainz/time-machine#499) <https://github.com/adamchainz/time-machine/pull/499></code>__.</p> </li> <li> <p>Add asynchronous context manager support to <code>time_machine.travel()</code>. You can now use <code>async with time_machine.travel(...):</code> in asynchronous code, per :ref:<code>the documentation <travel-context-manager></code>.</p> <p><code>PR [#556](adamchainz/time-machine#556) <https://github.com/adamchainz/time-machine/issues/556></code>__.</p> </li> <li> <p>Import date and time functions once in the C extension.</p> <p>This should improve speed a little bit, and avoid segmentation faults when the functions have been swapped out, such as when freezegun is in effect. (time-machine still won’t apply if freezegun is in effect.)</p> <p><code>PR [#555](adamchainz/time-machine#555) <https://github.com/adamchainz/time-machine/issues/555></code>__.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/adamchainz/time-machine/commit/c64e79f89bdb02ed01866eb9f74c86006606ecd6"><code>c64e79f</code></a> Version 2.19.0</li> <li><a href="https://github.com/adamchainz/time-machine/commit/aa78214ad6415c96d8e2f6e350457811927e9f3f"><code>aa78214</code></a> Edit changelog</li> <li><a href="https://github.com/adamchainz/time-machine/commit/d4c2e643b7870728ca0b09ea79053d8da5ae7289"><code>d4c2e64</code></a> Edit changelog</li> <li><a href="https://github.com/adamchainz/time-machine/commit/c271664fed8bdd4617f2cdea83e64aec621b449c"><code>c271664</code></a> Tweak title capitalization</li> <li><a href="https://github.com/adamchainz/time-machine/commit/c9775a3c2aed74619db909110152f28dc9cae4cf"><code>c9775a3</code></a> Add asynchronous context manager support (<a href="https://redirect.github.com/adamchainz/time-machine/issues/556">#556</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/130333ed769a2c9e2b87e30dd68414f00dfdde9b"><code>130333e</code></a> Add marker support to pytest plugin (<a href="https://redirect.github.com/adamchainz/time-machine/issues/499">#499</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/428491ed7abc2ce9bc440b2898adea73a676128a"><code>428491e</code></a> Import more once in C extension (<a href="https://redirect.github.com/adamchainz/time-machine/issues/555">#555</a>)</li> <li>See full diff in <a href="https://github.com/adamchainz/time-machine/compare/2.18.0...2.19.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
…p across 1 directory (#34) Bumps the prod-dependencies group with 1 update in the / directory: [time-machine](https://github.com/adamchainz/time-machine). Updates `time-machine` from 2.17.0 to 2.19.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/adamchainz/time-machine/blob/main/docs/changelog.rst">time-machine's changelog</a>.</em></p> <blockquote> <h2>2.19.0 (2025-08-19)</h2> <ul> <li> <p>Add marker support to :doc:<code>the pytest plugin <pytest_plugin></code>. Decorate tests with <code>@pytest.mark.time_machine(<destination>)</code> to set time during a test, affecting function-level fixtures as well.</p> <p>Thanks to Javier Buzzi in <code>PR [#499](adamchainz/time-machine#499) <https://github.com/adamchainz/time-machine/pull/499></code>__.</p> </li> <li> <p>Add asynchronous context manager support to <code>time_machine.travel()</code>. You can now use <code>async with time_machine.travel(...):</code> in asynchronous code, per :ref:<code>the documentation <travel-context-manager></code>.</p> <p><code>PR [#556](adamchainz/time-machine#556) <https://github.com/adamchainz/time-machine/issues/556></code>__.</p> </li> <li> <p>Import date and time functions once in the C extension.</p> <p>This should improve speed a little bit, and avoid segmentation faults when the functions have been swapped out, such as when freezegun is in effect. (time-machine still won’t apply if freezegun is in effect.)</p> <p><code>PR [#555](adamchainz/time-machine#555) <https://github.com/adamchainz/time-machine/issues/555></code>__.</p> </li> </ul> <h2>2.18.0 (2025-08-18)</h2> <ul> <li> <p>Update the :ref:<code>migration CLI <migration-cli></code> to detect unittest classes based on whether they use <code>self.assert*</code> methods like <code>self.assertEqual()</code>.</p> </li> <li> <p>Fix free-threaded Python warning: <code>RuntimeWarning: The global interpreter lock (GIL) has been enabled...</code> as seen on Python 3.13+.</p> <p>Thanks to Javier Buzzi in <code>PR [#531](adamchainz/time-machine#531) <https://github.com/adamchainz/time-machine/pull/531></code>__.</p> </li> <li> <p>Add support to <code>travel()</code> for <code>datetime</code> destinations with <code>tzinfo</code> set to <code>datetime.UTC</code> (<code>datetime.timezone.utc</code>).</p> <p>Thanks to Lawrence Law in <code>PR [#502](adamchainz/time-machine#502) <https://github.com/adamchainz/time-machine/pull/502></code>__.</p> </li> <li> <p>Prevent segmentation faults in unlikely scenarios, such as if the <code>time_machine</code> module cannot be imported.</p> <p><code>PR [#543](adamchainz/time-machine#543) <https://github.com/adamchainz/time-machine/pull/543></code><strong>, <code>PR [#545](adamchainz/time-machine#545) <https://github.com/adamchainz/time-machine/pull/545></code></strong>.</p> </li> <li> <p>Make <code>travel()</code> fully unpatch date and time functions when travel ends. This may fix certain edge cases.</p> <p><code>Issue [#532](adamchainz/time-machine#532) <https://github.com/adamchainz/time-machine/issues/532></code>__.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/adamchainz/time-machine/commit/c64e79f89bdb02ed01866eb9f74c86006606ecd6"><code>c64e79f</code></a> Version 2.19.0</li> <li><a href="https://github.com/adamchainz/time-machine/commit/aa78214ad6415c96d8e2f6e350457811927e9f3f"><code>aa78214</code></a> Edit changelog</li> <li><a href="https://github.com/adamchainz/time-machine/commit/d4c2e643b7870728ca0b09ea79053d8da5ae7289"><code>d4c2e64</code></a> Edit changelog</li> <li><a href="https://github.com/adamchainz/time-machine/commit/c271664fed8bdd4617f2cdea83e64aec621b449c"><code>c271664</code></a> Tweak title capitalization</li> <li><a href="https://github.com/adamchainz/time-machine/commit/c9775a3c2aed74619db909110152f28dc9cae4cf"><code>c9775a3</code></a> Add asynchronous context manager support (<a href="https://redirect.github.com/adamchainz/time-machine/issues/556">#556</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/130333ed769a2c9e2b87e30dd68414f00dfdde9b"><code>130333e</code></a> Add marker support to pytest plugin (<a href="https://redirect.github.com/adamchainz/time-machine/issues/499">#499</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/428491ed7abc2ce9bc440b2898adea73a676128a"><code>428491e</code></a> Import more once in C extension (<a href="https://redirect.github.com/adamchainz/time-machine/issues/555">#555</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/728d0a6ec442d9b76ebc03f3ad7fcee94ffe6b24"><code>728d0a6</code></a> Version 2.18.0</li> <li><a href="https://github.com/adamchainz/time-machine/commit/65a214ca8bf85d3e865109ff692773ea7eb60b92"><code>65a214c</code></a> Import date/time modules once in C extension (<a href="https://redirect.github.com/adamchainz/time-machine/issues/553">#553</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/9ff207b86d7b9c6cff95fdceab4093a4ddef16e9"><code>9ff207b</code></a> Unpatch functions when travel ends (<a href="https://redirect.github.com/adamchainz/time-machine/issues/550">#550</a>)</li> <li>Additional commits viewable in <a href="https://github.com/adamchainz/time-machine/compare/2.17.0...2.19.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Bumps the minor group with 1 update: [time-machine](https://github.com/adamchainz/time-machine). Updates `time-machine` from 2.16.0 to 2.19.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/adamchainz/time-machine/blob/main/docs/changelog.rst">time-machine's changelog</a>.</em></p> <blockquote> <h2>2.19.0 (2025-08-19)</h2> <ul> <li> <p>Add marker support to :doc:<code>the pytest plugin <pytest_plugin></code>. Decorate tests with <code>@pytest.mark.time_machine(<destination>)</code> to set time during a test, affecting function-level fixtures as well.</p> <p>Thanks to Javier Buzzi in <code>PR [#499](adamchainz/time-machine#499) <https://github.com/adamchainz/time-machine/pull/499></code>__.</p> </li> <li> <p>Add asynchronous context manager support to <code>time_machine.travel()</code>. You can now use <code>async with time_machine.travel(...):</code> in asynchronous code, per :ref:<code>the documentation <travel-context-manager></code>.</p> <p><code>PR [#556](adamchainz/time-machine#556) <https://github.com/adamchainz/time-machine/issues/556></code>__.</p> </li> <li> <p>Import date and time functions once in the C extension.</p> <p>This should improve speed a little bit, and avoid segmentation faults when the functions have been swapped out, such as when freezegun is in effect. (time-machine still won’t apply if freezegun is in effect.)</p> <p><code>PR [#555](adamchainz/time-machine#555) <https://github.com/adamchainz/time-machine/issues/555></code>__.</p> </li> </ul> <h2>2.18.0 (2025-08-18)</h2> <ul> <li> <p>Update the :ref:<code>migration CLI <migration-cli></code> to detect unittest classes based on whether they use <code>self.assert*</code> methods like <code>self.assertEqual()</code>.</p> </li> <li> <p>Fix free-threaded Python warning: <code>RuntimeWarning: The global interpreter lock (GIL) has been enabled...</code> as seen on Python 3.13+.</p> <p>Thanks to Javier Buzzi in <code>PR [#531](adamchainz/time-machine#531) <https://github.com/adamchainz/time-machine/pull/531></code>__.</p> </li> <li> <p>Add support to <code>travel()</code> for <code>datetime</code> destinations with <code>tzinfo</code> set to <code>datetime.UTC</code> (<code>datetime.timezone.utc</code>).</p> <p>Thanks to Lawrence Law in <code>PR [#502](adamchainz/time-machine#502) <https://github.com/adamchainz/time-machine/pull/502></code>__.</p> </li> <li> <p>Prevent segmentation faults in unlikely scenarios, such as if the <code>time_machine</code> module cannot be imported.</p> <p><code>PR [#543](adamchainz/time-machine#543) <https://github.com/adamchainz/time-machine/pull/543></code><strong>, <code>PR [#545](adamchainz/time-machine#545) <https://github.com/adamchainz/time-machine/pull/545></code></strong>.</p> </li> <li> <p>Make <code>travel()</code> fully unpatch date and time functions when travel ends. This may fix certain edge cases.</p> <p><code>Issue [#532](adamchainz/time-machine#532) <https://github.com/adamchainz/time-machine/issues/532></code>__.</p> </li> </ul> <h2>2.17.0 (2025-08-05)</h2> <ul> <li> <p>Include wheels for Python 3.14.</p> <p>Thanks to Edgar Ramírez Mondragón in <code>PR [#521](adamchainz/time-machine#521) <https://github.com/adamchainz/time-machine/pull/521></code>__.</p> </li> <li> <p>Support free-threaded Python.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/adamchainz/time-machine/commit/c64e79f89bdb02ed01866eb9f74c86006606ecd6"><code>c64e79f</code></a> Version 2.19.0</li> <li><a href="https://github.com/adamchainz/time-machine/commit/aa78214ad6415c96d8e2f6e350457811927e9f3f"><code>aa78214</code></a> Edit changelog</li> <li><a href="https://github.com/adamchainz/time-machine/commit/d4c2e643b7870728ca0b09ea79053d8da5ae7289"><code>d4c2e64</code></a> Edit changelog</li> <li><a href="https://github.com/adamchainz/time-machine/commit/c271664fed8bdd4617f2cdea83e64aec621b449c"><code>c271664</code></a> Tweak title capitalization</li> <li><a href="https://github.com/adamchainz/time-machine/commit/c9775a3c2aed74619db909110152f28dc9cae4cf"><code>c9775a3</code></a> Add asynchronous context manager support (<a href="https://redirect.github.com/adamchainz/time-machine/issues/556">#556</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/130333ed769a2c9e2b87e30dd68414f00dfdde9b"><code>130333e</code></a> Add marker support to pytest plugin (<a href="https://redirect.github.com/adamchainz/time-machine/issues/499">#499</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/428491ed7abc2ce9bc440b2898adea73a676128a"><code>428491e</code></a> Import more once in C extension (<a href="https://redirect.github.com/adamchainz/time-machine/issues/555">#555</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/728d0a6ec442d9b76ebc03f3ad7fcee94ffe6b24"><code>728d0a6</code></a> Version 2.18.0</li> <li><a href="https://github.com/adamchainz/time-machine/commit/65a214ca8bf85d3e865109ff692773ea7eb60b92"><code>65a214c</code></a> Import date/time modules once in C extension (<a href="https://redirect.github.com/adamchainz/time-machine/issues/553">#553</a>)</li> <li><a href="https://github.com/adamchainz/time-machine/commit/9ff207b86d7b9c6cff95fdceab4093a4ddef16e9"><code>9ff207b</code></a> Unpatch functions when travel ends (<a href="https://redirect.github.com/adamchainz/time-machine/issues/550">#550</a>)</li> <li>Additional commits viewable in <a href="https://github.com/adamchainz/time-machine/compare/2.16.0...2.19.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details>
This PR adds support for using
time_machine.travel
as an async context manager, enabling the following usage pattern:Implementation
Added two async context manager methods to the
travel
class:async def __aenter__(self) -> Coordinates
: Returnsself.start()
async def __aexit__(...)
: Callsself.stop()
These methods mirror the existing sync context manager methods (
__enter__
and__exit__
) but are async-compatible. The implementation delegates to the same underlyingstart()
andstop()
methods, ensuring consistent behavior between sync and async usage.Features
Coordinates
object for time manipulation within the async contexttravel()
parameters (tick
, destination types, etc.)shift()
,move_to()
) within async contextsTests
Added comprehensive tests covering:
Documentation
Updated the usage documentation to include async context manager examples and mention async support in the main description.
All existing tests continue to pass, confirming no regressions were introduced.
Fixes #478.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.