Query Templates and Namespaces
Query templates and namespaces through separate query families. All families support all(), first(), count(), ordering, and pagination.
Query namespaces
namespaces = (
namespace.query_maker()
.namespaces()
.filter(name="beamline")
.filter_effective_metadata(environment="production")
.all()
)Use filter_local_metadata() for values defined directly on a namespace and filter_effective_metadata() for inherited values.
Query resource templates
Filter labels and type names, include child templates, and opt into archived templates when needed.
templates = (
namespace.query_maker()
.resource_templates()
.filter_label("sample")
.filter_by_types(["sample", "container"])
.include_children()
.include_archived()
.all()
)Other relationship helpers are include_attribute_groups() and include_types(). Use include([...]) for explicit relationship paths.
Query process templates
process_templates = (
namespace.query_maker()
.process_templates()
.filter_label("measurement")
.include_step_templates()
.include_resource_slots()
.include_archived()
.all()
)Use canonical models for identity-only results
Template queries return canonical full models. Use load="none" for identity and scalar fields, then add targeted includes when relationships are needed. shape="ref" is deprecated compatibility syntax and normalizes to shape="full"; use load="none" for unloaded relationships. See Choose query shape and loading.