Esempio n. 1
0
    def run(self):
        import os
        import pathlib
        from collections import namedtuple

        fix_pyqt_import()
        try:
            from PyQt5.uic.driver import Driver
        except ImportError:
            print("PyQt5 not installed, skipping `parsec.core.gui.ui` generation.")
            return

        self.announce("Generating `parsec.core.gui.ui`", level=distutils.log.INFO)
        Options = namedtuple(
            "Options",
            ["output", "import_from", "debug", "preview", "execute", "indent", "resource_suffix"],
        )
        ui_dir = pathlib.Path("parsec/core/gui/forms")
        ui_path = "parsec/core/gui/ui"
        os.makedirs(ui_path, exist_ok=True)
        for f in ui_dir.iterdir():
            o = Options(
                output=os.path.join(ui_path, "{}.py".format(f.stem)),
                import_from="parsec.core.gui",
                debug=False,
                preview=False,
                execute=False,
                indent=4,
                resource_suffix="_rc",
            )
            d = Driver(o, str(f))
            d.invoke()
Esempio n. 2
0
    def convert_single_file(self,filename,preview = False):
        if filename :
            base_name = basename(filename)
            output_file = join(dirname(filename),splitext(base_name)[0]+self.le_suffix.text() +".py")
#             complete sample : opts: {'preview': False, 'output': '/tmp/r.oo', 'execute': False, 'debug': False, 'indent': 4, 'import_from': None, 'from_imports': False, 'resource_suffix': '_ui'}
            opts = optparse.Values()
            opts.ensure_value("preview", preview)
            opts.ensure_value("execute", False)
            opts.ensure_value("debug", False)
            opts.ensure_value("indent", 4)
            opts.ensure_value("from_imports", False)
            opts.ensure_value("import_from", None)
            opts.ensure_value("resource_suffix", "_rc")
            opts.ensure_value("output", output_file)
            args =filename
            driver = Driver(opts,args)
            try:
                driver.invoke()
#                 print(filename,output_file,exit_status)
#                 QMessageBox.information(self, "转换成功", str(exit_status), QMessageBox.Ok)
                return output_file
            except IOError as e:
                QMessageBox.warning(self, "转换异常", str(e), QMessageBox.Ok)
Esempio n. 3
0
def main():
    globs = glob.iglob('./**/*.ui', recursive=True)
    for filename in globs:
        file, extension = os.path.splitext(filename)
        file_name = os.path.basename(file)
        dir_name = os.path.dirname(file)
        new_filename = f'ui_{file_name}.py'
        output_path = os.path.join(dir_name, new_filename)

        print(f'Compiling UI file {filename} -> {output_path}')

        args = {
            'preview': False,
            'output': output_path,
            'execute': False,
            'debug': False,
            'indent': 4,
            'import_from': None,
            'from_imports': False,
            'resource_suffix': '_rc'
        }

        args = optparse.Values(args)

        driver = UICDriver(args, filename)

        exit_status = 1

        try:
            exit_status = driver.invoke()

        except IOError as e:
            driver.on_IOError(e)

        except SyntaxError as e:
            driver.on_SyntaxError(e)

        except NoSuchClassError as e:
            driver.on_NoSuchClassError(e)

        except NoSuchWidgetError as e:
            driver.on_NoSuchWidgetError(e)

        except Exception as e:
            driver.on_Exception(e)

        print(f'Compile completed with exit code: {exit_status}')
Esempio n. 4
0
    def generate(self, argumentList):
        # Format: [<ui file path>, <option 1>, <argument 1>, ...]
        opts, args = self.parser.parse_args(argumentList)

        driver = Driver(opts, args[0])
        exit_status = 1
        
        try:
            exit_status = driver.invoke()
            
        except IOError as e:
            driver.on_IOError(e)
            
        except SyntaxError as e:
            driver.on_SyntaxError(e)
            
        except NoSuchClassError as e:
            driver.on_NoSuchClassError(e)
            
        except NoSuchWidgetError as e:
            driver.on_NoSuchWidgetError(e)
            
        except Exception as e:
            driver.on_Exception(e)
Esempio n. 5
0
def main():
    parser = optparse.OptionParser(usage="pyuic5 [options] <ui-file>",
                                   version=Version)
    parser.add_option(
        "-p",
        "--preview",
        dest="preview",
        action="store_true",
        default=False,
        help="show a preview of the UI instead of generating code")
    parser.add_option("-o",
                      "--output",
                      dest="output",
                      default="-",
                      metavar="FILE",
                      help="write generated code to FILE instead of stdout")
    parser.add_option("-x",
                      "--execute",
                      dest="execute",
                      action="store_true",
                      default=False,
                      help="generate extra code to test and display the class")
    parser.add_option("-d",
                      "--debug",
                      dest="debug",
                      action="store_true",
                      default=False,
                      help="show debug output")
    parser.add_option(
        "-i",
        "--indent",
        dest="indent",
        action="store",
        type="int",
        default=4,
        metavar="N",
        help="set indent width to N spaces, tab if N is 0 [default: 4]")

    g = optparse.OptionGroup(parser, title="Code generation options")
    g.add_option(
        "--import-from",
        dest="import_from",
        metavar="PACKAGE",
        help=
        "generate imports of pyrcc5 generated modules in the style 'from PACKAGE import ...'"
    )
    g.add_option("--from-imports",
                 dest="from_imports",
                 action="store_true",
                 default=False,
                 help="the equivalent of '--import-from=.'")
    g.add_option(
        "--resource-suffix",
        dest="resource_suffix",
        action="store",
        type="string",
        default="_rc",
        metavar="SUFFIX",
        help="append SUFFIX to the basename of resource files [default: _rc]")
    parser.add_option_group(g)

    opts, args = parser.parse_args()

    if len(args) != 1:
        sys.stderr.write("Error: one input ui-file must be specified\n")
        sys.exit(1)

# Invoke the appropriate driver.
    driver = Driver(opts, args[0])

    exit_status = 1

    try:
        exit_status = driver.invoke()

    except IOError as e:
        driver.on_IOError(e)

    except SyntaxError as e:
        driver.on_SyntaxError(e)

    except NoSuchWidgetError as e:
        driver.on_NoSuchWidgetError(e)

    except Exception as e:
        driver.on_Exception(e)

    sys.exit(exit_status)