Compare commits

...
Sign in to create a new pull request.

12 commits

Author SHA1 Message Date
John Eckersberg
f3965c2bb3 New upstream release 6.0.3
Resolves: rhbz#2398910
2025-09-30 09:38:23 -04:00
Python Maint
0437d4abe6 Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 14:51:38 +02:00
Miro Hrončok
072a6204e1 Drop unneeded build dependency on python3-wheel
Motivated by https://github.com/fedora-eln/eln/issues/284
2025-08-27 13:08:16 +02:00
Python Maint
b879ba0bb0 Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 15:14:28 +02:00
Fedora Release Engineering
53e5626e58 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 15:56:40 +00:00
Python Maint
1a65ed4019 Rebuilt for Python 3.14 2025-06-02 22:53:19 +02:00
Fedora Release Engineering
bc3aaf9607 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 08:55:12 +00:00
Jonathan Wright
b879627e2a update to 6.0.2 2024-12-31 15:11:10 -06:00
Fedora Release Engineering
a483094a53 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 15:09:13 +00:00
Python Maint
548d13b406 Rebuilt for Python 3.13 2024-06-07 09:50:57 +02:00
Lukáš Zachar
b487804eb8 CI: Modernize runtest.sh 2024-04-11 17:06:53 +02:00
Štěpán Šigut
26b6c33011 Import CI tests from RHEL
This is from RHEL distgit tests/PyYAML, directory Sanity/Smoke.

The original commit hash: fd668cd6d20ca9c46d9bfa5ccf34f3a925317b25

Only necessary files were kept.

Co-Authored-By: Lukas Zachar <lzachar@redhat.com>
Co-Authored-By: Miro Hrončok <miro@hroncok.cz>
2024-04-11 17:05:14 +02:00
12 changed files with 139 additions and 49 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

2
.gitignore vendored
View file

@ -22,3 +22,5 @@ PyYAML-3.09.tar.gz
/6.0b1.tar.gz
/6.0.tar.gz
/6.0.1.tar.gz
/6.0.2.tar.gz
/6.0.3.tar.gz

View file

@ -1,39 +0,0 @@
From 17dc5b6cd96dcfe64fd71789c771ca9b96d260e5 Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Fri, 21 Jul 2023 09:50:00 -0400
Subject: [PATCH] Fix builds with Cython 3
This is a *de minimis* fix for building with Cython 3. Recent Cython<3
releases provided `Cython.Distutils.build_ext` as an alias to
`Cython.Distutils.old_build_ext.old_build_ext`; Cython 3 drops this
alias and instead uses a wholly new `Cython.Distutils.build_ext` that
does not provide the `cython_sources` function used in `setup.py`.
Explicitly importing `old_build_ext` preserves the existing behavior for
recent Cython<3 and uses the correct behavior for Cython 3. Should the
import fail (*e.g.*, because the version of Cython available predates
the availability of `old_build_ext`), the import falls back to just
`Cython.Distutils.build_ext`.
Signed-off-by: Andrew J. Hesford <ajh@sideband.org>
---
setup.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 944e7fa2..462b1e95 100644
--- a/setup.py
+++ b/setup.py
@@ -82,7 +82,11 @@
with_cython = True
try:
from Cython.Distutils.extension import Extension as _Extension
- from Cython.Distutils import build_ext as _build_ext
+ try:
+ from Cython.Distutils.old_build_ext import old_build_ext as _build_ext
+ except ImportError:
+ from Cython.Distutils import build_ext as _build_ext
+
with_cython = True
except ImportError:
if with_cython:

View file

@ -1,5 +1,5 @@
Name: PyYAML
Version: 6.0.1
Version: 6.0.3
Release: %autorelease
Summary: YAML parser and emitter for Python
@ -8,13 +8,10 @@ License: MIT
URL: https://github.com/yaml/pyyaml
Source: https://github.com/yaml/pyyaml/archive/%{version}.tar.gz
# Fix build with Cython 3
# Proposed upstream but refused (upstream does not want Cython 3)
Patch: https://github.com/yaml/pyyaml/pull/731.patch
BuildRequires: gcc
BuildRequires: libyaml-devel
BuildRequires: python3-devel
BuildRequires: python3-pytest
%global _description\
@ -48,9 +45,6 @@ chmod a-x examples/yaml-highlight/yaml_hl.py
# remove pre-generated file
rm -rf ext/_yaml.c
# we have a patch for Cython 3
sed -i 's/Cython<3.0/Cython/' pyproject.toml
%generate_buildrequires
%pyproject_buildrequires
@ -66,7 +60,7 @@ sed -i 's/Cython<3.0/Cython/' pyproject.toml
%check
%{py3_test_envvars} %{python3} tests/lib/test_all.py
%pytest
%files -n python3-pyyaml -f %{pyproject_files}

4
plan.fmf Normal file
View file

@ -0,0 +1,4 @@
discover:
how: fmf
execute:
how: tmt

View file

@ -1 +1 @@
SHA512 (6.0.1.tar.gz) = 1c74a92a4ad7d47854dc7bcb2e89b3c8e0b14fa815c7dbfbc22b24480dbba6c81e971c77ee384c494a960914b95f06edf943d7431925a5ed674a0ba830d258e0
SHA512 (6.0.3.tar.gz) = a0da43e32d127409ad61b11dc1d733b2e9c743977b3d72c05c81fc2ab183b40bc284452b0874dbeae1a736e1cd4a34f0df641ceefd5e9df38b3e53155fc5f633

5
tests/smoke/main.fmf Normal file
View file

@ -0,0 +1,5 @@
test: ./runtest.sh
framework: beakerlib
require:
- python3-pyyaml
duration: 5m

View file

@ -0,0 +1,3 @@
#!/usr/bin/env python
import yaml
print(yaml.dump({'name': 'Silenthand Olleander', 'race': 'Human', 'traits': ['ONE_HAND', 'ONE_EYE']}))

View file

@ -0,0 +1,13 @@
#!/usr/bin/env python
import yaml
documents = """
---
name: foo
---
name: bar
---
name: foobar
"""
for data in yaml.load_all(documents, Loader=yaml.SafeLoader):
print(data)

View file

@ -0,0 +1,24 @@
import yaml
class Hero:
def __init__(self, name, hp, sp):
self.name = name
self.hp = hp
self.sp = sp
def __repr__(self):
return "%s(name=%r, hp=%r, sp=%r)" % (
self.__class__.__name__, self.name, self.hp, self.sp)
STRING = """
!!python/object:__main__.Hero
name: Welthyr Syxgon
hp: 1200
sp: 0
"""
try:
yaml.load(STRING, Loader=yaml.SafeLoader)
raise RuntimeError("Didn't raise exception")
except yaml.constructor.ConstructorError:
pass
print(yaml.unsafe_load(STRING))

View file

@ -0,0 +1,9 @@
#!/usr/bin/env python
import yaml
document = """
a: 1
b:
c: 3
d: 4
"""
print(yaml.dump(yaml.load(document, Loader=yaml.SafeLoader)))

74
tests/smoke/runtest.sh Executable file
View file

@ -0,0 +1,74 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/PyYAML/Sanity/Smoke
# Description: Smoke test for this component
# Author: Stepan Sigut <ssigut@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PYTHON=${PYTHON:-"python3"}
PATTERN1="{'name': 'foo'}
{'name': 'bar'}
{'name': 'foobar'}"
PATTERN3="name: Silenthand Olleander
race: Human
traits: [ONE_HAND, ONE_EYE]"
PATTERN4="a: 1
b: {c: 3, d: 4}"
PATTERN5="Hero(name='Welthyr Syxgon', hp=1200, sp=0)"
set -o pipefail
rlJournalStart
rlPhaseStartSetup
# export python's MAJOR and MINOR version
rlRun "export $($PYTHON -c \
'import sys; print("MAJOR={0} MINOR={1}".format(\
sys.version_info[0],sys.version_info[1]))')"
rlPhaseEnd
rlPhaseStartTest "Running pyyaml_load.py"
rlRun -s "$PYTHON pyyaml_load.py"
rlAssertGrep "$PATTERN1" "$rlRun_LOG"
rlPhaseEnd
rlPhaseStartTest "Running pyyaml_dump.py"
rlRun -s "$PYTHON pyyaml_dump.py"
rlAssertGrep "$PATTERN3" "$rlRun_LOG"
rlPhaseEnd
rlPhaseStartTest "Running pyyaml_parse.py"
rlRun -s "$PYTHON pyyaml_parse.py"
rlAssertGrep "$PATTERN4" "$rlRun_LOG"
rlPhaseEnd
rlPhaseStartTest "Running pyyaml_object.py"
rlRun -s "$PYTHON pyyaml_object.py"
rlAssertGrep "$PATTERN5" "$rlRun_LOG"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd