Skip to content

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