[![PyPI](https://img.shields.io/pypi/pyversions/saseg_runner.svg)](#)
[![PyPI](https://img.shields.io/pypi/status/saseg_runner.svg)](#)
[![PyPI](https://img.shields.io/pypi/v/saseg_runner)](https://pypi.org/project/pcm/)
[![PyPI](https://img.shields.io/pypi/l/saseg_runner.svg)](#)

# Overview
saseg_runner get you run egp file from python or command line.

# Requirment
* windows
* python 3.6 later
* SAS Enterprise guide

# Install
```bash
pip install saseg_runner
```

# Usage

## as python library

```python
from saseg_runner import run_egp, SASEGRuntimeError
run_egp(egp_path='test_success.egp', eg_version='7.1', profile_name='Your Profile')

# opening SAS Enterprise Guide 7.1
# -> application instance created
# activating profile:[SAS Asia]
# -> profile:[SAS Asia] activated
# opening test_success.egp
# -> egp file opened
# running test_success.egp
# -> run finished
# -> saved to test_success_20191031-1102.egp
# getting logs from test_success_20191031-1102.egp
# -> log created
# successfully finished exectuing test_success.egp
# elapsed_time:40[sec]
```

In case some tasks in the egp file fails, 'run_egp' can raise Exception of SASEGRuntimeError!
```python
from saseg_runner import run_egp, SASEGRuntimeError
run_egp(egp_path='test_fail.egp', eg_version='7.1', profile_name='Your Profile')

# opening SAS Enterprise Guide 7.1
# -> application instance created
# activating profile:[SAS Asia]
# -> profile:[SAS Asia] activated
# opening test_fail.egp
# -> egp file opened
# running test_fail.egp
# -> run finished
# -> saved to test_fail_20191031-1056.egp
# getting logs from test_fail_20191031-1056.egp
# -> log created
# [task 2] failed in test_fail.egp
# ERROR: CLI error occured: [DataDirect][ODBC lib] Specified driver could not be loaded
# Traceback (most recent call last):
#   File "saseg_runner/runner.py", line 123, in <module>
#     run_egp(SCRIPTDIR_PATH.parent.parent / 'test/test_fail.egp')
#   File "saseg_runner/runner.py", line 103, in run_egp
#     raise SASEGRuntimeError
# __main__.SASEGRuntimeError
```

### Parameters
* egp_path : Union[str, Path]
    * SAS Enterprise Guide file path.
* profile_name : str
    * profile name to use
* overwrite: bool
    * controls whether to save the egp file after exection. if False, timestamp is added to filename. The default is False.
* remove_log: bool
    * wether remove log files or not. the default is True.
* verbose: bool
    * default is False

## from command line
```bash
run_egp <your egp file path>
```


