[project]
name = "par_ai_core"
dynamic = [
    "version",
]
description = "PAR AI Core"
url = "https://github.com/paulrobello/par_ai_core"
readme = "README.md"
requires-python = ">=3.10"
authors = [
    { name = "Paul Robello", email = "probello@gmail.com" },
]
maintainers = [
    { name = "Paul Robello", email = "probello@gmail.com" },
]
classifiers = [
    "License :: OSI Approved :: MIT License",
    "Environment :: Console",
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Operating System :: MacOS",
    "Operating System :: Microsoft :: Windows :: Windows 10",
    "Operating System :: Microsoft :: Windows :: Windows 11",
    "Topic :: Software Development :: Libraries :: Python Modules",
    "Typing :: Typed",
]
keywords = [
    "ai",
    "langchain",
    "openai",
    "anthropic",
    "ollama",
    "llamacpp",
]
dependencies = [
    "requests>=2.32.3",
    "rich>=13.9.4",
    "orjson>=3.10.15",
    "strenum>=0.4.15",
    "boto3>=1.36.11",
    "botocore>=1.36.11",
    "langchain-anthropic>=0.3.5",
    "langchain-aws>=0.2.11",
    "langchain-chroma>=0.2.1",
    "langchain-community>=0.3.16",
    "langchain-core>=0.3.33",
    "langchain-experimental>=0.3.4",
    "langchain-google-genai>=2.0.9",
    "langchain-groq>=0.2.4",
    "langchain-ollama>=0.2.3",
    "langchain-openai>=0.3.3",
    "langchain-qdrant>=0.2.0",
    "langchain-text-splitters>=0.3.5",
    "langchain-xai>=0.2.0",
    "langchain-mistralai>=0.2.6",
    "langchain-google-community>=2.0.4",
    "langchain>=0.3.17",
    "langgraph>=0.2.69",
    "pydantic-core>=2.27.2",
    "pydantic>=2.10.6",
    "playwright>=1.49.1",
    "python-dotenv>=1.0.1",
    "selenium>=4.28.1",
    "webdriver-manager>=4.0.2",
    "praw>=7.8.1",
    "tavily-python>=0.5.0",
    "youtube-transcript-api>=0.6.3",
    "beautifulsoup4>=4.12.3",
    "html2text>=2024.2.26",
    "markdownify>=0.14.1",
]
packages = [
    "src/par_ai_core",
]

[project.license]
file = "LICENSE"

[project.urls]
Homepage = "https://github.com/paulrobello/par_ai_core"
Documentation = "https://github.com/paulrobello/par_ai_core/blob/main/README.md"
Repository = "https://github.com/paulrobello/par_ai_core"
Issues = "https://github.com/paulrobello/par_ai_core/issues"
Discussions = "https://github.com/paulrobello/par_ai_core/discussions"
Wiki = "https://github.com/paulrobello/par_ai_core/wiki"

[project.scripts]
par_ai_core = "par_ai_core.__main__:main"

[build-system]
requires = [
    "hatchling",
    "wheel",
]
build-backend = "hatchling.build"

[dependency-groups]
dev = [
    "build>=1.2.1",
    "twine>=5.1.1",
    "pyright>=1.1.379",
    "pre-commit>=3.8.0",
    "ruff>=0.7.0",
    "types-orjson>=3.6.2",
    "pyinstrument>=5.0.0",
    "pytest>=8.0.0",
    "pytest-cov>=4.1.0",
    "pytest-asyncio>=0.23.5",
    "pytest-mock>=3.14.0",
    "pytest-xdist>=3.6.1",
    "pdoc3>=0.11.5",
]

[tool.pytest.ini_options]
minversion = "8.0"
addopts = "-ra -q --cov=src/par_ai_core --cov-report=term-missing"
testpaths = [
    "tests",
]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"

[tool.hatch.version]
path = "src/par_ai_core/__init__.py"

[tool.hatch.build.targets.wheel]
packages = [
    "src/par_ai_core",
]
include = [
    "py.typed",
    "**/*.py",
    "**/*.html",
    "**/*.gif",
    "**/*.jpg",
    "**/*.png",
    "**/*.md",
]

[tool.hatch.build.targets.sdist]
include = [
    "src/par_ai_core",
    "LICENSE",
    "README.md",
    "extraction_prompt.md",
    "pyproject.toml",
]
exclude = [
    "*.pyc",
    "__pycache__",
    "*.so",
    "*.dylib",
]
