예제 #1
0
    def test_match_fields_2(self):
        Logger.set_level(Level.info)

        field_mapper, input_field_listener, reference_field_listener = TestStencilFieldMapper.make_stencil_field_mapper(
            "s1", 1, ["A", "B", "C"], "s1", 1, ["A", "BB", "B", "C"])

        # The fields have been sorted (alphabetically), we update them here
        input_field_listener.list_value = field_mapper.input_field_list
        reference_field_listener.list_value = field_mapper.reference_field_list

        field_mapper.initial_field_match()

        # Check "checked" fields are equal i.e ["A", "B", "C"]
        self.assertCheckedFieldsEqual(input_field_listener,
                                      reference_field_listener)

        # Check "tt" has been move to the 3rd position i.e the end
        self.assertEqual(reference_field_listener.list_value.index("BB"), 3)
        self.assertEqual(reference_field_listener.list_check[3],
                         CheckState.Unchecked)
예제 #2
0
파일: sdb.py 프로젝트: yboetz/serialbox
def main():
    # ===----------------------------------------------------------------------------------------===
    #   Check Python Version
    # ==-----------------------------------------------------------------------------------------===
    from sys import version_info

    if version_info < (3, 4):
        print("sdb: error: sdb requires atleast python 3.4 (detected %s)" %
              python_version(),
              file=stderr)
        exit(1)

    # ===----------------------------------------------------------------------------------------===
    #   Check if IPython is available
    # ===----------------------------------------------------------------------------------------===
    SDB_HAS_IPYTHON = False
    try:
        from os import environ
        environ['QT_API'] = 'pyqt5'
        from IPython.qt.console.rich_ipython_widget import RichIPythonWidget
        from IPython.qt.inprocess import QtInProcessKernelManager
        SDB_HAS_IPYTHON = True
    except ImportError as e:
        pass

    # ===----------------------------------------------------------------------------------------===
    #   Parse command-line
    # ==-----------------------------------------------------------------------------------------===
    from sdbcore.version import Version
    from sdbcore.error import fatal_error
    from sdbcore.logger import Logger, Level

    parser = OptionParser(version="sdb %s" % Version().sdb_version())
    parser.add_option("-v",
                      "--verbose",
                      dest="verbose",
                      action="store_true",
                      help="enable verbose logging")

    group = BooleanOptionGroup(
        parser, "Configuration Options",
        "All options take a negative form, for example --foo sets the option"
        " foo to True, while --no-foo sets it to False.")
    group.add_boolean_option("ipython",
                             "Embed IPython console in the error description",
                             SDB_HAS_IPYTHON,
                             "True of IPython is available, False otherwise")
    group.add_boolean_option("center-window", "Center main window at launch",
                             True)
    group.add_boolean_option(
        "default-session", "Load (save) default session at startup (shutdown)",
        True)
    group.add_boolean_option("async",
                             "Use asynchronous reading API of Serialbox", True)
    group.add_boolean_option(
        "in-cell-icons",
        "Display small in icons the result table instead of coloring the cell",
        True)

    parser.add_option_group(group)

    parser.add_option(
        "--move-window",
        metavar="X:Y",
        dest="move_window",
        help=
        "Move main window at launch by X in the horizontal and Y in the vertical"
    )

    (options, args) = parser.parse_args()

    if options.verbose:
        Logger.set_level(Level.info)

    # ===----------------------------------------------------------------------------------------===
    #   Check if Serialbox is available
    # ===----------------------------------------------------------------------------------------===
    try:
        from serialbox import __version__
        if options.verbose:
            Logger.enable_serialbox_logging()
        Logger.info("Using Serialbox: %s" % __version__)
    except ImportError as e:
        fatal_error("serialbox not found: %s" % e)

    # ===----------------------------------------------------------------------------------------===
    #   Check if PyQt5 is available
    # ===----------------------------------------------------------------------------------------===
    try:
        from PyQt5.QtCore import QT_VERSION_STR
        Logger.info("Using PyQt5: %s" % QT_VERSION_STR)
    except ImportError as e:
        fatal_error("PyQt5 not found: %s" % e)

    # ===----------------------------------------------------------------------------------------===
    #   Check if matplotlib is available
    # ===----------------------------------------------------------------------------------------===
    try:
        import matplotlib
        Logger.info("Using matplotlib: %s" % matplotlib.__version__)
    except ImportError as e:
        Logger.warning("cannot import matplotlib: %s" % e)

    # ===----------------------------------------------------------------------------------------===
    #  Set global configuration option
    # ===----------------------------------------------------------------------------------------===
    from sdbgui.globalconfig import GlobalConfig
    from PyQt5.QtCore import QPoint

    GlobalConfig()["ipython"] = options.ipython
    GlobalConfig()["default_session"] = options.default_session
    GlobalConfig()["center_window"] = options.center_window
    GlobalConfig()["async"] = options. async