1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
%global _empty_manifest_terminate_build 0
Name: python-rtyaml
Version: 1.0.0
Release: 1
Summary: All the annoying things to make YAML usable in a source controlled environment.
License: CC0 (copyright waived)
URL: https://github.com/unitedstates/rtyaml
Source0: https://mirrors.aliyun.com/pypi/web/packages/be/2f/e2b907ac01ecc56efac82b6fc9fa411403fe430f5e2e2e7ce86858bc1aab/rtyaml-1.0.0.tar.gz
BuildArch: noarch
Requires: python3-pyyaml
%description
Primary author: Joshua Tauberer <https://razor.occams.info>
- GitHub: <https://github.com/unitedstates/rtyaml>
- PyPi: <https://pypi.python.org/pypi/rtyaml>
This module is a wrapper around `pyyaml` to read and write YAML files with some improvements:
- Round-tripping YAML files is possible by preserving the order of keys. In Python 3.7+, just use regular `dict`s. In prior versions of Python, use `collections.OrderedDict`.
- Saner defaults are set for how strings are written out to YAML (see below).
- Other sane defaults are chosen like using the "safe" loader/dumper.
- A comment block found at the very beginning of a stream when loading YAML is preserved when writing it back out.
## What do you mean by round-tripping?
Round-tripping is when you load a file and then save it unchanged, you expect the bytes on disk not to change. This isn't possible with PyYAML, and it makes it difficult to use YAML files with version control like git because every time you load and save the file, things can get rearranged. Keys can change order, string quoting styles can change, #-comments are removed, and so on.
Although `rtyaml` can't provide round-tripping for all files, it does set some sane defaults on PyYAML so that it's easier to achieve. For instance, if you load this file with PyYAML:

and then save it back out unchanged:
```python
import yaml
print(yaml.dump(yaml.load(open('example.yaml'))))
```
you get this mess:

Notice how the comment is gone, the keys `zz`, `yy`, `xx` changed order, the strings are inconsistently formatted, nulls use a confusing keyword, and mappings are condensed into single lines.
With `ryaml`, you actually get the original file back! That's basically the whole point of this library.
## Installation and usage
Install:
pip install rtyaml
(or pip3 --- this module works in both Python 2 and Python 3)
Usage:
import rtyaml
with open("myfile.yaml") as f:
stuff = rtyaml.load(f)
# ...do things to stuf...
with open("myfile.yaml", "w") as f:
rtyaml.dump(stuff, f)
As in the underlying pyyaml library, `load` accepts a string or bytes-string containing YAML or an open file object (binary or text). Also, the second argument to `dump` is optional and if omitted the function returns the YAML in a string.
`load_all` and `dump_all` are also supported, which load and save lists of documents using YAML's `---` document separator.
%package -n python3-rtyaml
Summary: All the annoying things to make YAML usable in a source controlled environment.
Provides: python-rtyaml
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-rtyaml
Primary author: Joshua Tauberer <https://razor.occams.info>
- GitHub: <https://github.com/unitedstates/rtyaml>
- PyPi: <https://pypi.python.org/pypi/rtyaml>
This module is a wrapper around `pyyaml` to read and write YAML files with some improvements:
- Round-tripping YAML files is possible by preserving the order of keys. In Python 3.7+, just use regular `dict`s. In prior versions of Python, use `collections.OrderedDict`.
- Saner defaults are set for how strings are written out to YAML (see below).
- Other sane defaults are chosen like using the "safe" loader/dumper.
- A comment block found at the very beginning of a stream when loading YAML is preserved when writing it back out.
## What do you mean by round-tripping?
Round-tripping is when you load a file and then save it unchanged, you expect the bytes on disk not to change. This isn't possible with PyYAML, and it makes it difficult to use YAML files with version control like git because every time you load and save the file, things can get rearranged. Keys can change order, string quoting styles can change, #-comments are removed, and so on.
Although `rtyaml` can't provide round-tripping for all files, it does set some sane defaults on PyYAML so that it's easier to achieve. For instance, if you load this file with PyYAML:

and then save it back out unchanged:
```python
import yaml
print(yaml.dump(yaml.load(open('example.yaml'))))
```
you get this mess:

Notice how the comment is gone, the keys `zz`, `yy`, `xx` changed order, the strings are inconsistently formatted, nulls use a confusing keyword, and mappings are condensed into single lines.
With `ryaml`, you actually get the original file back! That's basically the whole point of this library.
## Installation and usage
Install:
pip install rtyaml
(or pip3 --- this module works in both Python 2 and Python 3)
Usage:
import rtyaml
with open("myfile.yaml") as f:
stuff = rtyaml.load(f)
# ...do things to stuf...
with open("myfile.yaml", "w") as f:
rtyaml.dump(stuff, f)
As in the underlying pyyaml library, `load` accepts a string or bytes-string containing YAML or an open file object (binary or text). Also, the second argument to `dump` is optional and if omitted the function returns the YAML in a string.
`load_all` and `dump_all` are also supported, which load and save lists of documents using YAML's `---` document separator.
%package help
Summary: Development documents and examples for rtyaml
Provides: python3-rtyaml-doc
%description help
Primary author: Joshua Tauberer <https://razor.occams.info>
- GitHub: <https://github.com/unitedstates/rtyaml>
- PyPi: <https://pypi.python.org/pypi/rtyaml>
This module is a wrapper around `pyyaml` to read and write YAML files with some improvements:
- Round-tripping YAML files is possible by preserving the order of keys. In Python 3.7+, just use regular `dict`s. In prior versions of Python, use `collections.OrderedDict`.
- Saner defaults are set for how strings are written out to YAML (see below).
- Other sane defaults are chosen like using the "safe" loader/dumper.
- A comment block found at the very beginning of a stream when loading YAML is preserved when writing it back out.
## What do you mean by round-tripping?
Round-tripping is when you load a file and then save it unchanged, you expect the bytes on disk not to change. This isn't possible with PyYAML, and it makes it difficult to use YAML files with version control like git because every time you load and save the file, things can get rearranged. Keys can change order, string quoting styles can change, #-comments are removed, and so on.
Although `rtyaml` can't provide round-tripping for all files, it does set some sane defaults on PyYAML so that it's easier to achieve. For instance, if you load this file with PyYAML:

and then save it back out unchanged:
```python
import yaml
print(yaml.dump(yaml.load(open('example.yaml'))))
```
you get this mess:

Notice how the comment is gone, the keys `zz`, `yy`, `xx` changed order, the strings are inconsistently formatted, nulls use a confusing keyword, and mappings are condensed into single lines.
With `ryaml`, you actually get the original file back! That's basically the whole point of this library.
## Installation and usage
Install:
pip install rtyaml
(or pip3 --- this module works in both Python 2 and Python 3)
Usage:
import rtyaml
with open("myfile.yaml") as f:
stuff = rtyaml.load(f)
# ...do things to stuf...
with open("myfile.yaml", "w") as f:
rtyaml.dump(stuff, f)
As in the underlying pyyaml library, `load` accepts a string or bytes-string containing YAML or an open file object (binary or text). Also, the second argument to `dump` is optional and if omitted the function returns the YAML in a string.
`load_all` and `dump_all` are also supported, which load and save lists of documents using YAML's `---` document separator.
%prep
%autosetup -n rtyaml-1.0.0
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-rtyaml -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Thu Jun 08 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.0-1
- Package Spec generated
|