SAS Viya Rest客户端

sasctl的Python项目详细描述


sasctl

一个用户友好的sas viya rest客户端。

SAS Viya VersionPython Version
完整文档:https://sassoftware.github.io/python-sasctl

概述

sasctl包使sas viya之间的通信变得容易 平台和python运行时。它可以用作模块或命令行接口。

sasctl.folders.list_folders()
sasctl folders list

先决条件

sasctl要求安装以下python包。 如果尚未出现,则将自动下载并安装这些软件包。

  • 请求

对于完整的功能,建议使用以下附加软件包:

  • SWAT
  • kerberos

安装

pip install sasctl

依赖于其他软件包的功能可以使用以下方法安装:

  • pip install sasctl[swat]
  • pip install sasctl[kerberos]
  • pip install sasctl[all]

开始

一旦sasctl包安装完毕,并且您有一个sas viya服务器要连接, 第一步是建立会话:

>>> from sasctl import Session

>>> with Session(host, username, password):
...     pass  # do something
sasctl --help 

创建会话后,所有命令都以该环境为目标。 使用sasctl最简单的方法通常是使用预定义的任务, 它可以处理与SAS Viya服务器的所有必要通信:

>>> 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')

与环境交互的更低级的方法是 直接服务方式:

>>> 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}

与服务器交互的最基本方式是调用rest 虽然一般情况下,不建议直接使用函数。

>>> 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文件夹。

显示模型管理器中当前的模型:

>>> from sasctl import Session
>>> from sasctl.services import model_repository

>>> with Session(host, username, password):
...    models = model_repository.list_models()

在模型管理器中注册纯python模型:

>>> 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')

在模型管理器中注册cas模型:

>>> 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.md 有关如何向本项目提交稿件的详细信息。

许可证

有关详细信息,请参见LICENSE文件。

其他资源

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
实现接口方法时不允许java@Override   使用BuffereImage加载映像时java高ram使用率   java For循环混乱,为什么不是循环?   java Android网格视图字符串对齐问题   java如何将方法与比较类型的附加功能进行比较?   在Java Swing中放置JSepator后的间隙大小   java如何避免并发访问我的网站中的支付链接   java如何从现有的Unix服务器连接到FTP服务器?   Spring中的java用户相关bean定义   带有scribesjava库的wordpress Woocommerce REST API返回消费者密钥参数缺失错误消息   java我可以自动检测特定设备连接的串行端口吗?   Javafx棋盘游戏   java使用JTextPane显示HTML,支持SVG吗?   SpringBoot如何在java中将映射转换为实体对象?   如何使用java代码对xls文件进行密码保护   Java JPA(EclipseLink)如何在持久化实际实体之前接收下一个生成的值?   Javaservlet启动外部进程