datagrepper的python客户端
datanozzle的Python项目详细描述
这个图书馆充当了 [请求](https://python-requests.org)用于访问的库 [datagrepper](https://apps.fedoraproject.org/datagrepper/)。
要求
- Python3.3+
- [请求](https://python-requests.org)
用法
api是围绕可链接性而设计的。首先,创建一个新的grepper
>>> from datanozzle import Grepper >>> g = Grepper() >>>
然后,可以通过链接方法构建查询(每个新方法返回一个新的 查询对象,以便可以重用部分生成的查询:
>>> q1 = g.by_user('sross').ascending >>> q2 = q1.by_topic('org.fedoraproject.prod.fedbadges.person.rank.advance') >>>
在通过迭代对查询求值之前,不会执行查询(库将 自动继续获取新的信息页)每个记录都作为条目返回, 它有几个持久字段(可以作为属性访问)和其他数据 以类似于dict的方式提供:
>>> entry = next(iter(q2.take(pages=1))) >>> entry.topic 'org.fedoraproject.prod.fedbadges.person.rank.advance' >>> entry.timestamp datetime.datetime(2015, 1, 16, 15, 2, 5) >>> entry['person']['nickname'] 'sross' >>>
大多数查询可以支持多个值。您可以传递多个值,如 g.by嫒user('sross','someuser')或chain,如g.by嫒user('sross')。by嫒user('someuser')。 要使用参数reset获取查询,请调用reset(参数名),如g.reset('user')。
查询
- 按用户(*users):按FAS用户名筛选
- 没有用户(*users):与用户的相反
- 按包(*packages):按包名称筛选
- 不带软件包(*packages):与按软件包的相反
- 按类别(*categories):按类别筛选(主题的第三或第四部分)
- 没有类别(*categories):与按类别的相反
- 按主题(*topics):按主题筛选
- 不带主题(*topics):与按主题的相反
- 包含(子字符串):按消息中的关键字筛选
- 分页(行):设置每页的行数
- with_meta(*meta_type):返回附加的meta信息和结果
- 分组(property):将相似的结果分组在一起
- 升序(property):按升序排序结果
- 降序(property):按降序排序结果
- take(pages):仅返回第一页pages的结果
- 跳过(页):跳过第一页{em1}$pages页
- 起始于(start):返回给定日期/时间之后的结果
- 结束于(end):返回给定日期/时间之前的结果
- 增量秒(delta):通过delta秒修改开始/结束时间
数据属性
- 证书:包含证书的字符串
- 签名:包含签名的字符串
- meta:包含附加meta信息的dict
- 索引:消息索引
- 时间戳:a日期时间包含对象的时间戳
- 主题:消息的主题