diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 07:09:06 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 07:09:06 +0000 |
commit | 497ba38185e5a8d9078a26e8b47d214c3f6d2a40 (patch) | |
tree | a556d02232ecef69c0bdd062ee88087e40d396c4 | |
parent | 1ccbba7974d597b7270ed70a90f49b6f9fd1b97c (diff) |
automatic import of python-jobflowopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-jobflow.spec | 493 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 495 insertions, 0 deletions
@@ -0,0 +1 @@ +/jobflow-0.1.11.tar.gz diff --git a/python-jobflow.spec b/python-jobflow.spec new file mode 100644 index 0000000..3292948 --- /dev/null +++ b/python-jobflow.spec @@ -0,0 +1,493 @@ +%global _empty_manifest_terminate_build 0 +Name: python-jobflow +Version: 0.1.11 +Release: 1 +Summary: jobflow is a library for writing computational workflows +License: modified BSD +URL: https://pypi.org/project/jobflow/ +Source0: https://mirrors.aliyun.com/pypi/web/packages/62/79/d4bba63e7d66112b91b1b49f427a77e17969464826633c4725c2c5dfe426/jobflow-0.1.11.tar.gz +BuildArch: noarch + +Requires: python3-monty +Requires: python3-pydash +Requires: python3-networkx +Requires: python3-maggma +Requires: python3-pydantic +Requires: python3-PyYAML +Requires: python3-pre-commit +Requires: python3-sphinx +Requires: python3-furo +Requires: python3-myst-parser +Requires: python3-ipython +Requires: python3-nbsphinx +Requires: python3-autodoc-pydantic +Requires: python3-FireWorks +Requires: python3-monty +Requires: python3-networkx +Requires: python3-pydash +Requires: python3-maggma +Requires: python3-pydantic +Requires: python3-PyYAML +Requires: python3-FireWorks +Requires: python3-matplotlib +Requires: python3-pydot +Requires: python3-moto +Requires: python3-pytest +Requires: python3-pytest-cov +Requires: python3-matplotlib +Requires: python3-pydot + +%description +# jobflow + +<a href="https://github.com/materialsproject/jobflow/actions?query=workflow%3Atesting"><img alt="code coverage" src="https://img.shields.io/github/actions/workflow/status/materialsproject/jobflow/testing.yml?branch=main&label=tests"></a> +<a href="https://codecov.io/gh/materialsproject/jobflow/"><img alt="code coverage" src="https://img.shields.io/codecov/c/gh/materialsproject/jobflow/main"></a> +<a href="https://pypi.org/project/jobflow"><img alt="pypi version" src="https://img.shields.io/pypi/v/jobflow?color=blue"></a> +<img alt="supported python versions" src="https://img.shields.io/pypi/pyversions/jobflow"> + +[Documentation](https://materialsproject.github.io/jobflow/) | [PyPI](https://pypi.org/project/jobflow/) | [GitHub](https://github.com/materialsproject/jobflow) + +Jobflow is a free, open-source library for writing and executing workflows. Complex +workflows can be defined using simple python functions and executed locally or on +arbitrary computing resources using the [FireWorks][fireworks] workflow manager. + +Some features that distinguish jobflow are dynamic workflows, easy compositing and +connecting of workflows, and the ability to store workflow outputs across multiple +databases. + +## Is jobflow for me + +jobflow is intended to be a friendly workflow software that is easy to get started with, +but flexible enough to handle complicated use cases. + +Some of its features include: + +- A clean and flexible Python API. +- A powerful approach to compositing and connecting workflows — information passing + between jobs is a key goal of jobflow. Workflows can be nested allowing for a natural + way to build complex workflows. +- Integration with multiple databases (MongoDB, S3, GridFS, and more) through the + [Maggma][maggma] package. +- Support for the [FireWorks][fireworks] workflow management system, allowing workflow + execution on multicore machines or through a queue, on a single machine or multiple + machines. +- Support for dynamic workflows — workflows that modify themselves or create new ones + based on what happens during execution. + +## Workflow model + +Workflows in jobflows are made up of two main components: + +- A `Job` is an atomic computing job. Essentially any python function can be `Job`, + provided its input and return values can be serialized to json. Anything returned by the job is + considered an "output" and is stored in the jobflow database. +- A `Flow` is a collection of `Job` objects or other `Flow` objects. The connectivity + between jobs is determined automatically from the job inputs. The execution order + of jobs is automatically determined based on their connectivity. + +Python functions can be easily converted in to `Job` objects using the `@job` decorator. +In the example below, we define a job to add two numbers. + +```python +from jobflow import job, Flow + +@job +def add(a, b): + return a + b + +add_first = add(1, 5) +add_second = add(add_first.output, 5) + +flow = Flow([add_first, add_second]) +flow.draw_graph().show() +``` + +The output of the job is accessed using the `output` attribute. As the job has not +yet been run, `output` contains be a reference to a future output. Outputs can be used +as inputs to other jobs and will be automatically "resolved" before the job is +executed. + +Finally, we created a flow using the two `Job` objects. The connectivity between +the jobs is determined automatically and can be visualised using the flow graph. + +<p align="center"> +<img alt="simple flow graph" src="https://raw.githubusercontent.com/materialsproject/jobflow/main/docs/_static/img/simple_flow.png" width="30%" height="30%"> +</p> + +## Installation + +The jobflow is a Python 3.8+ library and can be installed using pip. + +```bash +pip install jobflow +``` + +## Quickstart and tutorials + +To get a first glimpse of jobflow, we suggest that you follow our quickstart tutorial. +Later tutorials delve into the advanced features of jobflow. + +- [Five-minute quickstart tutorial][quickstart] +- [Introduction to jobflow][introduction] +- [Defining Jobs using jobflow][defining-jobs] + +## Need help? + +Ask questions about jobflow on the [jobflow support forum][help-forum]. +If you've found an issue with jobflow, please submit a bug report on [GitHub Issues][issues]. + +## What’s new? + +Track changes to jobflow through the [changelog][changelog]. + +## Contributing + +We greatly appreciate any contributions in the form of a pull request. +Additional information on contributing to jobflow can be found [here][contributing]. +We maintain a list of all contributors [here][contributors]. + +## License + +jobflow is released under a modified BSD license; the full text can be found [here][license]. + +## Acknowledgements + +Jobflow was designed by Alex Ganose, Anubhav Jain, Gian-Marco Rignanese, David Waroquiers, and Guido Petretto. Alex Ganose implemented the first version of the package. Later versions have benefited from the contributions of several research groups. A full list of contributors is available [here](https://materialsproject.github.io/jobflow/contributors.html). + +[maggma]: https://materialsproject.github.io/maggma/ +[fireworks]: https://materialsproject.github.io/fireworks/ +[help-forum]: https://matsci.org/c/fireworks +[issues]: https://github.com/materialsproject/jobflow/issues +[changelog]: https://materialsproject.github.io/jobflow/changelog.html +[contributing]: https://materialsproject.github.io/jobflow/contributing.html +[contributors]: https://materialsproject.github.io/jobflow/contributors.html +[license]: https://raw.githubusercontent.com/materialsproject/jobflow/main/LICENSE +[quickstart]: https://materialsproject.github.io/jobflow/tutorials/1-quickstart.html +[introduction]: https://materialsproject.github.io/jobflow/tutorials/2-introduction.html +[defining-jobs]: https://materialsproject.github.io/jobflow/tutorials/3-defining-jobs.html +[creating-flows]: https://materialsproject.github.io/jobflow/tutorials/4-creating-flows.html +[dynamic-flows]: https://materialsproject.github.io/jobflow/tutorials/5-dynamic-flows.html +[jobflow-database]: https://materialsproject.github.io/jobflow/tutorials/6-jobflow-database.html +[jobflow-fireworks]: https://materialsproject.github.io/jobflow/tutorials/7-fireworks.html + + +%package -n python3-jobflow +Summary: jobflow is a library for writing computational workflows +Provides: python-jobflow +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-jobflow +# jobflow + +<a href="https://github.com/materialsproject/jobflow/actions?query=workflow%3Atesting"><img alt="code coverage" src="https://img.shields.io/github/actions/workflow/status/materialsproject/jobflow/testing.yml?branch=main&label=tests"></a> +<a href="https://codecov.io/gh/materialsproject/jobflow/"><img alt="code coverage" src="https://img.shields.io/codecov/c/gh/materialsproject/jobflow/main"></a> +<a href="https://pypi.org/project/jobflow"><img alt="pypi version" src="https://img.shields.io/pypi/v/jobflow?color=blue"></a> +<img alt="supported python versions" src="https://img.shields.io/pypi/pyversions/jobflow"> + +[Documentation](https://materialsproject.github.io/jobflow/) | [PyPI](https://pypi.org/project/jobflow/) | [GitHub](https://github.com/materialsproject/jobflow) + +Jobflow is a free, open-source library for writing and executing workflows. Complex +workflows can be defined using simple python functions and executed locally or on +arbitrary computing resources using the [FireWorks][fireworks] workflow manager. + +Some features that distinguish jobflow are dynamic workflows, easy compositing and +connecting of workflows, and the ability to store workflow outputs across multiple +databases. + +## Is jobflow for me + +jobflow is intended to be a friendly workflow software that is easy to get started with, +but flexible enough to handle complicated use cases. + +Some of its features include: + +- A clean and flexible Python API. +- A powerful approach to compositing and connecting workflows — information passing + between jobs is a key goal of jobflow. Workflows can be nested allowing for a natural + way to build complex workflows. +- Integration with multiple databases (MongoDB, S3, GridFS, and more) through the + [Maggma][maggma] package. +- Support for the [FireWorks][fireworks] workflow management system, allowing workflow + execution on multicore machines or through a queue, on a single machine or multiple + machines. +- Support for dynamic workflows — workflows that modify themselves or create new ones + based on what happens during execution. + +## Workflow model + +Workflows in jobflows are made up of two main components: + +- A `Job` is an atomic computing job. Essentially any python function can be `Job`, + provided its input and return values can be serialized to json. Anything returned by the job is + considered an "output" and is stored in the jobflow database. +- A `Flow` is a collection of `Job` objects or other `Flow` objects. The connectivity + between jobs is determined automatically from the job inputs. The execution order + of jobs is automatically determined based on their connectivity. + +Python functions can be easily converted in to `Job` objects using the `@job` decorator. +In the example below, we define a job to add two numbers. + +```python +from jobflow import job, Flow + +@job +def add(a, b): + return a + b + +add_first = add(1, 5) +add_second = add(add_first.output, 5) + +flow = Flow([add_first, add_second]) +flow.draw_graph().show() +``` + +The output of the job is accessed using the `output` attribute. As the job has not +yet been run, `output` contains be a reference to a future output. Outputs can be used +as inputs to other jobs and will be automatically "resolved" before the job is +executed. + +Finally, we created a flow using the two `Job` objects. The connectivity between +the jobs is determined automatically and can be visualised using the flow graph. + +<p align="center"> +<img alt="simple flow graph" src="https://raw.githubusercontent.com/materialsproject/jobflow/main/docs/_static/img/simple_flow.png" width="30%" height="30%"> +</p> + +## Installation + +The jobflow is a Python 3.8+ library and can be installed using pip. + +```bash +pip install jobflow +``` + +## Quickstart and tutorials + +To get a first glimpse of jobflow, we suggest that you follow our quickstart tutorial. +Later tutorials delve into the advanced features of jobflow. + +- [Five-minute quickstart tutorial][quickstart] +- [Introduction to jobflow][introduction] +- [Defining Jobs using jobflow][defining-jobs] + +## Need help? + +Ask questions about jobflow on the [jobflow support forum][help-forum]. +If you've found an issue with jobflow, please submit a bug report on [GitHub Issues][issues]. + +## What’s new? + +Track changes to jobflow through the [changelog][changelog]. + +## Contributing + +We greatly appreciate any contributions in the form of a pull request. +Additional information on contributing to jobflow can be found [here][contributing]. +We maintain a list of all contributors [here][contributors]. + +## License + +jobflow is released under a modified BSD license; the full text can be found [here][license]. + +## Acknowledgements + +Jobflow was designed by Alex Ganose, Anubhav Jain, Gian-Marco Rignanese, David Waroquiers, and Guido Petretto. Alex Ganose implemented the first version of the package. Later versions have benefited from the contributions of several research groups. A full list of contributors is available [here](https://materialsproject.github.io/jobflow/contributors.html). + +[maggma]: https://materialsproject.github.io/maggma/ +[fireworks]: https://materialsproject.github.io/fireworks/ +[help-forum]: https://matsci.org/c/fireworks +[issues]: https://github.com/materialsproject/jobflow/issues +[changelog]: https://materialsproject.github.io/jobflow/changelog.html +[contributing]: https://materialsproject.github.io/jobflow/contributing.html +[contributors]: https://materialsproject.github.io/jobflow/contributors.html +[license]: https://raw.githubusercontent.com/materialsproject/jobflow/main/LICENSE +[quickstart]: https://materialsproject.github.io/jobflow/tutorials/1-quickstart.html +[introduction]: https://materialsproject.github.io/jobflow/tutorials/2-introduction.html +[defining-jobs]: https://materialsproject.github.io/jobflow/tutorials/3-defining-jobs.html +[creating-flows]: https://materialsproject.github.io/jobflow/tutorials/4-creating-flows.html +[dynamic-flows]: https://materialsproject.github.io/jobflow/tutorials/5-dynamic-flows.html +[jobflow-database]: https://materialsproject.github.io/jobflow/tutorials/6-jobflow-database.html +[jobflow-fireworks]: https://materialsproject.github.io/jobflow/tutorials/7-fireworks.html + + +%package help +Summary: Development documents and examples for jobflow +Provides: python3-jobflow-doc +%description help +# jobflow + +<a href="https://github.com/materialsproject/jobflow/actions?query=workflow%3Atesting"><img alt="code coverage" src="https://img.shields.io/github/actions/workflow/status/materialsproject/jobflow/testing.yml?branch=main&label=tests"></a> +<a href="https://codecov.io/gh/materialsproject/jobflow/"><img alt="code coverage" src="https://img.shields.io/codecov/c/gh/materialsproject/jobflow/main"></a> +<a href="https://pypi.org/project/jobflow"><img alt="pypi version" src="https://img.shields.io/pypi/v/jobflow?color=blue"></a> +<img alt="supported python versions" src="https://img.shields.io/pypi/pyversions/jobflow"> + +[Documentation](https://materialsproject.github.io/jobflow/) | [PyPI](https://pypi.org/project/jobflow/) | [GitHub](https://github.com/materialsproject/jobflow) + +Jobflow is a free, open-source library for writing and executing workflows. Complex +workflows can be defined using simple python functions and executed locally or on +arbitrary computing resources using the [FireWorks][fireworks] workflow manager. + +Some features that distinguish jobflow are dynamic workflows, easy compositing and +connecting of workflows, and the ability to store workflow outputs across multiple +databases. + +## Is jobflow for me + +jobflow is intended to be a friendly workflow software that is easy to get started with, +but flexible enough to handle complicated use cases. + +Some of its features include: + +- A clean and flexible Python API. +- A powerful approach to compositing and connecting workflows — information passing + between jobs is a key goal of jobflow. Workflows can be nested allowing for a natural + way to build complex workflows. +- Integration with multiple databases (MongoDB, S3, GridFS, and more) through the + [Maggma][maggma] package. +- Support for the [FireWorks][fireworks] workflow management system, allowing workflow + execution on multicore machines or through a queue, on a single machine or multiple + machines. +- Support for dynamic workflows — workflows that modify themselves or create new ones + based on what happens during execution. + +## Workflow model + +Workflows in jobflows are made up of two main components: + +- A `Job` is an atomic computing job. Essentially any python function can be `Job`, + provided its input and return values can be serialized to json. Anything returned by the job is + considered an "output" and is stored in the jobflow database. +- A `Flow` is a collection of `Job` objects or other `Flow` objects. The connectivity + between jobs is determined automatically from the job inputs. The execution order + of jobs is automatically determined based on their connectivity. + +Python functions can be easily converted in to `Job` objects using the `@job` decorator. +In the example below, we define a job to add two numbers. + +```python +from jobflow import job, Flow + +@job +def add(a, b): + return a + b + +add_first = add(1, 5) +add_second = add(add_first.output, 5) + +flow = Flow([add_first, add_second]) +flow.draw_graph().show() +``` + +The output of the job is accessed using the `output` attribute. As the job has not +yet been run, `output` contains be a reference to a future output. Outputs can be used +as inputs to other jobs and will be automatically "resolved" before the job is +executed. + +Finally, we created a flow using the two `Job` objects. The connectivity between +the jobs is determined automatically and can be visualised using the flow graph. + +<p align="center"> +<img alt="simple flow graph" src="https://raw.githubusercontent.com/materialsproject/jobflow/main/docs/_static/img/simple_flow.png" width="30%" height="30%"> +</p> + +## Installation + +The jobflow is a Python 3.8+ library and can be installed using pip. + +```bash +pip install jobflow +``` + +## Quickstart and tutorials + +To get a first glimpse of jobflow, we suggest that you follow our quickstart tutorial. +Later tutorials delve into the advanced features of jobflow. + +- [Five-minute quickstart tutorial][quickstart] +- [Introduction to jobflow][introduction] +- [Defining Jobs using jobflow][defining-jobs] + +## Need help? + +Ask questions about jobflow on the [jobflow support forum][help-forum]. +If you've found an issue with jobflow, please submit a bug report on [GitHub Issues][issues]. + +## What’s new? + +Track changes to jobflow through the [changelog][changelog]. + +## Contributing + +We greatly appreciate any contributions in the form of a pull request. +Additional information on contributing to jobflow can be found [here][contributing]. +We maintain a list of all contributors [here][contributors]. + +## License + +jobflow is released under a modified BSD license; the full text can be found [here][license]. + +## Acknowledgements + +Jobflow was designed by Alex Ganose, Anubhav Jain, Gian-Marco Rignanese, David Waroquiers, and Guido Petretto. Alex Ganose implemented the first version of the package. Later versions have benefited from the contributions of several research groups. A full list of contributors is available [here](https://materialsproject.github.io/jobflow/contributors.html). + +[maggma]: https://materialsproject.github.io/maggma/ +[fireworks]: https://materialsproject.github.io/fireworks/ +[help-forum]: https://matsci.org/c/fireworks +[issues]: https://github.com/materialsproject/jobflow/issues +[changelog]: https://materialsproject.github.io/jobflow/changelog.html +[contributing]: https://materialsproject.github.io/jobflow/contributing.html +[contributors]: https://materialsproject.github.io/jobflow/contributors.html +[license]: https://raw.githubusercontent.com/materialsproject/jobflow/main/LICENSE +[quickstart]: https://materialsproject.github.io/jobflow/tutorials/1-quickstart.html +[introduction]: https://materialsproject.github.io/jobflow/tutorials/2-introduction.html +[defining-jobs]: https://materialsproject.github.io/jobflow/tutorials/3-defining-jobs.html +[creating-flows]: https://materialsproject.github.io/jobflow/tutorials/4-creating-flows.html +[dynamic-flows]: https://materialsproject.github.io/jobflow/tutorials/5-dynamic-flows.html +[jobflow-database]: https://materialsproject.github.io/jobflow/tutorials/6-jobflow-database.html +[jobflow-fireworks]: https://materialsproject.github.io/jobflow/tutorials/7-fireworks.html + + +%prep +%autosetup -n jobflow-0.1.11 + +%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-jobflow -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.11-1 +- Package Spec generated @@ -0,0 +1 @@ +8f8eb9c70402012cef2a2098f32c2b55 jobflow-0.1.11.tar.gz |