Welcome to libestg3b’s documentation!

libestg3b package

Submodules

libestg3b.estg3b module

class libestg3b.estg3b.EstG3bBase(country, groups, add_matchers=None, replace_matchers=None)[source]

Bases: object

calculate_shift(shift)[source]
Return type:List[Match]
calculate_shifts(shifts)[source]
Return type:Iterator[List[Match]]
libestg3b.estg3b.EstG3b(country)[source]

Get an instance for the given country.

Parameters:country (str) – ISO short code of the desired country, e.g. "DE"
Return type:EstG3bBase
libestg3b.estg3b.EstG3bs()[source]

Get a list containing instances for all implemented countries.

Return type:List[EstG3bBase]

libestg3b.matcher module

class libestg3b.matcher.Matcher(slug, description, impl, *, multiply=None, add=None, tests=[])[source]

Bases: object

Defines a bonus rule, e.g. “if someone works between 8pm and 6am, give them 25% more”

examples()[source]
match(minute, start, holidays)[source]
Return type:bool
class libestg3b.matcher.DayMatcher(slug, month, day, **kwargs)[source]

Bases: libestg3b.matcher.Matcher

match, if the given minute is within the given day. Keyword arguments are passed onto Matcher.

class libestg3b.matcher.DayTimeMatcher(slug, month, day, hour, **kwargs)[source]

Bases: libestg3b.matcher.Matcher

match, if the given minute is within the given day after the given hour. Keyword arguments are passed onto Matcher.

class libestg3b.matcher.MatcherGroup(description, matchers)[source]

Bases: object

A collection of similar Matcher instances. When the group is evaluated, only the highest matching machter is returned.

Parameters:
  • description (str) – a short, human-readable text, explaining why the given matchers are grouped together.
  • matchers (Iterable[Matcher]) – the initial set of matchers.
append(matcher)[source]
Parameters:matcher (Matcher) – matcher to add; it must not yet exist in the group.
Return type:None
match(minute, start, holidays)[source]

Evaluate this group. The given shift is tested using each of the stored matchers. The matcher with the highest bonus is the returned. If not a single one matches, None is returned.

This method is to be used by libestg3b.EstG3b only, but you can use it to implement more complex scenarios yourself.

Parameters:
  • minute (datetime) – minute to evaluate (see libestgb3.EstG3b)
  • start (datetime) – the first minute in this shift (see libestgb3.EstG3b)
Return type:

Optional[Matcher]

extend(matchers, replace=False)[source]

Add the given matchers to this group.

Parameters:
  • matchers (Iterable[Matcher]) –
  • replace (bool) – if one of the given matcher duplicates an existing one, overwrite it instead of raising an exception.
Return type:

None

class libestg3b.matcher.Match(start, end, matchers)[source]

Bases: object

Module contents

libestg3b.EstG3b(country)[source]

Get an instance for the given country.

Parameters:country (str) – ISO short code of the desired country, e.g. "DE"
Return type:EstG3bBase
libestg3b.EstG3bs()[source]

Get a list containing instances for all implemented countries.

Return type:List[EstG3bBase]

Indices and tables