blob: e6578c34eaf55c99d78603ce52c7ef864eee0f4c [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
"""
The top-level library for Heron's Python API, which enables you to build Heron
[topologies](https://apache.github.io/incubator-heron/docs/concepts/topologies/) in
Python.
Heron topologies are acyclic graphs used to process streaming data. Topologies
have two major components:
[spouts](spout/spout.m.html#heron_py.spout.spout.Spout) pull data into the
topology and then [emit](spout/spout.m.html#heron_py.spout.spout.Spout.emit)
that data as tuples (lists in Python) to
[bolts](bolt/bolt.m.html#heron_py.bolt.bolt.Bolt) that process that data.
"""
__all__ = [
'api_constants',
'bolt',
'component',
'custom_grouping',
'global_metrics',
'metrics',
'serializer',
'cloudpickle',
'state',
'spout',
'stream',
'task_hook',
'topology',
'topology_context',
'tuple'
]
# Load basic topology modules
from heron.api.src.python.state.state import State, HashMapState
from heron.api.src.python.state.stateful_component import StatefulComponent
from heron.api.src.python.stream import Stream, Grouping
from heron.api.src.python.topology import Topology, TopologyBuilder
from heron.api.src.python.topology_context import TopologyContext
import heron.api.src.python.api_constants as api_constants
import heron.api.src.python.global_metrics as global_metrics
from heron.api.src.python.custom_grouping import ICustomGrouping
from heron.api.src.python.metrics import IMetric, CountMetric, MultiCountMetric
from heron.api.src.python.metrics import IReducer, MeanReducer, ReducedMetric, MultiReducedMetric
from heron.api.src.python.metrics import AssignableMetrics, MultiAssignableMetrics
from heron.api.src.python.metrics import MeanReducedMetric, MultiMeanReducedMetric
from heron.api.src.python.serializer import IHeronSerializer, PythonSerializer, default_serializer
from heron.api.src.python.task_hook import ITaskHook
from heron.api.src.python.tuple import Tuple, TupleHelper
# Load spout and bolt
from heron.api.src.python.bolt.bolt import Bolt
from heron.api.src.python.bolt.window_bolt import SlidingWindowBolt, TumblingWindowBolt, WindowContext
from heron.api.src.python.spout.spout import Spout