summaryrefslogtreecommitdiff
path: root/python-kinesis-python.spec
blob: 96d8bf39767f4d756eb5bc1483634d144f5bb81e (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
%global _empty_manifest_terminate_build 0
Name:		python-kinesis-python
Version:	0.2.1
Release:	1
Summary:	Low level, multiprocessing based AWS Kinesis producer & consumer library
License:	Apache License Version 2.0
URL:		https://github.com/NerdWalletOSS/kinesis-python
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/be/bb/7e54b23b64fd49ad9afedd5f3af992980a744023ab01b963e99ea2572a61/kinesis-python-0.2.1.tar.gz
BuildArch:	noarch

Requires:	python3-boto3
Requires:	python3-offspring
Requires:	python3-six

%description
The `official Kinesis python library`_ requires the use of Amazon's "MultiLangDaemon", which is a Java executable that
operates by piping messages over STDIN/STDOUT.
    ಠ_ಠ
While the desire to have a single implementation of the client library from a maintenance standpoint makes sense for
the team responsible for the KPL, requiring the JRE to be installed and having to account for the overhead of the
stream being consumed by Java and Python is not desireable for teams working in environments without Java.
This is a pure-Python implementation of Kinesis producer and consumer classes that leverages Python's multiprocessing
module to spawn a process per shard and then sends the messages back to the main process via a Queue.  It only depends
on `boto3`_ (AWS SDK), `offspring`_ (Subprocess implementation) and `six`_ (py2/py3 compatibility).
It also includes a DynamoDB state back-end that allows for multi-instance consumption of multiple shards, and stores the
checkpoint data so that you can resume where you left off in a stream following restarts or crashes.

%package -n python3-kinesis-python
Summary:	Low level, multiprocessing based AWS Kinesis producer & consumer library
Provides:	python-kinesis-python
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-kinesis-python
The `official Kinesis python library`_ requires the use of Amazon's "MultiLangDaemon", which is a Java executable that
operates by piping messages over STDIN/STDOUT.
    ಠ_ಠ
While the desire to have a single implementation of the client library from a maintenance standpoint makes sense for
the team responsible for the KPL, requiring the JRE to be installed and having to account for the overhead of the
stream being consumed by Java and Python is not desireable for teams working in environments without Java.
This is a pure-Python implementation of Kinesis producer and consumer classes that leverages Python's multiprocessing
module to spawn a process per shard and then sends the messages back to the main process via a Queue.  It only depends
on `boto3`_ (AWS SDK), `offspring`_ (Subprocess implementation) and `six`_ (py2/py3 compatibility).
It also includes a DynamoDB state back-end that allows for multi-instance consumption of multiple shards, and stores the
checkpoint data so that you can resume where you left off in a stream following restarts or crashes.

%package help
Summary:	Development documents and examples for kinesis-python
Provides:	python3-kinesis-python-doc
%description help
The `official Kinesis python library`_ requires the use of Amazon's "MultiLangDaemon", which is a Java executable that
operates by piping messages over STDIN/STDOUT.
    ಠ_ಠ
While the desire to have a single implementation of the client library from a maintenance standpoint makes sense for
the team responsible for the KPL, requiring the JRE to be installed and having to account for the overhead of the
stream being consumed by Java and Python is not desireable for teams working in environments without Java.
This is a pure-Python implementation of Kinesis producer and consumer classes that leverages Python's multiprocessing
module to spawn a process per shard and then sends the messages back to the main process via a Queue.  It only depends
on `boto3`_ (AWS SDK), `offspring`_ (Subprocess implementation) and `six`_ (py2/py3 compatibility).
It also includes a DynamoDB state back-end that allows for multi-instance consumption of multiple shards, and stores the
checkpoint data so that you can resume where you left off in a stream following restarts or crashes.

%prep
%autosetup -n kinesis-python-0.2.1

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

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

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