Python package
clocking
born as a Python package to help to track time through works.
Core module
Core module contains some functions to work with database (sqlite).
clocking.core
Module that contains business logic of clocking command line tool
add_configuration(database, active, user, location, empty_value, daily_hours, working_days, extraordinary, permit_hours, disease, holiday, currency, hour_reward, extraordinary_reward, food_ticket, other_hours, other_reward)
Add new configuration into database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
active |
configuration active boolean |
required | |
user |
configuration user owner |
required | |
location |
location name |
required | |
empty_value |
replacement for empty value |
required | |
daily_hours |
daily hours value |
required | |
working_days |
working name's days |
required | |
extraordinary |
minimum extraordinary value |
required | |
permit_hours |
minimum permit value |
required | |
disease |
disease string name |
required | |
holiday |
holiday string name |
required | |
currency |
currency char value |
required | |
hour_reward |
total hour reward |
required | |
extraordinary_reward |
total extraordinary hour reward |
required | |
food_ticket |
food ticket reward |
required | |
other_hours |
other hours value |
required | |
other_reward |
other hours reward |
required |
Returns:
Type | Description |
---|---|
int |
create_configuration_table(database)
Create configuration table
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required |
Returns:
Type | Description |
---|---|
bool |
create_working_hours_table(database, user)
Create working hours table
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user |
required |
Returns:
Type | Description |
---|---|
bool |
database_exists(database)
Check if database exists
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required |
Returns:
Type | Description |
---|---|
bool |
delete_configuration(database, row_id)
Delete specific configuration
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
row_id |
row id |
required |
Returns:
Type | Description |
---|---|
bool |
delete_database(database)
Delete all data into database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required |
Returns:
Type | Description |
---|---|
None |
delete_user(database, user)
Delete all user data
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
|
required | |
user |
|
required |
Returns:
Type | Description |
---|---|
|
delete_whole_month(database, user, year, month)
Delete whole month values into database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user in configuration table |
required | |
year |
year of the date |
required | |
month |
month of the date |
required |
Returns:
Type | Description |
---|---|
bool |
delete_whole_year(database, user, year)
Delete whole year values into database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user in configuration table |
required | |
year |
year of the date |
required |
Returns:
Type | Description |
---|---|
bool |
delete_working_hours(database, user, date=None, day=None, month=None, year=None)
Delete working day into database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user in configuration table |
required | |
date |
date for insert values |
None
|
|
day |
day of the date |
None
|
|
month |
month of the date |
None
|
|
year |
year of the date |
None
|
Returns:
Type | Description |
---|---|
bool |
enable_configuration(database, row_id)
Enable configuration to specific id.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
row_id |
row id |
required |
Returns:
Type | Description |
---|---|
bool |
get_all_days(database, user, holiday=False, disease=False, extraordinary=False, permit_hours=False, other_hours=False)
Get all days from database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user in configuration table |
required | |
holiday |
select only holiday values |
False
|
|
disease |
select only disease values |
False
|
|
extraordinary |
select only extraordinary values |
False
|
|
permit_hours |
select only permit hour values |
False
|
|
other_hours |
select only other hour values |
False
|
Returns:
Type | Description |
---|---|
Cursor |
get_configurations(database, user=None, enabled=False)
Get all configurations for user
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user in configuration table |
None
|
|
enabled |
only enabled user |
False
|
Returns:
Type | Description |
---|---|
Cursor |
get_current_configuration(database, user)
Get current enabled configuration for user
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user in configuration table |
required |
Returns:
Type | Description |
---|---|
tuple |
get_current_version(database)
Get clocking version from database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required |
Returns:
Type | Description |
---|---|
string |
get_whole_month(database, user, year, month, holiday=False, disease=False, extraordinary=False, permit_hours=False, other_hours=False)
Get whole month's working days from database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user in configuration table |
required | |
year |
year of the date |
required | |
month |
month of the date |
required | |
holiday |
select only holiday values |
False
|
|
disease |
select only disease values |
False
|
|
extraordinary |
select only extraordinary values |
False
|
|
permit_hours |
select only permit hour values |
False
|
|
other_hours |
select only other hour values |
False
|
Returns:
Type | Description |
---|---|
Cursor |
get_whole_year(database, user, year, holiday=False, disease=False, extraordinary=False, permit_hours=False, other_hours=False)
Get whole year's working days from database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user in configuration table |
required | |
year |
year of the date |
required | |
holiday |
select only holiday values |
False
|
|
disease |
select only disease values |
False
|
|
extraordinary |
select only extraordinary values |
False
|
|
permit_hours |
select only permit hour values |
False
|
|
other_hours |
select only other hour values |
False
|
Returns:
Type | Description |
---|---|
Cursor |
get_working_hours(database, user, date=None, day=None, month=None, year=None, holiday=False, disease=False, extraordinary=False, permit_hours=False, other_hours=False)
Get working day from database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user in configuration table |
required | |
date |
date for insert values |
None
|
|
day |
day of the date |
None
|
|
month |
month of the date |
None
|
|
year |
year of the date |
None
|
|
holiday |
select only holiday values |
False
|
|
disease |
select only disease values |
False
|
|
extraordinary |
select only extraordinary values |
False
|
|
permit_hours |
select only permit hour values |
False
|
|
other_hours |
select only other hour values |
False
|
Returns:
Type | Description |
---|---|
Cursor |
insert_working_hours(database, user, hours=0, description=None, location=None, extraordinary=0, permit_hours=0, other_hours=0, holiday=None, disease=None, date=None, day=None, month=None, year=None, empty_value=None)
Insert working day into database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
hours |
number of working hours |
0
|
|
user |
user in configuration table |
required | |
description |
description of working day |
None
|
|
location |
name of location |
None
|
|
extraordinary |
extraordinary hours |
0
|
|
permit_hours |
permit hours |
0
|
|
other_hours |
other working hours |
0
|
|
holiday |
holiday value |
None
|
|
disease |
disease value |
None
|
|
date |
date for insert values |
None
|
|
day |
day of the date |
None
|
|
month |
month of the date |
None
|
|
year |
year of the date |
None
|
|
empty_value |
empty value if worked hours is 0 |
None
|
Returns:
Type | Description |
---|---|
bool |
make_database(database)
Create a blank database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required |
Returns:
Type | Description |
---|---|
None |
print_configurations(cursor)
Print in stdout the configuration table
Parameters:
Name | Type | Description | Default |
---|---|---|---|
cursor |
sqlite3 Cursor object |
required |
Returns:
Type | Description |
---|---|
None |
print_working_table(cursor, sort=False, csv=False, json=False, html=False, rewards=None)
Print in stdout the working hours table
Parameters:
Name | Type | Description | Default |
---|---|---|---|
cursor |
sqlite3 Cursor object |
required | |
sort |
sort by date_id |
False
|
|
csv |
CSV format |
False
|
|
json |
JSON format |
False
|
|
html |
HTML format |
False
|
|
rewards |
UserConfiguration tuple |
None
|
Returns:
Type | Description |
---|---|
None |
remove_working_hours(database, user, date=None, day=None, month=None, year=None, empty_value=None)
Remove working day into database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required | |
user |
user in configuration table |
required | |
date |
date for insert values |
None
|
|
day |
day of the date |
None
|
|
month |
month of the date |
None
|
|
year |
year of the date |
None
|
|
empty_value |
fill empty value |
None
|
Returns:
Type | Description |
---|---|
bool |
reset_configuration(database)
Reset configuration table with default values
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required |
Returns:
Type | Description |
---|---|
bool |
save_working_table(cursor, file, sort=False, csv=False, json=False, html=False, rewards=None)
Save into file the working hours table
Parameters:
Name | Type | Description | Default |
---|---|---|---|
cursor |
sqlite3 Cursor object |
required | |
file |
file path where to save stdout |
required | |
sort |
sort by date_id |
False
|
|
csv |
CSV format |
False
|
|
json |
JSON format |
False
|
|
html |
HTML format |
False
|
|
rewards |
UserConfiguration tuple |
None
|
Returns:
Type | Description |
---|---|
None |
update_version(database)
Update clocking version into database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
database |
database file path |
required |
Returns:
Type | Description |
---|---|
bool |
Util module
Util module contains some functions to help to work with time and data.
clocking.util
clocking module that contains some utility
build_dateid(date=None, year=None, month=None, day=None, fmt='%Y%m%d')
Build date_id for database
Parameters:
Name | Type | Description | Default |
---|---|---|---|
date |
datetime object |
None
|
|
year |
number represents the year |
None
|
|
month |
number represents the year |
None
|
|
day |
number represents the year |
None
|
|
fmt |
datetime string format |
'%Y%m%d'
|
Returns:
Type | Description |
---|---|
str |
datestring_to_datetime(date)
Convert any date-string format to datetime object
Parameters:
Name | Type | Description | Default |
---|---|---|---|
date |
date in string format |
required |
Returns:
Type | Description |
---|---|
datetime |
make_printable_table(cursor)
Create a PrettyTable object from sqlite3 Cursor object
Parameters:
Name | Type | Description | Default |
---|---|---|---|
cursor |
Cursor
|
sqlite3 Cursor object |
required |
Returns:
Type | Description |
---|---|
DataTable |
split_dateid(date_id, fmt='%Y%m%d')
Split date_id to year, month and day
Parameters:
Name | Type | Description | Default |
---|---|---|---|
date_id |
string date_id object |
required | |
fmt |
date_id string format |
'%Y%m%d'
|
Returns:
Type | Description |
---|---|
tuple |
sum_rewards(data, configuration)
Sum working hours rewards
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
tuple of working hours |
required | |
configuration |
UserConfiguration
|
UserConfiguration object |
required |
Returns:
Type | Description |
---|---|
float |
clocking.util.UserConfiguration = namedtuple('UserConfiguration', ['rowid', 'active', 'user', 'location', 'empty_value', 'daily_hours', 'working_days', 'extraordinary', 'permit_hours', 'disease', 'holiday', 'currency', 'hour_reward', 'extraordinary_reward', 'food_ticket', 'other_hours', 'other_reward'])
module-attribute
clocking.util.DataTable = namedtuple('DataTable', ['data', 'table'])
module-attribute
Exception module
Exception module contains Exception classes.
clocking.exception.WorkingDayError
Bases: ValueError
clocking.exception.UserConfigurationError
Bases: ValueError