Context.__exit__()#

relationalai
#Context.__exit__() -> None

Context objects are context managers. Although you can call the .__exit__() method directly, it is typically called by a with statement.

In a with statement, Python calls the context manager’s .__enter__() method before executing the with block. After the with block executes, the with statement automatically executes the .__exit__() method. .__exit__() translates query builder code inside the with block into a RelationalAI query.

Returns#

None

Example#

The .__exit__() method is called automatically in a with statement:

#import relationalai as rai

model = rai.Model("people")
Person = model.Type("Person")

# The `with` statement calls the `model.rule()` context's `.__exit__()`
# method automatically after the `with` block terminates. `.__exit__()`
# translates the query builder code into a RelationalAI query but does
# not send the query to RelationalAI.
with model.rule():
    Person.add(name="Fred")

# The `with` statement calls the `model.query()` context's `.__exit__()`
# method automatically after the `with` block terminates. `.__exit__()`
# translates the query builder code into a RelationalAI query, sends the
# query and all rules defined prior to it to RelationalAI, and blocks until
# the results are returned.
with model.query() as select:
    person = Person()
    response = select(person.name)

print(response.results)
# Output:
#    name
# 0  Fred

See Also#