Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pydfql

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pydfql

A Wireshark-like display filter for querying data.

  • 1.3.0
  • PyPI
  • Socket score

Maintainers
1

pydfql Logo

Python Display Filter Query Language

made-with-python PyPI GitHub Build Status Coverage


A Wireshark-like display filter various data formats, including Python dictionaries, lists, objects, and SQL databases.

Table of Contents

  1. Quick Start

    1.1 Installation

    1.2 Initialization

    1.3 Filtering Data

  2. Examples

  3. Acknowledgements

Quick Start

To quickly get started follow the steps below:

Installation

First, install the package using pip:

pip3 install pydfql

Initialization

Next, import the necessary module and initialize the appropriate display filter with some data. In the example below we are initializing the ObjectDisplayFilter with a list of objects:

from dataclasses import dataclass
from pydfql import ObjectDisplayFilter

@dataclass
class Actor:
    name: list
    age: dict
    gender: str

actors = [
    Actor(["Laurence", "Fishburne"], {"born": "1961"}, "male"),
    Actor(["Keanu", "Reeves"], {"born": "1964"}, "male"),
    Actor(["Joe", "Pantoliano"], {"born": "1951"}, "male"),
    Actor(["Carrie-Anne", "Moss"], {"born": "1967"}, "female")
]

df = ObjectDisplayFilter(actors)

Filtering Data

Once the display filter is initialized, you can start filtering the data using the display filter query language. For example, let's filter the actors whose birth year is after 1960:

filter_query = "age.born > 1960"
filtered_data = df.filter(filter_query)
print(list(filtered_data))
[
    Actor(name=['Laurence', 'Fishburne'], age={'born': '1961'}, gender='male'),
    Actor(name=['Keanu', 'Reeves'], age={'born': '1964'}, gender='male'),
    Actor(name=['Carrie-Anne', 'Moss'], age={'born': '1967'}, gender='female')
]

You can also use more complex queries to filter the data. For example, let's filter male actors born between 1960 and 1964 whose names end with "e":

filter_query = "gender == male and (age.born > 1960 and age.born < 1965) and name matches .*e$"
filtered_data = df.filter(filter_query)
print(list(filtered_data))

This will output the filtered data:

[Actor(name=['Laurence', 'Fishburne'], age={'born': '1961'}, gender='male')]

Overall, PyDFQL supports a wide range of features, including:

  • Data Types: Dictionaries, Lists, Objects, SQL
  • Comparison Operators: ==, !=, <=, <, >=, >, ~=, ~, &
  • Combining Operators: and, or, xor, not
  • Membership Operators: in
  • Types: Text, Number, Date & Time, Ethernet-, IPv4-, IPv6-Address
  • Slicing: Text, Ethernet-, IPv4-, IPv6-Address
  • Functions: upper, lower, len

For a detailed description of the individual features check out the User Guide.

Examples

For detailed examples of how the display filter can be utilized, please refer to the following:

Acknowledgements

This project wouldn't be possible without these awesome projects:

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc