Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sassoftware/python-sasctl
Python package and CLI for user-friendly integration with SAS Viya
https://github.com/sassoftware/python-sasctl
api python sas viya
Last synced: 6 days ago
JSON representation
Python package and CLI for user-friendly integration with SAS Viya
- Host: GitHub
- URL: https://github.com/sassoftware/python-sasctl
- Owner: sassoftware
- License: apache-2.0
- Created: 2019-07-11T14:20:32.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T18:26:26.000Z (2 months ago)
- Last Synced: 2024-10-29T20:29:31.429Z (2 months ago)
- Topics: api, python, sas, viya
- Language: Python
- Homepage: https://sassoftware.github.io/python-sasctl
- Size: 72.8 MB
- Stars: 46
- Watchers: 13
- Forks: 41
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Support: SUPPORT.md
Awesome Lists containing this project
README
###### Full documentation: https://sassoftware.github.io/python-sasctl
# Table of Contents
1. [Overview](#overview)
2. [Prerequisites](#prerequisites)
3. [Installation](#installation)
4. [Getting Started](#getting-started)
5. [Examples](#examples)
6. [Contributing](#contributing)
7. [License](#license)
8. [Additional Resources](#additional-resources)## Overview
The sasctl package enables easy communication between the SAS Viya
platform and a Python runtime. It can be used as a module or as a command line interface.
```
sasctl.services.folders.list_folders()
``````
sasctl folders list
```### Prerequisites
sasctl requires the following Python packages be installed.
If not already present, these packages will be downloaded and installed automatically.
- pandas
- requests
- pyyaml
- packagingThe following additional packages are recommended for full functionality:
- swat
- kerberos
- GitPython
- numpy
- scikit-learn### Installation
Installing the latest version is as easy as:
```
pip install sasctl
```Functionality that depends on additional packages can be installed using the following:
- `pip install sasctl[swat]`
- `pip install sasctl[kerberos]`
- `pip install sasctl[all]`
If you want the latest functionality and can't wait on an official release, you can also
install the latest source code:```pip install git+https://github.com/sassoftware/python-sasctl```
Alternatively, if you're using Anaconda you can install with:
```
conda install -c sas-institute sasctl
```## Getting Started
Once the sasctl package has been installed and you have a SAS Viya server to connect to,
the first step is to establish a session:
```
>>> from sasctl import Session>>> with Session(host, username, password):
... pass # do something
```
```
sasctl --help
```Once a session has been created, all commands target that environment.
The easiest way to use sasctl is often to use a pre-defined task,
which can handle all necessary communication with the SAS Viya server:
```
>>> from sasctl import Session, register_model
>>> from sklearn import linear_model as lm>>> with Session('example.com', authinfo=):
... model = lm.LogisticRegression()
... register_model(model, 'Sklearn Model', 'My Project')
```A slightly more low-level way to interact with the environment is to use
the service methods directly:
```
>>> from sasctl import Session
>>> from sasctl.services import folders>>> with Session(host, username, password):
... for f in folders.list_folders():
... print(f)Public
Projects
ESP Projects
Risk Environments... # truncated for clarity
My Folder
My History
My Favorites
SAS Environment Manager
```The most basic way to interact with the server is simply to call REST
functions directly, though in general, this is not recommended.
```
>>> from pprint import pprint
>>> from sasctl import Session, get>>> with Session(host, username, password):
... folders = get('/folders')
... pprint(folders)
{'links': [{'href': '/folders/folders',
'method': 'GET',
'rel': 'folders',
'type': 'application/vnd.sas.collection',
'uri': '/folders/folders'},
{'href': '/folders/folders',
'method': 'POST',
'rel': 'createFolder',... # truncated for clarity
'rel': 'createSubfolder',
'type': 'application/vnd.sas.content.folder',
'uri': '/folders/folders?parentFolderUri=/folders/folders/{parentId}'}],
'version': 1}
```### Examples
A few simple examples of common scenarios are listed below. For more
complete examples see the [examples](examples) folder.Show models currently in Model Manager:
```
>>> from sasctl import Session
>>> from sasctl.services import model_repository>>> with Session(host, username, password):
... models = model_repository.list_models()
```Register a pure Python model in Model Manager:
```
>>> from sasctl import Session, register_model
>>> from sklearn import linear_model as lm>>> with Session(host, authinfo=):
... model = lm.LogisticRegression()
... register_model(model, 'Sklearn Model', 'My Project')
```Register a CAS model in Model Manager:
```
>>> import swat
>>> from sasctl import Session
>>> from sasctl.tasks import register_model>>> s = swat.CAS(host, authinfo=)
>>> astore = s.CASTable('some_astore')>>> with Session(s):
... register_model(astore, 'SAS Model', 'My Project')
```## Contributing
We welcome contributions!
Please read [CONTRIBUTING.md](CONTRIBUTING.md)
for details on how to submit contributions to this project.## License
See the [LICENSE](LICENSE) file for details.
## Additional Resources
* [SAS Viya REST Documentation](https://developer.sas.com/apis/rest/)
* [SAS Developer Community](https://communities.sas.com/t5/Developers/bd-p/developers)