[build-system] requires = ["hatchling>=1.24"] build-backend = "hatchling.build" [project] name = "warraqa" version = "1.0.0" description = "Warraqa (ورّاقة) — Document Scribe Agent. Converts PDFs and Word/PowerPoint files to clean Markdown with self-scoring." readme = "README.md" requires-python = ">=3.10" license = { file = "LICENSE" } authors = [ { name = "AALAM Studio", email = "contact@aalam.consulting" }, ] maintainers = [ { name = "AALAM Studio", email = "contact@aalam.consulting" }, ] keywords = [ "markdown", "pdf", "docx", "pptx", "ocr", "document-conversion", "marker", "pymupdf", "markitdown", "rag", "knowledge-base", ] classifiers = [ # PolyForm Noncommercial is not OSI-approved, so we use the closest # "Other/Proprietary License" classifier and surface the real terms # via `License-File`. See LICENSE for full text. "License :: Other/Proprietary License", "Development Status :: 5 - Production/Stable", "Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", "Intended Audience :: Education", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Operating System :: MacOS", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Office/Business", "Topic :: Text Processing :: Markup :: Markdown", "Topic :: Scientific/Engineering :: Artificial Intelligence", ] dependencies = [ # Core conversion engines "marker-pdf", "pymupdf4llm", "markitdown[all]", # Configuration + console "pyyaml", "rich", # File detection "python-magic-bin; sys_platform == 'win32'", "python-magic; sys_platform != 'win32'", # Folder watching "watchdog", # Legacy .doc / .ppt pre-conversion (Windows + MS Office) "pywin32; sys_platform == 'win32'", ] [project.optional-dependencies] dev = [ "ruff>=0.5", "pytest>=8", ] [project.urls] Homepage = "https://github.com/AALAM-Studio/warraqa" Repository = "https://github.com/AALAM-Studio/warraqa" Issues = "https://github.com/AALAM-Studio/warraqa/issues" Changelog = "https://github.com/AALAM-Studio/warraqa/blob/main/CHANGELOG.md" "Commercial License" = "https://www.aalam.consulting/" [project.scripts] warraqa = "warraqa.cli:main" [tool.hatch.build.targets.wheel] packages = ["warraqa"] [tool.hatch.build.targets.sdist] include = [ "warraqa/**", "config.yaml", "README.md", "LICENSE", "CHANGELOG.md", "CONTRIBUTING.md", "SECURITY.md", "CITATION.cff", ] # --- Linting --- [tool.ruff] line-length = 100 target-version = "py310" [tool.ruff.lint] select = [ "E", # pycodestyle errors "F", # pyflakes "I", # isort "B", # bugbear "UP", # pyupgrade ] ignore = [ "E501", # line too long — long log messages are fine ]