SAS Viya REST Client
Project description
Full documentation: https://sassoftware.github.io/python-sasctl
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.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.
- requests
- six
The following additional packages are recommended for full functionality:
- swat
- kerberos
Installation
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]
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=<authinfo file>):
... model = lm.LogisticRegression()
... register_model('Sklearn Model', model, 'My Project')
A slightly more low-level way to interact with the environment is to use the service methods directly:
>>> from pprint import pprint
>>> from sasctl import Session
>>> from sasctl.services import folders
>>> with Session(host, username, password):
... folders = folders.list_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}
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 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=<authinfo file>):
... model = lm.LogisticRegression()
... register_model('Sklearn Model', 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=<authinfo file>)
>>> astore = s.CASTable('some_astore')
>>> with Session(s):
... register_model('SAS Model', astore, 'My Project')
Contributing
We welcome contributions!
Please read CONTRIBUTING.md for details on how to submit contributions to this project.
License
See the LICENSE file for details.
Additional Resources
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sasctl-1.1.2.tar.gz
.
File metadata
- Download URL: sasctl-1.1.2.tar.gz
- Upload date:
- Size: 53.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4966dfbbb14e4d53799e4ca9d0cb7d664363dd6fac8249ebdc0987d368480ca3 |
|
MD5 | ace9e04b3d145c3d2f4bc61093face06 |
|
BLAKE2b-256 | 1090c780baf7587ea6503571219ff576fbd92d7ee030482780bc1388a17bd826 |
File details
Details for the file sasctl-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: sasctl-1.1.2-py3-none-any.whl
- Upload date:
- Size: 69.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 863bd02cd6d4e2d4012c8e7e3c41dfe1409ecb02c46808ae13692cffcd5e8ff7 |
|
MD5 | e4f80b523c913f252c591542f49c6762 |
|
BLAKE2b-256 | bc8af0eacc54a00ab2b796238a524875c529a158830abdfd005aea51b3131dd0 |