arjuna.tpi.helper.datetime module

Arjuna Date Time Helper Classes

Contains many general purpose type abstractions.

class arjuna.tpi.helper.datetime.DateTime(pydtobj, *, format='%d.%m.%y %H:%M:%S')

Bases: object

Represents a (mutable) date time object.

Parameters
  • pydtobj – Python datetime object.

  • format – String representation. Default is ‘%d.%m.%y %H:%M:%S’.

Note

You can use + and - operators with DateTime and DateTimeDelta objects.

dtobj + dtdelta
dtobj - dtdelta

Although reassignment is not necessary, you can also do

dtobj = dtobj + dtdelta
dtobj = dtobj - dtdelta
add(dtdelta)

Add a DateTimeDelta object to this object. Modifies current object.

Parameters

dtdelta – DateTimeDelta Object.

Returns

This DateTime object (Self)

as_str(*, format=None)

String representation of this DateTime object.

Keyword Arguments

format – String format to represent the provided date time object. If not provided format set during construction of this object is used.

classmethod convert(dtstr: str, *, from_format: str = '%d.%m.%y %H:%M:%S', to_format: str = '%d.%m.%y %H:%M:%S')

Factory method to create a DateTime object from provided date time string.

Parameters

dtstr – Date Time string

Keyword Arguments
  • from_format – String format to parse the provided date time string. Default is ‘%d.%m.%y %H:%M:%S’.

  • to_format – String format to create the converted date time string. Default is ‘%d.%m.%y %H:%M:%S’.

Returns

Date Time string as per to_format

classmethod from_str(dtstr: str, *, format: str = '%d.%m.%y %H:%M:%S')

Factory method to create a DateTime object from provided date time string.

Parameters

dtstr – Date Time string

Keyword Arguments

format – String format to parse the provided date time string. Default is ‘%d.%m.%y %H:%M:%S’.

classmethod now(*, format: str = '%d.%m.%y %H:%M:%S')

Factory method to create a DateTime object representing current date and time.

Keyword Arguments

format – String format to represent the generated date time object. Default is ‘%d.%m.%y %H:%M:%S’.

stepper(*, delta: Optional[arjuna.tpi.helper.datetime.DateTimeDelta] = None, max_steps: int = 100000, forward: bool = True, format: str = None, as_str: bool = True)

Factory method to create DateTimeStepper object which takes this DateTime as starting point.

Keyword Arguments
  • delta – A DateTimeDelta object used to create next date time object. If not provided, a delta of 1 second is used.

  • max_steps – Maximum number of steps or iterations of this object. Default is 100000.

  • forward – Boolean value that sets the direction of date time. If True steps are directed towards future else towards past. Default is True.

  • format – String format to represent the generated date time object. If not provided, it is taken from this DateTime object.

  • as_str – Boolean value that controls the return type on next calls. If True, the iterable returns the data time object as a string else DateTime object is returned. Default is True.

sub(dtdelta)

Add a DateTimeDelta object to this object. Modifies current object.

Parameters

dtdelta – DateTimeDelta Object.

Returns

This DateTime object (Self)

class arjuna.tpi.helper.datetime.DateTimeDelta(*, weeks: int = 0, days: int = 0, hours: int = 0, minutes: int = 0, seconds: int = 0, milliseconds: int = 0, microseconds: int = 0)

Bases: object

Represents a delta (difference) in date time.

Keyword Arguments
  • weeks – Delta number of weeks.

  • days – Delta number of days.

  • hours – Delta number of hours.

  • minutes – Delta number of minutes.

  • seconds – Delta number of seconds.

  • miliseconds – Delta number of miliseconds.

  • microseconds – Delta number of microseconds.

classmethod builder()

Create a DateTimeDeltaBuilder object.

Returns

DateTimeDeltaBuilder object

from_now(*, forward: bool = True, format: str = '%d.%m.%y %H:%M:%S')
Keyword Arguments
  • forward – Boolen value that sets the direction of date time. If True delta is added else it is subtracted. Default is True.

  • format – String format to represent the generated date time object. Default is ‘%d.%m.%y %H:%M:%S’.

classmethod zero()

Create a DateTimeDelta object which represents no change in date time.

Returns

DateTimeDelta object.

class arjuna.tpi.helper.datetime.DateTimeDeltaBuilder

Bases: object

Builder class to flexibly build a DateTimeDelta object.

build()

Build a DateTimeDelta object as per values set in builder.

Returns

DateTimeDelta object.

days(count: int)

Set number of detla days.

Parameters

count – Number of days

hours(count: int)

Set number of detla hours.

Parameters

count – Number of hours

microseconds(count: int)

Set number of detla microseconds.

Parameters

count – Number of microseconds

milliseconds(count: int)

Set number of detla miliseconds.

Parameters

count – Number of milliseconds

minutes(count: int)

Set number of detla minutes.

Parameters

count – Number of minutes

seconds(count: int)

Set number of detla seconds.

Parameters

count – Number of seconds

weeks(count: int)

Set number of detla weeks.

Parameters

count – Number of weeks

class arjuna.tpi.helper.datetime.DateTimeStepper(*, start: Optional[arjuna.tpi.helper.datetime.DateTime] = None, delta: Optional[arjuna.tpi.helper.datetime.DateTimeDelta] = None, max_steps: int = 100000, forward: bool = True, format: str = None, as_str: bool = True)

Bases: object

An iterable object that returns DateTime objects or strings as per provided arguments.

Keyword Arguments
  • start – Arjuna DateTime object to start stepping. If not supplied current date & time is used. Returned as first value.

  • delta – A DateTimeDelta object used to create next date time object. If not provided, a delta of 1 second is used.

  • max_steps – Maximum number of steps or iterations of this object. Default is 100000.

  • forward – Boolen value that sets the direction of date time. If True steps are directed towards future else towards past. Default is True.

  • format – String format to represent the generated date time object. If not provided, it is taken from start argument. If start argument is not provided it defaults to ‘%d.%m.%y %H:%M:%S’.

  • as_str – Boolena value that controls the return type on next calls. If True, the iterable returns the data time object as a string else DateTime object is returned. Default is True.

Note

You can make next() call to get next DateTime object or string:

dtstepperDateTimeStepper()
dt = dtstepper.next()

If you have explcitly set max_steps, a better usage pattern is to use this object in a Python for loop:

for dt in DateTimeStepper(max_steps=25):
    # Do something
    print(dt)
next()

Returns next DateTime object or string.

class arjuna.tpi.helper.datetime.Time(time_unit, value)

Bases: object

A time object.

Parameters
  • time_unit – TimeUnit enum value.

  • value – An integer representing this time value.

classmethod milliseconds(value)

Factory method to a create a Time object for milliseconds.

Parameters

value – Number of milliseconds

classmethod minutes(value)

Factory method to a create a Time object for minutes.

Parameters

value – Number of minutes

classmethod seconds(value)

Factory method to a create a Time object for seconds.

Parameters

value – Number of seconds