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('https:///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('https:///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('https:///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 查看哈希值)