Skip to main content

Adds locks and timeouts to click entrypoints

Project description

Adds locks and timeouts to Click entrypoints.

Where is only one function click_lock.lock_group with the same interface as click.group. You define root group and can use it to declare commands or subgroups:

# example.py
import click
from click_lock import lock_group

cli = lock_group()

@cli.command()
@click.argument('seconds', type=int)
def wait(seconds):
    """Wait for particular amount of seconds"""
    import time
    time.sleep(seconds)

cli()

Now you have some additional options:

Usage: example.py [OPTIONS] COMMAND [ARGS]...

Options:
  --lock fname          Path to lock file
  --timeout seconds     Limit script execution time
  --trace / --no-trace  Log traceback in case of timeout  [default: True]
  --help                Show this message and exit.

Commands:
  wait  Wait for particular amount of seconds

For example, lock script execution:

python example.py --lock /tmp/example.lck wait 10

Limit script execution:

python example.py --timeout 5 wait 10

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

click-lock-0.5.1.tar.gz (2.4 kB view hashes)

Uploaded Source

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