跳转到主要内容

ADE Web API的Python客户端

项目描述

Latest Version Supported Python versions Download format License Development Status Downloads Build Status Documentation Status

pyade

一个用于从Adesoft的ADE Planning的ADE Web API的最小Python类。

这是一个非官方的开发。我与此公司没有任何关系。请自行承担使用风险。

工作正在进行中

用法

命令行界面脚本

您可能首先定义3个环境变量。

export ADE_WEB_API_URL="https://server/jsp/webapi"
export ADE_WEB_API_LOGIN="user_login"
export ADE_WEB_API_PASSWORD="user_password"

然后您可以使用以下命令运行示例

$ python sample/main.py

您还可以通过命令行界面使用可选参数传递url、登录名、密码

$ python sample/main.py --url https://server/jsp/webapi --user user_login --password user_password

交互式用法

使用以下命令运行IPython

$ ipython

您可以交互式地使用此类

In [1]: from pyade import ADEWebAPI, Config

导入日志模块并将级别设置为logging.DEBUG

In [2]: import logging
In [3]: logging.basicConfig(level=logging.DEBUG)

获取配置(来自环境变量)

In [4]: config = Config.create()

或传递给Config.create方法的参数

In [4]: config = Config.create(url='server', login='user_login', password='user_password')

您可以在控制台中安全地显示配置,您的密码将不会显示。

In [5]: config
Out[5]:
<Config {'url': 'https://server/jsp/webapi', 'login': 'user_login', 'password': '*********'}>

但是,您可以像字典一样访问任何键。例如

In [6]: config['url']
Out[6]: 'https://server/jsp/webapi'

所以小心,您的密码不在安全的地方,因为它在内存中。

可以使用**运算符解包配置并用作ADEWebAPI构造函数的参数。

In [7]: myade = ADEWebAPI(**config)

您可以使用“.”和制表符键显示ADEWebAPI的方法

In [8]: myade.
myade.connect                 myade.getActivities           myade.getProjects             myade.opt_params
myade.create_list_of_objects  myade.getCaracteristics       myade.getResources            myade.password
myade.disconnect              myade.getCosts                myade.hide_dict_values        myade.sessionId
myade.exception_factory       myade.getDate                 myade.logger                  myade.setProject
myade.factory                 myade.getEvents               myade.login                   myade.url

方法签名、文档字符串等可以使用“?”打印

In [8]: ?myade.connect
Signature: myade.connect()
Docstring: Connect to server
File:      ~/pyade/pyade/__init__.py
Type:      instancemethod

让我们连接到服务器(使用存储在 myade 实例中的 ADEWebAPI URL、登录名和密码)

In [9]: myade.connect()
DEBUG:ADEWebAPI:send {'function': 'connect', 'login': 'user_login', 'password': '*********', 'sessionId': '14cef8679e2'}
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): server
DEBUG:requests.packages.urllib3.connectionpool:"GET /jsp/webapi?function=connect&login=user_login&password=user_password&sessionId=14cef8679e2 HTTP/1.1" 200 None
DEBUG:ADEWebAPI:<Response [200]>
DEBUG:ADEWebAPI:<?xml version="1.0" encoding="UTF-8"?>
<session id="14cef878c17"/>

Out[9]: True

可以使用返回描述项目的字典列表

In [10]: myade.getProjects()
DEBUG:ADEWebAPI:send {'function': 'getProjects', 'sessionId': '14cef8679e2'}
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): server
DEBUG:requests.packages.urllib3.connectionpool:"GET /jsp/webapi?function=getProjects&sessionId=14cef8679e2 HTTP/1.1" 200 None
DEBUG:ADEWebAPI:<Response [200]>
DEBUG:ADEWebAPI:<?xml version="1.0" encoding="UTF-8"?>
<projects>
    <project id="6"/>
    <project id="5"/>
</projects>

Out[10]: [{'id': '6'}, {'id': '5'}]

您还可以使用可选参数,如 detail,以获取每个项目的更多详细信息。

In [11]: myade.getProjects(detail=4)
DEBUG:ADEWebAPI:send {'function': 'getProjects', 'sessionId': '14cef8679e2', 'detail': 4}
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): server
DEBUG:requests.packages.urllib3.connectionpool:"GET /jsp/webapi?function=getProjects&sessionId=14cef8679e2&detail=4 HTTP/1.1" 200 None
DEBUG:ADEWebAPI:<Response [200]>
DEBUG:ADEWebAPI:<?xml version="1.0" encoding="UTF-8"?>
<projects>
    <project id="6" name="2015-2016" uid="1428406688761" version="600" loaded="true"/>
    <project id="5" name="2014-2015" uid="1364884711514" version="520" loaded="true"/>
</projects>

Out[11]:
[{'id': '6',
  'loaded': 'true',
  'name': '2015-2016',
  'uid': '1428406688761',
  'version': '600'},
 {'id': '5',
  'loaded': 'true',
  'name': '2014-2015',
  'uid': '1364884711514',
  'version': '520'}]

您可以将类 ADEWebAPImyade 实例设置为在方法输出对象列表而不是字典列表

In [12]: myade.create_list_of_objects(True)

In [13]: myade.getProjects()
DEBUG:ADEWebAPI:send {'function': 'getProjects', 'sessionId': '14cef8679e2'}
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): server
DEBUG:requests.packages.urllib3.connectionpool:"GET /jsp/webapi?function=getProjects&sessionId=14cef8679e2 HTTP/1.1" 200 None
DEBUG:ADEWebAPI:<Response [200]>
DEBUG:ADEWebAPI:<?xml version="1.0" encoding="UTF-8"?>
<projects>
    <project id="6"/>
    <project id="5"/>
</projects>

Out[13]:
[Project({'id': '6'}),
 Project({'id': '5'})]

您需要设置当前项目。没有这个,您可能无法调用大多数方法。

In [14]: myade.setProject(5)
Out[14]: True

在退出之前,不要忘记从服务器断开连接。

In [15]: myade.disconnect()
DEBUG:ADEWebAPI:send {'function': 'disconnect', 'sessionId': '14cef8679e2'}
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): server
DEBUG:requests.packages.urllib3.connectionpool:"GET /jsp/webapi?function=disconnect&sessionId=14cef8679e2 HTTP/1.1" 200 None
DEBUG:ADEWebAPI:<Response [200]>
DEBUG:ADEWebAPI:<?xml version="1.0" encoding="UTF-8"?>
<disconnected sessionId="14cef8679e2"/>

Out[15]: True

项目详细信息


下载文件

下载适合您平台的应用程序。如果您不确定选择哪一个,请了解更多关于 安装软件包 的信息。

源分发

pyade-0.0.2.tar.gz (10.8 kB 查看哈希值)

上传时间

构建分发

pyade-0.0.2-py2.py3-none-any.whl (12.2 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面