| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -17,12 +17,14 @@ Source Code is available under MIT License:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    https://hiplab.mc.vanderbilt.edu/git/hiplab/data-transport
 | 
					 | 
					 | 
					 | 
					    https://hiplab.mc.vanderbilt.edu/git/hiplab/data-transport
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					"""
 | 
					 | 
					 | 
					 | 
					"""
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import numpy as np
 | 
					 | 
					 | 
					 | 
					import numpy as np
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from transport import sql, nosql, cloud, other
 | 
					 | 
					 | 
					 | 
					from transport import sql, nosql, cloud, other
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import pandas as pd
 | 
					 | 
					 | 
					 | 
					import pandas as pd
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import json
 | 
					 | 
					 | 
					 | 
					import json
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import os
 | 
					 | 
					 | 
					 | 
					import os
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from info import __version__,__author__
 | 
					 | 
					 | 
					 | 
					from info import __version__,__author__
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					from transport.iowrapper import IWriter, IReader
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					from transport.plugins import PluginLoader
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					PROVIDERS = {}
 | 
					 | 
					 | 
					 | 
					PROVIDERS = {}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					def init():
 | 
					 | 
					 | 
					 | 
					def init():
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    global PROVIDERS
 | 
					 | 
					 | 
					 | 
					    global PROVIDERS
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -31,7 +33,6 @@ def init():
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if _provider_name.startswith('__') :
 | 
					 | 
					 | 
					 | 
					            if _provider_name.startswith('__') :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                continue
 | 
					 | 
					 | 
					 | 
					                continue
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            PROVIDERS[_provider_name] = {'module':getattr(_module,_provider_name),'type':_module.__name__}
 | 
					 | 
					 | 
					 | 
					            PROVIDERS[_provider_name] = {'module':getattr(_module,_provider_name),'type':_module.__name__}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# print ([ {name:getattr(sql,name)} for name in dir(sql) if not name.startswith('__')])
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					def instance (**_args):
 | 
					 | 
					 | 
					 | 
					def instance (**_args):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    """
 | 
					 | 
					 | 
					 | 
					    """
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -55,9 +56,23 @@ def instance (**_args):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            _context = _args['context']
 | 
					 | 
					 | 
					 | 
					            _context = _args['context']
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        else:
 | 
					 | 
					 | 
					 | 
					        else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            _context = 'read'
 | 
					 | 
					 | 
					 | 
					            _context = 'read'
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        _pointer = getattr(_module,'Reader') if _context == 'read' else getattr(_module,'Writer')
 | 
					 | 
					 | 
					 | 
					        _pointer    = getattr(_module,'Reader') if _context == 'read' else getattr(_module,'Writer')
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return _pointer (**_args)
 | 
					 | 
					 | 
					 | 
					        _agent      = _pointer (**_args)
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        pass
 | 
					 | 
					 | 
					 | 
					        #
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        loader = None
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if 'plugins' in _args :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            _params = _args['plugins']
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            if 'path' in _params and 'names' in _params :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                loader = PluginLoader(**_params)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            elif type(_params) == list:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                loader = PluginLoader()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                for _delegate in _params :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    loader.set(_delegate)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        return IReader(_agent,loader) if _context == 'read' else IWriter(_agent,loader)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    else:
 | 
					 | 
					 | 
					 | 
					    else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        raise Exception ("Missing or Unknown provider")
 | 
					 | 
					 | 
					 | 
					        raise Exception ("Missing or Unknown provider")
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    pass
 | 
					 | 
					 | 
					 | 
					    pass
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -79,11 +94,3 @@ class factory :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    pass
 | 
					 | 
					 | 
					 | 
					    pass
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					factory.instance = instance
 | 
					 | 
					 | 
					 | 
					factory.instance = instance
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					init()
 | 
					 | 
					 | 
					 | 
					init()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# if __name__ == '__main__' :
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# # if not PROVIDERS :
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#     init()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#     print (list(PROVIDERS.keys()))
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#     pgr = instance(provider='postgresql',database='io',table='foo',write=True)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#     print (pgr.read())
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#     print ()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#     print (supported())
 | 
					 | 
					 | 
					 | 
					 |