コード例 #1
0
 def test_activate(self):
     sb = fastwire.SignalBox()
     cid1 = sb.add()
     cid2 = sb.add(3049)
     sb.set_active(cid1)
     check = sb._active
     self.assertEqual(cid1, check)
コード例 #2
0
    def test_remove_with(self):
        class A():
            pass

        a = A()
        sb = fastwire.SignalBox()
        sb.add(id(a), remove_with=a)
        self.assertEqual(len(sb._cs), 2)
        del a
        self.assertEqual(len(sb._cs), 1)
コード例 #3
0
ファイル: test_decorators.py プロジェクト: softfoam/fastwire
    def test_fn_receive_emit_box(self):
        box = fastwire.SignalBox()
        box.add('test')

        test = [0]

        @fastwire.fn_receive('test_signal', box=box)
        def connected(a):
            test[0] = a

        signal = box['test_signal']
        self.assertEqual(len(signal._receivers.keys()), 1)
        val = 5.7
        signal.emit(a=val)
        self.assertEqual(test[0], val)
コード例 #4
0
ファイル: test_decorators.py プロジェクト: softfoam/fastwire
    def test_receive_emit_box_decorator(self):
        box = fastwire.SignalBox()
        box.add('test')

        class A(fastwire.Wired):
            @box.receive('test_signal')
            def connected(self, a):
                self._a = a

        a = A()
        signal = box['test_signal']
        self.assertEqual(len(signal._receivers.keys()), 1)
        val = 5.7
        signal.emit(a=val)
        self.assertEqual(a._a, val)
コード例 #5
0
 def test_get_repeated(self):
     sb = fastwire.SignalBox()
     sc = sb.add(id(self))
     wire_1 = sb.get('this_name')
     wire_2 = sb.get('this_name')
     self.assertEqual(wire_1, wire_2)
コード例 #6
0
 def test_get(self):
     sb = fastwire.SignalBox()
     sc = sb.add(id(self))
     wire = sb.get('this_name')
     self.assertEqual(wire.name, 'this_name')
     self.assertEqual(wire.__class__, fastwire.Signal)
コード例 #7
0
 def test_create_on_demand_repeated(self):
     sb = fastwire.SignalBox()
     sc = sb.add(id(self))
     wire_1 = sb['this_name']
     wire_2 = sb['this_name']
     self.assertEqual(wire_1, wire_2)
コード例 #8
0
 def test_create_on_demand(self):
     sb = fastwire.SignalBox()
     sc = sb.add(id(self))
     signal = sb['this_name']
     self.assertEqual(signal.name, 'this_name')
     self.assertEqual(signal.__class__, fastwire.Signal)
コード例 #9
0
 def test_get_attrs_kwarg(self):
     dct = {'a': 5}
     sb = fastwire.SignalBox()  # use default container
     signal = sb.get(name='test_name', attrs=dct)
     self.assertEqual(signal.attrs, dct)
コード例 #10
0
 def test_get_doc_kwarg(self):
     sb = fastwire.SignalBox()  # use default container
     signal = sb.get(name='test_name', doc='test_doc')
     self.assertEqual(signal.doc, 'test_doc')
コード例 #11
0
 def test_get_name_arg(self):
     sb = fastwire.SignalBox()  # use default container
     signal = sb.get('test_name')
     self.assertEqual(signal.name, 'test_name')
コード例 #12
0
 def test_create_cid_str(self):
     b = fastwire.SignalBox()
     c = b.add('a_string')
     self.assertEqual(c.__class__, fastwire.SignalContainer)
     self.assertEqual(c.id, 'a_string')
     self.assertEqual(b.get_container('a_string'), c)
コード例 #13
0
 def test_create_cid_int(self):
     b = fastwire.SignalBox()
     c = b.add(456)
     self.assertEqual(c.__class__, fastwire.SignalContainer)
     self.assertEqual(c.id, 456)
     self.assertEqual(b.get_container(456), c)
コード例 #14
0
 def test_create_auto(self):
     b = fastwire.SignalBox()
     c = b.add()
     self.assertEqual(c.__class__, fastwire.SignalContainer)
     self.assertEqual(c.id, 1)
     self.assertEqual(b.get_container(0), c)
コード例 #15
0
 def test_remove(self):
     sb = fastwire.SignalBox()
     sb.add(0)
     self.assertEqual(len(sb._cs), 2)
     sb.remove(0)
     self.assertEqual(len(sb._cs), 1)
コード例 #16
0
@author: Reuben

Npsolve has a simple, small core built on fastwire. It's designed to give
good flexibility without compromising on performance.

"""

import numpy as np
import fastwire as fw
import traceback

from contextlib import contextmanager
from . import settings

sb = fw.SignalBox()

EMIT_VECTORS = 'EMIT_VECTORS'
EMIT_STATE = 'EMIT_STATE'
GET_VARS = 'GET_VARS'
GET_STEP_METHODS = 'GET_STEP_METHODS'
GET_PARTIALS = 'GET_PARTIALS'
SET_CACHING = 'SET_CACHING'
GET_CACHE_CLEARS = 'GET_CACHE_CLEARS'


class Partial():
    ''' A base class responsible for a set of variables 
    
    Note:
        __init__ method must be called.