This release is a pre-release and may not be stable for production use.
sche
sche is a fork of schedule – Python job scheduling for humans.
An in-process scheduler for periodic jobs that uses the builder pattern for configuration. Schedule lets you run Python functions (or any other callable) periodically at pre-determined intervals using a simple, human-friendly syntax.
Inspired by Adam Wiggins’ article “Rethinking Cron” and the clockwork Ruby module.
Features
A simple to use API for scheduling jobs.
Very lightweight and no external dependencies.
Excellent test coverage.
Tested on Python 3.6+
Timezone support.
Usage
$ pip install sche
import sche
import time
def job():
print("I'm working...")
sche.every(10).minutes.do(job)
sche.every().hour.do(job)
sche.every().day.at("10:30").do(job)
sche.every(5).to(10).minutes.do(job)
sche.every().monday.do(job)
sche.every().wednesday.at("13:15").do(job)
sche.every().minute.at(":17").do(job)
# or use schedule expression
sche.when("every 10 minutes").do(job)
sche.when("every hour").do(job)
sche.when("every day at 10:30").do(job)
sche.when("every 5 to 10 minutes").do(job)
sche.when("every monday").do(job)
sche.when("every wednesday at 13:15").do(job)
sche.when("every minute at :17").do(job)
# or use decorator to register job(without arguments)
@sche.when("every 10 minutes")
def another_job():
print("I'm working on another job...")
sche.clear() # remove all jobs
# set job with timezone
sche.timezone("+0800").every().day.at("00:00").do(job)
sche.run_forever() # blockingly
# OR
sche.run_forever_background() # non-blockingly
Documentation
sche’s documentation lives at sche.readthedocs.io.
Please also check the FAQ there with common questions.
Meta
Daniel Bader - @dbader_org - mail@dbader.org
Distributed under the MIT license. See LICENSE.txt for more information.
Metadata
Release files for sche 1.0a5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sche-1.0a5.tar.gz | 16.9 kB | Without provenance | Details for sche-1.0a5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sche-1.0a5-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for sche-1.0a5-py2.py3-none-any.whl |
Total release size: 28.0 kB
Release files / sche-1.0a5.tar.gz
| Download URL | sche-1.0a5.tar.gz |
|---|---|
| Size | 16.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
30650a1267eb5a335bd3e3c22b71bd928ca449fb3d3a5ffb18de45ed9533f0d1
|
|
BLAKE2b-256 checksum How to use checksums |
dd2a7c32a4529a26f72326ce6620c62f75d3bc632257fe0bdf6d0cece4d25f5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
|
Release files / sche-1.0a5-py2.py3-none-any.whl
| Download URL | sche-1.0a5-py2.py3-none-any.whl |
|---|---|
| Size | 11.1 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
4df4ceab21e3c851537997076b31eda1ed908f902b6b88b5ec2a3cab4a64901f
|
|
BLAKE2b-256 checksum How to use checksums |
8fbf72692cb7c4b5380566d1eaa7aaa6059ab245a110196a98bea59ee4840d50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
|
Security for sche 1.0a5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.