crython¶
Lightweight task scheduler using cron expressions.
Modules¶
crython/expression¶
Contains functionality for representing a single cron expression.
-
class
crython.expression.
CronExpression
(second, minute, hour, day, month, weekday, year, reboot=False, logger=None)¶ Represents an entire cron expression.
An expression consists of seven, space delimited fields that represent the following values:
+------------- second (0 - 59) | +------------- minute (0 - 59) | | +------------- hour (0 - 23) | | | +------------- day (1 - 31) | | | | +------------- month (1 - 12) | | | | | +------------- weekday (0 - 6) (Sunday to Saturday; 7 is also Sunday) | | | | | | +------------- year (1970 - 2099) | | | | | | | | | | | | | | * * * * * * *
-
classmethod
new
(expression=None, **kwargs)¶ Create a
CronExpression
instance from the given expression string or field values.- Parameters
expression – (Optional) A string that can be converted to a cron expression.
kwargs – (Optional) A dict that maps field names to values.
- Returns
A
CronExpression
that represents the given string or field values.
-
classmethod
from_str
(expression, reboot_sentinel=<object object>)¶ Create a
CronExpression
instance from the given cron expression string.- Parameters
expression – A string that can be converted to a cron expression.
reboot_sentinel – (Optional) Object that indicates the expression is a reboot; Default: REBOOT_SENTINEL
- Returns
A
CronExpression
that represents the given string.
-
classmethod
from_kwargs
(**kwargs)¶ Create a
CronExpression
instance from the given dict of field name -> field value.- Parameters
kwargs – A dict that maps field names to values.
- Returns
A
CronExpression
that represents the given dict.
-
classmethod
from_reboot
()¶ Create a
CronExpression
instance that indicates it’s a “reboot” expression. A “reboot” expression means that it should be executed during startup and as soon as possible.- Returns
A
CronExpression
that represents a “reboot”.
-
property
is_reboot
¶ Return True if this expression represents a reboot; False otherwise.
-
classmethod
crython/field¶
Contains functionality for representing an individual field within an expression.
-
class
crython.field.
CronField
(value, name, min, max, specials)¶ Represents an individual field of a cron expression.
-
classmethod
new
(value, name, *args, **kwargs)¶ Create a new
CronField
instance from the given value.- Parameters
value – Value to create field from.
name – Name of the column this field represents within an expression.
args – Additional positional args
kwargs – Additional keyword args
- Returns
-
classmethod
from_number
(value, name, min, max, specials, *args, **kwargs)¶ Create a new
CronField
instance from the given numeric value.- Parameters
value – A
int
value.name – Name of the column this field represents within an expression.
min – Lower bound for the value, inclusive
max – Upper bound for the value, inclusive
specials – Set of special characters valid for this field type
args – Additional positional args
kwargs – Additional keyword args
- Returns
-
classmethod
from_str
(value, name, min, max, specials, *args, **kwargs)¶ Create a new
CronField
instance from the given string value.- Parameters
value – A
str
value.name – Name of the column this field represents within an expression.
min – Lower bound for the value, inclusive
max – Upper bound for the value, inclusive
specials – Set of special characters valid for this field type
args – Additional positional args
kwargs – Additional keyword args
- Returns
-
classmethod
from_iterable
(value, name, min, max, specials, *args, **kwargs)¶ Create a new
CronField
instance from the givenIterable
value.- Parameters
value – A
Iterable
value.name – Name of the column this field represents within an expression.
min – Lower bound for the value, inclusive
max – Upper bound for the value, inclusive
specials – Set of special characters valid for this field type
args – Additional positional args
kwargs – Additional keyword args
- Returns
-
matches
(item)¶ Check to see if the given time is ‘within’ the “time” denoted by this individual field.
..todo:: Recomputing this isn’t very efficient. Consider converting the field or expression to a datetime or timedelta instance.
-
classmethod
-
crython.field.
second
(value, *, name='second', **kwargs)¶ Partial for creating a
CronField
that represents the “second”.
-
crython.field.
minute
(value, *, name='minute', **kwargs)¶ Partial for creating a
CronField
that represents the “minute”.
-
crython.field.
hour
(value, *, name='hour', **kwargs)¶ Partial for creating a
CronField
that represents the “hour”.
-
crython.field.
day
(value, *, name='day', **kwargs)¶ Partial for creating a
CronField
that represents the “day of month”.
-
crython.field.
month
(value, *, name='month', **kwargs)¶ Partial for creating a
CronField
that represents the “day of month”.
-
crython.field.
weekday
(value, *, name='weekday', **kwargs)¶ Partial for creating a
CronField
that represents the “day of week”.
-
crython.field.
year
(value, *, name='year', **kwargs)¶ Partial for creating a
CronField
that represents the “year”.
-
crython.field.
partials
¶ Mapping of field name to the partial that create one of that field “type”.
crython/job¶
Contains functionality for defining functions that should be executed.
-
crython.job.
job
(*args, **kwargs)¶ Decorate functions to execute them in the background at a scheduled time.
- Parameters
args – Positional args to pass to the decorated function.
kwargs – Keyword args that contain job configuration and values to be passed to the decorated function.
crython/tab¶
Contains functionality for executing jobs (python functions) from cron expressions.
-
class
crython.tab.
CronTab
(*args, **kwargs)¶ Background thread responsible for executing background jobs.
This constructor should always be called with keyword arguments. Arguments are:
group should be None; reserved for future extension when a ThreadGroup class is implemented.
target is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called.
name is the thread name. By default, a unique name is constructed of the form “Thread-N” where N is a small decimal number.
args is the argument tuple for the target invocation. Defaults to ().
kwargs is a dictionary of keyword arguments for the target invocation. Defaults to {}.
If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.__init__()) before doing anything else to the thread.
-
register
(name, job)¶ Register the given name and function.
- Parameters
name – Name of the registered job. Note: This should be unique.
job – Callable decorated with
job()
to execute.
- Returns
None.
-
deregister
(name)¶ De-register the job that was registered with the given name.
- Parameters
name – Name of the job to remove.
- Returns
None.
-
stop
()¶ Stop this background thread from executing any more jobs.
- Returns
None.
-
run
()¶ Background function that processes all registered jobs and invokes them based on their context and expression.
-