Schema and converter reference

All names below are exported from fsspec_data.

Schema values

Type

Fields

SchemaRef

url, optional format, storage_options (default empty mapping).

SchemaProvenance

source, format, provider, optional identifier, optional version.

ResolvedSchema

schema: pyarrow.Schema, provenance: SchemaProvenance.

SchemaDocument

data: bytes, format: SchemaFormat, provenance: SchemaProvenance.

SchemaRef copies storage options and omits them from its representation. SchemaFormat values are arrow-json, arrow-ipc-schema, and json-schema. .arrow, .ipc, and .arrowschema infer arrow-ipc-schema; other suffixes require an explicit format.

arrow-json is an object with a fields list. Each field has name, type, and optional nullable (default true). Types accept PyArrow aliases. arrow-ipc-schema accepts a serialized Arrow schema or Arrow IPC stream.

resolve_schema(value, registry=None)

Accepts a PyArrow schema, SchemaRef, or None. Returns ResolvedSchema or None. Inline Arrow schemas have source="inline", format="arrow", and provider="inline". References use registry or DEFAULT_SCHEMA_RESOLVERS. The public function expects an already constructed reference; DataFileSystem also accepts URL strings and reference mappings and normalizes them first.

SchemaResolverRegistry

register(format, decoder) installs a bytes -> pyarrow.Schema decoder. register_provider(protocol, provider) installs a SchemaRef -> SchemaDocument provider. resolve(reference) invokes the provider and decoder and returns ResolvedSchema. Unregistered protocols use fsspec document loading. A reference format that disagrees with the provider’s document format raises ValueError.

json_schema_to_arrow(document)

Translates a structural JSON Schema rooted at an object. Objects, homogeneous arrays, strings, booleans, integers, numbers, and nulls are supported. Unions may contain null and one other type. Required properties control field nullability; optional properties and explicit null unions are nullable.

References, composition keywords, multiple non-null union members, schema-valued additionalProperties, tuple arrays, and format annotations raise ValueError with the unsupported field path. Validation-only constraints such as numeric bounds and string lengths are not represented or enforced.

Confluent provider

confluent://SUBJECT/versions/VERSION accepts latest, -1, or a positive 32-bit integer. Its storage options are required registry_url, optional Basic auth username and password, optional string-valued headers, and optional numeric timeout in seconds. JSON Schema records without external references are supported; Avro, Protobuf, and referenced documents raise ValueError.

Resource converters

Converter(source_type, target_type, handler)

Frozen route descriptor. Route names are stripped and lowercased. Empty or non-string names raise ValueError; a non-callable handler raises TypeError.

convert(source, target=None, *, source_options=None, target_options=None, conversion_options=None) calls the handler with independent copied option mappings. Invalid option mappings raise TypeError. Return values are handler-defined.

ConverterRegistry(*, entry_point_group="fsspec_data.converters", discover_entry_points=True)

Method

Behavior

register(converter, replace=False)

Registers a Converter; duplicate routes raise ValueError unless replacement is requested.

load_entry_points()

Discovers descriptors once, unless discovery is disabled. Non-converter descriptors raise TypeError; duplicate routes raise ValueError.

get(source_type, target_type)

Loads entry points and returns a route; missing routes raise ValueError.

convert(source_type, target_type, source, target=None, **options)

Invokes the selected converter with the three option mappings.

CONVERTER_ENTRY_POINT_GROUP is fsspec_data.converters. DEFAULT_CONVERTERS includes zarr -> xarray and xarray -> zarr; dependencies are installed with the xarray extra.

zarr -> xarray returns xarray.open_zarr(source, **conversion_options) and accepts source storage options. It rejects a target and target options. xarray -> zarr requires a Dataset or DataArray, calls to_zarr, and accepts target storage options. It rejects source options. Storage options supplied both through their dedicated mapping and conversion_options raise ValueError.