aea.protocols.generator.common
This module contains utility code for generator modules.
CURRENT_DIR
type: ignore
is_installed
def is_installed(programme: str) -> bool
Check whether a programme is installed on the system.
Arguments:
programme: the name of the programme.
Returns:
True if installed, False otherwise
base_protolint_command
def base_protolint_command() -> str
Return the base protolint command.
Returns:
The base protolint command
check_prerequisites
def check_prerequisites() -> None
Check whether a programme is installed on the system.
get_protoc_version
def get_protoc_version() -> str
Get the protoc version used.
load_protocol_specification
def load_protocol_specification(
specification_path: str) -> ProtocolSpecification
Load a protocol specification.
Arguments:
specification_path: path to the protocol specification yaml file.
Returns:
A ProtocolSpecification object
try_run_black_formatting
def try_run_black_formatting(path_to_protocol_package: str) -> None
Run Black code formatting via subprocess.
Arguments:
path_to_protocol_package: a path where formatting should be applied.
try_run_isort_formatting
def try_run_isort_formatting(path_to_protocol_package: str) -> None
Run Isort code formatting via subprocess.
Arguments:
path_to_protocol_package: a path where formatting should be applied.
try_run_protoc
def try_run_protoc(path_to_generated_protocol_package: str,
name: str,
language: str = PROTOCOL_LANGUAGE_PYTHON) -> None
Run 'protoc' protocol buffer compiler via subprocess.
Arguments:
path_to_generated_protocol_package: path to the protocol buffer schema file.name: name of the protocol buffer schema file.language: the target language in which to compile the protobuf schema file
try_run_protolint
def try_run_protolint(path_to_generated_protocol_package: str,
name: str) -> None
Run 'protolint' linter via subprocess.
Arguments:
path_to_generated_protocol_package: path to the protocol buffer schema file.name: name of the protocol buffer schema file.
check_protobuf_using_protoc
def check_protobuf_using_protoc(path_to_generated_protocol_package: str,
name: str) -> Tuple[bool, str]
Check whether a protocol buffer schema file is valid.
Validation is via trying to compile the schema file. If successfully compiled it is valid, otherwise invalid. If valid, return True and a 'protobuf file is valid' message, otherwise return False and the error thrown by the compiler.
Arguments:
path_to_generated_protocol_package: path to the protocol buffer schema file.name: name of the protocol buffer schema file.
Returns:
Boolean result and an accompanying message
compile_protobuf_using_protoc
def compile_protobuf_using_protoc(path_to_generated_protocol_package: str,
name: str,
language: str) -> Tuple[bool, str]
Compile a protocol buffer schema file using protoc.
If successfully compiled, return True and a success message, otherwise return False and the error thrown by the compiler.
Arguments:
path_to_generated_protocol_package: path to the protocol buffer schema file.name: name of the protocol buffer schema file.language: the target language in which to compile the protobuf schema file
Returns:
Boolean result and an accompanying message
apply_protolint
def apply_protolint(path_to_proto_file: str, name: str) -> Tuple[bool, str]
Apply protolint linter to a protocol buffer schema file.
If no output, return True and a success message, otherwise return False and the output shown by the linter (minus the indentation suggestions which are automatically fixed by protolint).
Arguments:
path_to_proto_file: path to the protocol buffer schema file.name: name of the protocol buffer schema file.
Returns:
Boolean result and an accompanying message