diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-08 18:45:23 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-08 18:45:23 +0000 |
commit | 3e77fab01ecb071004eec284e429140f857110f3 (patch) | |
tree | a484ac8a80fb01b49244c26e1858150f45874340 | |
parent | 7e8640bd02d8a46e6499ff1cb92a2a63b85783f4 (diff) |
automatic import of python-subdivisionsopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-subdivisions.spec | 518 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 520 insertions, 0 deletions
@@ -0,0 +1 @@ +/subdivisions-1.47.0.tar.gz diff --git a/python-subdivisions.spec b/python-subdivisions.spec new file mode 100644 index 0000000..028ee07 --- /dev/null +++ b/python-subdivisions.spec @@ -0,0 +1,518 @@ +%global _empty_manifest_terminate_build 0 +Name: python-subdivisions +Version: 1.47.0 +Release: 1 +Summary: A55 AWS PubSub Library +License: GPL-3.0 +URL: https://github.com/access55/subdivisions +Source0: https://mirrors.aliyun.com/pypi/web/packages/58/a7/db9f319b703a12de11698fac3c299ca1f2e7d4159e94436a86ebf4344329/subdivisions-1.47.0.tar.gz +BuildArch: noarch + +Requires: python3-arrow +Requires: python3-asbool +Requires: python3-boto3 +Requires: python3-coverage +Requires: python3-loguru +Requires: python3-mypy +Requires: python3-dotenv +Requires: python3-stringcase + +%description +# Welcome to Subdivisions + +[](https://pypi.org/project/subdivisions/) +[](https://github.com/access55/subdivisions/actions) +[](https://www.python.org) +[](https://conventionalcommits.org) +[](https://github.com/psf/black) +[](https://github.com/pre-commit/pre-commit) + +[A55 Python library for PubSub Messaging](https://www.youtube.com/watch?v=EYYdQB0mkEU) + +### Install in Project + +```toml + +# pyproject.toml +# Add in every project which will +# receive or send messages +[tool.subdivisions] +source_name = "ProjectName" # ex.: "Client-Manager" + +[tool.poetry.dependencies] +subdivisions = "*" +``` +Run `poetry update` + +### Usage +#### Send Messages +```python +from subdivisions.client import SubClient +from subdivisions.events import UserEvents + +client = SubClient() +client.topic = UserEvents.USER_REGISTERED +client.send({"foo": "bar"}) +``` + +#### Receive Messages +```python +from subdivisions.client import SubClient +from subdivisions.events import UserEvents + +client = SubClient() +client.topic = UserEvents.USER_REGISTERED +messages = client.get_messages() # use the ``from_dead_letter=True` to receive Dead Letter messages +# Process messages +client.delete_received_messages() +``` + +### Full Configuration options + +Configure subdivisions options in `pyproject.toml` file, inside `[tool.subdivisions]` table: + +```toml +# pyproject.toml +[tool.subdivisions] +aws_region = "us-east-1" # AWS Region +aws_allowed_account = "" # AWS Allowed Account Id for create artifacts / send messages +pub_key = "alias/PubSubKey" # KMS PubSubKey (must be created first) +sqs_tags = [] # SQS tags for new queues. Example [{"foo": "bar"}] +queue_prefix = "" # Prefix for new SQS queues +queue_suffix = "" # Suffix for new SQS queues +queue_max_receive_count = 1000 # SQS MaxReceiveCount setting +sns_prefix = "" # Prefix for new SNS topics +sns_suffix = "" # Suffix for new SNS topics +sns_tags = [] # SNS tags for new topics. Example [{"foo": "bar"}] +event_prefix = "" # Prefix for new Eventbride rules +event_suffix = "" # Suffix for new Eventbride rules +event_tags = [] # Eventbridge tags for new rules. Example [{"foo": "bar"}] +event_bus = "default" # Eventbridge Bus +source_name = "" # Eventbridge default source name. No default, must inform +auto_create_new_topic = true # Auto create new topic if not exists in Eventbridge +auto_remove_from_queue = false # Acknowledge first messages on receive +use_aws_env_vars = true # Use AWS default env vars. If false append "SUBDIVISION_" on env vars. Example: "SUBDIVISION_AWS_ACCESS_KEY_ID" +default_prefix = "a55" # Default prefix for all sns, sqs and rule created +default_suffix = "" # Default suffix for all sns, sqs and rule created +``` + +All options above can be configured in environment variables. Just append `SUBDIVISIONS_` on name. Example: `SUBDIVISIONS_SOURCE_NAME="my_project"` + +### Local Development + +For local development, please first clone and install this project: + +```shell +git clone git@github.com:access55/subdivisions.git /path/to/project +cd /path/to/project + +# Install on WSL/Linux +make install + +# Install on Powershell +poetry install +``` + + +#### Example: Adding a new Topic +To avoid different names in different projects for the same topic, (i.e: "client_registered" and +"customer_registered") please add new events using Python Enum on `subdivisions.event` module: + +```python +# subdivisions.events +from enum import unique, Enum + +@unique +class MyNewEvents(Enum): + MY_NEW_EVENT = "my_new_event" +``` + +#### Commit using a conventional commit message + +To generate a new PyPI version, at least one commit must following the +[Conventional Commit](https://www.conventionalcommits.org/en/v1.0.0/) Specification, when you can +add the `feat:` or `fix:` prefix in your message: + +```shell +# Create a new patch event. Ex. 1.0.0 to 1.0.1 +git commit -m "fix: Event Bug" + +# Create a new minor event. Ex. 1.0.0 to 1.1.0 +git commit -m "feat: Add New Event" + +# Create a new major event. Ex. 1.0.0 to 2.0.0 +git commit -m "feat!: Add New Event \n\nBREAKING CHANGE: API changed" +``` +Without a `feat:` or `fix:` prefixed commited message, code will not generate a new PyPI version. + +### Using AWS Credentials locally + +Subdivisions will use AWS default environment variables. If you need to define another credentials, use the following variables: + +```env +SUBDIVISIONS_USE_AWS_ENV_VARS="false" +SUBDIVISIONS_AWS_ACCESS_KEY_ID="your id" +SUBDIVISIONS_AWS_SECRET_ACCESS_KEY="your key" +SUBDIVISIONS_AWS_SESSION_TOKEN="your token" # optional +``` + +### Using Subdivisions in LOCALSTACK + +To use with localstack, you need to activate the sqs, sns, events, and kms services and add them to your .env file: + +```env +LOCALSTACK_HOSTNAME_LOCAL="http://localstack:4566" +``` + + + +%package -n python3-subdivisions +Summary: A55 AWS PubSub Library +Provides: python-subdivisions +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-subdivisions +# Welcome to Subdivisions + +[](https://pypi.org/project/subdivisions/) +[](https://github.com/access55/subdivisions/actions) +[](https://www.python.org) +[](https://conventionalcommits.org) +[](https://github.com/psf/black) +[](https://github.com/pre-commit/pre-commit) + +[A55 Python library for PubSub Messaging](https://www.youtube.com/watch?v=EYYdQB0mkEU) + +### Install in Project + +```toml + +# pyproject.toml +# Add in every project which will +# receive or send messages +[tool.subdivisions] +source_name = "ProjectName" # ex.: "Client-Manager" + +[tool.poetry.dependencies] +subdivisions = "*" +``` +Run `poetry update` + +### Usage +#### Send Messages +```python +from subdivisions.client import SubClient +from subdivisions.events import UserEvents + +client = SubClient() +client.topic = UserEvents.USER_REGISTERED +client.send({"foo": "bar"}) +``` + +#### Receive Messages +```python +from subdivisions.client import SubClient +from subdivisions.events import UserEvents + +client = SubClient() +client.topic = UserEvents.USER_REGISTERED +messages = client.get_messages() # use the ``from_dead_letter=True` to receive Dead Letter messages +# Process messages +client.delete_received_messages() +``` + +### Full Configuration options + +Configure subdivisions options in `pyproject.toml` file, inside `[tool.subdivisions]` table: + +```toml +# pyproject.toml +[tool.subdivisions] +aws_region = "us-east-1" # AWS Region +aws_allowed_account = "" # AWS Allowed Account Id for create artifacts / send messages +pub_key = "alias/PubSubKey" # KMS PubSubKey (must be created first) +sqs_tags = [] # SQS tags for new queues. Example [{"foo": "bar"}] +queue_prefix = "" # Prefix for new SQS queues +queue_suffix = "" # Suffix for new SQS queues +queue_max_receive_count = 1000 # SQS MaxReceiveCount setting +sns_prefix = "" # Prefix for new SNS topics +sns_suffix = "" # Suffix for new SNS topics +sns_tags = [] # SNS tags for new topics. Example [{"foo": "bar"}] +event_prefix = "" # Prefix for new Eventbride rules +event_suffix = "" # Suffix for new Eventbride rules +event_tags = [] # Eventbridge tags for new rules. Example [{"foo": "bar"}] +event_bus = "default" # Eventbridge Bus +source_name = "" # Eventbridge default source name. No default, must inform +auto_create_new_topic = true # Auto create new topic if not exists in Eventbridge +auto_remove_from_queue = false # Acknowledge first messages on receive +use_aws_env_vars = true # Use AWS default env vars. If false append "SUBDIVISION_" on env vars. Example: "SUBDIVISION_AWS_ACCESS_KEY_ID" +default_prefix = "a55" # Default prefix for all sns, sqs and rule created +default_suffix = "" # Default suffix for all sns, sqs and rule created +``` + +All options above can be configured in environment variables. Just append `SUBDIVISIONS_` on name. Example: `SUBDIVISIONS_SOURCE_NAME="my_project"` + +### Local Development + +For local development, please first clone and install this project: + +```shell +git clone git@github.com:access55/subdivisions.git /path/to/project +cd /path/to/project + +# Install on WSL/Linux +make install + +# Install on Powershell +poetry install +``` + + +#### Example: Adding a new Topic +To avoid different names in different projects for the same topic, (i.e: "client_registered" and +"customer_registered") please add new events using Python Enum on `subdivisions.event` module: + +```python +# subdivisions.events +from enum import unique, Enum + +@unique +class MyNewEvents(Enum): + MY_NEW_EVENT = "my_new_event" +``` + +#### Commit using a conventional commit message + +To generate a new PyPI version, at least one commit must following the +[Conventional Commit](https://www.conventionalcommits.org/en/v1.0.0/) Specification, when you can +add the `feat:` or `fix:` prefix in your message: + +```shell +# Create a new patch event. Ex. 1.0.0 to 1.0.1 +git commit -m "fix: Event Bug" + +# Create a new minor event. Ex. 1.0.0 to 1.1.0 +git commit -m "feat: Add New Event" + +# Create a new major event. Ex. 1.0.0 to 2.0.0 +git commit -m "feat!: Add New Event \n\nBREAKING CHANGE: API changed" +``` +Without a `feat:` or `fix:` prefixed commited message, code will not generate a new PyPI version. + +### Using AWS Credentials locally + +Subdivisions will use AWS default environment variables. If you need to define another credentials, use the following variables: + +```env +SUBDIVISIONS_USE_AWS_ENV_VARS="false" +SUBDIVISIONS_AWS_ACCESS_KEY_ID="your id" +SUBDIVISIONS_AWS_SECRET_ACCESS_KEY="your key" +SUBDIVISIONS_AWS_SESSION_TOKEN="your token" # optional +``` + +### Using Subdivisions in LOCALSTACK + +To use with localstack, you need to activate the sqs, sns, events, and kms services and add them to your .env file: + +```env +LOCALSTACK_HOSTNAME_LOCAL="http://localstack:4566" +``` + + + +%package help +Summary: Development documents and examples for subdivisions +Provides: python3-subdivisions-doc +%description help +# Welcome to Subdivisions + +[](https://pypi.org/project/subdivisions/) +[](https://github.com/access55/subdivisions/actions) +[](https://www.python.org) +[](https://conventionalcommits.org) +[](https://github.com/psf/black) +[](https://github.com/pre-commit/pre-commit) + +[A55 Python library for PubSub Messaging](https://www.youtube.com/watch?v=EYYdQB0mkEU) + +### Install in Project + +```toml + +# pyproject.toml +# Add in every project which will +# receive or send messages +[tool.subdivisions] +source_name = "ProjectName" # ex.: "Client-Manager" + +[tool.poetry.dependencies] +subdivisions = "*" +``` +Run `poetry update` + +### Usage +#### Send Messages +```python +from subdivisions.client import SubClient +from subdivisions.events import UserEvents + +client = SubClient() +client.topic = UserEvents.USER_REGISTERED +client.send({"foo": "bar"}) +``` + +#### Receive Messages +```python +from subdivisions.client import SubClient +from subdivisions.events import UserEvents + +client = SubClient() +client.topic = UserEvents.USER_REGISTERED +messages = client.get_messages() # use the ``from_dead_letter=True` to receive Dead Letter messages +# Process messages +client.delete_received_messages() +``` + +### Full Configuration options + +Configure subdivisions options in `pyproject.toml` file, inside `[tool.subdivisions]` table: + +```toml +# pyproject.toml +[tool.subdivisions] +aws_region = "us-east-1" # AWS Region +aws_allowed_account = "" # AWS Allowed Account Id for create artifacts / send messages +pub_key = "alias/PubSubKey" # KMS PubSubKey (must be created first) +sqs_tags = [] # SQS tags for new queues. Example [{"foo": "bar"}] +queue_prefix = "" # Prefix for new SQS queues +queue_suffix = "" # Suffix for new SQS queues +queue_max_receive_count = 1000 # SQS MaxReceiveCount setting +sns_prefix = "" # Prefix for new SNS topics +sns_suffix = "" # Suffix for new SNS topics +sns_tags = [] # SNS tags for new topics. Example [{"foo": "bar"}] +event_prefix = "" # Prefix for new Eventbride rules +event_suffix = "" # Suffix for new Eventbride rules +event_tags = [] # Eventbridge tags for new rules. Example [{"foo": "bar"}] +event_bus = "default" # Eventbridge Bus +source_name = "" # Eventbridge default source name. No default, must inform +auto_create_new_topic = true # Auto create new topic if not exists in Eventbridge +auto_remove_from_queue = false # Acknowledge first messages on receive +use_aws_env_vars = true # Use AWS default env vars. If false append "SUBDIVISION_" on env vars. Example: "SUBDIVISION_AWS_ACCESS_KEY_ID" +default_prefix = "a55" # Default prefix for all sns, sqs and rule created +default_suffix = "" # Default suffix for all sns, sqs and rule created +``` + +All options above can be configured in environment variables. Just append `SUBDIVISIONS_` on name. Example: `SUBDIVISIONS_SOURCE_NAME="my_project"` + +### Local Development + +For local development, please first clone and install this project: + +```shell +git clone git@github.com:access55/subdivisions.git /path/to/project +cd /path/to/project + +# Install on WSL/Linux +make install + +# Install on Powershell +poetry install +``` + + +#### Example: Adding a new Topic +To avoid different names in different projects for the same topic, (i.e: "client_registered" and +"customer_registered") please add new events using Python Enum on `subdivisions.event` module: + +```python +# subdivisions.events +from enum import unique, Enum + +@unique +class MyNewEvents(Enum): + MY_NEW_EVENT = "my_new_event" +``` + +#### Commit using a conventional commit message + +To generate a new PyPI version, at least one commit must following the +[Conventional Commit](https://www.conventionalcommits.org/en/v1.0.0/) Specification, when you can +add the `feat:` or `fix:` prefix in your message: + +```shell +# Create a new patch event. Ex. 1.0.0 to 1.0.1 +git commit -m "fix: Event Bug" + +# Create a new minor event. Ex. 1.0.0 to 1.1.0 +git commit -m "feat: Add New Event" + +# Create a new major event. Ex. 1.0.0 to 2.0.0 +git commit -m "feat!: Add New Event \n\nBREAKING CHANGE: API changed" +``` +Without a `feat:` or `fix:` prefixed commited message, code will not generate a new PyPI version. + +### Using AWS Credentials locally + +Subdivisions will use AWS default environment variables. If you need to define another credentials, use the following variables: + +```env +SUBDIVISIONS_USE_AWS_ENV_VARS="false" +SUBDIVISIONS_AWS_ACCESS_KEY_ID="your id" +SUBDIVISIONS_AWS_SECRET_ACCESS_KEY="your key" +SUBDIVISIONS_AWS_SESSION_TOKEN="your token" # optional +``` + +### Using Subdivisions in LOCALSTACK + +To use with localstack, you need to activate the sqs, sns, events, and kms services and add them to your .env file: + +```env +LOCALSTACK_HOSTNAME_LOCAL="http://localstack:4566" +``` + + + +%prep +%autosetup -n subdivisions-1.47.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-subdivisions -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu Jun 08 2023 Python_Bot <Python_Bot@openeuler.org> - 1.47.0-1 +- Package Spec generated @@ -0,0 +1 @@ +4b59fdb42d4fdf1905e307251a355df3 subdivisions-1.47.0.tar.gz |