跳转到主要内容

Request Tracker API的Python接口

项目描述

codebeat badge tests Documentation Status https://badge.fury.io/py/rt.svg

Rt - Request Tracker API的Python接口

这里描述的REST API的Python实现
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模块

文档

https://python-rt.readthedocs.io/en/latest/

安装

使用以下命令安装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仓库

https://github.com/python-rt/python-rt

项目详情


下载文件

为您的平台下载文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分布

rt-3.2.0.tar.gz (75.0 kB 查看哈希值)

上传时间

构建分布

rt-3.2.0-py3-none-any.whl (53.4 kB 查看哈希值)

上传于 Python 3

由以下支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面