コード例 #1
0
 def test_filter_inputs_dynamic_keys(self):
     mapping = {'node1': {'out11': 'inp11',
                          'out12': 'inp12'},
                'node2': {'out22': 'inp22',
                          'out21': '_'}}
     nucleotide = Nucleotide(
         inbound_nodes=['node1', 'node2', 'node3'],
         incoming_keys_mapping=mapping)
     nucleotide.incoming_keys = ['inp11']
     nucleotide.dynamic_incoming_keys = True
     data = {'node1': {'out11': 'value11',
                       'out12': 'value12'},
             'node2': {'out21': 'value21',
                       'out22': 'value22',
                       'out': 'value23'},
             'node3': {'out31': 'value31',
                       'out32': 'value32',
                       'out': 'value33'},
             'node4': {'out41': 'value41'}}
     data_remapped_must = {'inp11': 'value11',
                           'inp12': 'value12',
                           'inp22': 'value22',
                           'out31': 'value31',
                           'out32': 'value32',
                           'out': ['value23', 'value33']}
     data_remapped = nucleotide.filter_inputs(data)
     self.assertDictEqual(data_remapped_must, data_remapped)
コード例 #2
0
ファイル: vis_utils.py プロジェクト: r-snijders/nucleus7
def _draw_key_connections_for_nucleotide_pair(
        nucleotide: Nucleotide,
        inbound_nucleotide: Nucleotide,
        nucleotide_plots: Dict[Nucleotide, _NUCLEOTIDE_PLOT]
) -> List[patches.FancyArrowPatch]:
    nucleotide_plot = nucleotide_plots[nucleotide]
    incoming_nucleotide_plot = nucleotide_plots[inbound_nucleotide]

    inputs_to_nucleotide = {each_inbound_node: {"": None}
                            for each_inbound_node in nucleotide.inbound_nodes}
    inputs_to_nucleotide[inbound_nucleotide.name] = {
        k: k for k in inbound_nucleotide.generated_keys_all}

    inputs_to_nucleotide_filtered = nucleotide.filter_inputs(
        inputs_to_nucleotide)
    if "" in inputs_to_nucleotide_filtered:
        del inputs_to_nucleotide_filtered[""]

    edge_patches = []
    for each_incoming_key, each_generated_key in (
            inputs_to_nucleotide_filtered.items()):
        edge_patch = _draw_edge_between_keys(
            nucleotide, inbound_nucleotide,
            each_incoming_key, each_generated_key,
            nucleotide_plot, incoming_nucleotide_plot)
        edge_patches.append(edge_patch)
    return edge_patches
コード例 #3
0
 def test_filter_inputs_empty(self):
     mapping = {'node1': {'out11': 'inp11',
                          'out12': 'inp12'},
                'node2': {'out22': 'inp22'}}
     nucleotide = Nucleotide(
         inbound_nodes=['node1', 'node2', 'node3'],
         incoming_keys_mapping=mapping)
     nucleotide.incoming_keys = ['inp11', 'inp12', 'inp22', 'out31']
     data = {'node1': {'out11': 'value11',
                       'out12': 'value12'},
             'node2': {'out21': 'value21',
                       'out22': 'value22'},
             'node3': None,
             'node4': {'out41': 'value41'}}
     self.assertIsNone(nucleotide.filter_inputs(data))
コード例 #4
0
 def test_filter_inputs_nested_input_mapping(self):
     mapping = {'node1': {'out11:out111': 'inp11',
                          'out12': 'inp12'},
                'node2': {'out22:2': 'inp22'}}
     nucleotide = Nucleotide(
         inbound_nodes=['node1', 'node2', 'node3'],
         incoming_keys_mapping=mapping)
     nucleotide.incoming_keys = ['inp11', 'inp12', 'inp22', 'out31']
     data = {'node1': {'out11': {'out111': 'value11',
                                 'out112': 'value112'},
                       'out12': 'value12'},
             'node2': {'out21': 'value21',
                       'out22': ['value220', 'value221',
                                 'value22', 'value223']},
             'node3': {'out31': 'value31'},
             'node4': {'out41': 'value41'}}
     data_remapped_must = {'inp11': 'value11',
                           'inp12': 'value12',
                           'inp22': 'value22',
                           'out31': 'value31'}
     data_remapped = nucleotide.filter_inputs(data)
     self.assertDictEqual(data_remapped_must, data_remapped)