Package: sasctl
sasctlA user-friendly Python interface for SAS Viya.Full documentation:https://sassoftware.github.io/python-sasctlTable of ContentsOverviewPrerequisitesInstallationGetting StartedExamplesContributingLicenseAdditional ResourcesOverviewThe 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 listPrerequisitessasctl requires the following Python packages be installed.
If not already present, these packages will be downloaded and installed automatically.pandasrequestspyyamlpackagingThe following additional packages are recommended for full functionality:swatkerberosGitPythonnumpyscikit-learnInstallationInstalling the latest version is as easy as:pip install sasctlFunctionality 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-sasctlAlternatively, if you're using Anaconda you can install with:conda install -c sas-institute sasctlGetting StartedOnce 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 somethingsasctl --helpOnce 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 ManagerThe 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}ExamplesA few simple examples of common scenarios are listed below.  For more
complete examples see theexamplesfolder.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')ContributingWe welcome contributions!Please readCONTRIBUTING.mdfor details on how to submit contributions to this project.LicenseSee theLICENSEfile for details.Additional ResourcesSAS Viya REST DocumentationSAS Developer Community