timepro-timesheet

Utility for programmatically getting and submitting data to Intertec TimePro (timesheets.com.au)


License
MIT
Install
pip install timepro-timesheet==19.2.1

Documentation

Intertec TimePro Utils

PyPI version Build status Coverage Python versions Github license

Description

Programmatically get and submit timesheet data to Intertec TimePro (timesheets.com.au)

Installation

Install with pip:

pip install timepro-timesheet

Usage

Command line

GET data

Once installed, you can use the CLI to get your timesheet data as JSON.

$ timepro get -c CUST -u john.doe -p password123
  {
    "2018-08-04": [
      {
        "customer_code": "EXAMPLE",
        "customer_description": "Example Company Pty Ltd",
        "project_code": "EX-123",
        "project_psid": "EX-123{:}1",
        "project_description": "EXAMPLE - EX-123 - SOW000 - Important Business Stuff - PO 123",
        "task_id": null,
        "task_description": null,
        "hours": 8
      }
    ]
  }

You can filter the timesheet period by specifying dates for --start and --end, or by using the --this-week, --this-month, --last-week or --last-month flags. By default, the current week's timesheet entries are returned.

POST data

Data can be submitted by reading from a JSON file.

$ timepro post -c CUST -u john.doe -p password123 -f timesheet_entries.json

or

$ cat timesheet_entries.json | timepro post -c CUST -u john.doe -p password123

Python

from timepro_timesheet.api import TimesheetAPI

# Log into timesheets.com.au via the TimesheetAPI class
api = TimesheetAPI()
api.login(customer_id='CUST', username='john.doe', password='password123')

# Get timesheet (defaults to current month)
timesheet = api.get_timesheet()

# Get timesheet for a given date
timesheet = api.get_timesheet(start_date=date(2018, 6, 1), end_date=date(2018, 6, 25))

# Output timesheet
timesheet.json()
timesheet.row_entries()
timesheet.date_entries()