You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.2 KiB

#!/usr/bin/env python
# Copyright (C) 2015-2019 Splunk Inc. All Rights Reserved.
import pandas as pd
import cexc
from util.base_util import MLSPLNotImplementedError
logger = cexc.get_logger(__name__)
messages = cexc.get_messages_logger()
class BaseProcessor(object):
"""Skeleton for all processors, also implements some utility methods."""
def __init__(self, process_options=None, searchinfo=None):
"""Pass process_options.
Args:
process_options (dict): process options
searchinfo (dict): information required for search
"""
self.process_options = process_options
self.namespace = process_options.pop('namespace', None)
self.searchinfo = searchinfo
def receive_input(self, df):
"""Get dataframe.
Args:
df (dataframe): input dataframe
"""
self.df = df
def process(self):
"""Necessary process method."""
raise MLSPLNotImplementedError
def get_output(self):
"""Simply return the output dataframe.
Returns:
(dataframe): output dataframe
"""
if self.df is None:
self.df = pd.DataFrame()
return self.df