llm_topic_modelling / pyproject.toml
seanpedrickcase's picture
Sync: Removed another s3 key, and unnecessary xlsx save print statement. Formatter check.
2cad7c3
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "llm_topic_modelling"
version = "0.6.0"
description = "Generate thematic summaries from open text in tabular data files with a large language model."
requires-python = ">=3.10"
readme = "README.md"
authors = [
{ name = "Sean Pedrick-Case", email = "spedrickcase@lambeth.gov.uk" },
]
maintainers = [
{ name = "Sean Pedrick-Case", email = "spedrickcase@lambeth.gov.uk" },
]
keywords = [
"topic-modelling",
"topic-modeling",
"llm",
"large-language-models",
"thematic-analysis",
"text-analysis",
"nlp",
"natural-language-processing",
"text-summarization",
"text-summarisation",
"thematic-summaries",
"gradio",
"data-analysis",
"tabular-data",
"excel",
"csv",
"open-text",
"text-mining"
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Intended Audience :: Information Technology",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Text Processing :: Linguistic",
"Topic :: Text Processing :: Markup",
"Topic :: Scientific/Engineering :: Information Analysis",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
dependencies = [
"gradio==6.0.2",
"transformers==4.57.2",
"spaces==0.42.1",
"boto3==1.42.1",
"pandas<=2.3.3",
"pyarrow>=21.0.0",
"openpyxl>=3.1.5",
"markdown>=3.7",
"tabulate>=0.9.0",
"lxml>=5.3.0",
"google-genai<=1.52.0",
"openai<=2.8.1",
"html5lib>=1.1",
"beautifulsoup4>=4.12.3",
"rapidfuzz>=3.13.0",
"python-dotenv>=1.1.0"
]
[project.optional-dependencies]
dev = ["pytest"]
test = ["pytest", "pytest-cov"]
# Extra dependencies for VLM models
# For torch you should use --index-url https://download.pytorch.org/whl/cu128. Additionally installs the unsloth package
torch = [
"torch<=2.9.1",
"torchvision",
"accelerate",
"bitsandbytes",
"unsloth==2025.11.6",
"unsloth_zoo==2025.11.6",
"timm",
"xformers"
]
# If you want to install llama-cpp-python in GPU mode, use cmake.args="-DGGML_CUDA=on" . If that doesn't work, try specific wheels for your system, e.g. for Linux see files in https://github.com/JamePeng/llama-cpp-python/releases. More details on installation here: https://llama-cpp-python.readthedocs.io/en/latest
llamacpp = [
"llama-cpp-python>=0.3.16",
]
# Run Gradio as an mcp server
mcp = [
"gradio[mcp]==6.0.2"
]
[project.urls]
Homepage = "https://github.com/seanpedrick-case/llm_topic_modelling"
repository = "https://github.com/seanpedrick-case/llm_topic_modelling"
[tool.setuptools]
packages = ["tools"]
py-modules = ["app"]
# Configuration for Ruff linter:
[tool.ruff]
line-length = 88
[tool.ruff.lint]
select = ["E", "F", "I"]
ignore = [
"E501", # line-too-long (handled with Black)
"E402", # module-import-not-at-top-of-file (sometimes needed for conditional imports)
]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"] # Allow unused imports in __init__.py
# Configuration for a Black formatter:
[tool.black]
line-length = 88
target-version = ['py310']
# Configuration for pytest:
[tool.pytest.ini_options]
filterwarnings = [
"ignore::DeprecationWarning:click.parser",
"ignore::DeprecationWarning:weasel.util.config",
"ignore::DeprecationWarning:builtin type",
"ignore::DeprecationWarning:websockets.legacy",
"ignore::DeprecationWarning:websockets.server",
"ignore::DeprecationWarning:spacy.cli._util",
"ignore::DeprecationWarning:weasel.util.config",
"ignore::DeprecationWarning:importlib._bootstrap",
]
testpaths = ["test"]
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = [
"-v",
"--tb=short",
"--strict-markers",
"--disable-warnings",
]