コード例 #1
0
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)
コード例 #2
0
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
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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)
コード例 #7
0
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)
コード例 #8
0
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)
コード例 #9
0
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)