SubjectCache¶
-
class
kafkit.registry.sansio.
SubjectCache
(schema_cache: kafkit.registry.sansio.SchemaCache)¶ Bases:
object
A cache of subjects in a schema registry that maps subject and version tuples to an actual schema.
Parameters: schema_cache ( SchemaCache
) – A schema cache instance.Notes
The SubjectCache provides a subject-aware layer over the
SchemaCache
. While schemas and their IDs are unique in a schema registry, multiple subject-version combinations can point to the same schema-ID combination.When you insert a schema into the SubjectCache, you are also inserting the schema and schema ID into the member
SchemaCache
.Methods Summary
get
(subject, version, str])Get the full set of schema and ID information for a subject version. get_id
(subject, version)Get the schema ID of a subject version. get_schema
(subject, version)Get the schema of a subject version. insert
(subject, version, schema_id, schema, …)Insert a subject version into the cache. Methods Documentation
-
get
(subject: str, version: Union[int, str]) → Dict[str, Any]¶ Get the full set of schema and ID information for a subject version.
Parameters: - subject (
str
) – The name of the subject. - version (
int
) – The version number of the schema in the subject. If version is given as a string ("latest"
), aValueError
is raised.
Returns: schema_info – A dictionary with the full set of information about the cached schema. The keys are:
"subject"
The name of the subject.
"version"
The version number of the schema in the subject.
"id"
ID of the schema in a Schema Registry.
"schema"
The Avro schema, preparsed by
fastavro.parse_schema
.
Return type: Raises: ValueError
– Raised if the schema does not exist in the cache.See also
- subject (
-
get_id
(subject: str, version: int) → int¶ Get the schema ID of a subject version.
Parameters: Returns: schema_id – ID of the schema in a Schema Registry.
Return type: Raises: ValueError
– Raised if the schema does not exist in the cache.See also
-
get_schema
(subject: str, version: int) → Dict[str, Any]¶ Get the schema of a subject version.
Parameters: Returns: schema – An Avro schema, preparsed by
fastavro.parse_schema
.Return type: Raises: ValueError
– Raised if the schema does not exist in the cache.
-
insert
(subject: str, version: int, schema_id: Optional[int] = None, schema: Optional[Mapping[str, Any]] = None) → None¶ Insert a subject version into the cache.
Parameters: Raises: TypeError
– Raised if theversion
parameter is a string. String-based versions, like “latest,” cannot be cached.ValueError
– Raised if theschema_id
orschema
parameters are needed but aren’t set. See Notes.
Notes
If the subject version being cached is already in the schema cache, then only one of
schema_id
orschema
need to be passed to this method. However, if the schema isn’t cached, then bothschema_id
andschema
need to be set. Theschema_id
andschema
are added to the underlying schema cache.
-