Example #1
0
 def set_chain_class(self, chain_identifier):
     if isinstance(chain_identifier, type):
         self.chain_class = chain_identifier
     elif is_string(chain_identifier):
         if chain_identifier.lower() in CHAIN_IDENTIFIER_MAP:
             self.chain_class = CHAIN_IDENTIFIER_MAP[chain_identifier.lower()]
         else:
             try:
                 import_string(chain_identifier)
             except ImportError:
                 raise ValueError(UNSUPPORTED_CHAIN_IDENTIFIER_MSG.format(chain_identifier))
             else:
                 self.chain_class = chain_identifier
     else:
         raise ValueError(UNSUPPORTED_CHAIN_IDENTIFIER_MSG.format(chain_identifier))
Example #2
0
 def contract_backends(self):
     for backend_name, backend_config in self.contract_backend_configs.items():
         ProviderBackendClass = import_string(backend_config['class'])
         yield (
             backend_name,
             ProviderBackendClass(self, backend_config.get_config('settings')),
         )
Example #3
0
 def contract_backends(self):
     for backend_name, backend_config in self.contract_backend_configs.items():
         ProviderBackendClass = import_string(backend_config['class'])
         yield (
             backend_name,
             ProviderBackendClass(self, backend_config.get_config('settings')),
         )
Example #4
0
    def __init__(self,
                 project,
                 chain_name,
                 provider=IPCProvider,
                 **geth_kwargs):
        super(BaseGethChain, self).__init__(project, chain_name)

        if geth_kwargs is None:
            geth_kwargs = {}

        if is_string(provider):
            provider = import_string(provider)

        # context manager shenanigans
        self.stack = ExitStack()

        self.provider_class = provider
        self.extra_kwargs = {
            key: value
            for key, value in geth_kwargs.items() if key not in GETH_KWARGS
        }
        self.geth_kwargs = {
            key: value
            for key, value in geth_kwargs.items() if key in GETH_KWARGS
        }
        self.geth = self.get_geth_process_instance()
Example #5
0
 def set_backend_class(self, backend_identifier):
     if isinstance(backend_identifier, type):
         self.backend_class = backend_identifier
     elif is_string(backend_identifier):
         if backend_identifier.lower() in BACKEND_IDENTIFIER_MAP:
             self.backend_class = BACKEND_IDENTIFIER_MAP[backend_identifier.lower()]
         else:
             try:
                 import_string(backend_identifier)
             except ImportError:
                 raise ValueError(
                     UNSUPPORTED_BACKEND_IDENTIFIER_MSG.format(backend_identifier)
                 )
             else:
                 self.backend_class = backend_identifier
     else:
         raise ValueError(UNSUPPORTED_BACKEND_IDENTIFIER_MSG.format(backend_identifier))
Example #6
0
 def set_provider_class(self, provider_identifier):
     if isinstance(provider_identifier, type):
         self.provider_class = provider_identifier
     elif is_string(provider_identifier):
         if provider_identifier.lower() in PROVIDER_IDENTIFIER_MAP:
             self.provider_class = PROVIDER_IDENTIFIER_MAP[provider_identifier.lower()]
         else:
             try:
                 import_string(provider_identifier)
             except ImportError:
                 raise ValueError(
                     UNSUPPORTED_PROVIDER_IDENTIFIER_MSG.format(provider_identifier)
                 )
             else:
                 self.provider_class = provider_identifier
     else:
         raise ValueError(UNSUPPORTED_PROVIDER_IDENTIFIER_MSG.format(provider_identifier))
Example #7
0
 def set_chain_class(self, chain_identifier):
     if isinstance(chain_identifier, type):
         self.chain_class = chain_identifier
     elif is_string(chain_identifier):
         if chain_identifier.lower() in CHAIN_IDENTIFIER_MAP:
             self.chain_class = CHAIN_IDENTIFIER_MAP[
                 chain_identifier.lower()]
         else:
             try:
                 import_string(chain_identifier)
             except ImportError:
                 raise ValueError(
                     UNSUPPORTED_CHAIN_IDENTIFIER_MSG.format(
                         chain_identifier))
             else:
                 self.chain_class = chain_identifier
     else:
         raise ValueError(
             UNSUPPORTED_CHAIN_IDENTIFIER_MSG.format(chain_identifier))
Example #8
0
 def set_provider_class(self, provider_identifier):
     if isinstance(provider_identifier, type):
         self.provider_class = provider_identifier
     elif is_string(provider_identifier):
         if provider_identifier.lower() in PROVIDER_IDENTIFIER_MAP:
             self.provider_class = PROVIDER_IDENTIFIER_MAP[
                 provider_identifier.lower()]
         else:
             try:
                 import_string(provider_identifier)
             except ImportError:
                 raise ValueError(
                     UNSUPPORTED_PROVIDER_IDENTIFIER_MSG.format(
                         provider_identifier))
             else:
                 self.provider_class = provider_identifier
     else:
         raise ValueError(
             UNSUPPORTED_PROVIDER_IDENTIFIER_MSG.format(
                 provider_identifier))
Example #9
0
 def set_backend_class(self, backend_identifier):
     if isinstance(backend_identifier, type):
         self.backend_class = backend_identifier
     elif is_string(backend_identifier):
         if backend_identifier.lower() in self.backend_class_shortnames:
             self.backend_class = self.backend_class_shortnames[
                 backend_identifier.lower()]
         else:
             try:
                 import_string(backend_identifier)
             except ImportError:
                 raise ValueError(
                     UNSUPPORTED_BACKEND_IDENTIFIER_MSG.format(','.join(
                         tuple(self.backend_class_shortnames.keys()))))
             else:
                 self.backend_class = backend_identifier
     else:
         raise ValueError(
             UNSUPPORTED_BACKEND_IDENTIFIER_MSG.format(','.join(
                 tuple(self.backend_class_shortnames.keys()))))
Example #10
0
    def __init__(self, project, chain_name, *args, **kwargs):
        super(ExternalChain, self).__init__(project, chain_name)

        provider_import_path = kwargs.pop(
            'provider',
            'web3.providers.ipc.IPCProvider',
        )
        provider_class = import_string(provider_import_path)

        if provider_class == RPCProvider:
            host = kwargs.pop('host', '127.0.0.1')
            # TODO: this integer casting needs to be done downstream in
            # web3.py.
            port = int(kwargs.pop('port', 8545))
            provider = provider_class(host=host, port=port)
        elif provider_class == IPCProvider:
            ipc_path = kwargs.pop('ipc_path', None)
            provider = provider_class(ipc_path=ipc_path)
        else:
            raise NotImplementedError(
                "Only the IPCProvider and RPCProvider provider classes are "
                "currently supported for external chains.")

        self._web3 = Web3(provider)
Example #11
0
 def __get__(self, obj, type=None):
     class_import_path = obj[self.key]
     klass = import_string(class_import_path)
     return klass
Example #12
0
 def __get__(self, obj, type=None):
     class_import_path = obj[self.key]
     klass = import_string(class_import_path)
     return klass