Simple Toggl API wrapper for non-premium features primarily focused on creating a cached framework for developing custom commands.
Install with pip:
pip install toggl-api-wrapper
Or if using SQLite cache:
pip install "toggl-api-wrapper[sqlite]"
Or if using async classes:
pip install "toggl-api-wrapper[async]"
- Currently supports interacting with Trackers, Projects, Clients, Tags, Reports and some extras.
- Designed to be rudimentary to allow simple development of custom commands.
Tracker Endpoint
from datetime import timedelta
from pathlib import Path
from toggl_api.config import generate_authentication
from toggl_api import TrackerBody, TrackerEndpoint, JSONCache
WORKSPACE_ID = 2313123123
AUTH = generate_authentication()
cache = JSONCache(Path("cache"), timedelta(hours=24))
endpoint = TrackerEndpoint(WORKSPACE_ID, AUTH, cache)
body = TrackerBody("My First Tracker", tags=["My First Tag"])
tracker = endpoint.add(body)
print(tracker)
Outputs:
>>> TogglTracker(
id=3482231563,
name="My First Tracker",
workspace=2313123123,
start=datetime.datetime(2024, 6, 10, 14, 59, 20, tzinfo=datetime.timezone.utc),
duration=datetime.timedelta(seconds=1, microseconds=179158),
stop=None,
project=None,
tags=[],
)
Project Endpoint
from datetime import timedelta
from pathlib import Path
from toggl_api import ProjectBody, ProjectEndpoint, TogglProject
from toggl_api.config import retrieve_togglrc_workspace_id, use_togglrc
from toggl_api.meta.cache import JSONCache
WORKSPACE_ID = retrieve_togglrc_workspace_id()
AUTH = use_togglrc()
cache = JSONCache[TogglProject](Path("cache"), timedelta(hours=24))
endpoint = ProjectEndpoint(WORKSPACE_ID, AUTH, cache)
color = ProjectEndpoint.get_color("red")
body = ProjectBody(
"My First Project",
client_name="My First Client",
color=color,
)
project = endpoint.add(body)
print(project)
Outputs:
>>> TogglProject(
id=203366783,
name='My First Project',
workspace=2313123123,
color='#d92b2b',
client=65298912,
active=True,
)
See CONTRIBUTING.
MIT. Check LICENSE for more information.