Request Tracker API的Python接口
项目描述
Rt - Request Tracker API的Python接口
- 这里描述的REST API的Python实现
Python |
rt |
---|---|
2.7 |
< 2.0.0 |
>= 3.5, <3.7 |
>= 2.0.0, < 3.0.0 |
>= 3.7 |
>= 3.0.0, < 3.1.0 |
>= 3.8 |
>= 3.0.0 |
- ℹ️ 注意
请注意,从v3.0.0的主要版本开始,此库需要Python版本 >= 3.8。有关更详细的信息,请参阅上面的Python版本兼容性表格。
- ⚡ 注意
截至版本3.1.0,此库支持异步。用法
import rt.rest2 import httpx tracker = rt.rest2.AsyncRt('http://localhost/rt/REST/2.0/', http_auth=httpx.BasicAuth('root', 'password'))
- ⚠️ 警告
尽管版本3.x仍然支持RT REST API版本1,但它包含一些小的破坏性更改。有关详细信息,请参阅文档中的更改日志。
需求
- 此模块使用以下Python模块
requests (http://docs.python-requests.org/)
requests-toolbelt (https://pypi.ac.cn/project/requests-toolbelt/)
typing-extensions (取决于Python版本)
文档
安装
使用以下命令安装python-rt包
pip install rt
许可证
此模块根据GNU通用公共许可证v3分发,并由CZ.NIC Labs开发 - CZ.NIC协会的研究和开发部门 - .CZ顶级域名注册商。GNU通用公共许可证的副本随此模块一起分发。
用法
举例说明胜过千言万语
>>> import rt.rest2 >>> import httpx >>> tracker = rt.rest2.Rt('http://localhost/rt/REST/2.0/', http_auth=httpx.BasicAuth('root', 'password')) >>> map(lambda x: x['id'], tracker.search(Queue='helpdesk', Status='open')) ['1', '2', '10', '15'] >>> tracker.create_ticket(queue='helpdesk', \ ... subject='Coffee (important)', content='Help I Ran Out of Coffee!') 19 >>> tracker.edit_ticket(19, Requestor='addicted@example.com') True >>> tracker.reply(19, content='Do you know Starbucks?') True
获取最近更新过的特定队列中最后的重要更新
>>> import datetime >>> import base64 >>> import rt.rest2 >>> import httpx >>> tracker = rt.rest2.Rt('http://localhost/rt/REST/2.0/', http_auth=httpx.BasicAuth('root', 'password')) >>> fifteen_minutes_ago = str(datetime.datetime.now() - datetime.timedelta(minutes=15)) >>> tickets = tracker.last_updated(since=fifteen_minutes_ago) >>> for ticket in tickets: >>> id = ticket['id'] >>> history = tracker.get_ticket_history(id) >>> last_update = list(reversed([h for h in history if h['Type'] in ('Correspond', 'Comment')])) >>> hid = tracker.get_transaction(last_update[0]['id'] if last_update else history[0]['id']) >>> >>> attachment_id = None >>> for k in hid['_hyperlinks']: >>> if k['ref'] == 'attachment': >>> attachment_id = k['_url'].rsplit('/', 1)[1] >>> break >>> >>> if attachment_id is not None: >>> attachment = c.get_attachment(attachment_id) >>> if attachment['Content'] is not None: >>> content = base64.b64decode(attachment['Content']).decode() >>> print(content)
请使用docstrings查看如何使用不同的函数。它们是用ReStructuredText编写的。您还可以通过在doc目录中运行make html来生成HTML文档(需要Sphinx)。
官方网站
- 项目网站、问题跟踪和git仓库
项目详情
下载文件
为您的平台下载文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源分布
rt-3.2.0.tar.gz (75.0 kB 查看哈希值)
构建分布
rt-3.2.0-py3-none-any.whl (53.4 kB 查看哈希值)