summaryrefslogtreecommitdiff
path: root/python-toredis-fork.spec
blob: 0c5cba0e62634280bff2b089cb6e9814bc584a92 (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
%global _empty_manifest_terminate_build 0
Name:		python-toredis-fork
Version:	0.1.4
Release:	1
Summary:	Really simple async Redis client for Tornado
License:	http://www.apache.org/licenses/LICENSE-2.0
URL:		http://github.com/mrjoes/toredis/
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/fb/3c/1224e002cf9f1d23dad5d5ac0ded131c994d00b50f66ca76198778350bcd/toredis-fork-0.1.4.tar.gz
BuildArch:	noarch


%description
This is minimalistic, but feature rich redis client for Tornado built on top of `hiredis <https://github.com/pietern/hiredis-py>`_ protocol parser.
Supports all redis commands, which are auto-generated from the redis `JSON documentation file <https://github.com/antirez/redis-doc/blob/master/commands.json>`_.
Key design points:
1. While toredis attempts to add some syntactical sugar to the API, all responses are returned "as is". For example, if command returns
   list of items and developer requested only one key, list with one entry will be returned. For example::
    def handle(self, result):
        print(len(result))
    conn.hkeys('test1', handle)
2. Most redis commands accept one or more keys. Toredis adds a bit of logic to handle single key or array of keys. Due to python
   limitations, it is not possible to use ``*args`` with named ``callback`` argument, so you will have to pass array of key names::
    # This will work
    conn.blpop('test', callback=callback)
    conn.blpop(['test', 'test2'], callback=callback)
    # This won't work
    conn.blpop('test', 'test2', callback=callback)
3. If redis connection will be dropped while waiting for response, callback will be triggered with `None` as a value.
4. Toredis does not provide reconnection feature, but you can override :meth:`~toredis.Client.on_disconnect` method and implement your reconnection logic.
You can find command `documentation here <https://github.com/mrjoes/toredis/blob/master/toredis/commands.py>`_ (will be moved to rtd later).
Pipelining is also supported::
    # For more than one pipeline for connection create it with Pipeline(conn)
    pipeline = conn.pipeline()
    pipeline.set('foo', 'bar')
    pipeline.get('foo')
    pipeline.send(callback=callback)
For more examples please refer to tests.
More on `redis pipelining <http://redis.io/topics/pipelining>`_.
Things missing:
* Backport pure-python redis protocol parser (for PyPy support)
* Connection pools

%package -n python3-toredis-fork
Summary:	Really simple async Redis client for Tornado
Provides:	python-toredis-fork
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-toredis-fork
This is minimalistic, but feature rich redis client for Tornado built on top of `hiredis <https://github.com/pietern/hiredis-py>`_ protocol parser.
Supports all redis commands, which are auto-generated from the redis `JSON documentation file <https://github.com/antirez/redis-doc/blob/master/commands.json>`_.
Key design points:
1. While toredis attempts to add some syntactical sugar to the API, all responses are returned "as is". For example, if command returns
   list of items and developer requested only one key, list with one entry will be returned. For example::
    def handle(self, result):
        print(len(result))
    conn.hkeys('test1', handle)
2. Most redis commands accept one or more keys. Toredis adds a bit of logic to handle single key or array of keys. Due to python
   limitations, it is not possible to use ``*args`` with named ``callback`` argument, so you will have to pass array of key names::
    # This will work
    conn.blpop('test', callback=callback)
    conn.blpop(['test', 'test2'], callback=callback)
    # This won't work
    conn.blpop('test', 'test2', callback=callback)
3. If redis connection will be dropped while waiting for response, callback will be triggered with `None` as a value.
4. Toredis does not provide reconnection feature, but you can override :meth:`~toredis.Client.on_disconnect` method and implement your reconnection logic.
You can find command `documentation here <https://github.com/mrjoes/toredis/blob/master/toredis/commands.py>`_ (will be moved to rtd later).
Pipelining is also supported::
    # For more than one pipeline for connection create it with Pipeline(conn)
    pipeline = conn.pipeline()
    pipeline.set('foo', 'bar')
    pipeline.get('foo')
    pipeline.send(callback=callback)
For more examples please refer to tests.
More on `redis pipelining <http://redis.io/topics/pipelining>`_.
Things missing:
* Backport pure-python redis protocol parser (for PyPy support)
* Connection pools

%package help
Summary:	Development documents and examples for toredis-fork
Provides:	python3-toredis-fork-doc
%description help
This is minimalistic, but feature rich redis client for Tornado built on top of `hiredis <https://github.com/pietern/hiredis-py>`_ protocol parser.
Supports all redis commands, which are auto-generated from the redis `JSON documentation file <https://github.com/antirez/redis-doc/blob/master/commands.json>`_.
Key design points:
1. While toredis attempts to add some syntactical sugar to the API, all responses are returned "as is". For example, if command returns
   list of items and developer requested only one key, list with one entry will be returned. For example::
    def handle(self, result):
        print(len(result))
    conn.hkeys('test1', handle)
2. Most redis commands accept one or more keys. Toredis adds a bit of logic to handle single key or array of keys. Due to python
   limitations, it is not possible to use ``*args`` with named ``callback`` argument, so you will have to pass array of key names::
    # This will work
    conn.blpop('test', callback=callback)
    conn.blpop(['test', 'test2'], callback=callback)
    # This won't work
    conn.blpop('test', 'test2', callback=callback)
3. If redis connection will be dropped while waiting for response, callback will be triggered with `None` as a value.
4. Toredis does not provide reconnection feature, but you can override :meth:`~toredis.Client.on_disconnect` method and implement your reconnection logic.
You can find command `documentation here <https://github.com/mrjoes/toredis/blob/master/toredis/commands.py>`_ (will be moved to rtd later).
Pipelining is also supported::
    # For more than one pipeline for connection create it with Pipeline(conn)
    pipeline = conn.pipeline()
    pipeline.set('foo', 'bar')
    pipeline.get('foo')
    pipeline.send(callback=callback)
For more examples please refer to tests.
More on `redis pipelining <http://redis.io/topics/pipelining>`_.
Things missing:
* Backport pure-python redis protocol parser (for PyPy support)
* Connection pools

%prep
%autosetup -n toredis-fork-0.1.4

%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-toredis-fork -f filelist.lst
%dir %{python3_sitelib}/*

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

%changelog
* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.4-1
- Package Spec generated