extensions/python/pythonprocessors/nifiapi/documentation.py (90 lines of code) (raw):
# 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.
class ProcessorConfiguration:
class Java:
implements = ['org.apache.nifi.python.processor.documentation.ProcessorConfigurationDetails']
def __init__(self, processor_type: str, configuration: str):
self.processor_type = processor_type
self.configuration = configuration
def getProcessorType(self):
return self.processor_type
def getConfiguration(self):
return self.configuration
def use_case(description: str, configuration: str = None, notes: str = None, keywords: list[str] = None):
"""Decorator to explain how to perform a specific use case with a given processor"""
def decorator(func):
return func
return decorator
def multi_processor_use_case(description: str, configurations: list[ProcessorConfiguration], notes: str = None, keywords: list[str] = None):
"""Decorator to explain how to perform a specific use case that involves the decorated Processor, in addition to additional Processors"""
def decorator(func):
return func
return decorator
class UseCaseDetails:
class Java:
implements = ['org.apache.nifi.python.processor.documentation.UseCaseDetails']
def __init__(self, description: str, notes: str, keywords: list[str], configuration: str):
self.description = description
self.notes = notes
self.keywords = keywords
self.configuration = configuration
def getDescription(self):
return self.description
def getNotes(self):
return self.notes
def getKeywords(self):
return self.keywords
def getConfiguration(self):
return self.configuration
def __str__(self):
return f"UseCaseDetails[description={self.description}]"
class MultiProcessorUseCaseDetails:
class Java:
implements = ['org.apache.nifi.python.processor.documentation.MultiProcessorUseCaseDetails']
def __init__(self, description: str, notes: str, keywords: list[str], configurations: list[ProcessorConfiguration]):
self.description = description
self.notes = notes
self.keywords = keywords
self.configurations = configurations
def getDescription(self):
return self.description
def getNotes(self):
return self.notes
def getKeywords(self):
return self.keywords
def getConfigurations(self):
return self.configurations
def __str__(self):
return f"MultiProcessorUseCaseDetails[description={self.description}]"
class PropertyDescription:
class Java:
implements = ['org.apache.nifi.python.processor.documentation.PropertyDescription']
def __init__(self,
name: str,
description: str,
display_name: str = None,
required: bool = False,
sensitive: bool = True,
default_value: str = None,
expression_language_scope: str = None,
controller_service_definition: str = None):
self.name = name
self.description = description
self.display_name = display_name
self.required = required
self.sensitive = sensitive
self.default_value = default_value
self.expression_language_scope = expression_language_scope
self.controller_service_definition = controller_service_definition
def getName(self):
return self.name
def getDescription(self):
return self.description
def getDisplayName(self):
return self.display_name
def isRequired(self):
return self.required
def isSensitive(self):
return self.sensitive
def getDefaultValue(self):
return self.default_value
def getExpressionLanguageScope(self):
return self.expression_language_scope
def getControllerServiceDefinition(self):
return self.controller_service_definition