-
Notifications
You must be signed in to change notification settings - Fork 10
Profiles API
The Profiles API bring together the various interfaces that Avocado exposes for describing, accessing, and interpreting a data field. These currently include:
- a
DataField
model instances which represents the descriptors and metadata for the field itself - a data
Interface
(proposal) which exposes the direct data access API at the field-level - a query processing and interpretation API (supersedes the
Translator
API) which exposes the query parsing, validation, construction, and execution behavior of the field - a
Formatter
component (not yet defined at the field level) for introducing formatting capabilities
In addition, the Profiles API removes the need to use the database-backend components of Avocado which increases the stability of the API (i.e. a bad data migration won't alter the data API behavior).
Profiles are exposed on the DataField
or DataConcept
instances under the profile
property, although most public API methods will be proxied directly on the instance.
from avocado.models import DataField
f = DataField.init('app.model.field')
f.profile
Profiles can be directly registered for model fields:
from avocado import profiles
# Register a custom profile or set of options for the
# default profile.
profiles.register_field('app.model.field', {...})
Concepts can be defined similarly:
# Concept name, a list of fields, and an optional profile instance
# or dict of options for the default profile.
profiles.register_concept('some name', ['app.model.field', ...], {...})
In either case, the {...}
can be a dict
of options passed into the respective *Profile
class or it can be a *Profile
instance itself. This enables subclassing and customizing the behavior directly rather than initializing via options.
Contents
- Introduction
- Installation & Setup
- Getting Started
- What Next?
Guides
- Managing your metadata
- Persisting sets of objects
- Writing a custom Interface
- Writing a custom Formatter
- Cookbook
APIs
Proposals
Reference
Developers