summaryrefslogtreecommitdiff
path: root/python-pyvaru.spec
blob: 074235673887be7d9f6de8627c7f1fd6a7065a1b (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
%global _empty_manifest_terminate_build 0
Name:		python-pyvaru
Version:	0.3.0
Release:	1
Summary:	Rule based data validation library for python.
License:	MIT
URL:		https://github.com/daveoncode/pyvaru
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/bc/73/08101145042d74f1e441a294345888012ef0ad3198901a192bc4f1418d58/pyvaru-0.3.0.tar.gz
BuildArch:	noarch


%description
Pyvaru is a simple, flexible and unobtrusive data validation library for Python 3 (3.4+),
based on the concept of validation rules.
From the software design point of view, a rule is a class implementing the strategy pattern, 
by encapsulating the validation logic in an interface method called ``apply()``.
The library already offers a series of common validation rules like:
- ``TypeRule`` (it checks that the target value is an instance of the expected type)
- ``FullStringRule`` (it checks the the target value is a string with content)
- ``ChoiceRule`` (it checks that the target value is contained in a list of available options)
- ``MinValueRule`` (it checks that the target value is >= x) *
- ``MaxValueRule`` (it checks that the target value is <= x) *
- ``MinLengthRule`` (it checks that the target value length is >= x) *
- ``MaxLengthRule`` (it checks that the target value length is <= x) *
- ``RangeRule`` (it checks that the target value is contained in a given ``range``)
- ``IntervalRule`` (it checks that the target value is contained in a given interval)
- ``PatternRule`` (it checks that the target value matches a given regular expression)
- ``PastDateRule`` (it checks that the target value is a date in the past)
- ``FutureDateRule`` (it checks that the target value is a date in the future)
- ``UniqueItemsRule`` (it checks that the target iterable does not contain duplicated items)
\* where "x" is a provided reference value
The developer is then free to create his custom rules by extending the abstract ``ValidationRule``
and implementing the logic in the ``apply()`` method. For example:
    class ContainsHelloRule(ValidationRule):
        def apply(self) -> bool:
            return 'hello' in self.apply_to
These rules are then executed by a ``Validator``, which basically executes them in the provided
order and eventually returns a ``ValidationResult`` containing the validation response.

%package -n python3-pyvaru
Summary:	Rule based data validation library for python.
Provides:	python-pyvaru
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-pyvaru
Pyvaru is a simple, flexible and unobtrusive data validation library for Python 3 (3.4+),
based on the concept of validation rules.
From the software design point of view, a rule is a class implementing the strategy pattern, 
by encapsulating the validation logic in an interface method called ``apply()``.
The library already offers a series of common validation rules like:
- ``TypeRule`` (it checks that the target value is an instance of the expected type)
- ``FullStringRule`` (it checks the the target value is a string with content)
- ``ChoiceRule`` (it checks that the target value is contained in a list of available options)
- ``MinValueRule`` (it checks that the target value is >= x) *
- ``MaxValueRule`` (it checks that the target value is <= x) *
- ``MinLengthRule`` (it checks that the target value length is >= x) *
- ``MaxLengthRule`` (it checks that the target value length is <= x) *
- ``RangeRule`` (it checks that the target value is contained in a given ``range``)
- ``IntervalRule`` (it checks that the target value is contained in a given interval)
- ``PatternRule`` (it checks that the target value matches a given regular expression)
- ``PastDateRule`` (it checks that the target value is a date in the past)
- ``FutureDateRule`` (it checks that the target value is a date in the future)
- ``UniqueItemsRule`` (it checks that the target iterable does not contain duplicated items)
\* where "x" is a provided reference value
The developer is then free to create his custom rules by extending the abstract ``ValidationRule``
and implementing the logic in the ``apply()`` method. For example:
    class ContainsHelloRule(ValidationRule):
        def apply(self) -> bool:
            return 'hello' in self.apply_to
These rules are then executed by a ``Validator``, which basically executes them in the provided
order and eventually returns a ``ValidationResult`` containing the validation response.

%package help
Summary:	Development documents and examples for pyvaru
Provides:	python3-pyvaru-doc
%description help
Pyvaru is a simple, flexible and unobtrusive data validation library for Python 3 (3.4+),
based on the concept of validation rules.
From the software design point of view, a rule is a class implementing the strategy pattern, 
by encapsulating the validation logic in an interface method called ``apply()``.
The library already offers a series of common validation rules like:
- ``TypeRule`` (it checks that the target value is an instance of the expected type)
- ``FullStringRule`` (it checks the the target value is a string with content)
- ``ChoiceRule`` (it checks that the target value is contained in a list of available options)
- ``MinValueRule`` (it checks that the target value is >= x) *
- ``MaxValueRule`` (it checks that the target value is <= x) *
- ``MinLengthRule`` (it checks that the target value length is >= x) *
- ``MaxLengthRule`` (it checks that the target value length is <= x) *
- ``RangeRule`` (it checks that the target value is contained in a given ``range``)
- ``IntervalRule`` (it checks that the target value is contained in a given interval)
- ``PatternRule`` (it checks that the target value matches a given regular expression)
- ``PastDateRule`` (it checks that the target value is a date in the past)
- ``FutureDateRule`` (it checks that the target value is a date in the future)
- ``UniqueItemsRule`` (it checks that the target iterable does not contain duplicated items)
\* where "x" is a provided reference value
The developer is then free to create his custom rules by extending the abstract ``ValidationRule``
and implementing the logic in the ``apply()`` method. For example:
    class ContainsHelloRule(ValidationRule):
        def apply(self) -> bool:
            return 'hello' in self.apply_to
These rules are then executed by a ``Validator``, which basically executes them in the provided
order and eventually returns a ``ValidationResult`` containing the validation response.

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

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

%changelog
* Tue Apr 25 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.0-1
- Package Spec generated