Skip to content

Module tipg.filter.filters

tipg.filter.filters

Variables

UNITS_LOOKUP

Functions

attribute

def attribute(
    name: str,
    fields: List[str]
)

Create an attribute lookup expression using a field mapping dictionary.

Parameters:

Name Type Description Default
name None the field filter name None
field_mapping None the dictionary to use as a lookup. None

bbox

def bbox(
    lhs,
    minx,
    miny,
    maxx,
    maxy,
    crs: int = 4326
)

Create a bounding box filter for the given spatial attribute.

Parameters:

Name Type Description Default
lhs None the field to compare None
minx None the lower x part of the bbox None
miny None the lower y part of the bbox None
maxx None the upper x part of the bbox None
maxy None the upper y part of the bbox None
crs None the CRS the bbox is expressed in None

Returns:

Type Description
None a comparison expression object

bbox_to_wkt

def bbox_to_wkt(
    bbox: List[float],
    srid: int = 4326
) -> str

Return WKT representation of a BBOX.

between

def between(
    lhs,
    low,
    high,
    negate=False
)

Create a filter to match elements that have a value within a certain range.

Parameters:

Name Type Description Default
lhs None the field to compare None
low None the lower value of the range None
high None the upper value of the range None
not_ None whether the range shall be inclusive (the default) or exclusive None

Returns:

Type Description
None a comparison expression object

combine

def combine(
    sub_filters,
    combinator: str = 'AND'
)

Combine filters using a logical combinator

Parameters:

Name Type Description Default
sub_filters None the filters to combine None
combinator None a string: "AND" / "OR" None

Returns:

Type Description
None the combined filter

func

def func(
    name,
    *args
)

Return results of running SQL function with arguments.

isnull

def isnull(
    lhs
)

null value.

like

def like(
    lhs,
    rhs,
    case=False,
    negate=False
)

Create a filter to filter elements according to a string attribute using wildcard expressions.

Parameters:

Name Type Description Default
lhs None the field to compare None
rhs None the wildcard pattern: a string containing any number of '%' characters as wildcards. None
case None whether the lookup shall be done case sensitively or not None
not_ None whether the range shall be inclusive (the default) or exclusive None

Returns:

Type Description
None a comparison expression object

literal

def literal(
    value
)

literal value.

negate

def negate(
    sub_filter
)

Negate a filter, opposing its meaning.

Parameters:

Name Type Description Default
sub_filter None the filter to negate None

Returns:

Type Description
None the negated filter

parse_geometry

def parse_geometry(
    geom: Dict[str, Any]
) -> str

Parse geometry object and return WKT.

quote_ident

def quote_ident(
    s: str
) -> str

quote.

runop

def runop(
    lhs,
    rhs=None,
    op: str = '=',
    negate: bool = False
)

Compare a filter with an expression using a comparison operation.

Parameters:

Name Type Description Default
lhs None the field to compare None
rhs None the filter expression None
op None a string denoting the operation. None

Returns:

Type Description
None a comparison expression object

spatial

def spatial(
    lhs,
    rhs,
    op,
    pattern=None,
    distance=None,
    units=None
)

Create a spatial filter for the given spatial attribute.

Parameters:

Name Type Description Default
lhs None the field to compare None
rhs None the time instant or time span to use as a filter None
op None the comparison operation. one of "INTERSECTS", "DISJOINT", `"CONTAINS","WITHIN","TOUCHES","CROSSES","OVERLAPS","EQUALS","RELATE","DWITHIN","BEYOND"`` None
pattern None the spatial relation pattern None
distance None the distance value for distance based lookups: "DWITHIN" and "BEYOND" None
units None the units the distance is expressed in None

Returns:

Type Description
None a comparison expression object

temporal

def temporal(
    lhs,
    time_or_period,
    op
)

Create a temporal filter for the given temporal attribute.

Parameters:

Name Type Description Default
lhs :class:django.db.models.F the field to compare None
time_or_period :class:datetime.datetime or a tuple of two datetimes or a tuple of one datetime and one :class:datetime.timedelta the time instant or time span to use as a filter None
op str the comparison operation. one of "BEFORE", "BEFORE OR DURING", "DURING", "DURING OR AFTER", "AFTER". None

Returns:

Type Description
:class:django.db.models.Q a comparison expression object

Classes

Operator

class Operator(
    operator: str = None
)

Filter Operators.

Class variables

OPERATORS