summaryrefslogtreecommitdiff
path: root/python-pyfil.spec
blob: ba5e8d025de4775a5648d8a819f795dae318b5d0 (plain)
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
173
174
%global _empty_manifest_terminate_build 0
Name:		python-pyfil
Version:	1.10.0
Release:	1
Summary:	Python one-liners in the shell in the spirit of Perl and AWK
License:	BSD-2-Clause
URL:		https://github.com/ninjaaron/pyfil
Source0:	https://mirrors.aliyun.com/pypi/web/packages/70/b7/d5650c784bdf4dd37717b1defaf30eed80368f9a351a53d461d7878de870/pyfil-1.10.0.tar.gz
BuildArch:	noarch


%description
Python one-liners in the spirit of Perl and AWK.
``pyfil`` stands for PYthon FILter. One of the tenants of the `Unix
design`_ is that every program is a filter. It's especially obvious of
programs, like ``grep``, ``sed``, ``sort``, ``tr``, etc.
One notable example is ``awk`` -- a Turing-complete, interpreted
language for parsing text. While AWK scripts are still in use and it's a
fine language, it has been superseded for parsing scripts by more
general languages like Perl and later Python and Ruby. However, AWK was
designed to be especially useful in the shell as a filter, and it is
still in very commonly used for that today (in part because it is on
every \*nix system, but also because it's great at what it does). AWK is
able to be any arbitrary text filter that doesn't come as a coreutil.
``perl -e`` is also quite good as a filter, and Ruby has made a valiant
attempt to do so as well.
While Python does have a few good one-line uses (``python -m
http.server``), some elements of its design make it less suited than the
afore-mentioned languages. ``pyfil`` is one of several attempts to
address this issue. In particular, it takes a lot of cues in the
design of its CLI from AWK and Perl, and aims fundamentally to be a
capable text filter, though it will evaluate any arbitrary Python
expression and print its value (with modules being imported implicitly
as required).
As a more modern touch, it also has a special emphasis on
interoperability with JSON. If the return value of the evaluated
expression is a container type, Python will attempt to serialize it as
JSON before printing, so you can pipe output into other tools that deal
with JSON, store it to a file for later use, or send it over http. This,
combined with the ability to read JSON from stdin (with --json) make
``pyfil`` a good translator between the web, which tends to speak JSON
these days, and the POSIX environment, which tends to think about data
in terms of lines in a file (frequently with multiple fields per line).
pyfil is in pypi (i.e. you can get it easily with pip, if you want)
note:
  pyfil has only been tested with python3, and only has wheels available
  for python3

%package -n python3-pyfil
Summary:	Python one-liners in the shell in the spirit of Perl and AWK
Provides:	python-pyfil
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-pyfil
Python one-liners in the spirit of Perl and AWK.
``pyfil`` stands for PYthon FILter. One of the tenants of the `Unix
design`_ is that every program is a filter. It's especially obvious of
programs, like ``grep``, ``sed``, ``sort``, ``tr``, etc.
One notable example is ``awk`` -- a Turing-complete, interpreted
language for parsing text. While AWK scripts are still in use and it's a
fine language, it has been superseded for parsing scripts by more
general languages like Perl and later Python and Ruby. However, AWK was
designed to be especially useful in the shell as a filter, and it is
still in very commonly used for that today (in part because it is on
every \*nix system, but also because it's great at what it does). AWK is
able to be any arbitrary text filter that doesn't come as a coreutil.
``perl -e`` is also quite good as a filter, and Ruby has made a valiant
attempt to do so as well.
While Python does have a few good one-line uses (``python -m
http.server``), some elements of its design make it less suited than the
afore-mentioned languages. ``pyfil`` is one of several attempts to
address this issue. In particular, it takes a lot of cues in the
design of its CLI from AWK and Perl, and aims fundamentally to be a
capable text filter, though it will evaluate any arbitrary Python
expression and print its value (with modules being imported implicitly
as required).
As a more modern touch, it also has a special emphasis on
interoperability with JSON. If the return value of the evaluated
expression is a container type, Python will attempt to serialize it as
JSON before printing, so you can pipe output into other tools that deal
with JSON, store it to a file for later use, or send it over http. This,
combined with the ability to read JSON from stdin (with --json) make
``pyfil`` a good translator between the web, which tends to speak JSON
these days, and the POSIX environment, which tends to think about data
in terms of lines in a file (frequently with multiple fields per line).
pyfil is in pypi (i.e. you can get it easily with pip, if you want)
note:
  pyfil has only been tested with python3, and only has wheels available
  for python3

%package help
Summary:	Development documents and examples for pyfil
Provides:	python3-pyfil-doc
%description help
Python one-liners in the spirit of Perl and AWK.
``pyfil`` stands for PYthon FILter. One of the tenants of the `Unix
design`_ is that every program is a filter. It's especially obvious of
programs, like ``grep``, ``sed``, ``sort``, ``tr``, etc.
One notable example is ``awk`` -- a Turing-complete, interpreted
language for parsing text. While AWK scripts are still in use and it's a
fine language, it has been superseded for parsing scripts by more
general languages like Perl and later Python and Ruby. However, AWK was
designed to be especially useful in the shell as a filter, and it is
still in very commonly used for that today (in part because it is on
every \*nix system, but also because it's great at what it does). AWK is
able to be any arbitrary text filter that doesn't come as a coreutil.
``perl -e`` is also quite good as a filter, and Ruby has made a valiant
attempt to do so as well.
While Python does have a few good one-line uses (``python -m
http.server``), some elements of its design make it less suited than the
afore-mentioned languages. ``pyfil`` is one of several attempts to
address this issue. In particular, it takes a lot of cues in the
design of its CLI from AWK and Perl, and aims fundamentally to be a
capable text filter, though it will evaluate any arbitrary Python
expression and print its value (with modules being imported implicitly
as required).
As a more modern touch, it also has a special emphasis on
interoperability with JSON. If the return value of the evaluated
expression is a container type, Python will attempt to serialize it as
JSON before printing, so you can pipe output into other tools that deal
with JSON, store it to a file for later use, or send it over http. This,
combined with the ability to read JSON from stdin (with --json) make
``pyfil`` a good translator between the web, which tends to speak JSON
these days, and the POSIX environment, which tends to think about data
in terms of lines in a file (frequently with multiple fields per line).
pyfil is in pypi (i.e. you can get it easily with pip, if you want)
note:
  pyfil has only been tested with python3, and only has wheels available
  for python3

%prep
%autosetup -n pyfil-1.10.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-pyfil -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 1.10.0-1
- Package Spec generated