connectors/__init__.py
author Edouard Tisserant
Fri, 12 Jun 2020 14:39:32 +0200
changeset 2670 fd348d79a1f3
parent 2537 eb4a4cc41914
child 3501 fa291393aac7
permissions -rw-r--r--
BACnet and Modbus : Simpler configuration management. NevowServer.py now allows each extension to create and delete multiple configuration forms in the setting page, deprecating delSettings and addAfter.
1731
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
     1
#!/usr/bin/env python
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
     2
# -*- coding: utf-8 -*-
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
     3
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
     4
# This file is part of Beremiz, a Integrated Development Environment for
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
     5
# programming IEC 61131-3 automates supporting plcopen standard and CanFestival.
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
     6
#
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
     7
# Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
     8
# Copyright (C) 2017: Andrey Skvortsov
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
     9
#
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    10
# See COPYING file for copyrights details.
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    11
#
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    12
# This program is free software; you can redistribute it and/or
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    13
# modify it under the terms of the GNU General Public License
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    14
# as published by the Free Software Foundation; either version 2
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    15
# of the License, or (at your option) any later version.
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    16
#
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    17
# This program is distributed in the hope that it will be useful,
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    18
# but WITHOUT ANY WARRANTY; without even the implied warranty of
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    19
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    20
# GNU General Public License for more details.
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    21
#
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    22
# You should have received a copy of the GNU General Public License
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    23
# along with this program; if not, write to the Free Software
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    24
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    25
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    26
# Package initialisation
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    27
1881
091005ec69c4 fix pylint py3k conversion warning: "(no-absolute-import) import missing `from __future__ import absolute_import`"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1785
diff changeset
    28
091005ec69c4 fix pylint py3k conversion warning: "(no-absolute-import) import missing `from __future__ import absolute_import`"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1785
diff changeset
    29
from __future__ import absolute_import
1731
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    30
from os import listdir, path
2463
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
    31
from connectors.ConnectorBase import ConnectorBase
1731
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    32
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2478
diff changeset
    33
connectors_packages = ["PYRO", "WAMP"]
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    34
1731
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    35
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    36
def _GetLocalConnectorClassFactory(name):
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    37
    return lambda: getattr(__import__(name, globals(), locals()), name + "_connector_factory")
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    38
2182
eeca1aff0691 Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2007
diff changeset
    39
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    40
connectors = {name: _GetLocalConnectorClassFactory(name)
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    41
              for name in connectors_packages}
2007
ef2d479f564f #2476 Connectors dialog module added.
dporopat <denis.poropat@smarteh.si>
parents: 2006
diff changeset
    42
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    43
_dialogs_imported = False
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    44
per_URI_connectors = None
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2478
diff changeset
    45
schemes = None
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2478
diff changeset
    46
2182
eeca1aff0691 Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2007
diff changeset
    47
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    48
# lazy import of connectors dialogs, only if used
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    49
def _Import_Dialogs():
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    50
    global per_URI_connectors, schemes, _dialogs_imported
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2478
diff changeset
    51
    if not _dialogs_imported:
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    52
        _dialogs_imported = True
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    53
        per_URI_connectors = {}
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    54
        schemes = []
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    55
        for con_name in connectors_packages:
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2478
diff changeset
    56
            module = __import__(con_name + '_dialog', globals(), locals())
2007
ef2d479f564f #2476 Connectors dialog module added.
dporopat <denis.poropat@smarteh.si>
parents: 2006
diff changeset
    57
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    58
            for scheme in module.Schemes:
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    59
                per_URI_connectors[scheme] = getattr(module, con_name + '_dialog')
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
    60
                schemes += [scheme]
2007
ef2d479f564f #2476 Connectors dialog module added.
dporopat <denis.poropat@smarteh.si>
parents: 2006
diff changeset
    61
1731
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    62
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    63
def ConnectorFactory(uri, confnodesroot):
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    64
    """
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    65
    Return a connector corresponding to the URI
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    66
    or None if cannot connect to URI
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    67
    """
2463
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
    68
    _scheme = uri.split("://")[0].upper()
2478
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    69
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    70
    # commented code to enable for MDNS:// support
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    71
    # _scheme, location = uri.split("://")
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    72
    # _scheme = _scheme.upper()
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    73
2463
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
    74
    if _scheme == "LOCAL":
1731
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    75
        # Local is special case
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    76
        # pyro connection to local runtime
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    77
        # started on demand, listening on random port
2338
2c3222433244 Renaming servicetype into scheme.
Edouard Tisserant
parents: 2329
diff changeset
    78
        scheme = "PYRO"
1731
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    79
        runtime_port = confnodesroot.AppFrame.StartLocalRuntime(
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    80
            taskbaricon=True)
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
    81
        uri = "PYROLOC://127.0.0.1:" + str(runtime_port)
2478
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    82
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    83
    # commented code to enable for MDNS:// support
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    84
    # elif _scheme == "MDNS":
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    85
    #     try:
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    86
    #         from zeroconf import Zeroconf
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    87
    #         r = Zeroconf()
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    88
    #         i = r.get_service_info(zeroconf_service_type, location)
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    89
    #         if i is None:
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    90
    #             raise Exception("'%s' not found" % location)
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    91
    #         ip = str(socket.inet_ntoa(i.address))
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    92
    #         port = str(i.port)
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    93
    #         newlocation = ip + ':' + port
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    94
    #         confnodesroot.logger.write(_("'{a1}' is located at {a2}\n").format(a1=location, a2=newlocation))
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    95
    #         location = newlocation
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    96
    #         # not a bug, but a workaround against obvious downgrade attack
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    97
    #         scheme = "PYROS"
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    98
    #         r.close()
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
    99
    #     except Exception:
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
   100
    #         confnodesroot.logger.write_error(_("MDNS resolution failure for '%s'\n") % location)
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
   101
    #         confnodesroot.logger.write_error(traceback.format_exc())
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
   102
    #         return None
733d77bf0aa7 Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant
parents: 2469
diff changeset
   103
2463
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
   104
    elif _scheme in connectors:
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
   105
        scheme = _scheme
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
   106
    elif _scheme[-1] == 'S' and _scheme[:-1] in connectors:
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
   107
        scheme = _scheme[:-1]
1731
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
   108
    else:
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
   109
        return None
6ebd9c40b2be convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1680
diff changeset
   110
2463
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
   111
    # import module according to uri type and get connector specific baseclass
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2478
diff changeset
   112
    # first call to import the module,
2463
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
   113
    # then call with parameters to create the class
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
   114
    connector_specific_class = connectors[scheme]()(uri, confnodesroot)
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2478
diff changeset
   115
2469
e8760be772d5 Make easier to read console error message in case of connection problem.
Edouard Tisserant
parents: 2463
diff changeset
   116
    if connector_specific_class is None:
e8760be772d5 Make easier to read console error message in case of connection problem.
Edouard Tisserant
parents: 2463
diff changeset
   117
        return None
2007
ef2d479f564f #2476 Connectors dialog module added.
dporopat <denis.poropat@smarteh.si>
parents: 2006
diff changeset
   118
2463
8742337a9fe3 Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant
parents: 2339
diff changeset
   119
    # new class inheriting from generic and specific connector base classes
2537
eb4a4cc41914 Fix various pylint and pep8 errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2522
diff changeset
   120
    return type(_scheme + "_connector",
eb4a4cc41914 Fix various pylint and pep8 errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2522
diff changeset
   121
                (ConnectorBase, connector_specific_class), {})()
2182
eeca1aff0691 Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2007
diff changeset
   122
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2478
diff changeset
   123
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
   124
def EditorClassFromScheme(scheme):
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
   125
    _Import_Dialogs()
2492
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2478
diff changeset
   126
    return per_URI_connectors.get(scheme, None)
7dd551ac2fa0 check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com>
parents: 2478
diff changeset
   127
2007
ef2d479f564f #2476 Connectors dialog module added.
dporopat <denis.poropat@smarteh.si>
parents: 2006
diff changeset
   128
2329
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
   129
def ConnectorSchemes():
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
   130
    _Import_Dialogs()
e5703dc8848e URI editor : Rewrote most of it, cleaner.
Edouard Tisserant
parents: 2312
diff changeset
   131
    return schemes