## START: Set by rpmautospec ## (rpmautospec version 0.2.5) %define autorelease(e:s:pb:) %{?-p:0.}%{lua: release_number = 2; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{?dist} ## END: Set by rpmautospec %global forgeurl https://github.com/crdoconnor/strictyaml %global tag %{version} Name: python-strictyaml Version: 1.6.1 %forgemeta Release: %autorelease Summary: Parses and validates a restricted subset of YAML License: MIT URL: http://hitchdev.com/strictyaml Source0: %{forgesource} # https://github.com/crdoconnor/strictyaml/issues/152 Source1: https://sourceforge.net/p/ruamel-yaml/code/ci/0.16.13/tree/LICENSE?format=raw#/LICENSE-ruamel-yaml BuildArch: noarch BuildRequires: python3-devel # We do not attempt to build the documentation, since it requires an # idiosyncratic build system (see https://hitchdev.com/) that is hopelessly # entangled with the idea of downloading dependencies from PyPI. An offline # build would be nearly impossible. %global common_description %{expand: StrictYAML is a type-safe YAML parser that parses and validates a restricted subset of the YAML specification. Priorities: • Beautiful API • Refusing to parse the ugly, hard to read and insecure features of YAML like the Norway problem. • Strict validation of markup and straightforward type casting. • Clear, readable exceptions with code snippets and line numbers. • Acting as a near-drop in replacement for pyyaml, ruamel.yaml or poyo. • Ability to read in YAML, make changes and write it out again with comments preserved. • Not speed, currently.} %description %{common_description} %package -n python3-strictyaml Summary: %{summary} # Upstream bundled/vendored a slightly older version of ruamel.yaml after an # update with API changes was too difficult to support. This is intended to be # a temporary workaround until the vendored library can be replaced with a # custom parser for StrictYAML. See # https://github.com/crdoconnor/strictyaml/issues/151 for discussion, and # strictyaml/ruamel/__init__.py for version information. Provides: bundled(python3dist(ruamel-yaml)) = 0.16.13 %description -n python3-strictyaml %{common_description} %prep %forgesetup cp -p '%{SOURCE1}' . # Upstream’s idiosyncratic build system normally handles this: sed -r -i 's/(__version__ *= *")DEVELOPMENT_VERSION"/\1%{version}"/' \ 'strictyaml/__init__.py' %generate_buildrequires %pyproject_buildrequires -r %build %pyproject_wheel %install %pyproject_install %pyproject_save_files strictyaml %check # There are no tests. (If there were, it would be as hard to run them as it is # to build the documentation.) We therefore do an import-only “smoke test.” We # must skip one module in the bundled ruamel-yaml because it does not include # the compiled C extension (_ruamel_yaml). # # We would prefer to use: # %%pyproject_check_import -e strictyaml.ruamel.cyaml # but this is not yet available in EPEL9. %{py3_check_import strictyaml strictyaml.any_validator strictyaml.compound strictyaml.constants strictyaml.dumper strictyaml.exceptions strictyaml.parser strictyaml.representation strictyaml.ruamel strictyaml.ruamel.anchor strictyaml.ruamel.comments strictyaml.ruamel.compat strictyaml.ruamel.composer strictyaml.ruamel.configobjwalker strictyaml.ruamel.constructor strictyaml.ruamel.dumper strictyaml.ruamel.emitter strictyaml.ruamel.error strictyaml.ruamel.events strictyaml.ruamel.loader strictyaml.ruamel.main strictyaml.ruamel.nodes strictyaml.ruamel.parser strictyaml.ruamel.reader strictyaml.ruamel.representer strictyaml.ruamel.resolver strictyaml.ruamel.scalarbool strictyaml.ruamel.scalarfloat strictyaml.ruamel.scalarint strictyaml.ruamel.scalarstring strictyaml.ruamel.scanner strictyaml.ruamel.serializer strictyaml.ruamel.timestamp strictyaml.ruamel.tokens strictyaml.ruamel.util strictyaml.scalar strictyaml.utils strictyaml.validators strictyaml.yamllocation strictyaml.yamlpointer} %files -n python3-strictyaml -f %{pyproject_files} %license LICENSE.txt LICENSE-ruamel-yaml %doc CHANGELOG.md %doc README.md %changelog * Mon Dec 13 2021 Benjamin A. Beasley 1.6.1-2 - Backport to EPEL9 * Sun Nov 28 2021 Benjamin A. Beasley 1.6.1-1 - Update to 1.6.1 (close RHBZ#2027119) * Sat Nov 20 2021 Benjamin A. Beasley 1.6.0-1 - Update to 1.6.0 (fix RHBZ#2025203) * Fri Oct 29 2021 Benjamin A. Beasley 1.5.0-3 - Use the new %%pyproject_check_import macro * Fri Oct 15 2021 Benjamin A. Beasley 1.5.0-2 - Fix strictyaml.__version__ * Fri Oct 15 2021 Benjamin A. Beasley 1.5.0-1 - Update to 1.5.0 * Mon Sep 13 2021 Benjamin A. Beasley 1.4.4-6 - Drop BR on pyproject-rpm-macros, now implied by python3-devel * Mon Sep 13 2021 Benjamin A. Beasley 1.4.4-5 - Reduce macro indirection in the spec file * Tue Jul 27 2021 Benjamin A. Beasley 1.4.4-4 - Move %generate_buildrequires after %prep to make the spec file easier to follow * Wed Jul 21 2021 Benjamin A. Beasley 1.4.4-3 - Add import “smoke test” * Sun Jun 20 2021 Benjamin A. Beasley - 1.4.4-1 - Update to 1.4.4 (closes RHBZ#1974003) - The package now bundles ruamel.yaml 0.16.13 until the author can supply a custom parser to replace it. * Fri Jun 04 2021 Python Maint - 1.4.0-2 - Rebuilt for Python 3.10 * Mon Mar 29 2021 Benjamin A. Beasley - 1.4.0-1 - Update to 1.4.0 - Start using pyproject-rpm-macros * Wed Jan 27 2021 Fedora Release Engineering - 1.3.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Tue Jan 19 14:10:19 EST 2021 Benjamin A. Beasley - 1.3.2-1 - Update to 1.3.2 * Tue Jan 12 11:40:57 EST 2021 Benjamin A. Beasley - 1.3.1-1 - Update to 1.3.1 * Sun Jan 10 13:51:32 EST 2021 Benjamin A. Beasley - 1.3.0-1 - Update to 1.3.0 * Sat Jan 2 16:01:07 EST 2021 Benjamin A. Beasley - 1.2.0-1 - Update to version 1.2.0 * Thu Nov 26 2020 Benjamin A. Beasley - 1.1.0-3 - Remove conditionals for Fedora 32 and older * Thu Nov 26 2020 Benjamin A. Beasley - 1.1.0-2 - Remove EPEL conditionals from Fedora spec file * Tue Nov 24 2020 Benjamin A. Beasley - 1.1.0-1 - Initial package