Code Structure

The public workflow is Baserow to Table to Row. Fields hold schema knowledge, while a small set of independent records preserve identity for structured Baserow values.

Baserow Class

Baserow is the client and request boundary. It owns authentication, safe read retries, transport errors, table construction and discovery, and file upload operations. It does not configure application logging.

Table Class

Table owns schema metadata and row operations. fields and writable_fields are ordered, read-only mappings from field name to Field. Specific Field classes expose Baserow metadata and own decoding, validation, and API encoding. Discovered Tables retain name, database, order, and raw metadata. Recreate the Table to retrieve changed hosted schema.

Row Class

Row holds one raw Baserow response and delegates value decoding to the Table’s Fields. Indexing and values expose decoded values; raw_values exposes the original Baserow values. Rows do not stage mutations. update, move, and delete are thin conveniences over Table operations.

Structured Baserow Values

Select options, linked rows, files, collaborators, and lookup results use small independent records that preserve Baserow IDs and raw metadata. These records contain no HTTP behavior and can be passed back to the corresponding writable Field. Scalar reads remain ordinary Python values.

Filter Objects

Filters describe Baserow row-query conditions. Field/operator compatibility is advisory because hosted Baserow is not version-pinned; normal queries allow unknown operators to reach the service.