Skip to main content

This library acts as a wrapper around the wonderful [requests](https://python-requests.org) library for accessing [Datagrepper](https://apps.fedoraproject.org/datagrepper/).

Requirements

Usage

The API is designed around being chainable. To start, create a new Grepper:

>>> from datanozzle import Grepper
>>> g = Grepper()
>>>

Then, you can build up queries by chaining methods (each new method returns a new query object, so you can reuse partially built queries):

>>> q1 = g.by_user('sross').ascending
>>> q2 = q1.by_topic('org.fedoraproject.prod.fedbadges.person.rank.advance')
>>>

Queries are not executed until they are evaluated by iterating over them (the library will automatically continue to fetch new pages of information). Each record is returned as an Entry, which has several persistent fields (which are accessible as properties), and additional data available in a dict-like manner:

>>> 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'
>>>

Most queries can support multiple values. You can either pass multiple values, like g.by_user(‘sross’, ‘someuser’) or chain, like g.by_user(‘sross’).by_user(‘someuser’). To get a query with a parameter reset, call reset(parameter_name), like g.reset(‘user’).

Queries

  • by_user(*users): filter by FAS username

  • without_user(*users): inverse of by_user

  • by_package(*packages): filter by package name

  • without_package(*packages): inverse of by_package

  • by_category(*categories): filter by category (the third or fourth part of the topic)

  • without_category(*categories): inverse of by_category

  • by_topic(*topics): filter by topic

  • without_topic(*topics): inverse of by_topic

  • containing(substring): filter by keyword in the message

  • paginate(rows): set the number of rows per page

  • with_meta(*meta_type): return additional meta-information with the results

  • grouped (property): group similar results together

  • ascending (property): sort results in ascending order

  • descending (property): sort results in descending order

  • take(pages): only return results from the first pages pages

  • skip(pages): skip the first pages pages

  • starting_at(start): return results from after the given date/time

  • ending_at(end): return results from before the given date/time

  • delta_seconds(delta): modify start/end times by delta seconds

Data Properties

  • certificate: a string containing the certificate

  • signature: a string containing the signature

  • meta: a dict containing additional meta-information

  • index: the message index

  • timestamp: a datetime containing the timestamp for the object

  • topic: the topic of the message

Release files for datanozzle 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datanozzle 0.9.0
File Size Uploaded
datanozzle-0.9.0.tgz 10.1 kB Details

Release files / datanozzle-0.9.0.tgz

Download URL datanozzle-0.9.0.tgz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d24ae11d24b47b626da9316537a737898191fd275183cc4f5c2209b7365f669a
BLAKE2b-256 checksum
How to use checksums
a363956ac15c7564d4a01fdfe692beb50700f763c00f44abb83616cdb3c59568
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.9.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page