commit ee403fda9645e4020a48da0d583326207cb2378e1a1ff2d41bd26ff41dfebbca Author: Thomas Bechtold Date: Tue Dec 4 13:02:18 2018 +0000 Accepting request 653850 from devel:languages:python:misc OBS-URL: https://build.opensuse.org/request/show/653850 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pykafka?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/pykafka-2.8.0.tar.gz b/pykafka-2.8.0.tar.gz new file mode 100644 index 0000000..ec15ef8 --- /dev/null +++ b/pykafka-2.8.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0bbd394ae6970042a587c99fe4dc0966e67787249d963d4ce2f810dc9490577 +size 141584 diff --git a/python-pykafka.changes b/python-pykafka.changes new file mode 100644 index 0000000..4887dea --- /dev/null +++ b/python-pykafka.changes @@ -0,0 +1,207 @@ +------------------------------------------------------------------- +Tue Dec 4 12:54:14 UTC 2018 - Thomas Bechtold + +- convert to singlespec +- use %license +- fix Requires + +------------------------------------------------------------------- +Tue Dec 4 12:27:40 UTC 2018 - Thomas Bechtold + +- update to version 2.8.0: + * Do not log a retry if there are no more retries + * correct gen id + * Fix issues with NoneType when shutting down + * refactor to split out _start_broker_proc to spin up new kafka instances when needed + * treat magic offset integers as timestamps instead of raw offset values + * use new api version selection interface with metadatarequests and metadataresponses + * tests for OffsetFetchRequestV2/OffsetFetchResponseV2 + * add parameter to balanced consumers + * fix protocol test bugs + * add reason to all new skipifs + * handle test-induced error a bit better + * stop relying on deprecated generationid + * change param name + * stub tests for new request/response + * do not autostart internal consumer, instead start it after setting consumer id + * catch nonodeerror when relinquishing partition + * upgrade pytest dependency + * use skip function instead of method decorator + * turn off new response for testing + * add test for partition offset commits + * use proper RDK flag + * clarify how partition_key is used in produce() doc + * Bump pytest from 3.7.0 to 3.7.1 + * fix tests for py3 + * change API_KEY to a class attribute on all protocol classes for use in utils.ApiVersionAware + * fix some errors in metadataresponse subclass population + * set controller broker from metadata response + * can't use fstrings in py2 + * fix infinite wait logic for gevent + * pass broker version to KafkaClient in SSL tests + * add tests for new ListOffsetRequestV1 + * add version suport information for older broker versions + * offset validation in reset_offsets + * fix last few skips + * add api_version to OffsetFetchRequest/OffsetFetchResponse + * increment version string for 2.7.0-dev.2 + * XXX comment for future + * test for valid timestamp value + * make mark_as_delivered an instance method to allow monkeypatching in tests + * documentation warnings about autocommit + * increment version string for 2.7.0 + * call cleanup() in fetch instead of autocommitter + * update packaging isntructions + * don't allow _wait_all to block indefinitely + * pin gevent requirement to avoid breaking kazoo import + * remove ancient readme note about samsa + * implement all versions of MetadataRequest + * update documentation to reflect type change + * fix iteration over owned_partition_offets + * convert bytes to str before encoding for py3 compat + * deprecate BalancedConsumer.zookeeper_connect and rename to zookeeper_hosts for standardization. fixes #920 + * split out has_message wait for clearer separation of concerns + * don't remove start kwarg + * change uses of OffsetRequest to ListOffsetRequest + * use lock context manager now that we never have to lock/unlock on retries + * remove unused imports from producer + * add InvalidTopic exception. fixes #846 + * Replace other instances of iteritems for PY3 compatibility + * xfail commonly failing tests + * update kazoo / gevent dependencies + * increment version for 2.8.0 + * fix exception formatting bug + * add note on connection loss handling to usage guide + * separate offset requesting and offset resetting/partition locking into two separate blocks to clarify and deduplicate the reset_offsets() function + * use a default timeout value that doesn't trigger an error + * raise custom exception for better self-description + * fix last_n_messages example + * warning -> info for api version message + * fix off-by-one + * only fetch api versions once to avoid costly requests on update() + * add the rest of the missing implementations to the protocol module and fix a handful of missing imports + * implement all six versions of MetadataResponse + * pass integer timestamps to PartitionOffsetRequest + * descriptive error message for buffer decode failures. fixes #598 + * Bump pytest from 3.7.2 to 3.7.3 + * allow broker_version to be specified via cli + * Retry 3 times by default to connect to the broker + * default queue empty wait to 0 to mimic previous behavior + * add test of serde + * add test to ensure sync producer raises an exception when messages are not marked as delivered + * update changelog for 2.8.0-dev.1 + * fix typo in changelog[ + * Bump lz4 from 2.0.1 to 2.0.2 + * README updates + * fix missing or incorrect imports + * add args to other consumer classes and docstrings + * Bump pytest from 3.7.4 to 3.8.1 + * skip legacy ssl wrapper test because of unresolved crashes + * implement kafka_tools.delete_topic + * add kwargs to rdkafka components + * missing imports + * improve logging and retry logic when broker is unreachable + * update tox gevent requirement + * Bump pytest from 3.6.3 to 3.6.4 + * remove initial generationid set + * add test cache to gitignore + * add serialize/deserialize hooks in producer and consumer to allow custom encodings + * stop/start the linger/flush cycle based on queue emptiness + * Bump xxhash from 1.1.0 to 1.2.0 + * Add test for retrying connection + * add missing docstrings + * handle magic offset integers in build_offset_request + * changelog updates for 2.7.0 + * add tests for earlier versions of FetchResponse. fixes #695 + * use ListOffsetResponseV1 where appropriate + * note about flush bug + * add test to ensure that unicode strings for consumer groups do not cause explosions + * gate controller broker setting on controller_id being set + * Bump pytest from 3.7.1 to 3.7.2 + * implement ListOffsetResponseV1 + * add param to rdkafka simpleconsumer + * Test against Kafka 1.0.1 rather than 1.0.0 + * Prevent attempts to reset the offset when trying to fetch consumer lag. + * add ability to specify offset in build_offset_commit_request + * fix internal logic in SimpleConsumer.reset_offsets to be more user-friendly have saner defaults + * docstrings for stock serde + * some logging improvements and a test of the timestamp reset functionality + * remove unused imports to trigger travis build + * fix broker version restriction on topic creation/deletion to match reality + * add blank version 2.8.0-dev.5 to fix pypi duplicated upload name error + * Bump pytest from 3.7.3 to 3.7.4 + * typo + * Minor typo fix + * add readme note about assignment strategies + * add long description to pypi info + * use library get_string fn instead of simple str() + * update issue template with note about duplicates + * fix typo in hardcoded api version specs + * update ApiVersionsResponse to use ApiVersionAware mixin + * add protocol tests for all versions of metadatarequest and metadataresponse + * add partition_offsets kwarg to SimpleConsumer.commit_offsets + * increment dev version + * stub version classes for metadataresponse + * skipid -> skip for rdkafka simpleconsumer tst + * add partition_offsets kwarg to BalancedConsumer.commit_offsets for consistency + * fix rdkafka producer test + * implement ListOffsetRequestV1 and change OffsetRequest to ListOffsetRequest + * set up protocol module, move admin and fetch to it + * implement topic delete request and response protocol + * non-code style nitpicks in message.py + * pykafka-816 : Fix for CPU issue seen in _produce because of metadata update failure + * more consistent kwarg naming + * OffsetFetchResponseV2 fix: top level error_code was not parsed + * fix param name + * make infinite waiting on empty queue configurable + * add note about design + * fix relative imports for py3 + * add coding + * in-depth docstring explanation of how the ListOffsets API works + * raise error when no response was found for api version discovery + * skip-f -> skip + * use logging.NullHandler to kill nuisance messages about no handlers found. fixes #772 + * disable new listoffsetrequest for now, since it requires new message format + * Bump pytest from 3.6.4 to 3.7.0 + * add test for ApiVersionsRequest + * changelog for 2.8.0 + * set consumer_id outside of init + * skip tests on travis for now + * explanatory docs about the new param + * create interface to work around missing kwarg on simpleconsumer + * changelog for 2.8.0-dev.2 + * changelog for 2.8.0-dev.3 + * changelog for 2.8.0-dev.4 + * handle datetimes as offsets_before in fetch_offset_limit(s) calls + * add test for apiversionsresponse + * Bump lz4 from 0.10.1 to 2.0.1 + * pass a null array to metadatarequest >=v1 to indicate all topics + * Bump lz4 from 2.0.2 to 2.1.0 + * bytes for py3 tests + * only add brokers to replicas set that the cluster is aware of + * update changelog for 2.7.0-dev.2 + * define epoch in common for timestamp building + * turn off new version as a test + * reset versions, use correct namedtuple typename + * move base definitions to base.py to avoid circular imports + * another skipif -> skip + * use cluster.controller_broker to send topic creation request to the proper broker + * encode consumer groups and topic names as ascii bytestrings + * allow pending_timeout_ms=-1 to denote indefinite blocking + * fix base class implementation of get_versions, for use in ApiVersionAware + * unit tests for topics api requests/responses + * implement Broker.delete_topics + * remove protocol.py + * Bump xxhash from 1.0.1 to 1.1.0 + * add "last N messages" example to usage guide. fixes #829 + * add noqa markers throughout protocol tests to make linting more usable + * fix broken test + * raise ProduceFailureError when delivery report is not found after timeout + * basic implementation of retrying BrokerConnection, pending tests + +------------------------------------------------------------------- +Thu Feb 9 13:00:57 UTC 2017 - dmueller@suse.com + +- Initial packaging (2.5.0) + + diff --git a/python-pykafka.spec b/python-pykafka.spec new file mode 100644 index 0000000..f0e08b7 --- /dev/null +++ b/python-pykafka.spec @@ -0,0 +1,76 @@ +# +# spec file for package python-pykafka +# +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +%{?!python_module:%define python_module() python-%{**} python3-%{**}} +Name: python-pykafka +Version: 2.8.0 +Release: 0 +Summary: Full-Featured Pure-Python Kafka Client +License: Apache-2.0 +Group: Development/Languages/Python +Url: https://github.com/Parsely/pykafka +Source: https://pypi.io/packages/source/p/pykafka/pykafka-%{version}.tar.gz +BuildRequires: %{python_module devel} +BuildRequires: %{python_module setuptools} +BuildRequires: python-rpm-macros +BuildRequires: fdupes +Requires: python-six +Requires: python-kazoo +Requires: python-tabulate +Requires: python-gevent +Requires: python-setuptools + +%python_subpackages + +%description +PyKafka is a cluster-aware Kafka>=0.8.2 client for Python. It includes Python +implementations of Kafka producers and consumers, which are optionally backed +by a C extension built on `librdkafka`_, and runs under Python 2.7+, Python 3.4+, +and PyPy. + +.. _librdkafka: https://github.com/edenhill/librdkafka + +PyKafka's primary goal is to provide a similar level of abstraction to the +`JVM Kafka client`_ using idioms familiar to Python programmers and exposing +the most Pythonic API possible. + +%prep +%setup -q -n pykafka-%{version} + +%build +%python_build + +%install +%python_install + +%python_clone -a %{buildroot}%{_bindir}/kafka-tools +%python_expand %fdupes %{buildroot}%{$python_sitearch} + +%post +%{python_install_alternative kafka-tools} + +%postun +%python_uninstall_alternative kafka-tools + +%files %{python_files} +%license LICENSE +%defattr(-,root,root,-) +%python_alternative %{_bindir}/kafka-tools +%{python_sitearch}/* + +%changelog