markitect-main/pyproject.toml

103 lines
2.5 KiB
TOML
Raw Normal View History

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "markitect"
version = "0.4.0"
description = "Advanced Markdown engine for structured content"
readme = "README.md"
requires-python = ">=3.8"
dependencies = ["markdown-it-py", "PyYAML", "click>=8.0.0", "tabulate>=0.9.0", "jsonpath-ng>=1.5.0", "aiohttp>=3.8.0", "toml"]
2025-10-05 12:49:28 +02:00
[project.optional-dependencies]
capabilities = [
"markitect-content @ file:./capabilities/markitect-content"
]
[project.scripts]
markitect = "markitect.cli:main"
feat: Complete CLI consolidation - fix redundancy and missing interfaces 🎯 MAJOR CLI ARCHITECTURE CONSOLIDATION: ✅ Added Missing CLI Entry Points: • tddai = "tddai_cli:main" - TDD workflow management • issue = "cli.issue_cli:main" - Pure issue management • All three CLIs now properly installed: markitect, tddai, issue 🧹 Eliminated Functionality Redundancy: • Removed issue commands from markitect/cli.py (clean separation) • MarkiTect now focuses purely on document processing • TDD workflow in tddai CLI, issue management in issue CLI 🏗️ Clean Architecture Implementation: • Created cli/issue_cli.py - Dedicated pure issue management • Enhanced cli/commands/export.py with export_issues_csv/json • Updated cli/core.py with proper export method delegation • Fixed pyproject.toml to include all required packages 🧪 Comprehensive Testing: • Added tests/test_cli_consolidation.py - Prevents CLI regression • Tests ensure all CLIs are installed and functional • Tests verify no functionality duplication • Regression protection against missing CLI commands 📋 Clear Separation of Concerns: • markitect CLI - Document processing, templates, performance • tddai CLI - TDD workflow, workspace management, coverage • issue CLI - Pure issue operations, project management, export 🔧 Package Configuration: • Updated pyproject.toml to include cli*, tddai*, services*, etc. • Added py-modules for tddai_cli standalone module • Fixed import paths and dependencies This consolidation resolves the major redundancy identified in issues functionality and ensures proper CLI interfaces are available and tested. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-02 23:04:57 +02:00
tddai = "tddai_cli:main"
issue = "cli.issue_cli:main"
[tool.setuptools.packages.find]
feat: Complete CLI consolidation - fix redundancy and missing interfaces 🎯 MAJOR CLI ARCHITECTURE CONSOLIDATION: ✅ Added Missing CLI Entry Points: • tddai = "tddai_cli:main" - TDD workflow management • issue = "cli.issue_cli:main" - Pure issue management • All three CLIs now properly installed: markitect, tddai, issue 🧹 Eliminated Functionality Redundancy: • Removed issue commands from markitect/cli.py (clean separation) • MarkiTect now focuses purely on document processing • TDD workflow in tddai CLI, issue management in issue CLI 🏗️ Clean Architecture Implementation: • Created cli/issue_cli.py - Dedicated pure issue management • Enhanced cli/commands/export.py with export_issues_csv/json • Updated cli/core.py with proper export method delegation • Fixed pyproject.toml to include all required packages 🧪 Comprehensive Testing: • Added tests/test_cli_consolidation.py - Prevents CLI regression • Tests ensure all CLIs are installed and functional • Tests verify no functionality duplication • Regression protection against missing CLI commands 📋 Clear Separation of Concerns: • markitect CLI - Document processing, templates, performance • tddai CLI - TDD workflow, workspace management, coverage • issue CLI - Pure issue operations, project management, export 🔧 Package Configuration: • Updated pyproject.toml to include cli*, tddai*, services*, etc. • Added py-modules for tddai_cli standalone module • Fixed import paths and dependencies This consolidation resolves the major redundancy identified in issues functionality and ensures proper CLI interfaces are available and tested. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-02 23:04:57 +02:00
include = ["markitect*", "cli*", "tddai*", "services*", "gitea*", "config*", "domain*", "infrastructure*", "application*"]
exclude = ["tests*", "wiki*"]
[tool.setuptools]
py-modules = ["tddai_cli"]
feat: Complete type safety improvements for CLI and service layers Implement comprehensive type annotations and mypy configuration as part of code quality initiative. Achieve 100% type annotation coverage for main CLI entry points and resolve Optional type inconsistencies. ## Key Improvements ### CLI Layer (100% Type Coverage) - tddai_cli.py: Complete type annotations for all 21 functions - cli/core.py: Full type coverage for CLI framework (20 functions) - cli/commands/issues.py: Fixed Optional[List[str]] parameter types - cli/commands/workspace.py: Improved type checker logic for Optional handling ### Service Layer Type Safety - services/issue_service.py: Fixed Optional parameter type signatures - services/project_service.py: Updated Optional type annotations - tddai/issue_creator.py: Proper Optional[List[str]] usage - tddai/project_manager.py: Fixed Optional parameter handling ### Mypy Configuration - pyproject.toml: Added comprehensive mypy configuration - Gradual adoption strategy with module-specific strictness - Python 3.12 compatibility for proper type checking - Incremental typing approach for legacy modules ## Technical Details - Proper Optional vs Union type usage throughout - Generic type annotations for collections - Return type annotations for all public functions - Fixed implicit Optional violations (PEP 484) - Type checker logic improvements for better safety ## Benefits - Improved IDE autocomplete and error detection - Compile-time type checking for CLI commands - Better maintainability and debugging capabilities - Foundation for expanding type safety to remaining modules Resolves #27 - Type safety improvements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 09:02:31 +02:00
[tool.mypy]
# Basic mypy configuration for MarkiTect project
python_version = "3.12"
warn_return_any = true
warn_unused_configs = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
warn_unreachable = true
strict_optional = true
disallow_untyped_calls = false # Gradual adoption
disallow_untyped_defs = false # Gradual adoption
disallow_incomplete_defs = false # Gradual adoption
check_untyped_defs = true
disallow_untyped_decorators = false # Gradual adoption
no_implicit_optional = true
show_error_codes = true
show_column_numbers = true
pretty = true
# File patterns to exclude from type checking
exclude = [
"^build/.*",
"^dist/.*",
"^\\.venv/.*",
"^\\.markitect_workspace/.*",
"^tests/.*", # Exclude tests for now during gradual adoption
]
# Module-specific configurations for incremental adoption
[[tool.mypy.overrides]]
module = [
"infrastructure.logging.*",
"infrastructure.repositories.*",
"infrastructure.exceptions",
"infrastructure.config",
"domain.*"
]
# Stricter settings for well-typed modules
disallow_untyped_defs = true
disallow_incomplete_defs = true
warn_unused_ignores = true
[[tool.mypy.overrides]]
module = [
"tddai_cli",
"markitect.cli",
"cli.*"
]
# Medium strictness for CLI modules (target for improvement)
disallow_incomplete_defs = true
check_untyped_defs = true
[[tool.mypy.overrides]]
module = [
"markitect.*",
"services.*",
"gitea.*"
]
# Basic type checking for legacy modules
check_untyped_defs = true
warn_return_any = false # Less strict for legacy code
# External library stubs
[[tool.mypy.overrides]]
module = [
"markdown_it.*",
"jsonpath_ng.*",
"click.*",
"tabulate.*",
"yaml.*"
]
ignore_missing_imports = true