Skip to main content

A Python library that converts cron expressions into human readable strings.

Project description

# Cron Descriptor

Master: [![Master Build Status](]( All: [![Build Status](](

A Python library that converts cron expressions into human readable strings. Ported to Python from

**Author**: Adam Schubert (
**Original Author & Credit**: Brady Holt (
**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.5

## Installation
Using PIP
pip install cron-descriptor

## Usage example

# Simple
from cron_descriptor import get_description, ExpressionDescriptor

print(get_description("* 2 3 * *"))


print(str(ExpressionDescriptor("* 2 3 * *")))

# Advanced
# Consult 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:

#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)


## 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](|

<!-- SOON
## Demo

## Download


## Original Source
- .NET - [](

## Ports
- Java - [](
- Ruby - [](

## Running Unit Tests

python 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/ 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 ../../ .git/hooks/pre-commit

Then install dev requirements:

pip install pep8
pip install flake8
pip install pep8-naming

Project details

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
cron_descriptor-1.2.16.tar.gz (27.0 kB) Copy SHA256 hash SHA256 Source None Jul 23, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page