%global _empty_manifest_terminate_build 0
Name: python-kaskade
Version: 1.1.8
Release: 1
Summary: kaskade is a terminal user interface for kafka
License: MIT
URL: https://github.com/sauljabin/kaskade
Source0: https://mirrors.aliyun.com/pypi/web/packages/f3/89/82c55cf3c3f9a82b7a691fecc693ebbca6e5812b273f26648007eb3adfdc/kaskade-1.1.8.tar.gz
BuildArch: noarch
Requires: python3-PyYAML
Requires: python3-click
Requires: python3-confluent-kafka[json,protobuf,avro]
Requires: python3-pyfiglet
Requires: python3-requests
Requires: python3-rich
Requires: python3-textual
Requires: python3-typing-extensions
%description
**kaskade** is a read-only tui (text user interface) for [kafka](https://kafka.apache.org/).
:rocket: This project is powered by [textual](https://github.com/willmcgugan/textual)
and [rich](https://github.com/willmcgugan/rich)!.
For a local kafka environment go to https://github.com/sauljabin/kafka-docker.
# Table of Contents
- [Table of Contents](#table-of-contents)
- [Installation and Usage](#installation-and-usage)
- [Running with Docker](#running-with-docker)
- [Configuration](#configuration)
- [Kafka](#kafka)
- [Schema Registry](#schema-registry)
- [Kaskade](#kaskade)
- [Other Examples](#other-examples)
- [Screenshots](#screenshots)
- [Alternatives](#alternatives)
- [Development](#development)
- [Scripts](#scripts)
- [Docker](#docker)
- [Bumping Version](#bumping-version)
# Installation and Usage
Install with pip:
```shell
pip install kaskade
```
> `pip` will install `kaskade` and `kskd` aliases.
Upgrade with pip:
```shell
pip install --upgrade kaskade
```
Help:
```shell
kaskade --help
```
Version:
```shell
kaskade --version
```
Information, it shows app information:
```shell
kaskade --info
```
Configurations, it shows config examples:
```shell
kaskade --configs
```
Generating a default config yml file:
```shell
kaskade --yml
```
Run without config file (it'll take any of `kaskade.yml`, `kaskade.yaml`, `config.yml` or `config.yaml`):
```shell
kaskade
```
Run with config file:
```shell
kaskade my-config.yml
```
# Running with Docker
Using docker (remember to set a `network` and `volume`):
```shell
docker run --rm -it --network kafka \
--volume $(pwd):/kaskade \
sauljabin/kaskade:latest
```
Aliases:
```shell
alias kaskade='docker run --rm -it --network kafka \
--volume $(pwd):/kaskade \
sauljabin/kaskade:latest'
alias kskd=kaskade
```
> These aliases will mount the current directory as a volume.
# Configuration
A [yaml](https://yaml.org/spec/1.2/spec.html) configuration file
(check [Installation and Usage](#installation-and-usage) section for more information).
### Kafka
Simple connection example:
```yaml
kafka:
bootstrap.servers: localhost:9092
```
SSL encryption example:
```yaml
kafka:
bootstrap.servers: localhost:9092
security.protocol: SSL
```
> For more information about SSL encryption and SSL authentication go
> to [confluent-kafka](https://github.com/confluentinc/confluent-kafka-python#ssl-certificates)
> and [librdkafka](https://github.com/edenhill/librdkafka/wiki/Using-SSL-with-librdkafka#configure-librdkafka-client).
Support for env variables:
```yaml
kafka:
bootstrap.servers: ${BOOTSTRAP_SERVERS}
```
### Schema Registry
Simple connection example:
```yaml
schema.registry:
url: http://localhost:8081
```
### Kaskade
Next settings are optional:
```yaml
kaskade:
debug: off # enable debug mode, default off
refresh: on # enable auto-refresh, default on
refresh.rate: 5 # auto-refresh rate, default 5 secs
show.internals: off # show internal topics, default off
```
> `debug` enabled will generate logs into a specific log file, execute `kaskade --info` to get the log path.
### Other Examples
Confluent Cloud:
```yaml
kafka:
bootstrap.servers: ${BOOTSTRAP_SERVERS}
security.protocol: SASL_SSL
sasl.mechanism: PLAIN
sasl.username: ${CLUSTER_API_KEY}
sasl.password: ${CLUSTER_API_SECRET}
schema.registry:
url: ${SCHEMA_REGISTRY_URL}
basic.auth.user.info: ${SR_API_KEY}:${SR_API_SECRET}
```
# Screenshots
# Alternatives
- cli: [[kcat](https://github.com/edenhill/kcat), [zoe](https://github.com/adevinta/zoe), [kaf](https://github.com/birdayz/kaf)]
- wui: [[akhq](https://github.com/tchiotludo/akhq)]
- tui: [[kcli](https://github.com/cswank/kcli)]
# Development
Python supported versions:
Installing poetry:
```shell
pip install poetry
```
Installing development dependencies:
```shell
poetry install
```
Installing pre-commit hooks:
```shell
poetry run pre-commit install
```
Running kaskade:
```shell
poetry run kaskade
```
### Scripts
Running unit tests:
```shell
poetry run python -m scripts.tests
```
Applying code styles:
```shell
poetry run python -m scripts.styles
```
Running code analysis:
```shell
poetry run python -m scripts.analyze
```
Running code coverage:
```shell
poetry run python -m scripts.tests-coverage
```
Running pre-commit hooks:
```shell
poetry run python -m scripts.pre-commit
```
Generate readme banner:
```shell
poetry run python -m scripts.banner
```
### Docker
Build docker:
```shell
poetry run python -m scripts.docker-build
```
> Image tag `sauljabin/kaskade:latest`.
Run with docker (create a `config.yml` file):
```shell
docker run --rm -it --network kafka \
--volume $(pwd):/kaskade \
sauljabin/kaskade:latest
```
### Bumping Version
Help:
```shell
poetry run python -m scripts.release --help
```
> More info at https://python-poetry.org/docs/cli/#version and https://semver.org/.
Upgrade (`major.minor.patch`):
```shell
poetry run python -m scripts.release patch
```
%package -n python3-kaskade
Summary: kaskade is a terminal user interface for kafka
Provides: python-kaskade
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-kaskade
**kaskade** is a read-only tui (text user interface) for [kafka](https://kafka.apache.org/).
:rocket: This project is powered by [textual](https://github.com/willmcgugan/textual)
and [rich](https://github.com/willmcgugan/rich)!.
For a local kafka environment go to https://github.com/sauljabin/kafka-docker.
# Table of Contents
- [Table of Contents](#table-of-contents)
- [Installation and Usage](#installation-and-usage)
- [Running with Docker](#running-with-docker)
- [Configuration](#configuration)
- [Kafka](#kafka)
- [Schema Registry](#schema-registry)
- [Kaskade](#kaskade)
- [Other Examples](#other-examples)
- [Screenshots](#screenshots)
- [Alternatives](#alternatives)
- [Development](#development)
- [Scripts](#scripts)
- [Docker](#docker)
- [Bumping Version](#bumping-version)
# Installation and Usage
Install with pip:
```shell
pip install kaskade
```
> `pip` will install `kaskade` and `kskd` aliases.
Upgrade with pip:
```shell
pip install --upgrade kaskade
```
Help:
```shell
kaskade --help
```
Version:
```shell
kaskade --version
```
Information, it shows app information:
```shell
kaskade --info
```
Configurations, it shows config examples:
```shell
kaskade --configs
```
Generating a default config yml file:
```shell
kaskade --yml
```
Run without config file (it'll take any of `kaskade.yml`, `kaskade.yaml`, `config.yml` or `config.yaml`):
```shell
kaskade
```
Run with config file:
```shell
kaskade my-config.yml
```
# Running with Docker
Using docker (remember to set a `network` and `volume`):
```shell
docker run --rm -it --network kafka \
--volume $(pwd):/kaskade \
sauljabin/kaskade:latest
```
Aliases:
```shell
alias kaskade='docker run --rm -it --network kafka \
--volume $(pwd):/kaskade \
sauljabin/kaskade:latest'
alias kskd=kaskade
```
> These aliases will mount the current directory as a volume.
# Configuration
A [yaml](https://yaml.org/spec/1.2/spec.html) configuration file
(check [Installation and Usage](#installation-and-usage) section for more information).
### Kafka
Simple connection example:
```yaml
kafka:
bootstrap.servers: localhost:9092
```
SSL encryption example:
```yaml
kafka:
bootstrap.servers: localhost:9092
security.protocol: SSL
```
> For more information about SSL encryption and SSL authentication go
> to [confluent-kafka](https://github.com/confluentinc/confluent-kafka-python#ssl-certificates)
> and [librdkafka](https://github.com/edenhill/librdkafka/wiki/Using-SSL-with-librdkafka#configure-librdkafka-client).
Support for env variables:
```yaml
kafka:
bootstrap.servers: ${BOOTSTRAP_SERVERS}
```
### Schema Registry
Simple connection example:
```yaml
schema.registry:
url: http://localhost:8081
```
### Kaskade
Next settings are optional:
```yaml
kaskade:
debug: off # enable debug mode, default off
refresh: on # enable auto-refresh, default on
refresh.rate: 5 # auto-refresh rate, default 5 secs
show.internals: off # show internal topics, default off
```
> `debug` enabled will generate logs into a specific log file, execute `kaskade --info` to get the log path.
### Other Examples
Confluent Cloud:
```yaml
kafka:
bootstrap.servers: ${BOOTSTRAP_SERVERS}
security.protocol: SASL_SSL
sasl.mechanism: PLAIN
sasl.username: ${CLUSTER_API_KEY}
sasl.password: ${CLUSTER_API_SECRET}
schema.registry:
url: ${SCHEMA_REGISTRY_URL}
basic.auth.user.info: ${SR_API_KEY}:${SR_API_SECRET}
```
# Screenshots
# Alternatives
- cli: [[kcat](https://github.com/edenhill/kcat), [zoe](https://github.com/adevinta/zoe), [kaf](https://github.com/birdayz/kaf)]
- wui: [[akhq](https://github.com/tchiotludo/akhq)]
- tui: [[kcli](https://github.com/cswank/kcli)]
# Development
Python supported versions:
Installing poetry:
```shell
pip install poetry
```
Installing development dependencies:
```shell
poetry install
```
Installing pre-commit hooks:
```shell
poetry run pre-commit install
```
Running kaskade:
```shell
poetry run kaskade
```
### Scripts
Running unit tests:
```shell
poetry run python -m scripts.tests
```
Applying code styles:
```shell
poetry run python -m scripts.styles
```
Running code analysis:
```shell
poetry run python -m scripts.analyze
```
Running code coverage:
```shell
poetry run python -m scripts.tests-coverage
```
Running pre-commit hooks:
```shell
poetry run python -m scripts.pre-commit
```
Generate readme banner:
```shell
poetry run python -m scripts.banner
```
### Docker
Build docker:
```shell
poetry run python -m scripts.docker-build
```
> Image tag `sauljabin/kaskade:latest`.
Run with docker (create a `config.yml` file):
```shell
docker run --rm -it --network kafka \
--volume $(pwd):/kaskade \
sauljabin/kaskade:latest
```
### Bumping Version
Help:
```shell
poetry run python -m scripts.release --help
```
> More info at https://python-poetry.org/docs/cli/#version and https://semver.org/.
Upgrade (`major.minor.patch`):
```shell
poetry run python -m scripts.release patch
```
%package help
Summary: Development documents and examples for kaskade
Provides: python3-kaskade-doc
%description help
**kaskade** is a read-only tui (text user interface) for [kafka](https://kafka.apache.org/).
:rocket: This project is powered by [textual](https://github.com/willmcgugan/textual)
and [rich](https://github.com/willmcgugan/rich)!.
For a local kafka environment go to https://github.com/sauljabin/kafka-docker.
# Table of Contents
- [Table of Contents](#table-of-contents)
- [Installation and Usage](#installation-and-usage)
- [Running with Docker](#running-with-docker)
- [Configuration](#configuration)
- [Kafka](#kafka)
- [Schema Registry](#schema-registry)
- [Kaskade](#kaskade)
- [Other Examples](#other-examples)
- [Screenshots](#screenshots)
- [Alternatives](#alternatives)
- [Development](#development)
- [Scripts](#scripts)
- [Docker](#docker)
- [Bumping Version](#bumping-version)
# Installation and Usage
Install with pip:
```shell
pip install kaskade
```
> `pip` will install `kaskade` and `kskd` aliases.
Upgrade with pip:
```shell
pip install --upgrade kaskade
```
Help:
```shell
kaskade --help
```
Version:
```shell
kaskade --version
```
Information, it shows app information:
```shell
kaskade --info
```
Configurations, it shows config examples:
```shell
kaskade --configs
```
Generating a default config yml file:
```shell
kaskade --yml
```
Run without config file (it'll take any of `kaskade.yml`, `kaskade.yaml`, `config.yml` or `config.yaml`):
```shell
kaskade
```
Run with config file:
```shell
kaskade my-config.yml
```
# Running with Docker
Using docker (remember to set a `network` and `volume`):
```shell
docker run --rm -it --network kafka \
--volume $(pwd):/kaskade \
sauljabin/kaskade:latest
```
Aliases:
```shell
alias kaskade='docker run --rm -it --network kafka \
--volume $(pwd):/kaskade \
sauljabin/kaskade:latest'
alias kskd=kaskade
```
> These aliases will mount the current directory as a volume.
# Configuration
A [yaml](https://yaml.org/spec/1.2/spec.html) configuration file
(check [Installation and Usage](#installation-and-usage) section for more information).
### Kafka
Simple connection example:
```yaml
kafka:
bootstrap.servers: localhost:9092
```
SSL encryption example:
```yaml
kafka:
bootstrap.servers: localhost:9092
security.protocol: SSL
```
> For more information about SSL encryption and SSL authentication go
> to [confluent-kafka](https://github.com/confluentinc/confluent-kafka-python#ssl-certificates)
> and [librdkafka](https://github.com/edenhill/librdkafka/wiki/Using-SSL-with-librdkafka#configure-librdkafka-client).
Support for env variables:
```yaml
kafka:
bootstrap.servers: ${BOOTSTRAP_SERVERS}
```
### Schema Registry
Simple connection example:
```yaml
schema.registry:
url: http://localhost:8081
```
### Kaskade
Next settings are optional:
```yaml
kaskade:
debug: off # enable debug mode, default off
refresh: on # enable auto-refresh, default on
refresh.rate: 5 # auto-refresh rate, default 5 secs
show.internals: off # show internal topics, default off
```
> `debug` enabled will generate logs into a specific log file, execute `kaskade --info` to get the log path.
### Other Examples
Confluent Cloud:
```yaml
kafka:
bootstrap.servers: ${BOOTSTRAP_SERVERS}
security.protocol: SASL_SSL
sasl.mechanism: PLAIN
sasl.username: ${CLUSTER_API_KEY}
sasl.password: ${CLUSTER_API_SECRET}
schema.registry:
url: ${SCHEMA_REGISTRY_URL}
basic.auth.user.info: ${SR_API_KEY}:${SR_API_SECRET}
```
# Screenshots
# Alternatives
- cli: [[kcat](https://github.com/edenhill/kcat), [zoe](https://github.com/adevinta/zoe), [kaf](https://github.com/birdayz/kaf)]
- wui: [[akhq](https://github.com/tchiotludo/akhq)]
- tui: [[kcli](https://github.com/cswank/kcli)]
# Development
Python supported versions:
Installing poetry:
```shell
pip install poetry
```
Installing development dependencies:
```shell
poetry install
```
Installing pre-commit hooks:
```shell
poetry run pre-commit install
```
Running kaskade:
```shell
poetry run kaskade
```
### Scripts
Running unit tests:
```shell
poetry run python -m scripts.tests
```
Applying code styles:
```shell
poetry run python -m scripts.styles
```
Running code analysis:
```shell
poetry run python -m scripts.analyze
```
Running code coverage:
```shell
poetry run python -m scripts.tests-coverage
```
Running pre-commit hooks:
```shell
poetry run python -m scripts.pre-commit
```
Generate readme banner:
```shell
poetry run python -m scripts.banner
```
### Docker
Build docker:
```shell
poetry run python -m scripts.docker-build
```
> Image tag `sauljabin/kaskade:latest`.
Run with docker (create a `config.yml` file):
```shell
docker run --rm -it --network kafka \
--volume $(pwd):/kaskade \
sauljabin/kaskade:latest
```
### Bumping Version
Help:
```shell
poetry run python -m scripts.release --help
```
> More info at https://python-poetry.org/docs/cli/#version and https://semver.org/.
Upgrade (`major.minor.patch`):
```shell
poetry run python -m scripts.release patch
```
%prep
%autosetup -n kaskade-1.1.8
%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-kaskade -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Fri Jun 09 2023 Python_Bot - 1.1.8-1
- Package Spec generated