%global _empty_manifest_terminate_build 0 Name: python-Garcon Version: 1.0.2 Release: 1 Summary: Lightweight library for AWS SWF. License: MIT URL: https://github.com/xethorn/garcon/ Source0: https://mirrors.aliyun.com/pypi/web/packages/be/43/09fd97dc630d0df0ebb094d09b86223f98390757ef134b81e0364c86e35c/Garcon-1.0.2.tar.gz BuildArch: noarch Requires: python3-boto Requires: python3-backoff %description |Build Status| |Coverage Status| Lightweight library for AWS SWF. Garcon deals with easy going clients and kitchens. It takes orders from clients (deciders), and send them to the kitchen (activities). Difficult clients and kitchens can be handled directly by the restaurant manager. Requirements ~~~~~~~~~~~~ - Python 3.5, 3.6, 3.7, 3.8 (tested) - Boto3 (tested) Goal ~~~~ The goal of this library is to allow the creation of Amazon Simple Workflow without the need to worry about the orchestration of the different activities and building out the different workers. This framework aims to help simple workflows. If you have a more complex case, you might want to use directly boto. Code sample ~~~~~~~~~~~ The code sample shows a workflow that has 4 activities. It starts with activity\_1, which after being completed schedule activity\_2 and activity\_3 to be ran in parallel. The workflow ends after the completion of activity\_4 which requires activity\_2 and activity\_3 to be completed. .. code:: python import boto3 from garcon import activity from garcon import runner client = boto3.client('swf', region_name='us-east-1') domain = 'dev' name = 'workflow_sample' create = activity.create(client, domain, name) test_activity_1 = create( name='activity_1', run=runner.Sync( lambda activity, context: print('activity_1'))) test_activity_2 = create( name='activity_2', requires=[test_activity_1], run=runner.Async( lambda activity, context: print('activity_2_task_1'), lambda activity, context: print('activity_2_task_2'))) test_activity_3 = create( name='activity_3', requires=[test_activity_1], run=runner.Sync( lambda activity, context: print('activity_3'))) test_activity_4 = create( name='activity_4', requires=[test_activity_3, test_activity_2], run=runner.Sync( lambda activity, context: print('activity_4'))) Application architecture ~~~~~~~~~~~~~~~~~~~~~~~~ :: . ├── cli.py # Instantiate the workers ├── flows # All your application flows. │ ├── __init__.py │ └── example.py # Should contain a structure similar to the code sample. ├── tasks # All your tasks │ ├── __init__.py │ └── s3.py # Task that focuses on s3 files. └── task_example.py # Your different tasks. Contributors ~~~~~~~~~~~~ - Michael Ortali (Author) - Adam Griffiths - Raphael Antonmattei - John Penner .. _xethorn: github.com/xethorn .. _rantonmattei: github.com/rantonmattei .. _someboredkiddo: github.com/someboredkiddo .. |Build Status| image:: https://travis-ci.org/xethorn/garcon.svg :target: https://travis-ci.org/xethorn/garcon .. |Coverage Status| image:: https://coveralls.io/repos/xethorn/garcon/badge.svg?branch=master :target: https://coveralls.io/r/xethorn/garcon?branch=master %package -n python3-Garcon Summary: Lightweight library for AWS SWF. Provides: python-Garcon BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-Garcon |Build Status| |Coverage Status| Lightweight library for AWS SWF. Garcon deals with easy going clients and kitchens. It takes orders from clients (deciders), and send them to the kitchen (activities). Difficult clients and kitchens can be handled directly by the restaurant manager. Requirements ~~~~~~~~~~~~ - Python 3.5, 3.6, 3.7, 3.8 (tested) - Boto3 (tested) Goal ~~~~ The goal of this library is to allow the creation of Amazon Simple Workflow without the need to worry about the orchestration of the different activities and building out the different workers. This framework aims to help simple workflows. If you have a more complex case, you might want to use directly boto. Code sample ~~~~~~~~~~~ The code sample shows a workflow that has 4 activities. It starts with activity\_1, which after being completed schedule activity\_2 and activity\_3 to be ran in parallel. The workflow ends after the completion of activity\_4 which requires activity\_2 and activity\_3 to be completed. .. code:: python import boto3 from garcon import activity from garcon import runner client = boto3.client('swf', region_name='us-east-1') domain = 'dev' name = 'workflow_sample' create = activity.create(client, domain, name) test_activity_1 = create( name='activity_1', run=runner.Sync( lambda activity, context: print('activity_1'))) test_activity_2 = create( name='activity_2', requires=[test_activity_1], run=runner.Async( lambda activity, context: print('activity_2_task_1'), lambda activity, context: print('activity_2_task_2'))) test_activity_3 = create( name='activity_3', requires=[test_activity_1], run=runner.Sync( lambda activity, context: print('activity_3'))) test_activity_4 = create( name='activity_4', requires=[test_activity_3, test_activity_2], run=runner.Sync( lambda activity, context: print('activity_4'))) Application architecture ~~~~~~~~~~~~~~~~~~~~~~~~ :: . ├── cli.py # Instantiate the workers ├── flows # All your application flows. │ ├── __init__.py │ └── example.py # Should contain a structure similar to the code sample. ├── tasks # All your tasks │ ├── __init__.py │ └── s3.py # Task that focuses on s3 files. └── task_example.py # Your different tasks. Contributors ~~~~~~~~~~~~ - Michael Ortali (Author) - Adam Griffiths - Raphael Antonmattei - John Penner .. _xethorn: github.com/xethorn .. _rantonmattei: github.com/rantonmattei .. _someboredkiddo: github.com/someboredkiddo .. |Build Status| image:: https://travis-ci.org/xethorn/garcon.svg :target: https://travis-ci.org/xethorn/garcon .. |Coverage Status| image:: https://coveralls.io/repos/xethorn/garcon/badge.svg?branch=master :target: https://coveralls.io/r/xethorn/garcon?branch=master %package help Summary: Development documents and examples for Garcon Provides: python3-Garcon-doc %description help |Build Status| |Coverage Status| Lightweight library for AWS SWF. Garcon deals with easy going clients and kitchens. It takes orders from clients (deciders), and send them to the kitchen (activities). Difficult clients and kitchens can be handled directly by the restaurant manager. Requirements ~~~~~~~~~~~~ - Python 3.5, 3.6, 3.7, 3.8 (tested) - Boto3 (tested) Goal ~~~~ The goal of this library is to allow the creation of Amazon Simple Workflow without the need to worry about the orchestration of the different activities and building out the different workers. This framework aims to help simple workflows. If you have a more complex case, you might want to use directly boto. Code sample ~~~~~~~~~~~ The code sample shows a workflow that has 4 activities. It starts with activity\_1, which after being completed schedule activity\_2 and activity\_3 to be ran in parallel. The workflow ends after the completion of activity\_4 which requires activity\_2 and activity\_3 to be completed. .. code:: python import boto3 from garcon import activity from garcon import runner client = boto3.client('swf', region_name='us-east-1') domain = 'dev' name = 'workflow_sample' create = activity.create(client, domain, name) test_activity_1 = create( name='activity_1', run=runner.Sync( lambda activity, context: print('activity_1'))) test_activity_2 = create( name='activity_2', requires=[test_activity_1], run=runner.Async( lambda activity, context: print('activity_2_task_1'), lambda activity, context: print('activity_2_task_2'))) test_activity_3 = create( name='activity_3', requires=[test_activity_1], run=runner.Sync( lambda activity, context: print('activity_3'))) test_activity_4 = create( name='activity_4', requires=[test_activity_3, test_activity_2], run=runner.Sync( lambda activity, context: print('activity_4'))) Application architecture ~~~~~~~~~~~~~~~~~~~~~~~~ :: . ├── cli.py # Instantiate the workers ├── flows # All your application flows. │ ├── __init__.py │ └── example.py # Should contain a structure similar to the code sample. ├── tasks # All your tasks │ ├── __init__.py │ └── s3.py # Task that focuses on s3 files. └── task_example.py # Your different tasks. Contributors ~~~~~~~~~~~~ - Michael Ortali (Author) - Adam Griffiths - Raphael Antonmattei - John Penner .. _xethorn: github.com/xethorn .. _rantonmattei: github.com/rantonmattei .. _someboredkiddo: github.com/someboredkiddo .. |Build Status| image:: https://travis-ci.org/xethorn/garcon.svg :target: https://travis-ci.org/xethorn/garcon .. |Coverage Status| image:: https://coveralls.io/repos/xethorn/garcon/badge.svg?branch=master :target: https://coveralls.io/r/xethorn/garcon?branch=master %prep %autosetup -n Garcon-1.0.2 %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-Garcon -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Thu Jun 08 2023 Python_Bot - 1.0.2-1 - Package Spec generated