Skip to content
A Python library that converts cron expressions into human readable strings.
Python Shell
Branch: master
Clone or download
Latest commit 0fff9d0 Sep 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml Sep 19, 2019
archlinux New version 1.2.24 Sep 17, 2019
cron_descriptor New version 1.2.24 Sep 17, 2019
examples Fix incorrect licencing header in project files, Fixes #27 Dec 8, 2018
tests Fix incorrect licencing header in project files, Fixes #27 Dec 8, 2018
tools Fix incorrect licencing header in project files, Fixes #27 Dec 8, 2018
.gitignore Added gitignore May 18, 2016
.gitlab-ci.yml Update .gitlab-ci.yml Sep 17, 2019
.travis.yml Drop python 3.3 from travis CI Oct 25, 2018
.version.yml Fix regexp Jun 8, 2018
LICENSE Initial commit Jan 16, 2016
MANIFEST.in
PKGBUILD Update PKGBUILD to 1.2.9 Jul 8, 2017
README.md Update paypal url Sep 20, 2019
code-check.sh Convert function names and variables to snake_case Jan 19, 2016
pre-commit.sh Convert function names and variables to snake_case Jan 19, 2016
setup.py New version 1.2.24 Sep 17, 2019
stdeb.cfg Added support files for pip, archlinux, debian packaging Jan 19, 2016

README.md

Cron Descriptor

Master: Master Build Status All: Build Status Donate

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
You can’t perform that action at this time.