def main(): arguments = parser.parse_args() subparser_choice = arguments.subparser_choice project_root = os.path.abspath(arguments.project_root) database_path = arguments.database_path #TODO: see above #arguments = pavo_cristatus_subparser.parse_args() #project_root = os.path.abspath(arguments.project_root) #database_path = arguments.database_path if database_path is None: database_path = os.path.join(project_root, "pavo_cristatus.db") # register project root and database path as a dependencies so it can be resolved to some of the transitive # dependencies later on in the sequence pavo_cristatus_dependency_wrapper(resolvable_name="project_root")(lambda: project_root) pavo_cristatus_dependency_wrapper(resolvable_name="database_path")(lambda: database_path) if subparser_choice == REBUILD_ALL: sequence_name = REBUILD_ALL initial_argument = project_root generator = pavo_cristatus_container.wire_dependencies(rebuild_all_interaction_sequence_generator) elif subparser_choice == DISPLAY_ALL: sequence_name = DISPLAY_ALL initial_argument = project_root generator = pavo_cristatus_container.wire_dependencies(display_all_interaction_sequence_generator) else: print("invalid operation") exit(-1) result = interoperable_reduce(operator.rshift, interoperable_map(lambda x: HigherOrderBindee(x).__call__, generator), PavoCristatusResultMonad(initial_argument)) if result.is_success(): print("succesfully completed {0} command".format(sequence_name)) else: print(result.value)
def test_display_all_interaction_sequence_generator(): # register project root and database path as a dependencies so it can be resolved to some of the transitive # dependencies later on in the sequence pavo_cristatus_dependency_wrapper( visibility="module", resolvable_name="project_root")(lambda: project_root_path) pavo_cristatus_dependency_wrapper( visibility="module", resolvable_name="database_path")(lambda: project_root_path) pavo_cristatus_dependency_wrapper()(database_connection) initial_argument = project_root_path generator = pavo_cristatus_container.wire_dependencies( display_all_interaction_sequence_generator) result = interoperable_reduce( operator.rshift, interoperable_map(lambda x: HigherOrderBindee(x).__call__, generator), PavoCristatusResultMonad(initial_argument)) assert result.value
from pavo_cristatus.dependency_injection.ploceidae_configurator import pavo_cristatus_dependency_wrapper from pavo_cristatus.interactions.symbol_signature_restorer_interaction import symbol_signature_restorer_interaction from pavo_cristatus.utilities import access_interaction_callable dependency_module_name = "symbol_signature_restorer_interaction" __all__ = [dependency_module_name] pavo_cristatus_dependency_wrapper( resolvable_name=dependency_module_name, transformation=access_interaction_callable)( lambda: symbol_signature_restorer_interaction)
from pavo_cristatus.interactions.annotated_project_loader_interaction import annotated_project_loader_interaction from pavo_cristatus.dependency_injection.ploceidae_configurator import pavo_cristatus_dependency_wrapper from pavo_cristatus.utilities import access_interaction_callable dependency_module_name = "annotated_project_loader_interaction" __all__ = [dependency_module_name] pavo_cristatus_dependency_wrapper(resolvable_name=dependency_module_name, transformation=access_interaction_callable)(lambda: annotated_project_loader_interaction)
from pavo_cristatus.dependency_injection.ploceidae_configurator import pavo_cristatus_dependency_wrapper from pavo_cristatus.presenters.console_presenter import present_annotated_symbols from pavo_cristatus.interactions.annotated_symbol_presenter_interaction import annotated_symbol_presenter_interaction dependency_module_name = "annotated_symbol_presenter_interaction" __all__ = [dependency_module_name] dependency = lambda x: annotated_symbol_presenter_interaction.interact( x, present_annotated_symbols) pavo_cristatus_dependency_wrapper( resolvable_name=dependency_module_name)(lambda: dependency)
from pavo_cristatus.project_loader import project_loader from pavo_cristatus.dependency_injection.ploceidae_configurator import pavo_cristatus_dependency_wrapper from picidae import access_attribute dependency_module_name = "project_loader" __all__ = [dependency_module_name] pavo_cristatus_dependency_wrapper( resolvable_name="annotated_" + dependency_module_name, transformation=access_attribute("load_annotated_project"))( lambda: project_loader) pavo_cristatus_dependency_wrapper( resolvable_name="non_annotated_" + dependency_module_name, transformation=access_attribute("load_non_annotated_project"))( lambda: project_loader)
import sqlite3 from pavo_cristatus.repositories.sqlite_repository import SQLiteRepository from pavo_cristatus.repositories.sqlite_repository.sqlite_repository import SQLiteRepository from pavo_cristatus.dependency_injection.ploceidae_configurator import pavo_cristatus_dependency_wrapper __all__ = ["SQLiteRepository"] def database_connection(database_path): return sqlite3.connect(database_path) pavo_cristatus_dependency_wrapper()(database_connection) pavo_cristatus_dependency_wrapper( resolvable_name="sqlite_repository")(SQLiteRepository)
from pavo_cristatus.dependency_injection.ploceidae_configurator import pavo_cristatus_dependency_wrapper from picidae import lazily_echo, access_attribute from pavo_cristatus.symbol_signature_replacer import symbol_signature_replacer dependency_module_name = "symbol_signature_replacer" __all__ = [dependency_module_name] pavo_cristatus_dependency_wrapper( resolvable_name=dependency_module_name, transformation=access_attribute("interaction"))( lambda: symbol_signature_replacer)
from collections import defaultdict from picidae import expand_parameter_list_by_x, false from pavo_cristatus.interactions.repository_interaction import repository_interaction from pavo_cristatus.interactions.repository_interaction.repository_interaction import RepositoryInteraction from pavo_cristatus.dependency_injection.ploceidae_configurator import pavo_cristatus_dependency_wrapper from pavo_cristatus.utilities import access_interaction_callable from pavo_cristatus.interactions.repository_interaction import operations __all__ = ["repository_interaction", "RepositoryInteraction"] def sql_repository_write_interaction(sqlite_repository): return RepositoryInteraction( sqlite_repository, expand_parameter_list_by_x(operations.write_data_item, 1), false) def sql_repository_read_interaction(sqlite_repository): return RepositoryInteraction(sqlite_repository, operations.read_data_item, lambda: defaultdict(dict)) pavo_cristatus_dependency_wrapper(transformation=access_interaction_callable)( sql_repository_write_interaction) pavo_cristatus_dependency_wrapper(transformation=access_interaction_callable)( sql_repository_read_interaction)