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.29.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.29.1
File Size Uploaded Provenance Actions
taskdog_core-0.29.1.tar.gz 127.5 kB With provenance Details for taskdog_core-0.29.1.tar.gz

Built distribution (wheel)

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

Total release size: 336.5 kB

Release files / taskdog_core-0.29.1.tar.gz

Download URL taskdog_core-0.29.1.tar.gz
Size 127.5 kB
Tags Source
SHA-256 checksum
How to use checksums
82d5439f45ed537e2f649ef4e51bbc51ed1a03d55527f4361afb8ac9c56eb650
BLAKE2b-256 checksum
How to use checksums
1c0c6fa5335e9518097011aac7a8fa8f76f9e10d3bb385788460b5acaad27072
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 8, 2026.

Transparency log

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

Download URL taskdog_core-0.29.1-py3-none-any.whl
Size 209.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1607ff2abf1811e81ab567e5f9254ebbabe03cba00fae71f6a928c2985b5d8ed
BLAKE2b-256 checksum
How to use checksums
6a8cda52badd59ea4355c5da263411e6e23052f8b184c4677361086fe6b5f7bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 8, 2026.

Transparency log

Security for taskdog-core 0.29.1

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for taskdog_core-0.29.1.tar.gz

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 Nov 8, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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