Reference#
thymed#
Thymed.
This file contains basic functions and classes related to to time-keeping.
- class thymed.ChargeCode(name, description, id, times=<factory>)#
A ChargeCode represents a type of work to dedicate hours to.
ChargeCodes have a name, description, identification number, and optional limits on time per week and total time dedicated.
- Parameters:
name (str) –
description (str) –
id (int) –
times (List[Tuple[datetime, datetime]]) –
- times#
times is the heart of the dataclass, it contains all the time code data in a list of tuples. For example: ::python
[(Datetime, Datetime), … (Datetime, Datetime)]
- Type:
List[Tuple[datetime.datetime, datetime.datetime]]
- property is_active: [<class 'bool'>, typing.Any]#
The charge code is active if it has been activated, but not closed.
- punch()#
Punch in/out of chargeable time.
- Return type:
None
- write_class()#
Write the class to the Charges json file.
- Return type:
None
- write_json(data=PosixPath('/home/docs/.thymed/thymed_punches.dat'), log=False)#
Write the times data to a json file.
Read the file first, then append the times to their appropriate charge code number.
- Parameters:
data (Path) –
log (bool) –
- Return type:
None
- class thymed.TimeCard(id)#
A TimeCard collects work activity.
TimeCards take a single ChargeCode and collect all punch data for them. This enables filtering, reporting, and exporting data, but only for a single ChargeCode.
- Parameters:
id (int) –
- general_report(start, end)#
A general method to pull times data.
Specify a start and end date. This method will then form a pandas dataframe from the ChargeCode, and filter down for all times inclusively between the two dates.
Start and End can theoretically be any datetime object.
- Parameters:
start (datetime) –
end (datetime) –
- Return type:
DataFrame
- monthly_report()#
Generates a report of all activity.
This method takes today’s date, and returns a filtered set of punch data for the past 4 weeks.
- Return type:
DataFrame
- pay_period_report()#
Generates a report of all activity.
This method takes today’s date, and returns a filtered set of punch data for the past 14 days.
- Return type:
DataFrame
- to_excel(report, folder)#
This method just saves the report to the directory provided.
- Parameters:
report (DataFrame) –
folder (Path) –
- Return type:
Path
- weekly_report()#
Generates a report of all activity.
This method takes today’s date, and returns a filtered set of punch data for the past 7 days.
- Return type:
DataFrame
- thymed.get_code(id)#
Read stored data and return the ChargeCode specified.
- Parameters:
id (int) –
- Return type:
Any
- thymed.object_decoder(obj)#
Decoder hook for the ChargeCode class.
- Return type:
Any