[project]
name = "splitter-mr"
dynamic = ["version"]
description = "A modular text splitting library."
authors = [
    { name="Andrés Herencia", email="andresherencia2000@gmail.com" }
]
license = { file = "LICENSE" }
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "docling>=2.15.1",
    "fastparquet>=2024.11.0",
    "ffmpeg-downloader>=0.4.0",
    "langchain-text-splitters>=0.3.8",
    "markitdown[all]>=0.1.2",
    "nltk>=3.9.1",
    "openai>=1.88.0",
    "openpyxl>=3.1.5",
    "pdfplumber>=0.11.7",
    "poethepoet>=0.35.0",
    "pyyaml>=6.0.2",
    "spacy>=3.8.7",
    "tiktoken>=0.9.0",
    "xlrd>=2.0.1",
]

[tool.setuptools]
package-dir = {"" = "src"}

[tool.setuptools_scm]
version_scheme = "guess-next-dev"
local_scheme = "no-local-version"

[tool.uv.sources]
splitter-mr = { workspace = true }

[tool.poe.tasks]

help = { shell = "poe --help" }
build = { shell = "uv build", help = "Build the project using uv." }

install = { shell = "uv pip install -U uv || pip install uv || true && uv add --dev pre-commit && uv run pre-commit install", help = "Install all the dependencies and requirements" }

shell = { shell = "uv run shell", help = "Run a uv shell." }

clean = { shell = "echo 'Clean all the cache and temporary files.' && find . -type d -name '__pycache__' -exec rm -rf {} + && find . -type d -name '.pytest_cache' -exec rm -rf {} + && find . -type f -name '*.pyc' -delete && find . -type f -name '*.pyo' -delete && find . -type f -name '*.pyd' -delete && find . -type d -name '*.egg-info' -exec rm -rf {} + && find . -type f -name '*.egg' -delete", help = "Clean cache and temporary files." }

test = { shell = "uv run --dev pytest --cov", help = "Run tests and check test coverage." }

docs = { shell = "uv run mkdocs serve", help = "Deploy Mkdocs server." }

pre-commit = { shell = "uv run pre-commit", help = "Install pre-commit hooks." }

format = { shell = "uv run --dev pyupgrade --exit-zero && uv run --dev isort . && uv run --dev black . && uv run --dev flake8 --max-line-length=101 --ignore=E203,W291,E501,W293 src/", help = "Format the code using pyupgrade, isort, black and flake8"}

publish-docs = { shell = "uv run mkdocs gh-deploy", help = "Publish Mkdocs server" }


[build-system]
requires = ["setuptools>=61.0", "setuptools_scm[toml]>=7.0", "wheel"]
build-backend = "setuptools.build_meta"

[dependency-groups]
dev = [
    "black>=25.1.0",
    "build>=1.2.2.post1",
    "coverage>=7.8.2",
    "flake8>=7.2.0",
    "isort>=6.0.1",
    "mkdocs>=1.6.1",
    "mkdocs-awesome-pages-plugin>=2.10.1",
    "mkdocs-glightbox>=0.4.0",
    "mkdocs-material>=9.6.14",
    "mkdocstrings[python]>=0.29.1",
    "pre-commit>=4.2.0",
    "pytest>=8.4.0",
    "pytest-cov>=6.1.1",
    "pyupgrade>=3.20.0",
    "requests-mock>=1.12.1",
    "setuptools-scm>=8.3.1",
    "splitter-mr",
    "twine>=6.1.0",
    "wheel>=0.45.1",
]

[project.urls]
homepage = "https://github.com/andreshere00/splitter_mr"
repository = "https://github.com/andreshere00/splitter_mr"

