GFQL Attribute Matchers#
Categorical#
- class graphistry.compute.predicates.categorical.Duplicated(keep='first')
Bases:
ASTPredicate- Parameters:
keep (Literal['first', 'last', False])
- graphistry.compute.predicates.categorical.duplicated(keep='first')
Return whether a given value is duplicated
- Parameters:
keep (Literal['first', 'last', False])
- Return type:
Is In#
- class graphistry.compute.predicates.is_in.IsIn(options)
Bases:
ASTPredicate- Parameters:
options (List[int | float | str | number | None | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue])
- to_json(validate=True)
Override to handle temporal values in options
- Return type:
dict
- graphistry.compute.predicates.is_in.is_in(options)
- Parameters:
options (List[int | float | str | number | None | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue])
- Return type:
Numeric#
- class graphistry.compute.predicates.numeric.Between(lower, upper, inclusive=True)
Bases:
ASTPredicate- Parameters:
lower (float)
upper (float)
inclusive (bool)
- class graphistry.compute.predicates.numeric.EQ(val)
Bases:
NumericASTPredicate- Parameters:
val (float)
- class graphistry.compute.predicates.numeric.GE(val)
Bases:
NumericASTPredicate- Parameters:
val (float)
- class graphistry.compute.predicates.numeric.GT(val)
Bases:
NumericASTPredicate- Parameters:
val (float)
- class graphistry.compute.predicates.numeric.IsNA
Bases:
ASTPredicate
- class graphistry.compute.predicates.numeric.LE(val)
Bases:
NumericASTPredicate- Parameters:
val (float)
- class graphistry.compute.predicates.numeric.LT(val)
Bases:
NumericASTPredicate- Parameters:
val (float)
- class graphistry.compute.predicates.numeric.NE(val)
Bases:
NumericASTPredicate- Parameters:
val (float)
- class graphistry.compute.predicates.numeric.NotNA
Bases:
ASTPredicate
- class graphistry.compute.predicates.numeric.NumericASTPredicate(val)
Bases:
ASTPredicate- Parameters:
val (int | float)
- graphistry.compute.predicates.numeric.between(lower, upper, inclusive=True)
Return whether a given value is between a lower and upper threshold
- Parameters:
lower (float)
upper (float)
inclusive (bool)
- Return type:
- graphistry.compute.predicates.numeric.eq(val)
Return whether a given value is equal to a threshold
- Parameters:
val (float)
- Return type:
- graphistry.compute.predicates.numeric.ge(val)
Return whether a given value is greater than or equal to a threshold
- Parameters:
val (float)
- Return type:
- graphistry.compute.predicates.numeric.gt(val)
Return whether a given value is greater than a threshold
- Parameters:
val (float)
- Return type:
- graphistry.compute.predicates.numeric.isna()
Return whether a given value is NA
- Return type:
- graphistry.compute.predicates.numeric.le(val)
Return whether a given value is less than or equal to a threshold
- Parameters:
val (float)
- Return type:
- graphistry.compute.predicates.numeric.lt(val)
Return whether a given value is less than a threshold
- Parameters:
val (float)
- Return type:
- graphistry.compute.predicates.numeric.ne(val)
Return whether a given value is not equal to a threshold
- Parameters:
val (float)
- Return type:
- graphistry.compute.predicates.numeric.notna()
Return whether a given value is not NA
- Return type:
String Predicates#
- class graphistry.compute.predicates.str.Contains(pat, case=True, flags=0, na=None, regex=True)
Bases:
ASTPredicate- Parameters:
pat (str)
case (bool)
flags (int)
na (bool | None)
regex (bool)
- class graphistry.compute.predicates.str.Endswith(pat, case=True, na=None)
Bases:
ASTPredicate- Parameters:
pat (str | tuple)
case (bool)
na (bool | None)
- class graphistry.compute.predicates.str.Fullmatch(pat, case=True, flags=0, na=None)
Bases:
ASTPredicate- Parameters:
pat (str)
case (bool)
flags (int)
na (bool | None)
- class graphistry.compute.predicates.str.IsAlnum
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.IsAlpha
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.IsDecimal
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.IsDigit
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.IsLower
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.IsNull
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.IsNumeric
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.IsSpace
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.IsTitle
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.IsUpper
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.Match(pat, case=True, flags=0, na=None)
Bases:
ASTPredicate- Parameters:
pat (str)
case (bool)
flags (int)
na (bool | None)
- class graphistry.compute.predicates.str.NotNull
Bases:
ASTPredicate
- class graphistry.compute.predicates.str.Startswith(pat, case=True, na=None)
Bases:
ASTPredicate- Parameters:
pat (str | tuple)
case (bool)
na (bool | None)
- graphistry.compute.predicates.str.contains(pat, case=True, flags=0, na=None, regex=True)
Return whether a given pattern or regex is contained within a string
- Parameters:
pat (str)
case (bool)
flags (int)
na (bool | None)
regex (bool)
- Return type:
- graphistry.compute.predicates.str.endswith(pat, case=True, na=None)
Return whether a given pattern or tuple of patterns is at the end of a string.
- Parameters:
pat (str | tuple) – Pattern (str) or tuple of patterns to match at end of string. When tuple, returns True if the string ends with ANY pattern (OR logic).
case (bool) – If True, case-sensitive matching (default: True).
na (bool | None) – Fill value for missing values (default: None).
- Returns:
Endswith predicate.
- Return type:
Examples#
>>> n({"email": endswith(".com")}) >>> n({"email": endswith(".COM", case=False)}) >>> n({"filename": endswith((".txt", ".csv"))}) >>> n({"filename": endswith((".TXT", ".CSV"), case=False)})
- graphistry.compute.predicates.str.fullmatch(pat, case=True, flags=0, na=None)
Return whether a given pattern matches the entire string
Unlike match() which matches from the start, fullmatch() requires the pattern to match the entire string. This is useful for exact validation of formats like emails, phone numbers, or IDs.
- Args:
pat: Regular expression pattern to match against entire string case: If True, case-sensitive matching (default: True) flags: Regex flags (e.g., re.IGNORECASE, re.MULTILINE) na: Fill value for missing values (default: None)
- Returns:
Fullmatch predicate
- Examples:
>>> # Exact digit match >>> n({"code": fullmatch(r"\d{3}")}) # Matches "123" but not "123abc" >>> >>> # Case-insensitive email validation >>> n({"email": fullmatch(r"[a-z]+@[a-z]+\.com", case=False)}) >>> >>> # With regex flags >>> import re >>> n({"id": fullmatch(r"[A-Z]{3}-\d{4}", flags=re.IGNORECASE)})
- Parameters:
pat (str)
case (bool)
flags (int)
na (bool | None)
- Return type:
- graphistry.compute.predicates.str.isalnum()
Return whether a given string is alphanumeric
- Return type:
- graphistry.compute.predicates.str.isalpha()
Return whether a given string is alphabetic
- Return type:
- graphistry.compute.predicates.str.isdecimal()
Return whether a given string is decimal
- Return type:
- graphistry.compute.predicates.str.isdigit()
Return whether a given string is numeric
- Return type:
- graphistry.compute.predicates.str.islower()
Return whether a given string is lowercase
- Return type:
- graphistry.compute.predicates.str.isnull()
Return whether a given string is null
- Return type:
- graphistry.compute.predicates.str.isnumeric()
Return whether a given string is numeric
- Return type:
- graphistry.compute.predicates.str.isspace()
Return whether a given string is whitespace
- Return type:
- graphistry.compute.predicates.str.istitle()
Return whether a given string is title case
- Return type:
- graphistry.compute.predicates.str.isupper()
Return whether a given string is uppercase
- Return type:
- graphistry.compute.predicates.str.match(pat, case=True, flags=0, na=None)
Return whether a given pattern is at the start of a string
- Parameters:
pat (str)
case (bool)
flags (int)
na (bool | None)
- Return type:
- graphistry.compute.predicates.str.notnull()
Return whether a given string is not null
- Return type:
- graphistry.compute.predicates.str.startswith(pat, case=True, na=None)
Return whether a given pattern or tuple of patterns is at the start of a string.
- Parameters:
pat (str | tuple) – Pattern (str) or tuple of patterns to match at start of string. When tuple, returns True if the string starts with ANY pattern (OR logic).
case (bool) – If True, case-sensitive matching (default: True).
na (bool | None) – Fill value for missing values (default: None).
- Returns:
Startswith predicate.
- Return type:
Examples#
>>> n({"name": startswith("John")}) >>> n({"name": startswith("john", case=False)}) >>> n({"filename": startswith(("test_", "demo_"))}) >>> n({"filename": startswith(("TEST", "DEMO"), case=False)})
Temporal#
- class graphistry.compute.predicates.temporal.IsLeapYear
Bases:
ASTPredicate
- class graphistry.compute.predicates.temporal.IsMonthEnd
Bases:
ASTPredicate
- class graphistry.compute.predicates.temporal.IsMonthStart
Bases:
ASTPredicate
- class graphistry.compute.predicates.temporal.IsQuarterEnd
Bases:
ASTPredicate
- class graphistry.compute.predicates.temporal.IsQuarterStart
Bases:
ASTPredicate
- class graphistry.compute.predicates.temporal.IsYearEnd
Bases:
ASTPredicate
- class graphistry.compute.predicates.temporal.IsYearStart
Bases:
ASTPredicate
- graphistry.compute.predicates.temporal.is_leap_year()
Return whether a given value is a leap year
- Return type:
- graphistry.compute.predicates.temporal.is_month_end()
Return whether a given value is a month end
- Return type:
- graphistry.compute.predicates.temporal.is_month_start()
Return whether a given value is a month start
- Return type:
- graphistry.compute.predicates.temporal.is_quarter_end()
Return whether a given value is a quarter end
- Return type:
- graphistry.compute.predicates.temporal.is_quarter_start()
Return whether a given value is a quarter start
- Return type:
- graphistry.compute.predicates.temporal.is_year_end()
Return whether a given value is a year end
- Return type:
- graphistry.compute.predicates.temporal.is_year_start()
Return whether a given value is a year start
- Return type:
Temporal Values#
- class graphistry.compute.ast_temporal.DateTimeValue(value, timezone='UTC')
Bases:
TemporalValueTagged datetime value with timezone support
- Parameters:
value (str)
timezone (str)
- as_pandas_value()
Convert to pandas-compatible value for comparison
- Return type:
Timestamp
- classmethod from_datetime(dt)
Create from Python datetime
- Parameters:
dt (datetime)
- Return type:
- classmethod from_pandas_timestamp(ts)
Create from pandas Timestamp
- Parameters:
ts (Timestamp)
- Return type:
- to_json()
Return dict for tagged temporal value
- Return type:
- class graphistry.compute.ast_temporal.DateValue(value)
Bases:
TemporalValueTagged date value
- Parameters:
value (str)
- as_pandas_value()
Convert to pandas-compatible value for comparison
- Return type:
Timestamp
- classmethod from_date(d)
Create from Python date
- Parameters:
d (date)
- Return type:
- to_json()
Return dict for tagged temporal value
- Return type:
- class graphistry.compute.ast_temporal.TemporalValue
Bases:
ABCBase class for temporal values with tagging support
- abstract as_pandas_value()
Convert to pandas-compatible value for comparison
- Return type:
Any
- abstract to_json()
Serialize to JSON-compatible dictionary
- Return type:
- class graphistry.compute.ast_temporal.TimeValue(value)
Bases:
TemporalValueTagged time value
- Parameters:
value (str)
- as_pandas_value()
Convert to pandas-compatible value for comparison
- Return type:
time
- classmethod from_time(t)
Create from Python time
- Parameters:
t (time)
- Return type:
- to_json()
Return dict for tagged temporal value
- Return type:
- graphistry.compute.ast_temporal.temporal_value_from_json(d)
Factory function to create temporal value from JSON dict
- Parameters:
d (Dict[str, Any])
- Return type: