Blablablab/multi-label
0
1from setuptools import setup, find_packages2import os3 4# Read the README file for long description5def read_readme():6 readme_path = os.path.join(os.path.dirname(__file__), "README.md")7 with open(readme_path, "r", encoding="utf-8") as fh:8 return fh.read()9 10# Core dependencies required for basic server startup and annotation.11# These are imported unconditionally at module level by flask_server.py,12# routes.py, config_module.py, and other core modules.13_CORE_DEPS = [14 "beautifulsoup4>=4.10.0",15 "click>=8.0.3",16 "Flask>=3.0.0",17 "itsdangerous>=2.1.0",18 "Jinja2>=3.1.6",19 "joblib>=1.2.0",20 "MarkupSafe>=2.1.0",21 "numpy>=1.21.0",22 "pandas>=1.3.5",23 "pydantic>=2.11.9",24 "python-dateutil>=2.8.2",25 "pytz>=2021.3",26 "PyYAML>=6.0.1",27 "requests>=2.31.0",28 "scikit-learn>=1.0.2",29 "scipy>=1.7.3",30 "simpledorff>=0.0.2",31 "six>=1.16.0",32 "soupsieve>=2.3.1",33 "threadpoolctl>=3.0.0",34 "tqdm>=4.62.3",35 "ujson>=5.4.0",36 "Werkzeug>=3.0.6",37]38 39# Optional dependency groups for specific features.40# Install with: pip install potato-annotation[ai,formats]41_AI_DEPS = [42 "ollama>=0.6.0",43 "openai>=1.0.0",44]45_FORMAT_DEPS = [46 "pdfplumber>=0.10.0",47 "python-docx>=1.0.0",48 "mammoth>=1.6.0",49 "mistune>=3.0.0",50 "pygments>=2.17.0",51 "openpyxl>=3.1.0",52]53_VIZ_DEPS = [54 "umap-learn>=0.5.0",55]56_EXPORT_DEPS = [57 "pyarrow>=12.0.0",58]59_HF_DEPS = [60 "huggingface_hub>=0.20.0",61 "datasets>=2.14.0",62]63_AUTH_DEPS = [64 "Authlib>=1.3.0",65]66_LANGCHAIN_DEPS = [67 "langchain-core>=0.1.0",68]69 70setup(71 name="potato-annotation",72 version='2.6.0',73 author="Potato Development Team",74 author_email="jurgens@umich.edu",75 description="A flexible, stand-alone, web-based platform for text annotation tasks",76 long_description=read_readme(),77 long_description_content_type="text/markdown",78 url="https://github.com/davidjurgens/potato",79 license="GPL-3.0-or-later",80 packages=find_packages(),81 classifiers=[82 "Development Status :: 4 - Beta",83 "Intended Audience :: Science/Research",84 "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",85 "Operating System :: OS Independent",86 "Programming Language :: Python :: 3",87 "Programming Language :: Python :: 3.7",88 "Programming Language :: Python :: 3.8",89 "Programming Language :: Python :: 3.9",90 "Programming Language :: Python :: 3.10",91 "Programming Language :: Python :: 3.11",92 "Topic :: Scientific/Engineering :: Artificial Intelligence",93 "Topic :: Text Processing :: Linguistic",94 ],95 python_requires=">=3.7",96 install_requires=_CORE_DEPS,97 extras_require={98 "ai": _AI_DEPS,99 "formats": _FORMAT_DEPS,100 "viz": _VIZ_DEPS,101 "export": _EXPORT_DEPS,102 "huggingface": _HF_DEPS,103 "auth": _AUTH_DEPS,104 "langchain": _LANGCHAIN_DEPS,105 "all": _AI_DEPS + _FORMAT_DEPS + _VIZ_DEPS + _EXPORT_DEPS + _HF_DEPS + _AUTH_DEPS + _LANGCHAIN_DEPS,106 },107 include_package_data=True,108 entry_points={109 "console_scripts": [110 "potato=potato.flask_server:main",111 ],112 },113 package_data={114 # NOTE: All of potato/static/ is shipped via MANIFEST.in115 # (`recursive-include potato/static/ *`) together with116 # include_package_data=True above. Do NOT re-add static subdirectories117 # here — they are already packaged recursively, and per-subdir globs118 # only invite drift as new static/ folders are added.119 "potato": [120 "templates/*.html",121 ],122 },123)