type_bridge.fields¶
fields
¶
Field reference system for type-safe query building.
This module provides field descriptors and references that enable type-safe query expressions like Person.age.gt(Age(30)) and Employment.employee.age.gt(Age(30)).
FieldDescriptor
¶
Descriptor for entity fields that supports dual behavior: - Class-level access: Returns FieldRef[T] for query building - Instance-level access: Returns T (the attribute value)
Create a field descriptor.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
field_name
|
str
|
Python field name |
required |
attr_type
|
type[T]
|
Attribute type class |
required |
Source code in type_bridge/fields/base.py
__get__
¶
__get__(instance: None, owner: Any) -> FieldRef[T]
__get__(instance: Entity, owner: Any) -> T | None
Get field value or field reference.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
instance
|
Entity | None
|
Entity instance (None for class-level access) |
required |
owner
|
Any
|
Entity class |
required |
Returns:
| Type | Description |
|---|---|
FieldRef[T] | T | None
|
FieldRef[T] for class-level access, T | None for instance-level access |
Source code in type_bridge/fields/base.py
__set__
¶
Set field value on instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
instance
|
Entity
|
Entity instance |
required |
value
|
T
|
Attribute value to set |
required |
Source code in type_bridge/fields/base.py
FieldRef
¶
Type-safe reference to an entity field.
Returned when accessing entity class attributes (e.g., Person.age). Provides query methods like .gt(), .lt(), etc. that return typed expressions.
Create a field reference.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
field_name
|
str
|
Python field name |
required |
attr_type
|
type[T]
|
Attribute type class |
required |
entity_type
|
Any
|
Entity type that owns this field |
required |
Source code in type_bridge/fields/base.py
lt
¶
Create a less-than comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
ComparisonExpr[T]
|
ComparisonExpr for this field < value |
Source code in type_bridge/fields/base.py
gt
¶
Create a greater-than comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
ComparisonExpr[T]
|
ComparisonExpr for this field > value |
Source code in type_bridge/fields/base.py
lte
¶
Create a less-than-or-equal comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
ComparisonExpr[T]
|
ComparisonExpr for this field <= value |
Source code in type_bridge/fields/base.py
gte
¶
Create a greater-than-or-equal comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
ComparisonExpr[T]
|
ComparisonExpr for this field >= value |
Source code in type_bridge/fields/base.py
eq
¶
Create an equality comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
ComparisonExpr[T]
|
ComparisonExpr for this field == value |
Source code in type_bridge/fields/base.py
neq
¶
Create a not-equal comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
ComparisonExpr[T]
|
ComparisonExpr for this field != value |
Source code in type_bridge/fields/base.py
NumericFieldRef
¶
Bases: FieldRef[T]
Field reference for numeric attribute types.
Provides additional numeric-specific operations like sum, avg, max, min.
Source code in type_bridge/fields/base.py
sum
¶
Create a sum aggregation expression.
Returns:
| Type | Description |
|---|---|
AggregateExpr[T]
|
AggregateExpr for sum of this field |
Source code in type_bridge/fields/base.py
avg
¶
Create an average (mean) aggregation expression.
Returns:
| Type | Description |
|---|---|
AggregateExpr[T]
|
AggregateExpr for average/mean of this field |
Source code in type_bridge/fields/base.py
max
¶
Create a maximum aggregation expression.
Returns:
| Type | Description |
|---|---|
AggregateExpr[T]
|
AggregateExpr for maximum of this field |
Source code in type_bridge/fields/base.py
min
¶
Create a minimum aggregation expression.
Returns:
| Type | Description |
|---|---|
AggregateExpr[T]
|
AggregateExpr for minimum of this field |
Source code in type_bridge/fields/base.py
median
¶
Create a median aggregation expression.
Returns:
| Type | Description |
|---|---|
AggregateExpr[T]
|
AggregateExpr for median of this field |
Source code in type_bridge/fields/base.py
std
¶
Create a standard deviation aggregation expression.
Returns:
| Type | Description |
|---|---|
AggregateExpr[T]
|
AggregateExpr for standard deviation of this field |
Source code in type_bridge/fields/base.py
StringFieldRef
¶
Bases: FieldRef[T]
Field reference for String attribute types.
Provides additional string-specific operations like contains, like, regex.
Source code in type_bridge/fields/base.py
contains
¶
Create a string contains expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Substring to search for |
required |
Returns:
| Type | Description |
|---|---|
StringExpr[T]
|
StringExpr for this field contains value |
Source code in type_bridge/fields/base.py
like
¶
Create a string pattern matching expression (regex).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pattern
|
T
|
Regex pattern to match |
required |
Returns:
| Type | Description |
|---|---|
StringExpr[T]
|
StringExpr for this field like pattern |
Source code in type_bridge/fields/base.py
regex
¶
Create a string regex expression (alias for like).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pattern
|
T
|
Regex pattern to match |
required |
Returns:
| Type | Description |
|---|---|
StringExpr[T]
|
StringExpr for this field matching pattern |
Source code in type_bridge/fields/base.py
RolePlayerFieldRef
¶
Field reference for role-player attributes.
Provides comparison methods that return RolePlayerExpr instead of regular ComparisonExpr, adding role context for proper TypeQL generation.
Example
Employment.employee.age # Returns RolePlayerNumericFieldRef[Age] Employment.employee.age.gt(Age(30)) # Returns RolePlayerExpr
Create a role-player field reference.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name
|
str
|
Name of the role (e.g., "employee") |
required |
field_name
|
str
|
Python field name on the player entity |
required |
attr_type
|
type[T]
|
Attribute type class |
required |
player_types
|
tuple[type[TypeDBType], ...]
|
Tuple of entity types that can play this role |
required |
Source code in type_bridge/fields/role.py
lt
¶
Create a less-than comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
RolePlayerExpr
|
RolePlayerExpr wrapping a less-than comparison |
Source code in type_bridge/fields/role.py
gt
¶
Create a greater-than comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
RolePlayerExpr
|
RolePlayerExpr wrapping a greater-than comparison |
Source code in type_bridge/fields/role.py
lte
¶
Create a less-than-or-equal comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
RolePlayerExpr
|
RolePlayerExpr wrapping a less-than-or-equal comparison |
Source code in type_bridge/fields/role.py
gte
¶
Create a greater-than-or-equal comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
RolePlayerExpr
|
RolePlayerExpr wrapping a greater-than-or-equal comparison |
Source code in type_bridge/fields/role.py
eq
¶
Create an equality comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
RolePlayerExpr
|
RolePlayerExpr wrapping an equality comparison |
Source code in type_bridge/fields/role.py
neq
¶
Create a not-equal comparison expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Value to compare against |
required |
Returns:
| Type | Description |
|---|---|
RolePlayerExpr
|
RolePlayerExpr wrapping a not-equal comparison |
Source code in type_bridge/fields/role.py
RolePlayerNumericFieldRef
¶
Bases: RolePlayerFieldRef[T]
Role-player field reference for numeric attributes.
Inherits comparison methods from RolePlayerFieldRef. Aggregation methods (sum, avg, etc.) are not supported for role-player fields as they require grouping context.
Example
Employment.employee.age # Returns RolePlayerNumericFieldRef[Age] Employment.employee.age.gt(Age(30)) # Returns RolePlayerExpr
Source code in type_bridge/fields/role.py
RolePlayerStringFieldRef
¶
Bases: RolePlayerFieldRef[T]
Role-player field reference for String attributes.
Provides additional string-specific operations like contains, like, regex, all wrapped in RolePlayerExpr for proper role context.
Example
Employment.employer.name # Returns RolePlayerStringFieldRef[Name] Employment.employer.name.contains(Name("Tech")) # Returns RolePlayerExpr
Source code in type_bridge/fields/role.py
contains
¶
Create a string contains expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
Substring to search for |
required |
Returns:
| Type | Description |
|---|---|
RolePlayerExpr
|
RolePlayerExpr wrapping a contains expression |
Source code in type_bridge/fields/role.py
like
¶
Create a string pattern matching expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pattern
|
T
|
Pattern to match (SQL LIKE style) |
required |
Returns:
| Type | Description |
|---|---|
RolePlayerExpr
|
RolePlayerExpr wrapping a like expression |
Source code in type_bridge/fields/role.py
regex
¶
Create a string regex expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pattern
|
T
|
Regex pattern to match |
required |
Returns:
| Type | Description |
|---|---|
RolePlayerExpr
|
RolePlayerExpr wrapping a regex expression |
Source code in type_bridge/fields/role.py
RoleRef
¶
Reference to a role for type-safe attribute access.
Returned when accessing a Role descriptor from the Relation class level. Enables chained attribute access for building type-safe filter expressions.
Example
Employment.employee # Returns RoleRef[Person] Employment.employee.age # Returns RolePlayerNumericFieldRef[Age] Employment.employee.age.gt(Age(30)) # Returns RolePlayerExpr
For Role.multi() (polymorphic roles), attributes from all player types are available. If an attribute exists on at least one player type, it can be accessed.
Relations can also be role players
Permission.permitted_access # Returns RoleRef[Access] where Access is a Relation
Create a role reference.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name
|
str
|
Name of the role (e.g., "employee") |
required |
player_types
|
tuple[type[T], ...]
|
Tuple of types (Entity or Relation) that can play this role |
required |
Source code in type_bridge/fields/role.py
__getattr__
¶
Access role-player attribute for query building.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Attribute name to access |
required |
Returns:
| Type | Description |
|---|---|
RolePlayerFieldRef[Any]
|
Appropriate RolePlayerFieldRef subclass based on attribute type |
Raises:
| Type | Description |
|---|---|
AttributeError
|
If attribute doesn't exist on any player type |
Source code in type_bridge/fields/role.py
__dir__
¶
Enable IDE autocompletion for available player attributes.
Returns:
| Type | Description |
|---|---|
list[str]
|
List of available attribute names from all player types |