THE ORIONIS API
Build with clarity.
Explore the building blocks of an async-first Python framework. Every module, class, and method — connected, searchable, and ready to build with.
class Relation(ModelQueryBuilder[
Known subclasses: orionis.orm.relations.BelongsToManyRelation, orionis.orm.relations.BelongsToRelation, orionis.orm.relations.HasOneOrManyRelation
Constructor: Relation(parent, related)
Base class for every query builder bound to a parent model instance.
A relationship is a regular ModelQueryBuilder targeting the
related model, pre-constrained to the rows belonging to a specific
parent instance. Concrete kinds (hasOne, hasMany,
belongsTo, belongsToMany, and future polymorphic or
through-relations) only need to implement the template methods
below; the full fluent query API is inherited for free.
| Class Method | no |
Build a relationship instance without its single-parent constraint. |
| Method | __await__ |
Allow await directly on a relationship without a terminal. |
| Method | __init__ |
Bind a relationship query builder to its parent instance. |
| Method | add |
Constrain the query to the bound parent instance. |
| Method | add |
Constrain the query to every parent instance of an eager batch. |
| Async Method | get |
Execute the relationship query assembled for eager loading. |
| Async Method | get |
Execute the relationship query for its bound parent instance. |
| Method | match |
Group eager-loaded results and attach them to their parents. |
| Class Variable | __slots__ |
Undocumented |
| Instance Variable | _eager |
Undocumented |
| Instance Variable | _parent |
Undocumented |
Inherited from ModelQueryBuilder:
| Method | __getattr__ |
Expose the local scopes declared by the bound model. |
| Method | _before |
Apply the global scopes and the soft delete filter once. |
| Method | _connection |
Resolve the database connection for the bound model. |
| Method | _default |
Return the column latest and oldest default to. |
| Async Method | _eager |
Resolve every pending eager-loaded relationship for a result set. |
| Method | _exists |
Return the projection used by existence probes. |
| Async Method | _fire |
Dispatch the retrieved event for freshly hydrated models. |
| Method | _prepare |
Refresh the update timestamp of a mass update payload. |
| Method | _relation |
Build the error message for an unresolvable relationship name. |
| Method | _serialize |
Apply the model casts before values reach the database. |
| Method | clone |
Return an independent copy of this builder. |
| Async Method | delete |
Delete the matched rows, honoring soft deletes when enabled. |
| Async Method | find |
Retrieve a model by its primary key. |
| Async Method | find |
Retrieve a model by primary key or raise when absent. |
| Async Method | first |
Execute the query and hydrate only the first matching row. |
| Async Method | first |
Return the first matching row or raise when none exists. |
| Async Method | force |
Delete the matched rows permanently, ignoring soft deletes. |
| Async Method | get |
Execute the query and hydrate every matching row. |
| Method | load |
Eager load the given relationships; alias of withRelations. |
| Method | only |
Restrict the query to soft deleted rows. |
| Async Method | paginate |
Execute the query returning a length-aware page of results. |
| Async Method | pluck |
Return one column of every matching row. |
| Async Method | restore |
Restore every soft deleted row matched by the query. |
| Method | scope |
Apply a local scope by name. |
| Async Method | value |
Return a single column value of the first matching row. |
| Method | without |
Disable one global scope for this query. |
| Method | without |
Disable several global scopes, or every one of them. |
| Method | without |
Exclude soft deleted rows; the default behavior. |
| Method | with |
Eager load the given relationships alongside the query. |
| Method | with |
Include soft deleted rows in the query results. |
| Instance Variable | _connection |
Undocumented |
| Instance Variable | _eager |
Undocumented |
| Instance Variable | _meta |
Undocumented |
| Instance Variable | _model |
Undocumented |
| Instance Variable | _scopes |
Undocumented |
| Instance Variable | _trashed |
Undocumented |
| Instance Variable | _without |
Undocumented |
Inherited from QueryBuilderBase (via ModelQueryBuilder):
| Static Method | _boundary |
Validate that a range condition carries exactly two boundaries. |
| Static Method | _materialize |
Materialize an iterable of bound values into a tuple. |
| Static Method | _normalize |
Validate and normalize a comparison operator. |
| Static Method | _resolve |
Normalize a join target into a TableDefinition. |
| Method | _add |
Append a comparison between two columns of the query. |
| Method | _add |
Append an EXISTS or NOT EXISTS condition. |
| Method | _add |
Append a join expression built from either calling convention. |
| Method | _add |
Append a set-membership condition backed by values or a subquery. |
| Method | _add |
Append a raw SQL condition to a clause list. |
| Method | _add |
Append a single-column condition of the given kind. |
| Method | _add |
Parse and append a condition to a clause list. |
| Async Method | _aggregate |
Execute an aggregate projection over the current plan. |
| Method | _nested |
Run a grouping callback and collect the conditions it declared. |
| Method | _new |
Create a sibling builder used for nested groups and subqueries. |
| Method | _paginator |
Wrap a page of results together with its pagination metadata. |
| Method | _resolve |
Normalize a subquery argument into a select plan. |
| Method | _shallow |
Build a twin of this builder still sharing its plan. |
| Method | add |
Append columns to the current projection. |
| Method | adopt |
Bind the builder to a named connection. |
| Method | adopt |
Replace the plan this builder assembles. |
| Async Method | avg |
Return the average value of a column among matching rows. |
| Async Method | count |
Count the rows matched by the query. |
| Method | cross |
Add a CROSS JOIN to the query. |
| Method | distinct |
Collapse duplicate rows from the query results. |
| Async Method | doesnt |
Report whether the query matches no rows. |
| Async Method | exists |
Report whether the query matches at least one row. |
| Method | for |
Limit the query to a single page of results. |
| Method | full |
Add a FULL OUTER JOIN to the query. |
| Method | group |
Add grouping columns to the query. |
| Method | having |
Add a post-grouping condition to the query. |
| Method | having |
Add a raw SQL post-grouping condition. |
| Async Method | insert |
Insert one or many rows into the target table. |
| Method | join |
Add an INNER JOIN to the query. |
| Method | join |
Join a subquery as a derived table with an INNER JOIN. |
| Method | latest |
Order the query by a timestamp column in descending order. |
| Method | left |
Add a LEFT OUTER JOIN to the query. |
| Method | left |
Join a subquery as a derived table with a LEFT OUTER JOIN. |
| Method | limit |
Limit the number of rows returned by the query. |
| Method | lock |
Lock the selected rows against concurrent writes. |
| Async Method | max |
Return the maximum value of a column among matching rows. |
| Async Method | min |
Return the minimum value of a column among matching rows. |
| Method | offset |
Skip the given number of rows before returning results. |
| Method | oldest |
Order the query by a timestamp column in ascending order. |
| Method | order |
Add an ordering rule to the query. |
| Method | or |
Add an OR-combined post-grouping condition to the query. |
| Method | or |
Add an OR-combined filtering condition. |
| Method | or |
Add an OR-combined comparison between two columns. |
| Method | or |
Add an OR-combined EXISTS condition. |
| Method | or |
Add an OR-combined set-membership condition. |
| Method | or |
Add an OR-combined NOT EXISTS condition. |
| Method | or |
Add an OR-combined set-exclusion condition. |
| Method | or |
Add an OR-combined IS NOT NULL condition. |
| Method | or |
Add an OR-combined IS NULL condition. |
| Method | or |
Add an OR-combined raw SQL condition. |
| Method | right |
Add a RIGHT OUTER JOIN to the query. |
| Method | right |
Join a subquery as a derived table with a RIGHT OUTER JOIN. |
| Method | select |
Restrict the query projection to the given columns. |
| Method | select |
Append a raw SQL fragment to the projection. |
| Method | select |
Append a scalar subquery to the projection under an alias. |
| Method | shared |
Lock the selected rows in shared mode. |
| Method | skip |
Skip the given number of rows; alias of offset. |
| Async Method | sum |
Return the sum of a column among matching rows. |
| Method | take |
Limit the number of rows returned; alias of limit. |
| Method | to |
Return the engine-agnostic plan assembled so far. |
| Method | union |
Append another query's rows, collapsing duplicates. |
| Method | union |
Append another query's rows, keeping duplicates. |
| Async Method | update |
Mass update the rows matched by the query. |
| Method | where |
Add an AND-combined filtering condition. |
| Method | where |
Filter rows whose column value lies between two boundaries. |
| Method | where |
Compare two columns of the query against each other. |
| Method | where |
Filter rows whose column value contains the given text. |
| Method | where |
Filter rows whose column value ends with the given text. |
| Method | where |
Keep rows for which a correlated subquery returns any row. |
| Method | where |
Filter rows matching a case-insensitive SQL LIKE pattern. |
| Method | where |
Filter rows whose column value belongs to the given set. |
| Method | where |
Filter rows whose column value matches an SQL LIKE pattern. |
| Method | where |
Filter rows whose column value lies outside two boundaries. |
| Method | where |
Keep rows for which a correlated subquery returns no row. |
| Method | where |
Filter rows not matching a case-insensitive SQL LIKE pattern. |
| Method | where |
Filter rows whose column value is outside the given set. |
| Method | where |
Filter rows whose column value does not match an SQL LIKE pattern. |
| Method | where |
Filter rows whose column value is not NULL. |
| Method | where |
Filter rows whose column value is NULL. |
| Method | where |
Add an AND-combined raw SQL condition. |
| Method | where |
Filter rows whose column value matches a regular expression. |
| Method | where |
Filter rows whose column value starts with the given text. |
| Instance Variable | _plan |
Undocumented |
Build a relationship instance without its single-parent constraint.
Used by eager loading to read a relationship's metadata (related model, foreign key, ...) from a sample instance without binding the query to that specific instance. The setting is isolated to the current execution context, including across worker threads.
| Parameters | |
callback:Callable | Zero-argument callable constructing the relationship, typically a bound relationship method such as model.posts. |
| Returns | |
Relation | The relationship built by callback, unconstrained. |
Allow await directly on a relationship without a terminal.
Equivalent to await relation.getResults(), mirroring how Eloquent resolves $model->relation as a property access.
| Returns | |
Generator | Delegate generator driving getResults. |
orionis.orm.relations.BelongsToManyRelation, orionis.orm.relations.BelongsToRelation, orionis.orm.relations.HasOneOrManyRelationConstrain the query to the bound parent instance.
| Returns | |
None | This method does not return a value. |
Execute the relationship query assembled for eager loading.
The default implementation reuses the regular get() terminal, since most relationships project every matching row the same way whether they are lazy or eager loaded.
| Returns | |
Collection | Every related row across the whole eager-loaded batch. |
orionis.orm.relations.BelongsToManyRelation, orionis.orm.relations.BelongsToRelation, orionis.orm.relations.HasManyRelation, orionis.orm.relations.HasOneRelationExecute the relationship query for its bound parent instance.
| Returns | |
Any | A single model, None, or a Collection, depending on the relationship kind. |
orionis.orm.relations.BelongsToManyRelation, orionis.orm.relations.BelongsToRelation, orionis.orm.relations.HasOneOrManyRelationUndocumented