# Project configuration file for the "docutils" package (see PEP 518)

# Use flit as a build backend (https://flit.pypa.io/)
# Build with (https://build.pypa.io/)
[build-system]
requires = ["flit_core>=3.11,<4"]
build-backend = "flit_core.buildapi"

# Project metadata
# cf. https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
[project]
name = "docutils"
description = "Docutils -- Python Documentation Utilities"
readme = "README.rst"
urls.Changelog = "https://docutils.sourceforge.io/HISTORY.html"
urls.Code = "https://sourceforge.net/p/docutils/code/"
urls.Documentation = "https://docutils.sourceforge.io/docs/"
urls.Download = "https://pypi.org/project/docutils/"
urls.Homepage = "https://docutils.sourceforge.io"
urls."Issue tracker" = "https://sourceforge.net/p/docutils/bugs/"
license-files = [
    "COPYING.rst",
    "licenses/*.rst",
    "licenses/*.txt",
]
requires-python = ">=3.9"

# Classifiers list: https://pypi.org/classifiers/
classifiers = [
    "Development Status :: 4 - Beta",
    "Environment :: Console",
    "Intended Audience :: Developers",
    "Intended Audience :: End Users/Desktop",
    "Intended Audience :: Information Technology",
    "Intended Audience :: Other Audience",
    "Intended Audience :: System Administrators",
    "License :: Public Domain",
    "License :: OSI Approved :: BSD License",
    "License :: OSI Approved :: GNU General Public License (GPL)",
    "Operating System :: OS Independent",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3 :: Only",
    "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",
    "Topic :: Documentation",
    "Topic :: Software Development",
    "Topic :: Software Development :: Documentation",
    "Topic :: Text Editors :: Documentation",
    "Topic :: Text Processing",
    "Topic :: Text Processing :: General",
    "Topic :: Text Processing :: Markup",
    "Topic :: Text Processing :: Markup :: HTML",
    "Topic :: Text Processing :: Markup :: LaTeX",
    "Topic :: Text Processing :: Markup :: Markdown",
    "Topic :: Text Processing :: Markup :: reStructuredText",
    "Topic :: Text Processing :: Markup :: XML",
    "Topic :: Utilities",
    "Natural Language :: English",  # main/default language, keep first
    "Natural Language :: Afrikaans",
    "Natural Language :: Arabic",
    "Natural Language :: Catalan",
    "Natural Language :: Catalan (Valencian)",
    "Natural Language :: Chinese (Simplified)",
    "Natural Language :: Chinese (Traditional)",
    "Natural Language :: Czech",
    "Natural Language :: Danish",
    "Natural Language :: Dutch",
    "Natural Language :: Esperanto",
    "Natural Language :: Finnish",
    "Natural Language :: French",
    "Natural Language :: Galician",
    "Natural Language :: Georgian",
    "Natural Language :: German",
    "Natural Language :: Hebrew",
    "Natural Language :: Italian",
    "Natural Language :: Japanese",
    "Natural Language :: Korean",
    "Natural Language :: Latvian",
    "Natural Language :: Lithuanian",
    "Natural Language :: Persian",
    "Natural Language :: Polish",
    "Natural Language :: Portuguese (Brazilian)",
    "Natural Language :: Russian",
    "Natural Language :: Slovak",
    "Natural Language :: Spanish",
    "Natural Language :: Swedish",
    "Natural Language :: Ukrainian",
]
dynamic = ["version"]

[[project.authors]]
name = "David Goodger"
email = "goodger@python.org"

[[project.maintainers]]
name = "docutils-develop list"
email = "docutils-develop@lists.sourceforge.net"

[project.scripts]
docutils = "docutils.__main__:main"
rst2html = "docutils.core:rst2html"
rst2html4 = "docutils.core:rst2html4"
rst2html5 = "docutils.core:rst2html5"
rst2latex = "docutils.core:rst2latex"
rst2man = "docutils.core:rst2man"
rst2odt = "docutils.core:rst2odt"
rst2pseudoxml = "docutils.core:rst2pseudoxml"
rst2s5 = "docutils.core:rst2s5"
rst2xetex = "docutils.core:rst2xetex"
rst2xml = "docutils.core:rst2xml"


# Sdist (*.tar.gz) generation
[tool.flit.sdist]
include = [
    "*.rst",
    "*.txt",
    "tox.ini",
    "docutils/",
    "docs/",
    "licenses/",
    "test/",
    "tools/",
 ]

# TODO: Recursive globbing (**) is not supported yet (in exclude pattern '**/*~')
exclude = [
    "*~",
    "*/*~",
    "*.DS_Store",
    "*/*.DS_Store",
    "*/.pytest_cache",
    "test/alltests.out",
    "test/functional/output/[a-z]*",
    "test/record.txt",
]

# Codespell configuration (see https://pypi.org/project/codespell/)
[tool.codespell]
skip = [
    "test",
    "pep-*.rst",
    "iso*.txt",
]
ignore-words-list = [
    "ba",
    "complies",
    "ede",
    "fo",
    "hist",
    "ist",
    "ment",
    "nd",
    "ned",
    "ninjs",
    "ownward",
    "ream",
    "ro",
    "shttp",
    "ta",
    "te",
    "ue",
    "wee",
    "windos",
]
