type_bridge.fields.role¶
role
¶
Role-player field references for type-safe query building.
This module provides field reference classes that enable type-safe filtering of role-player attributes in relations:
Employment.employee.age.gt(Age(30))
Employment.employer.name.contains(Name("Tech"))
These expressions return RolePlayerExpr instances that wrap the underlying comparison or string expressions with role context for proper TypeQL generation.
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
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
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
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 |