Skip to main content

No project description provided

Project description

timeless_loop

timeless_loop is a Python library that provides a custom asyncio event loop, allowing you to freeze time and avoid pesky delays while writing or testing async code. It does so by defining a subclass of the standard library SelectorEventLoop, which behaves nearly identically to the real one. It differs in that it does not actually wait for any time to pass; instead, it simply advances the loop's internal clock to the exact time of execution of the next scheduled callback when there are no immediately ready loop callbacks available. This allows you to run code that uses asyncio's sleep and wait functions without having to wait for the actual time to pass, without having to change any lines of code between the real and the fake time event loop.

Installation

timeless_loop is available on PyPI and can be installed with poetry, pip, or your favorite package manager.

pip install timeless_loop

Usage

The recommended way of setting the TimelessEventLoop is through setring the loop policy with asyncio.set_event_loop_policy. It can be used as follows:

import asyncio

async def main():
    # code here will run on the TimelessEventLoop
    pass

if __name__ == "__main__":
    
    
    # Set the event loop policy to use the TimelessEventLoop
    from timeless_loop import TimelessEventLoopPolicy
    
    asyncio.set_event_loop_policy(TimelessEventLoopPolicy())
    asyncio.run(main())
    
    # OR:
    # Use the context manager:
    import timeless_loop
    
    with timeless_loop:
        asyncio.run(main())

License

timeless_loop is licensed under the MIT License. See the LICENSE file for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

timeless_loop-0.2.0.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

timeless_loop-0.2.0-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file timeless_loop-0.2.0.tar.gz.

File metadata

  • Download URL: timeless_loop-0.2.0.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.0 CPython/3.10.11 Linux/6.1.36

File hashes

Hashes for timeless_loop-0.2.0.tar.gz
Algorithm Hash digest
SHA256 35570ef6e97ede236d440ead0705c9f38514d4a69eb8350794c128b37365dac2
MD5 32844591bd6bb53ab7b751891e0b5bce
BLAKE2b-256 b73e754ebfcf469c66887e944cf04e3b6c9a346388aca3aa2bfe746a600add32

See more details on using hashes here.

File details

Details for the file timeless_loop-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: timeless_loop-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 3.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.0 CPython/3.10.11 Linux/6.1.36

File hashes

Hashes for timeless_loop-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 830e0219d3e20c28bb578a5ba56ed49ed8fa4424644b728d1315839c67f1e51e
MD5 a6f2bfef9bd8190f146b62ada68ea5da
BLAKE2b-256 17b8216bed850d4d700f22daa1532b46511a15d64e13da90cec95b71de4a0265

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page