nvflare.fuel.utils.fobs.fobs module

auto_register_enum_types(enabled=True) None[source]

Enable or disable auto registering of enum classes

Parameters:

enabled – Auto-registering of enum classes is enabled if True

deserialize(data: bytes, manager: DatumManager | None = None, **kwargs) Any[source]

Deserialize bytes into an object.

Parameters:
  • data – Serialized data

  • manager – Datum manager to internalize datum

  • kwargs – Arguments passed to msgpack.unpackb

Returns:

Deserialized object

deserialize_stream(stream: BinaryIO, manager: DatumManager | None = None, **kwargs) Any[source]

Deserialize bytes from stream into an object.

Parameters:
  • stream – Stream to write serialized data to

  • manager – Datum manager to internalize datum

  • kwargs – Arguments passed to msgpack.unpackb

Returns:

Deserialized object

num_decomposers() int[source]

Returns the number of decomposers registered.

Returns:

The number of decomposers

register(decomposer: Decomposer | Type[Decomposer]) None[source]

Register a decomposer. It does nothing if decomposer is already registered for the type

Parameters:

decomposer – The decomposer type or instance

register_data_classes(*data_classes: Type[T]) None[source]

Register generic decomposers for data classes

Parameters:

data_classes – The classes to be registered

register_enum_types(*enum_types: Type[Enum]) None[source]

Register generic decomposers for enum classes

Parameters:

enum_types – The enum classes to be registered

register_folder(folder: str, package: str)[source]

Scan the folder and register all decomposers found.

Parameters:
  • folder – The folder to scan

  • package – The package to import the decomposers from

reset()[source]

Reset FOBS to initial state. Used for unit test

serialize(obj: Any, manager: DatumManager | None = None, **kwargs) bytes[source]

Serialize object into bytes.

Parameters:
  • obj – Object to be serialized

  • manager – Datum manager used to externalize datum

  • kwargs – Arguments passed to msgpack.packb

Returns:

Serialized data

serialize_stream(obj: Any, stream: BinaryIO, manager: DatumManager | None = None, **kwargs)[source]

Serialize object and write the data to a stream.

Parameters:
  • obj – Object to be serialized

  • stream – Stream to write the result to

  • manager – Datum manager to externalize datum

  • kwargs – Arguments passed to msgpack.packb