Spaces:
Sleeping
Sleeping
# Lint as: python3 | |
""" HuggingFace/Evaluate is an open library for evaluation. | |
Note: | |
VERSION needs to be formatted following the MAJOR.MINOR.PATCH convention | |
(we need to follow this convention to be able to retrieve versioned scripts) | |
To create the package for pypi. | |
1. Open a PR and change the version in: | |
- __init__.py | |
- setup.py | |
Then merge the PR once it's approved. | |
3. Add a tag "vVERSION" (e.g. v0.4.1) in git to mark the release : "git tag vVERSION -m 'Add tag vVERSION for pypi'" | |
Push the tag to remote: git push --tags origin main | |
Then verify that the 'Python release' CI job runs and succeeds. | |
4. Fill release notes in the tag in github once everything is looking hunky-dory. | |
5. Open a PR to change the version in __init__.py and setup.py to X.X.X+1.dev0 (e.g. VERSION=0.4.1 -> 0.4.2.dev0). | |
Then merge the PR once it's approved. | |
""" | |
import os | |
from setuptools import find_packages, setup | |
REQUIRED_PKGS = [ | |
# We need datasets as a backend | |
"datasets>=2.0.0", | |
# We use numpy>=1.17 to have np.random.Generator (Dataset shuffling) | |
"numpy>=1.17", | |
# For smart caching dataset processing | |
"dill", | |
# For performance gains with apache arrow | |
"pandas", | |
# for downloading datasets over HTTPS | |
"requests>=2.19.0", | |
# progress bars in download and scripts | |
"tqdm>=4.62.1", | |
# for fast hashing | |
"xxhash", | |
# for better multiprocessing | |
"multiprocess", | |
# to get metadata of optional dependencies such as torch or tensorflow for Python versions that don't have it | |
"importlib_metadata;python_version<'3.8'", | |
# to save datasets locally or on any filesystem | |
# minimum 2021.05.0 to have the AbstractArchiveFileSystem | |
"fsspec[http]>=2021.05.0", | |
# To get datasets from the Datasets Hub on huggingface.co | |
"huggingface-hub>=0.7.0", | |
# Utilities from PyPA to e.g., compare versions | |
"packaging", | |
] | |
TEMPLATE_REQUIRE = [ | |
# to populate metric template | |
"cookiecutter", | |
# for the gradio widget | |
"gradio>=3.0.0" | |
] | |
EVALUATOR_REQUIRE = [ | |
"transformers", | |
# for bootstrap computations in Evaluator | |
"scipy>=1.7.1", | |
] | |
TESTS_REQUIRE = [ | |
# test dependencies | |
"absl-py", | |
"charcut>=1.1.1", # for charcut_mt | |
"cer>=1.2.0", # for characTER | |
"nltk", # for NIST and probably others | |
"pytest", | |
"pytest-datadir", | |
"pytest-xdist", | |
# optional dependencies | |
"tensorflow>=2.3,!=2.6.0,!=2.6.1, <=2.10", | |
"torch", | |
# metrics dependencies | |
"accelerate", # for frugalscore (calls transformers' Trainer) | |
"bert_score>=0.3.6", | |
"rouge_score>=0.1.2", | |
"sacrebleu", | |
"sacremoses", | |
"scipy", | |
"seqeval", | |
"scikit-learn", | |
"jiwer", | |
"sentencepiece", # for bleurt | |
"transformers", # for evaluator | |
"mauve-text", | |
"trectools", | |
# to speed up pip backtracking | |
"toml>=0.10.1", | |
"requests_file>=1.5.1", | |
"tldextract>=3.1.0", | |
"texttable>=1.6.3", | |
"unidecode>=1.3.4", | |
"Werkzeug>=1.0.1", | |
"six~=1.15.0", | |
] | |
QUALITY_REQUIRE = ["black~=22.0", "flake8>=3.8.3", "isort>=5.0.0", "pyyaml>=5.3.1"] | |
EXTRAS_REQUIRE = { | |
"tensorflow": ["tensorflow>=2.2.0,!=2.6.0,!=2.6.1"], | |
"tensorflow_gpu": ["tensorflow-gpu>=2.2.0,!=2.6.0,!=2.6.1"], | |
"torch": ["torch"], | |
"dev": TESTS_REQUIRE + QUALITY_REQUIRE, | |
"tests": TESTS_REQUIRE, | |
"quality": QUALITY_REQUIRE, | |
"docs": [ | |
# Might need to add doc-builder and some specific deps in the future | |
"s3fs", | |
], | |
"template": TEMPLATE_REQUIRE, | |
"evaluator": EVALUATOR_REQUIRE | |
} | |
setup( | |
name="evaluate", | |
version="0.4.2.dev0", # expected format is one of x.y.z.dev0, or x.y.z.rc1 or x.y.z (no to dashes, yes to dots) | |
description="HuggingFace community-driven open-source library of evaluation", | |
long_description=open("README.md", encoding="utf-8").read(), | |
long_description_content_type="text/markdown", | |
author="HuggingFace Inc.", | |
author_email="[email protected]", | |
url="https://github.com/huggingface/evaluate", | |
download_url="https://github.com/huggingface/evaluate/tags", | |
license="Apache 2.0", | |
package_dir={"": "src"}, | |
packages=find_packages("src"), | |
entry_points={"console_scripts": ["evaluate-cli=evaluate.commands.evaluate_cli:main"]}, | |
install_requires=REQUIRED_PKGS, | |
extras_require=EXTRAS_REQUIRE, | |
python_requires=">=3.7.0", | |
classifiers=[ | |
"Development Status :: 5 - Production/Stable", | |
"Intended Audience :: Developers", | |
"Intended Audience :: Education", | |
"Intended Audience :: Science/Research", | |
"License :: OSI Approved :: Apache Software License", | |
"Operating System :: OS Independent", | |
"Programming Language :: Python :: 3", | |
"Programming Language :: Python :: 3.7", | |
"Programming Language :: Python :: 3.8", | |
"Programming Language :: Python :: 3.9", | |
"Programming Language :: Python :: 3.10", | |
"Topic :: Scientific/Engineering :: Artificial Intelligence", | |
], | |
keywords="metrics machine learning evaluate evaluation", | |
zip_safe=False, # Required for mypy to find the py.typed file | |
) | |