ADE Web API的Python客户端
项目描述
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'}]
您可以将类 ADEWebAPI 的 myade 实例设置为在方法输出对象列表而不是字典列表
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 查看哈希值)
关闭
pyade-0.0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 31302541fa80abb850c3b4c378d25d47a90fb2cfdc8176321f1ea4231d0d6cb4 |
|
MD5 | 565b7ed683500e9552d305bfd6b55951 |
|
BLAKE2b-256 | 5ca0797c7a8947fd51c5ea9c5e7297dc246f6f6d3f0b3d1348d840302654123f |
关闭
pyade-0.0.2-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7805c6fac912af5c5b3ad69ea68b3a303a7e57bade90558dcfb4e28b43e8cbd2 |
|
MD5 | da7242cd2040784bbe5aeced61434565 |
|
BLAKE2b-256 | edb8d8cc372660c178fb15d66c0e1920078ce451f66c13ecc05a492e2f4db9a8 |