diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-15 08:12:51 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 08:12:51 +0000 |
commit | d18c4e3dc551fe66be7c4815e01e6028412be998 (patch) | |
tree | 24211da486dfa9c67d0f9e1006208620d9458135 | |
parent | 888b654a8dd9c48960dd60d9f40500c562d3b576 (diff) |
automatic import of python-django-automations
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-django-automations.spec | 391 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 393 insertions, 0 deletions
@@ -0,0 +1 @@ +/django-automations-0.9.4.1.tar.gz diff --git a/python-django-automations.spec b/python-django-automations.spec new file mode 100644 index 0000000..5af499b --- /dev/null +++ b/python-django-automations.spec @@ -0,0 +1,391 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-automations +Version: 0.9.4.1 +Release: 1 +Summary: Processes and automations for your Django project +License: MIT License +URL: https://github.com/fsbraun/django-automations +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/0b/ed/97cb4974ce37eda4a8c1818a286e3366a529d9228bca74555113536049e7/django-automations-0.9.4.1.tar.gz +BuildArch: noarch + +Requires: python3-Django + +%description + + + + +[](https://pypi.org/project/django-automations/) +[](https://django-automations.readthedocs.io/en/latest/) +[](https://codecov.io/gh/fsbraun/django-automations) + +# Django-automations + +A lightweight framework to collect all processes of your django app in one place. + +Use cases: + +* Marketing automations, customer journeys +* Simple business processes which require user interactions +* Running regular tasks + +Django-automations works with plain Django but also integrates with Django-CMS. + +## Key features + +* Describe automations as python classes + +* Bind automations to models from other Django apps + +* Use Django forms for user interaction + +* Create transparency through extendable dashboard + +* Declare automations as unique or unique for a certain data set + +* Start automations on signals or when, e.g., user visits a page + +* Send messages between automations + +## Requirements + +* **Python**: 3.7, 3.8, 3.9, 3.10 +* **Django**: 3.0, 3.1, 3.2 + +## Feedback + +This project is in a early stage. All feedback is welcome! Please mail me at fsbraun(at)gmx.de + +# Installation + +This project will be available on pypi after the first release. In the meantime, please install the master branch from +git using + + pip install https://github.com/fsbraun/django-automations/archive/master.zip + +After installation add the `automations` to your installed apps in `settings.py`: + + INSTALLED_APPS = ( + ..., + 'automations', + 'automations.cms_automations', # ONLY IF YOU USE DJANGO-CMS! + ) + +Only include the "sub app" `automations.cms_automations` if you are using Django CMS. + +The last step is to run the necessary migrations using the `manage.py` command: + + python manage.py migrate automations + + +# Usage + +The basic idea is to add an automation layer to Django's model, view, template structure. The automation layer collects +in one place all business processes which in a Django app often are distributed across models, views and any glue code. + +**Automations** consist of **tasks** which are carried out one after another. **Modifiers** affect, e.g. when a task is +carried out. + + from automations import flow + from automations.flow import this + # "this" can be used in a class definition as a replacement for "self" + + from . import forms + + class ProcessInput(Automation): + """The process steps are defined by sequentially adding the corresponding nodes""" + start = flow.Execute(this.get_user_input) # Collect input a user has supplied + check = flow.If( + this.does_not_need_approval # Need approval? + ).Then(this.process) # No? Continue later + approval = flow.Form(forms.ApprovalForm).Group(name="admins") # Let admins approve + process = flow.Execute(this.process_input) # Generate output + end = flow.End() + + critical = 10_000 + + def get_user_input(task_instance): + ... + + def does_not_need_approval(task_instance): + return not (task_instance.data['amount'] > self.critical) + + def process_input(task_instance): + ... + +# Documentation + +See the [documentation on readthedocs.io](https://django-automations.readthedocs.io/). + + + +%package -n python3-django-automations +Summary: Processes and automations for your Django project +Provides: python-django-automations +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-automations + + + + +[](https://pypi.org/project/django-automations/) +[](https://django-automations.readthedocs.io/en/latest/) +[](https://codecov.io/gh/fsbraun/django-automations) + +# Django-automations + +A lightweight framework to collect all processes of your django app in one place. + +Use cases: + +* Marketing automations, customer journeys +* Simple business processes which require user interactions +* Running regular tasks + +Django-automations works with plain Django but also integrates with Django-CMS. + +## Key features + +* Describe automations as python classes + +* Bind automations to models from other Django apps + +* Use Django forms for user interaction + +* Create transparency through extendable dashboard + +* Declare automations as unique or unique for a certain data set + +* Start automations on signals or when, e.g., user visits a page + +* Send messages between automations + +## Requirements + +* **Python**: 3.7, 3.8, 3.9, 3.10 +* **Django**: 3.0, 3.1, 3.2 + +## Feedback + +This project is in a early stage. All feedback is welcome! Please mail me at fsbraun(at)gmx.de + +# Installation + +This project will be available on pypi after the first release. In the meantime, please install the master branch from +git using + + pip install https://github.com/fsbraun/django-automations/archive/master.zip + +After installation add the `automations` to your installed apps in `settings.py`: + + INSTALLED_APPS = ( + ..., + 'automations', + 'automations.cms_automations', # ONLY IF YOU USE DJANGO-CMS! + ) + +Only include the "sub app" `automations.cms_automations` if you are using Django CMS. + +The last step is to run the necessary migrations using the `manage.py` command: + + python manage.py migrate automations + + +# Usage + +The basic idea is to add an automation layer to Django's model, view, template structure. The automation layer collects +in one place all business processes which in a Django app often are distributed across models, views and any glue code. + +**Automations** consist of **tasks** which are carried out one after another. **Modifiers** affect, e.g. when a task is +carried out. + + from automations import flow + from automations.flow import this + # "this" can be used in a class definition as a replacement for "self" + + from . import forms + + class ProcessInput(Automation): + """The process steps are defined by sequentially adding the corresponding nodes""" + start = flow.Execute(this.get_user_input) # Collect input a user has supplied + check = flow.If( + this.does_not_need_approval # Need approval? + ).Then(this.process) # No? Continue later + approval = flow.Form(forms.ApprovalForm).Group(name="admins") # Let admins approve + process = flow.Execute(this.process_input) # Generate output + end = flow.End() + + critical = 10_000 + + def get_user_input(task_instance): + ... + + def does_not_need_approval(task_instance): + return not (task_instance.data['amount'] > self.critical) + + def process_input(task_instance): + ... + +# Documentation + +See the [documentation on readthedocs.io](https://django-automations.readthedocs.io/). + + + +%package help +Summary: Development documents and examples for django-automations +Provides: python3-django-automations-doc +%description help + + + + +[](https://pypi.org/project/django-automations/) +[](https://django-automations.readthedocs.io/en/latest/) +[](https://codecov.io/gh/fsbraun/django-automations) + +# Django-automations + +A lightweight framework to collect all processes of your django app in one place. + +Use cases: + +* Marketing automations, customer journeys +* Simple business processes which require user interactions +* Running regular tasks + +Django-automations works with plain Django but also integrates with Django-CMS. + +## Key features + +* Describe automations as python classes + +* Bind automations to models from other Django apps + +* Use Django forms for user interaction + +* Create transparency through extendable dashboard + +* Declare automations as unique or unique for a certain data set + +* Start automations on signals or when, e.g., user visits a page + +* Send messages between automations + +## Requirements + +* **Python**: 3.7, 3.8, 3.9, 3.10 +* **Django**: 3.0, 3.1, 3.2 + +## Feedback + +This project is in a early stage. All feedback is welcome! Please mail me at fsbraun(at)gmx.de + +# Installation + +This project will be available on pypi after the first release. In the meantime, please install the master branch from +git using + + pip install https://github.com/fsbraun/django-automations/archive/master.zip + +After installation add the `automations` to your installed apps in `settings.py`: + + INSTALLED_APPS = ( + ..., + 'automations', + 'automations.cms_automations', # ONLY IF YOU USE DJANGO-CMS! + ) + +Only include the "sub app" `automations.cms_automations` if you are using Django CMS. + +The last step is to run the necessary migrations using the `manage.py` command: + + python manage.py migrate automations + + +# Usage + +The basic idea is to add an automation layer to Django's model, view, template structure. The automation layer collects +in one place all business processes which in a Django app often are distributed across models, views and any glue code. + +**Automations** consist of **tasks** which are carried out one after another. **Modifiers** affect, e.g. when a task is +carried out. + + from automations import flow + from automations.flow import this + # "this" can be used in a class definition as a replacement for "self" + + from . import forms + + class ProcessInput(Automation): + """The process steps are defined by sequentially adding the corresponding nodes""" + start = flow.Execute(this.get_user_input) # Collect input a user has supplied + check = flow.If( + this.does_not_need_approval # Need approval? + ).Then(this.process) # No? Continue later + approval = flow.Form(forms.ApprovalForm).Group(name="admins") # Let admins approve + process = flow.Execute(this.process_input) # Generate output + end = flow.End() + + critical = 10_000 + + def get_user_input(task_instance): + ... + + def does_not_need_approval(task_instance): + return not (task_instance.data['amount'] > self.critical) + + def process_input(task_instance): + ... + +# Documentation + +See the [documentation on readthedocs.io](https://django-automations.readthedocs.io/). + + + +%prep +%autosetup -n django-automations-0.9.4.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-django-automations -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.9.4.1-1 +- Package Spec generated @@ -0,0 +1 @@ +19bf625052f08a54fc3fc3eccc9f93f4 django-automations-0.9.4.1.tar.gz |