A Python library that converts cron expressions into human readable strings.
Project description
Cron Descriptor
A Python library that converts cron expressions into human readable strings. Ported to Python from https://github.com/bradyholt/cron-expression-descriptor.
Author: Adam Schubert (https://www.salamek.cz)
Original Author & Credit: Brady Holt (http://www.geekytidbits.com)
License: MIT
Features
- Supports all cron expression special characters including * / , - ? L W, #
- Supports 5, 6 (w/ seconds or year), or 7 (w/ seconds and year) part cron expressions
- Provides casing options (Sentence, Title, Lower, etc.)
- Localization with support for 14 languages
- Supports Python 2.7 - 3.7
Installation
Using PIP
pip install cron-descriptor
Usage example
# Simple
from cron_descriptor import get_description, ExpressionDescriptor
print(get_description("* 2 3 * *"))
#OR
print(str(ExpressionDescriptor("* 2 3 * *")))
# Advanced
# Consult Options.py/CasingTypeEnum.py/DescriptionTypeEnum.py for more info
from cron_descriptor import Options, CasingTypeEnum, DescriptionTypeEnum, ExpressionDescriptor
descripter = ExpressionDescriptor("*/10 * * * *", throw_exception_on_parse_error = True, casing_type = CasingTypeEnum.Sentence, use_24hour_time_format = True)
# GetDescription uses DescriptionTypeEnum.FULL by default:
print(descripter.get_description())
print("{}".format(descripter))
#or passing Options class as second argument:
options = Options()
options.throw_exception_on_parse_error = True
options.casing_type = CasingTypeEnum.Sentence
options.use_24hour_time_format = True
descripter = ExpressionDescriptor("*/10 * * * *", options)
print(descripter.get_description(DescriptionTypeEnum.FULL))
Languages Available
Language | locale_code | contributor |
---|---|---|
English | en | Brady Holt |
Brazilian | pt_PT | Renato Lima |
Chinese Simplified | zh_CN | Star Peng |
Spanish | es_ES | Ivan Santos |
Norwegian | nb_NO | Siarhei Khalipski |
Turkish | tr_TR | Mustafa SADEDİL |
Dutch | nl_NL | TotalMace |
Russian | ru_RU | LbISS |
French | fr_FR | Arnaud TAMAILLON |
German | de_DE | Michael Schuler |
Ukrainian | uk_UA | Taras |
Italian | it_IT | rinaldihno |
Czech | cs_CZ | Adam Schubert |
Swedish | sv_SE | Åke Engelbrektson |
Original Source
Ports
Running Unit Tests
python setup.py test
Translating
cron-descriptor is using Gettext for translations.
To create new translation or edit existing one, i suggest using Poedit.
You can copy/rename and translate any file from locale
directory:
cp ./cron_descriptor/locale/de_DE.po ./cron_descriptor/locale/YOUR_LOCALE_CODE.po
poedit ./cron_descriptor/locale/YOUR_LOCALE_CODE.po
or you can generate new untranslated *.po file from sources by running in cron_descriptor
directory:
cd cron_descriptor
xgettext *.py -o locale/YOUR_LOCALE_CODE.po
Generating *.mo file from *.po file. In root directory run command:
msgfmt -o cron_descriptor/locale/YOUR_LOCALE_CODE.mo cron_descriptor/locale/YOUR_LOCALE_CODE.po
Developing
All suggescions and PR's are welcomed
Just clone this repository and register pre-commit hook by running:
ln -s ../../pre-commit.sh .git/hooks/pre-commit
Then install dev requirements:
pip install pep8
pip install flake8
pip install pep8-naming
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file cron_descriptor-1.2.24.tar.gz
.
File metadata
- Download URL: cron_descriptor-1.2.24.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0d4d1637d7f26e322c0fb4018aea6028b5ba5ea2e8c228231e2870cbfcef2c0 |
|
MD5 | 190bb403eca4b2a8bec3f2e4f66bd3ec |
|
BLAKE2b-256 | f37298f0d54f4988696b0941e9086405405ab2565e7e81d8905c67c276df960f |