graphistry.compute.predicates package#
Submodules#
graphistry.compute.predicates.ASTPredicate module#
- class graphistry.compute.predicates.ASTPredicate.ASTPredicate#
Bases:
ASTSerializableInternal, not intended for use outside of this module. These are fancy columnar predicates used in {k: v, …} node/edge df matching when going beyond primitive equality
graphistry.compute.predicates.categorical module#
- 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:
graphistry.compute.predicates.comparison module#
- class graphistry.compute.predicates.comparison.Between(lower, upper, inclusive=True)#
Bases:
ASTPredicate- Parameters:
lower (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
upper (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
inclusive (bool)
- to_json(validate=True)#
Serialize maintaining backward compatibility
- Return type:
dict
- class graphistry.compute.predicates.comparison.ComparisonPredicate(val)#
Bases:
ASTPredicateBase class for comparison predicates that support both numeric and temporal values
- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- to_json(validate=True)#
Serialize maintaining backward compatibility
- Return type:
dict
- class graphistry.compute.predicates.comparison.EQ(val)#
Bases:
ComparisonPredicate- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- class graphistry.compute.predicates.comparison.GE(val)#
Bases:
ComparisonPredicate- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- class graphistry.compute.predicates.comparison.GT(val)#
Bases:
ComparisonPredicate- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- class graphistry.compute.predicates.comparison.IsNA#
Bases:
ASTPredicate
- class graphistry.compute.predicates.comparison.LE(val)#
Bases:
ComparisonPredicate- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- class graphistry.compute.predicates.comparison.LT(val)#
Bases:
ComparisonPredicate- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- class graphistry.compute.predicates.comparison.NE(val)#
Bases:
ComparisonPredicate- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- class graphistry.compute.predicates.comparison.NotNA#
Bases:
ASTPredicate
- class graphistry.compute.predicates.comparison.NumericASTPredicate(val)#
Bases:
ComparisonPredicateDeprecated: Use ComparisonPredicate instead
- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- graphistry.compute.predicates.comparison.between(lower, upper, inclusive=True)#
Return whether a given value is between a lower and upper threshold
- Parameters:
lower (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
upper (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
inclusive (bool)
- Return type:
- graphistry.compute.predicates.comparison.eq(val)#
Return whether a given value is equal to a threshold.
Accepts: - Numeric values (int, float, np.number, bool) - Temporal values (datetime/date/time/pd.Timestamp, temporal wire dicts, TemporalValue) - Strings (e.g., eq(“active”))
For null checks, use isna() / notna() instead.
- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- Return type:
- graphistry.compute.predicates.comparison.ge(val)#
Return whether a given value is greater than or equal to a threshold
- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- Return type:
- graphistry.compute.predicates.comparison.gt(val)#
Return whether a given value is greater than a threshold
- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- Return type:
- graphistry.compute.predicates.comparison.isna()#
Return whether a given value is NA
- Return type:
- graphistry.compute.predicates.comparison.le(val)#
Return whether a given value is less than or equal to a threshold
- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- Return type:
- graphistry.compute.predicates.comparison.lt(val)#
Return whether a given value is less than a threshold
- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- Return type:
- graphistry.compute.predicates.comparison.ne(val)#
Return whether a given value is not equal to a threshold
- Parameters:
val (int | float | number | Timestamp | datetime | date | time | DateTimeWire | DateWire | TimeWire | TemporalValue | str)
- Return type:
graphistry.compute.predicates.from_json module#
- graphistry.compute.predicates.from_json.from_json(d)#
- Parameters:
d (Dict[str, None | bool | str | float | int | List[Any] | Dict[str, Any]])
- Return type:
graphistry.compute.predicates.is_in module#
- 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:
graphistry.compute.predicates.numeric module#
- 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.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.str module#
- 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)})
graphistry.compute.predicates.temporal module#
- 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:
graphistry.compute.predicates.types module#
Type definitions for predicates