Skip to main content

A timestamp-based sleep function for Python using asyncio.

Project description

Based on https://github.com/jgillick/python-pause

Suspend the execution of your program for a given amount of time using asyncio. This works similarly to time.sleep, but uses your computers timestamp to track time, versus a counter.

For example, traditionally using time.sleep(3600), will pause the program for 60 minutes. If your computer goes into standby mode during minute one, and wakes up several hours later, your program will continue to be paused for 59 minutes.

On the other hand, with pause.seconds(3600), if your computer goes into standby mode for several hours, the program will continue immediately after the machine wakes back up since the minimum amount of time has passed since the pause was started.

How it works

When you create a pause, it will determine what the end time of that pause should be. Then a loop will be started that will continually check the current time against the end time. When the current time is equal or greater than the end time, the method will allow your program can resume.

Precision

The precision should be within 0.001 of a second, however, this will depend on how precise your system sleep is and other performance factors.

This module computes the pause duration between now and the future date, and then sleeps for half of this duration. After this time, it recomputes the new pause duration, repeating this process until the desired time is reached.

Install

Download the source code and run the following command:

sudo python ./setup.py install

Or, without downloading, install with pip:

sudo pip install asyncio-pause

Examples:

Pause for half a second:

import asyncio-pause
await pause.milliseconds(500)

Or:

import asyncio-pause
await pause.seconds(0.5)

Pause for 1 minute:

import asyncio-pause
await pause.minutes(1)

Pause for 2 days:

import asyncio-pause
await pause.days(2)

Pause until a unix time, with millisecond precision:

import asyncio-pause
await pause.until(1370640569.7747359)

Pause using datetime:

import asyncio-pause, datetime
dt = datetime.datetime(2013, 6, 2, 14, 36, 34, 383752)
await pause.until(dt)

Functions

  • days(num)

    Pause for this many days

  • hours(num)

    Pause for this many hours

  • milliseconds(num)

    Pause for this many milliseconds

  • minutes(num)

    Pause for this many minutes

  • seconds(num)

    Pause for this many seconds

  • time(num)

    Same as PauseFor.seconds()

  • until(time)

    Pause your program until a specific end time. ‘time’ is either a unix timestamp in seconds (i.e. seconds since Unix epoch) or datetime object

  • weeks(num)

    Pause for this many weeks

Project details


Release history Release notifications | RSS feed

This version

0.5

Download files

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

Source Distribution

asyncio-pause-0.5.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

asyncio_pause-0.5-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file asyncio-pause-0.5.tar.gz.

File metadata

  • Download URL: asyncio-pause-0.5.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.5

File hashes

Hashes for asyncio-pause-0.5.tar.gz
Algorithm Hash digest
SHA256 c45ff06b33adb0405d25912246e66929629003d4c641d2cb8ec0fc2519cf2fb7
MD5 31158c4996ba03a63464971865a60bc1
BLAKE2b-256 e3e599439bdcdfb788633f39ac259f7916130bd2fa6c02a18eb4369c42917b31

See more details on using hashes here.

File details

Details for the file asyncio_pause-0.5-py3-none-any.whl.

File metadata

  • Download URL: asyncio_pause-0.5-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.5

File hashes

Hashes for asyncio_pause-0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f407ec64c82c69bfd1097edce63c15796e53efd82d665d35cdc462126686030a
MD5 a5676a31165dd22f3c9e4bf727eb4529
BLAKE2b-256 8b899a7fdfb011941218129e5128437600595d3fbe658b5f63747e7306fdb2c8

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