Skip to main content

SAS Viya Python Client

Project description

sasctl

A user-friendly Python interface for SAS Viya.

SAS Viya Version Python Version
Full documentation: https://sassoftware.github.io/python-sasctl

Table of Contents

  1. Overview
  2. Prerequisites
  3. Installation
  4. Getting Started
  5. Examples
  6. Contributing
  7. License
  8. 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=<authinfo file>):
...    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 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(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=<authinfo file>)
>>> astore = s.CASTable('some_astore')

>>> with Session(s):
...    register_model(astore, 'SAS Model', '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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sasctl-1.11.7.tar.gz (193.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sasctl-1.11.7-py3-none-any.whl (211.0 kB view details)

Uploaded Python 3

File details

Details for the file sasctl-1.11.7.tar.gz.

File metadata

  • Download URL: sasctl-1.11.7.tar.gz
  • Upload date:
  • Size: 193.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sasctl-1.11.7.tar.gz
Algorithm Hash digest
SHA256 2bb9e21ec9e6b98531e671ddb738b72e26bc19c115b4bed2f680163e71bd69c9
MD5 73537218681a77f386f028042a45474a
BLAKE2b-256 9bec2c3f7e4ad8fa4f5b3cdd2bd7f9e25a45d8e938935eb793c0b4a340db32de

See more details on using hashes here.

File details

Details for the file sasctl-1.11.7-py3-none-any.whl.

File metadata

  • Download URL: sasctl-1.11.7-py3-none-any.whl
  • Upload date:
  • Size: 211.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sasctl-1.11.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3903a1264bba2e74edcd2ca80a868b98b881c831f476291b15f60459ec2d1de9
MD5 6c73edca8ffe38f9b84e35330c1e533e
BLAKE2b-256 a6c41613da5fc7d5a435bf8b404a40a1a80f19f04bf484623f3c2975944c14d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page