weblate/scripts/show-extras
Michal Čihař 0bf95a7cee fix(deps): exclude SAML from all extras
The xmlsec dependency is most tricky one we have, so remove the burden
of dealing with it from users who do not use SAML.

See #15163
2025-06-13 15:45:23 +02:00

42 lines
1.1 KiB
Python
Executable file
Vendored

#!/usr/bin/env python
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
import re
import tomllib
print(
"""
.. Table is generated using scripts/show-extras
.. list-table:: Optional dependencies
:header-rows: 1
* - Optional dependency specifier
- Python packages
- Weblate feature
"""
)
indent = " "
with open("pyproject.toml", "rb") as handle:
toml_dict = tomllib.load(handle)
for section, data in toml_dict["project"]["optional-dependencies"].items():
if section == "all":
continue
# Section name
print(f"{indent}* - ``{section}``")
# Actual dependencies
dependencies = [re.split(r"[;<>=[]", dependency)[0].strip() for dependency in data]
dependencies_links = [
f"| `{dependency} <https://pypi.org/project/{dependency}>`_"
for dependency in dependencies
]
dependencies_str = f"\n{indent} ".join(dependencies_links)
print(f"{indent} - {dependencies_str}")
# Placeholder for description
print(f"{indent} -")
print()