Skip to main content

taskdog-core

Core business logic and infrastructure for Taskdog task management system.

Overview

This package contains the core components shared by both the Taskdog server and UI:

  • Domain Layer: Business entities, domain services, and interfaces
  • Application Layer: Use cases, queries, DTOs, and business logic orchestration
  • Infrastructure Layer: Persistence implementations, external service integrations
  • Controllers: Business logic orchestrators used by presentation layers

Installation

pip install taskdog-core

For development:

pip install -e ".[dev]"

Architecture

Follows Clean Architecture principles:

Domain (entities, services, repositories)
  ↑
Application (use cases, queries, DTOs)
  ↑
Infrastructure (SQLite, file storage)
  ↑
Controllers (orchestration layer)

Key Components

Domain Layer (taskdog_core/domain/):

  • Task - Core entity with status, priority, deadlines, dependencies
  • TaskStatus - PENDING, IN_PROGRESS, COMPLETED, CANCELED
  • TimeTracker - Records actual_start/actual_end timestamps
  • TaskNotFoundException, TaskValidationError - Domain exceptions

Application Layer (taskdog_core/application/):

  • Use Cases: CreateTaskUseCase, StartTaskUseCase, OptimizeScheduleUseCase, etc.
  • Validators: TaskFieldValidatorRegistry with Status and Dependency validators
  • Services: WorkloadAllocator, OptimizationSummaryBuilder, TaskQueryService
  • Optimization: 9 scheduling strategies (greedy, balanced, backward, priority_first, earliest_deadline, round_robin, dependency_aware, genetic, monte_carlo)

Infrastructure Layer (taskdog_core/infrastructure/):

  • SqliteTaskRepository - SQLite persistence with transactional writes
  • SqliteNotesRepository - Database-based notes storage
  • ConfigManager - TOML configuration loading

Controllers (taskdog_core/controllers/):

  • TaskCrudController - Create, update, delete operations
  • TaskLifecycleController - Start, complete, pause, cancel, reopen
  • TaskRelationshipController - Dependencies and tags
  • TaskAnalyticsController - Statistics and optimization
  • QueryController - Read-only operations

Usage Example

from taskdog_core.domain.entities.task import Task, TaskStatus
from taskdog_core.infrastructure.persistence.database.sqlite_task_repository import SqliteTaskRepository
from taskdog_core.controllers.task_crud_controller import TaskCrudController
from taskdog_core.infrastructure.config.config_manager import ConfigManager
# Setup
repository = SqliteTaskRepository("sqlite:///tasks.db")
config = ConfigManager()

# Create controller
crud_controller = TaskCrudController(repository, config)

# Create a task
from taskdog_core.application.dto.task_request import CreateTaskRequest
request = CreateTaskRequest(name="My Task", priority=100)
task = crud_controller.create_task(request)

Dependencies

  • holidays: Holiday checking for scheduling
  • python-dateutil: Date/time utilities
  • sqlalchemy: Database ORM

For detailed architecture documentation, see CLAUDE.md.

Testing

pytest tests/

License

MIT

Metadata

Release files for taskdog-core 0.28.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for taskdog-core 0.28.1
File Size Uploaded
taskdog_core-0.28.1.tar.gz 127.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for taskdog-core 0.28.1
File Interpreter ABI Platform
taskdog_core-0.28.1-py3-none-any.whl Python 3 none any Details

Total release size: 335.4 kB

Release files / taskdog_core-0.28.1.tar.gz

Download URL taskdog_core-0.28.1.tar.gz
Size 127.1 kB
Tags Source
SHA-256 checksum
How to use checksums
341289f2846ea52b0bef0d3051ef63533dcc0323fb249060195cc00497a3e5ca
BLAKE2b-256 checksum
How to use checksums
3f34bfdc29448ef65874c1ded28ba2227602dcb01a88a2b2d4471635aa1c1105
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / taskdog_core-0.28.1-py3-none-any.whl

Download URL taskdog_core-0.28.1-py3-none-any.whl
Size 208.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e14328000c103dea477c092b874199105278ed95df36c7cb2c0182117d7b0530
BLAKE2b-256 checksum
How to use checksums
8610fbab500f4b8f7e0ba30e16c0571619355597390d230d06b478cf78fa96d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.28.1 This release

2 release files

0.28.0

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.20.0

2 release files

0.18.6

2 release files

0.18.4

2 release files

0.18.3

2 release files

0.18.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page