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: 7 months 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 6 years ago)
- Default Branch: master
- Last Pushed: 2025-01-22T17:45:19.000Z (9 months ago)
- Last Synced: 2025-03-13T20:39:14.630Z (8 months ago)
- Topics: api, python, sas, viya
- Language: Python
- Homepage: https://sassoftware.github.io/python-sasctl
- Size: 74.6 MB
- Stars: 47
- Watchers: 12
- Forks: 43
- Open Issues: 29
- 
            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
- packaging
The 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)