Core Library0.xAPI Reference

Choose documentation 3

latest

Current version

latest
English

Early release libtmux is released, and its APIs may still change between releases. This site's structure and URLs may change too.

class libtmux latest

QueryList

Filter list of object/dictionaries. For small, local datasets.

Base types list[T]t.Generic[T]
Source and package
Qualified name
libtmux._internal.query_list.QueryList
Module
libtmux._internal.query_list
Package
libtmux
Source
src/libtmux/_internal/query_list.py
class libtmux._internal.query_list.QueryList

Description#

Experimental, unstable.

With dictionaries:

>>> query = QueryList(
... [
... {
... "place": "Largo",
... "city": "Tampa",
... "state": "Florida",
... "foods": {"fruit": ["banana", "orange"], "breakfast": "cereal"},
... },
... {
... "place": "Chicago suburbs",
... "city": "Elmhurst",
... "state": "Illinois",
... "foods": {"fruit": ["apple", "cantelope"], "breakfast": "waffles"},
... },
... ]
... )
>>> query.filter(place="Chicago suburbs")[0]['city']
'Elmhurst'
>>> query.filter(place__icontains="chicago")[0]['city']
'Elmhurst'
>>> query.filter(foods__breakfast="waffles")[0]['city']
'Elmhurst'
>>> query.filter(foods__fruit__in="cantelope")[0]['city']
'Elmhurst'
>>> query.filter(foods__fruit__in="orange")[0]['city']
'Tampa'
>>> query.filter(foods__fruit__in="apple")
[{'place': 'Chicago suburbs',
'city': 'Elmhurst',
'state': 'Illinois',
'foods':
{'fruit': ['apple', 'cantelope'], 'breakfast': 'waffles'}}]
>>> query.filter(foods__fruit__in="non_existent")
[]

With objects:

>>> from typing import Any, Dict
>>> from dataclasses import dataclass, field
>>> @dataclass()
... class Restaurant:
... place: str
... city: str
... state: str
... foods: Dict[str, Any]
>>> restaurant = Restaurant(
... place="Largo",
... city="Tampa",
... state="Florida",
... foods={
... "fruit": ["banana", "orange"], "breakfast": "cereal"
... }
... )
>>> restaurant
Restaurant(place='Largo',
city='Tampa',
state='Florida',
foods={'fruit': ['banana', 'orange'], 'breakfast': 'cereal'})
>>> query = QueryList([restaurant])
>>> query.filter(foods__fruit__in="banana")
[Restaurant(place='Largo',
city='Tampa',
state='Florida',
foods={'fruit': ['banana', 'orange'], 'breakfast': 'cereal'})]
>>> query.filter(foods__fruit__in="banana")[0].city
'Tampa'
>>> query.get(foods__fruit__in="banana").city
'Tampa'

With objects (nested):

>>> from typing import List, Optional
>>> from dataclasses import dataclass, field
>>> @dataclass()
... class Food:
... fruit: List[str] = field(default_factory=list)
... breakfast: Optional[str] = None
>>> @dataclass()
... class Restaurant:
... place: str
... city: str
... state: str
... food: Food = field(default_factory=Food)
>>> query = QueryList([
... Restaurant(
... place="Largo",
... city="Tampa",
... state="Florida",
... food=Food(
... fruit=["banana", "orange"], breakfast="cereal"
... )
... ),
... Restaurant(
... place="Chicago suburbs",
... city="Elmhurst",
... state="Illinois",
... food=Food(
... fruit=["apple", "cantelope"], breakfast="waffles"
... )
... )
... ])
>>> query.filter(food__fruit__in="banana")
[Restaurant(place='Largo',
city='Tampa',
state='Florida',
food=Food(fruit=['banana', 'orange'], breakfast='cereal'))]
>>> query.filter(food__fruit__in="banana")[0].city
'Tampa'
>>> query.get(food__fruit__in="banana").city
'Tampa'
>>> query.filter(food__breakfast="waffles")
[Restaurant(place='Chicago suburbs',
city='Elmhurst',
state='Illinois',
food=Food(fruit=['apple', 'cantelope'], breakfast='waffles'))]
>>> query.filter(food__breakfast="waffles")[0].city
'Elmhurst'
>>> query.filter(food__breakfast="non_existent")
[]
Type parameters

Members7#

Common operations2#

  • get method Retrieve exactly one object.
  • filter method Filter list of objects.

Other members5#

Guides#

Pages that discuss QueryList.

Topics
Esc

Type to search.

Reference previewOpen reference