Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
- Explicitly list ``docutils`` as a dependency.
- Add the ability to specify a ``:class:`` argument to set CSS classes
on programoutput nodes.
- [Internal] Convert static project metadata to ``pyproject.toml``.
- [Internal] Clarify conflicting licensing statements by setting them
all to the original BSD 2 Clause license.


0.19 (2026-02-20)
Expand Down
22 changes: 11 additions & 11 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
Copyright (c) 2010, 2011, 2012 Sebastian Wiesner <lunaryorn@googlemail.com>
All rights reserved.


Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Expand Down
75 changes: 74 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,76 @@
[build-system]
requires = ["setuptools"]
requires = ["setuptools>=61"]
build-backend = "setuptools.build_meta"

[project]
name = "sphinxcontrib-programoutput"
description = "Sphinx extension to include program output"
readme = "README.rst"
requires-python = ">=3.10"
license = "BSD-2-Clause"
license-files = [
'LICENSE',
]
keywords = ["sphinx", "cli", "command", "output", "program", "example"]
authors = [{name = "Sebastian Wiesner", email = "lunaryorn@gmail.com"}]
maintainers = [{name = "Jason Madden", email = "jason@seecoresoftware.com"}]
dependencies = [
"Sphinx >= 5.0.0",
"docutils",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"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",
"Topic :: Documentation",
"Topic :: Utilities",
"Framework :: Sphinx",
"Framework :: Sphinx :: Extension",
]
dynamic = ["version"]

[project.optional-dependencies]
test = [
# Sphinx 8.1 stopped raising SphinxWarning when the ``logger.warning``
# method is invoked. So we now have to test side effects.
# That's OK, and the same side effect test works on older
# versions as well.
"erbsland-sphinx-ansi >= 1.2.4",
]
docs = [
"furo",
]
ansi = [
"erbsland-sphinx-ansi >= 1.2.4",
]

[project.urls]
Homepage = "https://sphinxcontrib-programoutput.readthedocs.io/en/latest/"
Documentation = "https://sphinxcontrib-programoutput.readthedocs.io/en/latest/"
Repository = "https://github.com/OpenNTI/sphinxcontrib-programoutput/"
Issues = "https://github.com/OpenNTI/sphinxcontrib-programoutput/issues"
Changelog = "https://github.com/OpenNTI/sphinxcontrib-programoutput/blob/master/CHANGES.rst"

[tool.setuptools]
zip-safe = false
include-package-data = true
platforms = ["any"]

[tool.setuptools.dynamic]
version = {attr = "sphinxcontrib.programoutput.__version__"}

[tool.setuptools.packages.find]
where = ["src"]
namespaces = true

[tool.zest-releaser]
python-file-with-version = "src/sphinxcontrib/programoutput/__init__.py"
2 changes: 0 additions & 2 deletions setup.cfg

This file was deleted.

116 changes: 1 addition & 115 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,117 +1,3 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2011, 2012, Sebastian Wiesner <lunaryorn@gmail.com>
# All rights reserved.

# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:

# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.

# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.

import os
import re
from setuptools import setup
from setuptools import find_namespace_packages

def read_desc():
with open('README.rst', encoding='utf-8') as stream:
readme = stream.read()
# CHANGES.rst includes sphinx-specific markup, so
# it can't be in the long description without some processing
# that we're not doing -- its invalid ReST

return readme

def read_version_number():
VERSION_PATTERN = re.compile(r"__version__ = '([^']+)'")
with open(os.path.join('src', 'sphinxcontrib', 'programoutput', '__init__.py'),
encoding='utf-8') as stream:
for line in stream:
match = VERSION_PATTERN.search(line)
if match:
return match.group(1)

raise ValueError('Could not extract version number')

tests_require = [
# Sphinx 8.1 stopped raising SphinxWarning when the ``logger.warning``
# method is invoked. So we now have to test side effects.
# That's OK, and the same side effect test works on older
# versions as well.
"erbsland-sphinx-ansi >= 1.2.4",
]

setup(
name='sphinxcontrib-programoutput',
version=read_version_number(),
url='https://sphinxcontrib-programoutput.readthedocs.org/',
license='BSD',
author='Sebastian Wiesner',
author_email='lunaryorn@gmail.com',
maintainer="Jason Madden",
maintainer_email='jason@seecoresoftware.com',
description='Sphinx extension to include program output',
long_description=read_desc(),
keywords="sphinx cli command output program example",
zip_safe=False,
project_urls={
'Homepage': "https://sphinxcontrib-programoutput.readthedocs.io/en/latest/",
'Documentation': "https://sphinxcontrib-programoutput.readthedocs.io/en/latest/",
"Repository": "https://github.com/OpenNTI/sphinxcontrib-programoutput/",
"Issues": "https://github.com/OpenNTI/sphinxcontrib-programoutput/issues",
"Changelog":
"https://github.com/OpenNTI/sphinxcontrib-programoutput/blob/master/CHANGES.rst",
},
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 3 :: Only',
"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",
'Topic :: Documentation',
'Topic :: Utilities',
'Framework :: Sphinx',
'Framework :: Sphinx :: Extension',
],
platforms='any',
packages=find_namespace_packages('src'),
package_dir={'': 'src'},
include_package_data=True,
install_requires=[
'Sphinx >= 5.0.0',
'docutils',
],
extras_require={
'test': tests_require,
'docs': [
'furo',
],
'ansi': [
"erbsland-sphinx-ansi >= 1.2.4",
],
},
python_requires=">=3.10",
)
setup()