Browse Source

bug fix: delegate (new feature)

Steve Nyemba 11 months ago
parent
commit
808378afdb
2 changed files with 15 additions and 6 deletions
  1. 8 6
      transport/__init__.py
  2. 7 0
      transport/iowrapper.py

+ 8 - 6
transport/__init__.py

@@ -81,13 +81,15 @@ def instance (**_args):
         if not registry.isloaded () :
             if ('path' in _args and registry.exists(_args['path'] )) or registry.exists():
                 registry.load() if 'path' not in _args else registry.load(_args['path'])
+        _info = {}
         if 'label' in _args and registry.isloaded():
             _info = registry.get(_args['label'])
-            
-            if _info :
-                #
-                # _args = dict(_args,**_info)
-                _args = dict(_info,**_args) #-- we can override the registry parameters with our own arguments
+        else:
+            _info = registry.get()    
+        if _info :
+            #
+            # _args = dict(_args,**_info)
+            _args = dict(_info,**_args) #-- we can override the registry parameters with our own arguments
 
     if 'provider' in _args and _args['provider'] in PROVIDERS :
         _info = PROVIDERS[_args['provider']]
@@ -132,7 +134,7 @@ class get :
     """
     @staticmethod
     def reader (**_args):
-        if not _args :
+        if not _args or 'provider' not in _args:
             _args['label'] = 'default'
         _args['context'] = 'read'
         return instance(**_args)

+ 7 - 0
transport/iowrapper.py

@@ -52,6 +52,13 @@ class IO:
         if hasattr(self._agent,'apply') :
             return self._agent.apply(_query)
         return None
+    def submit(self,_query):
+        return self.delegate('submit',_query)
+    def delegate(self,_name,_query):
+        if hasattr(self._agent,_name) :
+            pointer = getattr(self._agent,_name)
+            return pointer(_query)
+        return None
 class IReader(IO):
     """
     This is a wrapper for read functionalities