Welcome to Frater’s documentation!

Getting Started

Configs

Components

IOComponent

To start off, we’ll show how to work with probably the most common type of Component: IOComponent. IOComponents can be used for building components that require input and output streams.

Let’s take a look with the following example where we build a simple summation component that adds up all the data thatit receives over time.

from dataclasses import dataclass, field
from typing import List

from frater.component import ComponentState, IOComponent, IOComponentConfig, ComponentBuilder
from frater.stream import InputStream, OutputStream, StreamConfig, StreamState


@dataclass
class SummationComponentState(ComponentState):
    total: int = 0


class SummationComponent(IOComponent):
    def __init__(self, config: IOComponentConfig, input_stream: InputStream, output_stream: OutputStream):
        super(SummationComponent, self).__init__(config, input_stream, output_stream)

    def init_state(self):
        return SummationComponentState()

    def process(self, data):
        self.state.total += data
        return self.state.total

Here we’ve defined the SummationComponent with its corresponding state SummationComponentState that willhold the state info of

Streams

Installation Guide

API

frater.client package

Submodules

frater.client.api module
class API(host, port, protocol='http://')[source]

Bases: object

property api_url
build_endpoint_url(endpoint)[source]
get(endpoint, params=None)[source]
post(endpoint, data)[source]
delete(endpoint, data)[source]
patch(endpoint, data)[source]
put(endpoint, data)[source]
frater.client.component module
frater.client.system module

frater.component package

Subpackages

frater.component.builder package
Submodules
frater.component.builder.builder module
frater.component.component package
Submodules
frater.component.component.batch_component module
frater.component.component.component module
frater.component.component.input_component module
frater.component.component.io_component module
frater.component.component.output_component module
frater.component.component.window_component module
frater.component.manager package
Submodules
frater.component.manager.manager module
frater.component.manager.thread module

frater.config package

Submodules

frater.config.config module

frater.data_store package

Subpackages

frater.data_store.file_store package
Submodules
frater.data_store.file_store.file_store module
frater.data_store.file_store.image_store module

frater.data_type package

Submodules

frater.data_type.data_type module
frater.data_type.factory module

frater.dependency package

Submodules

frater.dependency.dependency module

frater.factory package

class Factory[source]

Bases: object

register(key)[source]
register_item(key, value)[source]
unregister(key)[source]
get(key)[source]
get_registered_keys()[source]
get_registered_values()[source]
class ObjectFactory(base_type=<class 'object'>)[source]

Bases: frater.factory.factory.Factory

get_registered_objects()[source]
register(key)[source]
register_class(key, derived)[source]

Submodules

frater.factory.factory module
class Factory[source]

Bases: object

register(key)[source]
register_item(key, value)[source]
unregister(key)[source]
get(key)[source]
get_registered_keys()[source]
get_registered_values()[source]
frater.factory.object_factory module
class ObjectFactory(base_type=<class 'object'>)[source]

Bases: frater.factory.factory.Factory

get_registered_objects()[source]
register(key)[source]
register_class(key, derived)[source]

frater.io package

Submodules

frater.io.deserializers module
frater.io.serializers module

frater.logging package

Subpackages

frater.logging.handler package
Submodules
frater.logging.handler.config module
frater.logging.handler.factory module
frater.logging.handler.kafka module
frater.logging.handler.standard module

Submodules

frater.logging.logger module
frater.logging.summary module

frater.server package

Submodules

frater.server.component module
frater.server.middleware module
frater.server.server_manager module
frater.server.system module

frater.stream package

Submodules

frater.stream.build module
frater.stream.factory module
frater.stream.json module
frater.stream.kafka module
frater.stream.log module
frater.stream.mongo module
frater.stream.stream module
frater.stream.stream_state module

frater.system package

Subpackages

frater.system.manager package
Submodules
frater.system.manager.manager module

frater.utilities package

Subpackages

frater.utilities.network package
Submodules
frater.utilities.network.config module
frater.utilities.network.handler module

Submodules

frater.utilities.function module
frater.utilities.image module
frater.utilities.interpolation module
frater.utilities.json module
frater.utilities.kafka module
frater.utilities.singleton module
frater.utilities.url module

frater.validation package

Submodules

frater.validation.error module
exception ValidationError[source]

Bases: Exception

frater.validation.json module
validate_json(_func=None, default=None, completion=True)[source]
validate_helper(data, default)[source]
add_defaults(data, default)[source]

Indices and tables