diff --git a/Makefile b/Makefile index 8d4d81cf..4fd319ab 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ install-test: python -m pip install -e ".[all]" pypi: - python setup.py sdist + python -m build twine upload dist/* clean: diff --git a/keybert/__init__.py b/keybert/__init__.py index 3ff2750c..01fa8378 100644 --- a/keybert/__init__.py +++ b/keybert/__init__.py @@ -1,4 +1,6 @@ +from importlib.metadata import version + from keybert._llm import KeyLLM from keybert._model import KeyBERT -__version__ = "0.8.4" +__version__ = version("keybert") diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..ba400ae7 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,87 @@ +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[project] +name = "keybert" +version = "0.8.4" +description = "KeyBERT performs keyword extraction with state-of-the-art transformer models." +readme = "README.md" +license = {file = "LICENSE"} +requires-python = ">=3.8" +authors = [ + { name = "Maarten Grootendorst", email = "maartengrootendorst@gmail.com" }, +] +keywords = [ + "nlp", + "bert", + "keyword", + "extraction", + "embeddings", +] +classifiers = [ + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: MIT License", + "Operating System :: MacOS", + "Operating System :: Microsoft :: Windows", + "Operating System :: POSIX", + "Operating System :: Unix", + "Programming Language :: Python", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Artificial Intelligence", +] +dependencies = [ + "numpy>=1.18.5", + "rich>=10.4.0", + "scikit-learn>=0.22.2", + "sentence-transformers>=0.3.8", +] + +[project.optional-dependencies] +dev = [ + "keybert[docs,test]", +] +docs = [ + "mkdocs-material>=4.6.3", + "mkdocs>=1.1", + "mkdocstrings>=0.8.0", +] +flair = [ + "flair>=0.7", + "torch>=1.4.0", + "transformers>=3.5.1", +] +gensim = [ + "gensim>=3.6.0", +] +spacy = [ + "spacy>=3.0.1", +] +test = [ + "black>=19.3b0", + "flake8>=3.6.0", + "pre-commit>=2.2.0", + "pytest-cov>=2.6.1", + "pytest>=5.4.3", +] +use = [ + "tensorflow", + "tensorflow_hub", + "tensorflow_text", +] + +[project.urls] +Documentation = "https://maartengr.github.io/KeyBERT/" +Homepage = "https://github.com/MaartenGr/KeyBERT" +Issues = "https://github.com/MaartenGr/KeyBERT/issues" +Repository = "https://github.com/MaartenGr/KeyBERT.git" + +[tool.setuptools.packages.find] +include = ["keybert*"] +exclude = ["tests"] diff --git a/setup.py b/setup.py deleted file mode 100644 index a2572a84..00000000 --- a/setup.py +++ /dev/null @@ -1,76 +0,0 @@ -from setuptools import setup, find_packages - -test_packages = [ - "pytest>=5.4.3", - "pytest-cov>=2.6.1", - "flake8>=3.6.0", - "pre-commit>=2.2.0", - "black>=19.3b0", -] - -base_packages = [ - "sentence-transformers>=0.3.8", - "scikit-learn>=0.22.2", - "numpy>=1.18.5", - "rich>=10.4.0", -] - -docs_packages = [ - "mkdocs>=1.1", - "mkdocs-material>=4.6.3", - "mkdocstrings>=0.8.0", -] - -flair_packages = ["transformers>=3.5.1", "torch>=1.4.0", "flair>=0.7"] - -spacy_packages = ["spacy>=3.0.1"] - -use_packages = ["tensorflow", "tensorflow_hub", "tensorflow_text"] - -gensim_packages = ["gensim>=3.6.0"] - -dev_packages = docs_packages + test_packages - -with open("README.md", "r", encoding="utf-8") as fh: - long_description = fh.read() - -setup( - name="keybert", - packages=find_packages(exclude=["notebooks", "docs"]), - version="0.8.4", - author="Maarten Grootendorst", - author_email="maartengrootendorst@gmail.com", - description="KeyBERT performs keyword extraction with state-of-the-art transformer models.", - long_description=long_description, - long_description_content_type="text/markdown", - url="https://github.com/MaartenGr/keyBERT", - keywords="nlp bert keyword extraction embeddings", - classifiers=[ - "Programming Language :: Python", - "Intended Audience :: Science/Research", - "Intended Audience :: Developers", - "Topic :: Scientific/Engineering :: Artificial Intelligence", - "License :: OSI Approved :: MIT License", - "Topic :: Scientific/Engineering", - "Operating System :: Microsoft :: Windows", - "Operating System :: POSIX", - "Operating System :: Unix", - "Operating System :: MacOS", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - ], - install_requires=base_packages, - extras_require={ - "test": test_packages, - "docs": docs_packages, - "dev": dev_packages, - "flair": flair_packages, - "spacy": spacy_packages, - "use": use_packages, - "gensim": gensim_packages, - }, - python_requires=">=3.8", -)