[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "sumy" version = "0.12.0" description = "Module for automatic summarization of text documents and HTML pages." readme = "README.md" license = { text = "Apache License, Version 2.0" } authors = [ { name = "Mišo Belica", email = "miso.belica@gmail.com" } ] requires-python = ">=3.8" keywords = [ "data mining", "automatic summarization", "data reduction", "web-data extraction", "NLP", "natural language processing", "latent semantic analysis", "LSA", "TextRank", "LexRank", ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "License :: OSI Approved :: Apache Software License", "Natural Language :: Chinese (Simplified)", "Natural Language :: Czech", "Natural Language :: English", "Natural Language :: French", "Natural Language :: German", "Natural Language :: Hebrew", "Natural Language :: Italian", "Natural Language :: Japanese", "Natural Language :: Polish", "Natural Language :: Portuguese", "Natural Language :: Slovak", "Natural Language :: Spanish", "Natural Language :: Swedish", "Natural Language :: Ukrainian", "Natural Language :: Greek", "Natural Language :: Arabic", "Natural Language :: Thai", "Topic :: Education", "Topic :: Internet", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Text Processing :: Filters", "Topic :: Text Processing :: Linguistic", "Topic :: Text Processing :: Markup :: HTML", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "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", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] dependencies = [ "docopt-ng>=0.6.1", "breadability>=0.1.20", "lxml-html-clean", # Required by breadability (lxml.html.clean was moved to separate package) "requests>=2.7.0", "pycountry>=18.2.23", "nltk>=3.0.2", "setuptools>=65.0.0", # Required by breadability for pkg_resources ] [project.optional-dependencies] LSA = ["numpy"] LexRank = ["numpy"] Japanese = ["tinysegmenter"] Chinese = ["jieba"] Korean = ["konlpy"] Hebrew = ["hebrew_tokenizer"] Greek = ["greek-stemmer-pos"] Arabic = ["pyarabic"] Thai = ["pythainlp"] Polish = ["pystempel"] [dependency-groups] dev = [ "pytest>=3.0.0", "pytest-cov", "codecov", "invoke", ] [project.scripts] sumy = "sumy.__main__:main" sumy_eval = "sumy.evaluation.__main__:main" [project.urls] Homepage = "https://github.com/miso-belica/sumy" Repository = "https://github.com/miso-belica/sumy" [tool.hatch.build.targets.wheel] packages = ["sumy"] [tool.hatch.build.targets.sdist] include = [ "sumy/", "README.md", "LICENSE.md", "CHANGELOG.md", ] [tool.bumpversion] current_version = "0.12.0" commit = false tag = false [[tool.bumpversion.files]] filename = "pyproject.toml" search = 'version = "{current_version}"' replace = 'version = "{new_version}"' [[tool.bumpversion.files]] filename = "sumy/__init__.py" [[tool.bumpversion.files]] filename = "tasks.py" [tool.isort] multi_line_output = 5 [tool.ruff] target-version = "py38" line-length = 120 # Exclude a variety of commonly ignored directories. exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".hg", ".mypy_cache", ".nox", ".pants.d", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "venv", ] [tool.ruff.lint] # Never enforce `E501` (line length violations). ignore = ["E501"] # Ignore `E402` (import violations) in all `__init__.py` files, and in `_compat.py`. [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] "_compat.py" = ["F401"] [tool.flake8] ignore = ["S001", "D100"] max-line-length = 160 inline-quotes = "double" multiline-quotes = "double" docstring-quotes = "double"