Overview
Class Diagram
classDiagram
class AuthenticationError {
}
class ClientBody {
name : Optional[str]
notes : Optional[str]
status : Optional[str]
workspace_id : Optional[int]
format_body(workspace_id: int) dict[str, Any]
}
class ClientEndpoint {
endpoint
model
create_client(body: ClientBody) Optional[TogglClient]
delete_client(client: TogglClient | int) None
get_client(client_id: int | TogglClient) Optional[TogglClient]
get_clients(status: Optional[str], name: Optional[str]) list[TogglClient]
update_client(client: TogglClient | int, body: ClientBody) Optional[TogglClient]
}
class CustomDecoder {
MATCH_DICT : Final[dict[str, type[TogglClass]]]
decode(obj: Any) Any
}
class CustomEncoder {
default(o: Any) Any
}
class JSONCache {
cache_path
parent
session
add_entries(update: list[TogglClass] | TogglClass) None
add_entry(item: TogglClass) None
commit() None
delete_entries(update: list[TogglClass] | TogglClass) None
delete_entry(entry: TogglClass) None
find_entry(entry: TogglClass | dict) Optional[TogglClass]
load_cache() list[TogglClass]
query() list[TogglClass]
save_cache(update: Iterable[TogglClass] | TogglClass, method: RequestMethod) None
update_entries(update: list[TogglClass] | TogglClass) None
}
class JSONSession {
data : list[TogglClass]
max_length : int
timestamp : datetime
version : str
commit(path: Path) None
load(path: Path, expire_after: timedelta) None
process_data(data: list[TogglClass]) list[TogglClass]
}
class ProjectBody {
active : bool
client_id : Optional[int]
client_name : Optional[str]
color : Optional[str]
end_date : Optional[datetime | date]
is_private : Optional[bool]
name : Optional[str]
start_date : Optional[datetime | date]
workspace_id : Optional[int]
format_body(workspace_id: int) dict[str, Any]
}
class ProjectEndpoint {
BASIC_COLORS : Final[dict[str, str]]
endpoint
model
add_project(body: ProjectBody) Optional[TogglProject]
delete_project(project: TogglProject | int) None
edit_project(project: TogglProject | int, body: ProjectBody) Optional[TogglProject]
get_color(color: str) str
get_color_id(color: str) int
get_project(project_id: int | TogglProject) Optional[TogglProject]
get_projects() Optional[list[TogglProject]]
}
class RequestMethod {
name
}
class SqliteCache {
cache_path
database
metadata
session
add_entries(entry: Iterable[TogglClass] | TogglClass) None
commit() None
delete_entries(entry: Iterable[TogglClass] | TogglClass) None
find_entry(query: TogglClass | dict) Optional[TogglClass]
load_cache() Query[TogglClass]
query() Query[TogglClass]
save_cache(entry: list[TogglClass] | TogglClass, method: RequestMethod) None
update_entries(entry: Iterable[TogglClass] | TogglClass) None
}
class TagEndpoint {
endpoint
model
create_tag(name: str) TogglTag
delete_tag(tag: TogglTag) None
get_tags() list[TogglTag]
update_tag(tag: TogglTag) TogglTag
}
class TogglCache {
cache_path
expire_after
parent
add_entries(update: list[TogglClass])* None
commit()* None
delete_entries(update: list[TogglClass] | TogglClass)* None
find_entry(entry: TogglClass | dict)* Optional[TogglClass]
find_method(method: RequestMethod) Callable | None
load_cache()* Iterable[TogglClass]
query()* Iterable[TogglClass]
save_cache(entry: list[TogglClass] | TogglClass, method: RequestMethod)* None
update_entries(update: list[TogglClass] | TogglClass)* None
}
class TogglCachedEndpoint {
cache
endpoint
load_cache() Iterable[TogglClass]
query() Iterable[TogglClass]
request(parameters: str, headers: Optional[dict], body: Optional[dict], method: RequestMethod) Optional[TogglClass | Iterable[TogglClass]]
save_cache(response: list[TogglClass] | TogglClass, method: RequestMethod) None
}
class TogglClass {
id : int
name : str
timestamp : Optional[datetime]
from_kwargs()* TogglClass
}
class TogglClient {
}
class TogglEndpoint {
BASE_ENDPOINT : Final[str]
HEADERS : Final[dict]
NOT_FOUND : Final[int]
OK_RESPONSE : Final[int]
SERVER_ERROR : Final[int]
endpoint
model
workspace_id : int
method(method: RequestMethod) Callable
process_models(data: list[dict[str, Any]]) list[TogglClass]
request(parameters: str, headers: Optional[dict], body: Optional[dict], method: RequestMethod) Optional[list[TogglClass] | TogglClass]
}
class TogglProject {
active : bool
client : Optional[int]
color : str
from_kwargs() TogglProject
}
class TogglTag {
from_kwargs() TogglTag
}
class TogglTracker {
duration : Optional[timedelta]
project : Optional[int]
start : datetime
stop : Optional[datetime | str]
tags : list[TogglTag]
from_kwargs() TogglTracker
get_tags() list[TogglTag]
running() bool
}
class TogglWorkspace {
from_kwargs() TogglWorkspace
}
class TrackerBody {
created_with : str
description : Optional[str]
duration : Optional[int | timedelta]
project_id : Optional[int]
shared_with_user_ids : list[int]
start : Optional[datetime]
start_date : Optional[date]
stop : Optional[datetime]
tag_action : Optional[Literal['add', 'remove']]
tag_ids : list[int]
tags : list[str]
workspace_id : Optional[int]
format_body(workspace_id: int) dict[str, Any]
}
class TrackerEndpoint {
TRACKER_ALREADY_STOPPED : Final[int]
endpoint
model
add_tracker(body: TrackerBody) Optional[TogglTracker]
delete_tracker(tracker: TogglTracker | int) None
edit_tracker(tracker: TogglTracker | int, body: TrackerBody) Optional[TogglTracker]
stop_tracker(tracker: TogglTracker | int) Optional[TogglTracker]
}
class UTCDateTime {
cache_ok : bool
impl
process_bind_param(value: datetime, _) Optional[datetime]
process_result_value(value: Optional[datetime], _) Optional[datetime]
}
class UserEndpoint {
TRACKER_NOT_RUNNING : Final[int]
endpoint
model
check_authentication() bool
current_tracker() Optional[TogglTracker]
get_tracker(tracker_id: int | TogglTracker) Optional[TogglTracker]
get_trackers(since: Optional[int | datetime], before: Optional[date], start_date: Optional[date], end_date: Optional[date]) list[TogglTracker]
}
class WorkspaceChild {
workspace : int
from_kwargs() WorkspaceChild
}
class WorkspaceEndpoint {
endpoint
model
get_workspace() Optional[TogglWorkspace]
}
ClientEndpoint --|> TogglCachedEndpoint
JSONCache --|> TogglCache
SqliteCache --|> TogglCache
TogglCachedEndpoint --|> TogglEndpoint
TogglClient --|> WorkspaceChild
TogglProject --|> WorkspaceChild
TogglTag --|> WorkspaceChild
TogglTracker --|> WorkspaceChild
TogglWorkspace --|> TogglClass
WorkspaceChild --|> TogglClass
ProjectEndpoint --|> TogglCachedEndpoint
TagEndpoint --|> TogglCachedEndpoint
TrackerEndpoint --|> TogglCachedEndpoint
UserEndpoint --|> TogglCachedEndpoint
WorkspaceEndpoint --|> TogglCachedEndpoint
JSONSession --* JSONCache : session
TogglCache --o TogglCachedEndpoint : _cache
Package Diagram
classDiagram
class toggl_api {
}
class config {
}
class modules {
}
class client {
}
class meta {
}
class base_endpoint {
}
class cache {
}
class base_cache {
}
class json_cache {
}
class sqlite_cache {
}
class cached_endpoint {
}
class enums {
}
class models {
}
class models {
}
class schema {
}
class project {
}
class tag {
}
class tracker {
}
class user {
}
class workspace {
}
class utility {
}
class version {
}
toggl_api --> config
toggl_api --> modules
toggl_api --> models
toggl_api --> version
modules --> client
modules --> meta
modules --> project
modules --> tag
modules --> tracker
modules --> user
modules --> workspace
client --> meta
client --> models
meta --> base_endpoint
meta --> cache
meta --> cached_endpoint
meta --> enums
base_endpoint --> enums
base_endpoint --> models
cache --> base_cache
cache --> json_cache
cache --> sqlite_cache
base_cache --> enums
json_cache --> base_cache
json_cache --> models
json_cache --> utility
json_cache --> version
sqlite_cache --> base_cache
sqlite_cache --> models
cached_endpoint --> base_endpoint
cached_endpoint --> enums
models --> models
models --> schema
models --> utility
schema --> models
project --> meta
project --> models
project --> utility
tag --> meta
tag --> models
tracker --> meta
tracker --> models
tracker --> utility
user --> meta
user --> models
workspace --> meta
workspace --> models
base_cache ..> meta
base_cache ..> models
json_cache ..> meta
json_cache ..> cached_endpoint
sqlite_cache ..> meta
cached_endpoint ..> cache
cached_endpoint ..> models