diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-dbnd-mlflow.spec | 350 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 352 insertions, 0 deletions
@@ -0,0 +1 @@ +/dbnd-mlflow-1.0.12.12.tar.gz diff --git a/python-dbnd-mlflow.spec b/python-dbnd-mlflow.spec new file mode 100644 index 0000000..48a0304 --- /dev/null +++ b/python-dbnd-mlflow.spec @@ -0,0 +1,350 @@ +%global _empty_manifest_terminate_build 0 +Name: python-dbnd-mlflow +Version: 1.0.12.12 +Release: 1 +Summary: Machine Learning Orchestration +License: Apache Software License +URL: https://github.com/databand-ai/dbnd +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a6/ce/2ef49e9247b1b108330eba6fd9854266336e00f7af51d238f057ef1503d5/dbnd-mlflow-1.0.12.12.tar.gz +BuildArch: noarch + +Requires: python3-dbnd +Requires: python3-six + +%description +# Overview + +The `dbnd-mlflow` plugin allows storing [mlflow](https://github.com/mlflow/mlflow) metrics to DBND tracker together with duplicating them to the mlflow store. + +# Install + +```bash +pip install dbnd-mlflow +# or +pip install databand[mlflow] +``` + +# Config + +```ini +[core] +# Databand store url should be defined +databand_url=http://localhost:8080 + +[mlflow_tracking] +# Enable tracking to Databand store +databand_tracking=True + +# Optionally, define a URI for mlflow store, +# mlflow.get_tracking_uri() is used by default +; duplicate_tracking_to=http://mlflow-store/ +``` + +# Run example + +You might need to install examples at first `pip install dbnd-examples`. + +```bash +dbnd run dbnd_examples.tracking.tracking_mlflow.task_with_mflow + +# or set configs manually +dbnd run dbnd_examples.tracking.tracking_mlflow.task_with_mflow --set-config mlflow_tracking.databand_tracking=True +``` + +# Explanation + +<details><summary>mlflow_example code</summary> +<p> + +```python +from dbnd import task +from mlflow import start_run, end_run +from mlflow import log_metric, log_param + +@task +def mlflow_example(): + start_run() + # params + log_param("param1", randint(0, 100)) + log_param("param2", randint(0, 100)) + # metrics + log_metric("foo1", random()) + log_metric("foo2", random()) + end_run() +``` + +</p> +</details> + +## Execution flow: + +1. Run `dbnd run mlflow_example --set-config mlflow_tracking.databand_tracking=True` +2. dbnd creates a new dbnd context +3. `dbnd_on_pre_init_context` hook from `dbnd_mlflow` is triggered + - a new uri is computed to be used by mlflow, e.g.: + - `dbnd://localhost:8080?duplicate_tracking_to=http%253A%252F%252Fmlflow-store%253A80%252F` + - the new uri is set to be used with `mlflow.set_tracking_uri()` +4. `mlflow_example` task starts: + 1. `mlflow.start_run()` + 1. `mlflow` reads `entry_points` for each installed package and finds: + - "dbnd = dbnd_mlflow.tracking_store:get_dbnd_store", + - "dbnd+s = dbnd_mlflow.tracking_store:get_dbnd_store", + - "databand = dbnd_mlflow.tracking_store:get_dbnd_store", + - "databand+s = dbnd_mlflow.tracking_store:get_dbnd_store", + 2. `mlflow` creates `TrackingStoreClient` using the new uri + 3. uri schema instructs to use `dbnd_mlflow.tracking_store:get_dbnd_store` + - `get_dbnd_store` creates dbnd `TrackingAPIClient` + - `get_dbnd_store` creates mlflow tracking store to duplicate tracking to + - `get_dbnd_store` returns `DatabandStore` instance + 2. `log_param()`/`log_metric()` + - calls to `DatabandStore` + - calls to `TrackingAPIClient` + - calls to mlflow tracking store to duplicate tracking to + 3. `mlflow.end_run()` +5. `mlflow_example` ends +6. `dbnd_on_exit_context` hook from `dbnd_mlflow` is triggered + - restore original mlflow tracking uri + + +%package -n python3-dbnd-mlflow +Summary: Machine Learning Orchestration +Provides: python-dbnd-mlflow +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-dbnd-mlflow +# Overview + +The `dbnd-mlflow` plugin allows storing [mlflow](https://github.com/mlflow/mlflow) metrics to DBND tracker together with duplicating them to the mlflow store. + +# Install + +```bash +pip install dbnd-mlflow +# or +pip install databand[mlflow] +``` + +# Config + +```ini +[core] +# Databand store url should be defined +databand_url=http://localhost:8080 + +[mlflow_tracking] +# Enable tracking to Databand store +databand_tracking=True + +# Optionally, define a URI for mlflow store, +# mlflow.get_tracking_uri() is used by default +; duplicate_tracking_to=http://mlflow-store/ +``` + +# Run example + +You might need to install examples at first `pip install dbnd-examples`. + +```bash +dbnd run dbnd_examples.tracking.tracking_mlflow.task_with_mflow + +# or set configs manually +dbnd run dbnd_examples.tracking.tracking_mlflow.task_with_mflow --set-config mlflow_tracking.databand_tracking=True +``` + +# Explanation + +<details><summary>mlflow_example code</summary> +<p> + +```python +from dbnd import task +from mlflow import start_run, end_run +from mlflow import log_metric, log_param + +@task +def mlflow_example(): + start_run() + # params + log_param("param1", randint(0, 100)) + log_param("param2", randint(0, 100)) + # metrics + log_metric("foo1", random()) + log_metric("foo2", random()) + end_run() +``` + +</p> +</details> + +## Execution flow: + +1. Run `dbnd run mlflow_example --set-config mlflow_tracking.databand_tracking=True` +2. dbnd creates a new dbnd context +3. `dbnd_on_pre_init_context` hook from `dbnd_mlflow` is triggered + - a new uri is computed to be used by mlflow, e.g.: + - `dbnd://localhost:8080?duplicate_tracking_to=http%253A%252F%252Fmlflow-store%253A80%252F` + - the new uri is set to be used with `mlflow.set_tracking_uri()` +4. `mlflow_example` task starts: + 1. `mlflow.start_run()` + 1. `mlflow` reads `entry_points` for each installed package and finds: + - "dbnd = dbnd_mlflow.tracking_store:get_dbnd_store", + - "dbnd+s = dbnd_mlflow.tracking_store:get_dbnd_store", + - "databand = dbnd_mlflow.tracking_store:get_dbnd_store", + - "databand+s = dbnd_mlflow.tracking_store:get_dbnd_store", + 2. `mlflow` creates `TrackingStoreClient` using the new uri + 3. uri schema instructs to use `dbnd_mlflow.tracking_store:get_dbnd_store` + - `get_dbnd_store` creates dbnd `TrackingAPIClient` + - `get_dbnd_store` creates mlflow tracking store to duplicate tracking to + - `get_dbnd_store` returns `DatabandStore` instance + 2. `log_param()`/`log_metric()` + - calls to `DatabandStore` + - calls to `TrackingAPIClient` + - calls to mlflow tracking store to duplicate tracking to + 3. `mlflow.end_run()` +5. `mlflow_example` ends +6. `dbnd_on_exit_context` hook from `dbnd_mlflow` is triggered + - restore original mlflow tracking uri + + +%package help +Summary: Development documents and examples for dbnd-mlflow +Provides: python3-dbnd-mlflow-doc +%description help +# Overview + +The `dbnd-mlflow` plugin allows storing [mlflow](https://github.com/mlflow/mlflow) metrics to DBND tracker together with duplicating them to the mlflow store. + +# Install + +```bash +pip install dbnd-mlflow +# or +pip install databand[mlflow] +``` + +# Config + +```ini +[core] +# Databand store url should be defined +databand_url=http://localhost:8080 + +[mlflow_tracking] +# Enable tracking to Databand store +databand_tracking=True + +# Optionally, define a URI for mlflow store, +# mlflow.get_tracking_uri() is used by default +; duplicate_tracking_to=http://mlflow-store/ +``` + +# Run example + +You might need to install examples at first `pip install dbnd-examples`. + +```bash +dbnd run dbnd_examples.tracking.tracking_mlflow.task_with_mflow + +# or set configs manually +dbnd run dbnd_examples.tracking.tracking_mlflow.task_with_mflow --set-config mlflow_tracking.databand_tracking=True +``` + +# Explanation + +<details><summary>mlflow_example code</summary> +<p> + +```python +from dbnd import task +from mlflow import start_run, end_run +from mlflow import log_metric, log_param + +@task +def mlflow_example(): + start_run() + # params + log_param("param1", randint(0, 100)) + log_param("param2", randint(0, 100)) + # metrics + log_metric("foo1", random()) + log_metric("foo2", random()) + end_run() +``` + +</p> +</details> + +## Execution flow: + +1. Run `dbnd run mlflow_example --set-config mlflow_tracking.databand_tracking=True` +2. dbnd creates a new dbnd context +3. `dbnd_on_pre_init_context` hook from `dbnd_mlflow` is triggered + - a new uri is computed to be used by mlflow, e.g.: + - `dbnd://localhost:8080?duplicate_tracking_to=http%253A%252F%252Fmlflow-store%253A80%252F` + - the new uri is set to be used with `mlflow.set_tracking_uri()` +4. `mlflow_example` task starts: + 1. `mlflow.start_run()` + 1. `mlflow` reads `entry_points` for each installed package and finds: + - "dbnd = dbnd_mlflow.tracking_store:get_dbnd_store", + - "dbnd+s = dbnd_mlflow.tracking_store:get_dbnd_store", + - "databand = dbnd_mlflow.tracking_store:get_dbnd_store", + - "databand+s = dbnd_mlflow.tracking_store:get_dbnd_store", + 2. `mlflow` creates `TrackingStoreClient` using the new uri + 3. uri schema instructs to use `dbnd_mlflow.tracking_store:get_dbnd_store` + - `get_dbnd_store` creates dbnd `TrackingAPIClient` + - `get_dbnd_store` creates mlflow tracking store to duplicate tracking to + - `get_dbnd_store` returns `DatabandStore` instance + 2. `log_param()`/`log_metric()` + - calls to `DatabandStore` + - calls to `TrackingAPIClient` + - calls to mlflow tracking store to duplicate tracking to + 3. `mlflow.end_run()` +5. `mlflow_example` ends +6. `dbnd_on_exit_context` hook from `dbnd_mlflow` is triggered + - restore original mlflow tracking uri + + +%prep +%autosetup -n dbnd-mlflow-1.0.12.12 + +%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-dbnd-mlflow -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.12.12-1 +- Package Spec generated @@ -0,0 +1 @@ +21415cf9ff9552a0aea497599c2a2bb6 dbnd-mlflow-1.0.12.12.tar.gz |
