Ejemplo n.º 1
0
def main():
    parser = OptionParser()

    _options, positional_args = parser.parse_args()

    if not positional_args:
        positional_args = ["nuitka/plugins/standard/*.yml"]

    my_print("Working on:", positional_args)

    positional_args = sum(
        (resolveShellPatternToFilenames(positional_arg)
         for positional_arg in positional_args),
        [],
    )

    goHome()

    filenames = list(scanTargets(
        positional_args,
        suffixes=(".yaml", ),
    ))
    if not filenames:
        sys.exit("No files found.")

    for filename in filenames:
        checkYamllint(filename)
Ejemplo n.º 2
0
def main():
    parser = OptionParser()

    parser.add_option(
        "--verbose",
        action="store_true",
        dest="verbose",
        default=False,
        help="""Default is %default.""",
    )

    parser.add_option(
        "--from-commit",
        action="store_true",
        dest="from_commit",
        default=False,
        help=
        """From commit hook, do not descend into directories. Default is %default.""",
    )

    parser.add_option(
        "--abort-on-parsing-error",
        action="store_true",
        dest="abort",
        default=False,
        help="""Stop if an error occurs, or continue. Default is %default.""",
    )

    options, positional_args = parser.parse_args()

    if options.from_commit:
        assert not positional_args
        for desc in getStagedFileChangeDesc():
            autoformat(desc["src_path"], git_stage=desc, abort=options.abort)
    else:
        if not positional_args:
            positional_args = [
                "bin", "nuitka", "setup.py", "tests/*/run_all.py"
            ]

        my_print("Working on:", positional_args)

        positional_args = sum(
            (resolveShellPatternToFilenames(positional_arg)
             for positional_arg in positional_args),
            [],
        )

        goHome()

        filenames = list(
            scanTargets(
                positional_args,
                (".py", ".scons", ".rst", ".txt", ".j2", ".md", ".c", ".h"),
            ))
        if not filenames:
            sys.exit("No files found.")

        for filename in filenames:
            autoformat(filename, git_stage=False, abort=options.abort)
Ejemplo n.º 3
0
def main():
    parser = OptionParser()

    parser.add_option(
        "--verbose",
        action="store_true",
        dest="verbose",
        default=False,
        help="""Show what it is doing. Default is %default.""",
    )

    parser.add_option(
        "--write",
        "-w",
        action="store_true",
        dest="write",
        default=False,
        help="""Write changes to the files. Default is %default.""",
    )

    options, positional_args = parser.parse_args()

    if not positional_args:
        positional_args = [
            "bin",
            "nuitka",
            "rpm",
            "misc",
            "tests/*/run_all.py",
            "*.rst",
        ]
        goHome()

    my_print("Working on:", positional_args)

    positional_args = sum(
        (resolveShellPatternToFilenames(positional_arg)
         for positional_arg in positional_args),
        [],
    )

    filenames = list(
        scanTargets(
            positional_args,
            suffixes=(".py", ".scons", ".rst", ".txt", ".j2", ".md", ".c",
                      ".h"),
        ))
    if not filenames:
        sys.exit("No files found.")

    result = runCodespell(filenames=filenames,
                          verbose=options.verbose,
                          write=options.write)

    if result:
        my_print("OK.")
    else:
        sys.exit(
            "\nError, please correct the spelling problems found or extend 'misc/codespell-ignore.txt' if applicable."
        )
Ejemplo n.º 4
0
def main():
    goHome()

    # So PyLint finds nuitka package.
    addPYTHONPATH(os.getcwd())
    setupPATH()

    parser = OptionParser()

    parser.add_option("--show-todos",
                      "--todos",
                      action="store_true",
                      dest="todos",
                      default=False,
                      help="""\
Show TODO items. Default is %default.""")

    parser.add_option("--verbose",
                      action="store_true",
                      dest="verbose",
                      default=False,
                      help="""\
Be version in output. Default is %default.""")

    parser.add_option("--one-by-one",
                      action="store_true",
                      dest="one_by_one",
                      default=False,
                      help="""\
Check files one by one. Default is %default.""")

    options, positional_args = parser.parse_args()

    if not positional_args:
        positional_args = ["-m", "nuitka"]

    print("Working on:", positional_args)

    blacklist = (
        "oset.py",
        "odict.py",
        "SyntaxHighlighting.py",
    )

    filenames = scanTargets(positional_args, (".py", ), blacklist)
    PyLint.executePyLint(filenames, options.todos, options.verbose,
                         options.one_by_one)

    if not filenames:
        sys.exit("No files found.")

    sys.exit(PyLint.our_exit_code)
Ejemplo n.º 5
0
def main():
    goHome()

    # So isort finds nuitka package.
    addPYTHONPATH(os.getcwd())

    parser = OptionParser()

    parser.add_option(
        "--verbose",
        action  = "store_true",
        dest    = "verbose",
        default = False,
        help    = """\
        Default is %default."""
    )

    _options, positional_args = parser.parse_args()

    if not positional_args:
        positional_args = ["-m", "nuitka", "tests/reflected/compile_itself.py"]

    target_files = []
    for filename in scanTargets(positional_args, (".py",)):

        package_name = os.path.dirname(filename)
        if package_name.startswith("nuitka" + os.path.sep):
            package_name = package_name.replace(os.path.sep, '.')

            source_code = open(filename).read()
            updated_code = re.sub(r"from %s import" % package_name, "from . import", source_code)
            updated_code = re.sub(r"from %s\." % package_name, "from .", source_code)

            if source_code != updated_code:
                with open(filename, 'w') as out_file:
                    out_file.write(updated_code)


        target_files.append(filename)

    target_files.append("nuitka/build/SingleExe.scons")

    setupPATH()
    subprocess.check_call(
        [
            "isort",
            "-ot",
            "-m3",
            "-ns",
            "__init__.py"
        ] + target_files
    )
Ejemplo n.º 6
0
def main():
    parser = OptionParser()

    parser.add_option(
        "--verbose",
        action="store_true",
        dest="verbose",
        default=False,
        help="""Show what it is doing. Default is %default.""",
    )

    parser.add_option(
        "--write",
        action="store_true",
        dest="write",
        default=False,
        help="""Write changes to the files. Default is %default.""",
    )

    options, positional_args = parser.parse_args()

    if not positional_args:
        positional_args = [
            "bin", "nuitka", "rpm", "misc", "tests/*/run_all.py"
        ]

    my_print("Working on:", positional_args)

    positional_args = sum(
        (resolveShellPatternToFilenames(positional_arg)
         for positional_arg in positional_args),
        [],
    )

    goHome()

    filenames = list(
        scanTargets(
            positional_args,
            (".py", ".scons", ".rst", ".txt", ".j2", ".md", ".c", ".h")))
    if not filenames:
        sys.exit("No files found.")

    codespell(filenames=filenames,
              verbose=options.verbose,
              write=options.write)
Ejemplo n.º 7
0
def main():
    parser = OptionParser()

    parser.add_option(
        "--verbose",
        action  = "store_true",
        dest    = "verbose",
        default = False,
        help    = """\
        Default is %default."""
    )

    parser.add_option(
        "--abort-on-parsing-error",
        action  = "store_true",
        dest    = "abort",
        default = False,
        help    = """\
        Default is %default."""
    )

    options, positional_args = parser.parse_args()

    if not positional_args:
        positional_args = ["-m", "nuitka"]

    print("Working on:", positional_args)

    positional_args = [
        os.path.abspath(positional_arg)
        for positional_arg in positional_args
    ]
    goHome()

    found = False
    for filename in scanTargets(positional_args, (".py", ".scons")):
        autoformat(filename, abort = options.abort)
        found = True

    if not found:
        sys.exit("No files found.")
Ejemplo n.º 8
0
def main():
    setup()
    goHome()

    # So PyLint finds nuitka package.
    addPYTHONPATH(os.getcwd())
    setupPATH()

    parser = OptionParser()

    parser.add_option(
        "--show-todos",
        "--todos",
        action="store_true",
        dest="todos",
        default=False,
        help="""\
Show TODO items. Default is %default.""",
    )

    parser.add_option(
        "--verbose",
        action="store_true",
        dest="verbose",
        default=False,
        help="""\
Be verbose in output. Default is %default.""",
    )

    parser.add_option(
        "--one-by-one",
        action="store_true",
        dest="one_by_one",
        default=False,
        help="""\
Check files one by one. Default is %default.""",
    )

    parser.add_option(
        "--not-installed-is-no-error",
        action="store_true",
        dest="not_installed_is_no_error",
        default=False,
        help="""\
Insist on PyLint to be installed. Default is %default.""",
    )

    options, positional_args = parser.parse_args()

    if options.not_installed_is_no_error and not hasModule("pylint"):
        print("PyLint is not installed for this interpreter version: SKIPPED")
        sys.exit(0)

    if not positional_args:
        positional_args = ["bin", "nuitka", "tests/*/run_all.py"]

    positional_args = sum(
        (resolveShellPatternToFilenames(positional_arg)
         for positional_arg in positional_args),
        [],
    )

    print("Working on:", positional_args)

    blacklist = ["oset.py", "odict.py"]

    # Avoid checking the Python2 runner with Python3, it has name collisions.
    if python_version >= 300:
        blacklist.append("nuitka")

    filenames = list(scanTargets(positional_args, (".py", ), blacklist))
    PyLint.executePyLint(
        filenames=filenames,
        show_todos=options.todos,
        verbose=options.verbose,
        one_by_one=options.one_by_one,
    )

    if not filenames:
        sys.exit("No files found.")

    sys.exit(PyLint.our_exit_code)
Ejemplo n.º 9
0
def main():
    setup(go_main=False)

    # So PyLint finds nuitka package.
    addPYTHONPATH(getHomePath())
    setupPATH()

    parser = OptionParser()

    parser.add_option(
        "--diff",
        action="store_true",
        dest="diff",
        default=False,
        help="""\
Analyse the changed files in git. Default is %default.""",
    )

    parser.add_option(
        "--show-todos",
        "--todos",
        action="store_true",
        dest="todos",
        default=False,
        help="""\
Show TODO items. Default is %default.""",
    )

    parser.add_option(
        "--verbose",
        action="store_true",
        dest="verbose",
        default=False,
        help="""\
Be verbose in output. Default is %default.""",
    )

    parser.add_option(
        "--one-by-one",
        action="store_true",
        dest="one_by_one",
        default=False,
        help="""\
Check files one by one. Default is %default.""",
    )

    parser.add_option(
        "--not-installed-is-no-error",
        action="store_true",
        dest="not_installed_is_no_error",
        default=False,
        help="""\
Insist on PyLint to be installed. Default is %default.""",
    )

    options, positional_args = parser.parse_args()

    if options.not_installed_is_no_error and not hasModule("pylint"):
        print("PyLint is not installed for this interpreter version: SKIPPED")
        sys.exit(0)

    if positional_args:
        if options.diff:
            sys.exit("Error, no filenames argument allowed in git diff mode.")
    else:
        goHome()

        if options.diff:
            positional_args = [
                filename for filename in getModifiedPaths()
                if isPythonFile(filename)
            ]
        else:
            positional_args = [
                "bin", "nuitka", "setup.py", "tests/*/run_all.py"
            ]

    positional_args = sum(
        (resolveShellPatternToFilenames(positional_arg)
         for positional_arg in positional_args),
        [],
    )

    if not positional_args:
        sys.exit("No files found.")

    print("Working on:", positional_args)

    ignore_list = []

    # Avoid checking the Python2 runner along with the one for Python3, it has name collisions.
    if python_version >= 0x300:
        ignore_list.append("nuitka")

    filenames = list(
        scanTargets(positional_args,
                    suffixes=(".py", ".scons"),
                    ignore_list=ignore_list))
    PyLint.executePyLint(
        filenames=filenames,
        show_todos=options.todos,
        verbose=options.verbose,
        one_by_one=options.one_by_one,
    )

    if not filenames:
        sys.exit("No files found.")

    sys.exit(PyLint.our_exit_code)
Ejemplo n.º 10
0
def main():
    parser = OptionParser()

    parser.add_option(
        "--verbose",
        action="store_true",
        dest="verbose",
        default=False,
        help="""Default is %default.""",
    )

    parser.add_option(
        "--from-commit",
        action="store_true",
        dest="from_commit",
        default=False,
        help=
        """From commit hook, do not descend into directories. Default is %default.""",
    )

    parser.add_option(
        "--abort-on-parsing-error",
        action="store_true",
        dest="abort",
        default=False,
        help="""Stop if an error occurs, or continue. Default is %default.""",
    )

    options, positional_args = parser.parse_args()

    if not positional_args:
        positional_args = [
            "bin",
            "nuitka",
            # "tests/*/run_all.py"
        ]

    if options.from_commit:
        positional_args = [
            positional_arg for positional_arg in positional_args
            if not os.path.isdir(positional_arg)
        ]

    my_print("Working on:", positional_args)

    if not options.from_commit:
        positional_args = sum(
            (resolveShellPatternToFilenames(positional_arg)
             for positional_arg in positional_args),
            [],
        )

    positional_args = [
        os.path.abspath(positional_arg) for positional_arg in positional_args
    ]
    goHome()

    filenames = list(
        scanTargets(positional_args, (".py", ".scons", ".rst", ".txt")))
    if not filenames:
        sys.exit("No files found.")

    for filename in filenames:
        autoformat(filename, abort=options.abort)
Ejemplo n.º 11
0
def main():
    goHome()

    # So isort finds nuitka package.
    addPYTHONPATH(os.getcwd())

    parser = OptionParser()

    parser.add_option(
        "--verbose",
        action="store_true",
        dest="verbose",
        default=False,
        help="""\
        Default is %default.""",
    )

    _options, positional_args = parser.parse_args()

    if not positional_args:
        positional_args = [
            "bin", "nuitka", "tests/reflected/compile_itself.py"
        ]

    target_files = []
    for filename in scanTargets(positional_args, (".py", ".scons")):
        # This breaks the PyLint annotations currently.
        if os.path.basename(filename) == "Autoformat.py":
            continue

        package_name = os.path.dirname(filename)

        # Make imports local if possible.
        if package_name.startswith("nuitka" + os.path.sep):
            package_name = package_name.replace(os.path.sep, ".")

            source_code = open(filename).read()
            updated_code = re.sub(r"from %s import" % package_name,
                                  "from . import", source_code)
            updated_code = re.sub(r"from %s\." % package_name, "from .",
                                  source_code)

            if source_code != updated_code:
                with open(filename, "w") as out_file:
                    out_file.write(updated_code)

        target_files.append(filename)

    setupPATH()
    subprocess.check_call([
        "isort",
        "-ot",  # Order imports by type in addition to alphabetically
        "-m3",  # "vert-hanging"
        "-up",  # Prefer braces () over \ for line continuation.
        "-ns",  # Do not ignore those:
        "__init__.py",
    ] + target_files)

    # For Windows, work around that isort changes encoding.
    if os.name == "nt":
        for filename in target_files:
            cleanupWindowsNewlines(filename)
Ejemplo n.º 12
0
def main():
    parser = OptionParser()

    parser.add_option(
        "--verbose",
        action="store_true",
        dest="verbose",
        default=False,
        help="""Default is %default.""",
    )

    parser.add_option(
        "--from-commit",
        action="store_true",
        dest="from_commit",
        default=False,
        help="""From commit hook, do not descend into directories. Default is %default.""",
    )

    parser.add_option(
        "--abort-on-parsing-error",
        action="store_true",
        dest="abort",
        default=False,
        help="""Stop if an error occurs, or continue. Default is %default.""",
    )

    options, positional_args = parser.parse_args()

    if options.from_commit:
        assert not positional_args
        for desc in getStagedFileChangeDesc():
            autoformat(desc["src_path"], git_stage=desc, abort=options.abort)
    else:
        if not positional_args:
            positional_args = [
                "bin",
                "nuitka",
                # "tests/*/run_all.py"
            ]

        my_print("Working on:", positional_args)

        positional_args = sum(
            (
                resolveShellPatternToFilenames(positional_arg)
                for positional_arg in positional_args
            ),
            [],
        )

        goHome()

        filenames = list(
            scanTargets(positional_args, (".py", ".scons", ".rst", ".txt"))
        )
        if not filenames:
            sys.exit("No files found.")

        for filename in filenames:
            autoformat(filename, git_stage=False, abort=options.abort)
Ejemplo n.º 13
0
def main():
    setup()
    goHome()

    # So PyLint finds nuitka package.
    addPYTHONPATH(os.getcwd())
    setupPATH()

    parser = OptionParser()

    parser.add_option(
        "--show-todos",
        "--todos",
        action="store_true",
        dest="todos",
        default=False,
        help="""\
Show TODO items. Default is %default.""",
    )

    parser.add_option(
        "--verbose",
        action="store_true",
        dest="verbose",
        default=False,
        help="""\
Be version in output. Default is %default.""",
    )

    parser.add_option(
        "--one-by-one",
        action="store_true",
        dest="one_by_one",
        default=False,
        help="""\
Check files one by one. Default is %default.""",
    )

    parser.add_option(
        "--not-installed-is-no-error",
        action="store_true",
        dest="not_installed_is_no_error",
        default=False,
        help="""\
Insist on PyLint to be installed. Default is %default.""",
    )

    options, positional_args = parser.parse_args()

    if options.not_installed_is_no_error and not hasModule("pylint"):
        print("PyLint is not installed for this interpreter version: SKIPPED")
        sys.exit(0)

    if not positional_args:
        positional_args = ["bin", "nuitka"]

    print("Working on:", positional_args)

    blacklist = ["oset.py", "odict.py", "SyntaxHighlighting.py"]

    # Avoid checking the Python2 runner with Python3, it has name collisions.
    if python_version >= 300:
        blacklist.append("nuitka")

    filenames = list(scanTargets(positional_args, (".py",), blacklist))
    PyLint.executePyLint(
        filenames=filenames,
        show_todos=options.todos,
        verbose=options.verbose,
        one_by_one=options.one_by_one,
    )

    if not filenames:
        sys.exit("No files found.")

    sys.exit(PyLint.our_exit_code)
Ejemplo n.º 14
0
def main():
    parser = OptionParser()

    parser.add_option(
        "--verbose",
        action="store_true",
        dest="verbose",
        default=False,
        help="""Default is %default.""",
    )

    parser.add_option(
        "--from-commit",
        action="store_true",
        dest="from_commit",
        default=False,
        help="""From commit hook, do not descend into directories. Default is %default.""",
    )

    parser.add_option(
        "--check-only",
        action="store_true",
        dest="check_only",
        default=False,
        help="""For CI testing, check if it's properly formatted. Default is %default.""",
    )

    parser.add_option(
        "--no-progressbar",
        action="store_false",
        dest="progress_bar",
        default=True,
        help="""Disable progress bar outputs (if tqdm is installed).
Defaults to off.""",
    )

    options, positional_args = parser.parse_args()

    if options.from_commit:
        assert not positional_args
        for desc in getStagedFileChangeDesc():
            autoformat(desc["src_path"], git_stage=desc)
    else:
        if not positional_args:
            positional_args = ["bin", "nuitka", "setup.py", "tests/*/run_all.py"]

        my_print("Working on:", positional_args)

        positional_args = sum(
            (
                resolveShellPatternToFilenames(positional_arg)
                for positional_arg in positional_args
            ),
            [],
        )

        filenames = list(
            scanTargets(
                positional_args,
                suffixes=(".py", ".scons", ".rst", ".txt", ".j2", ".md", ".c", ".h"),
            )
        )

        if not filenames:
            tools_logger.sysexit("No files found.")

        result = 0

        if options.progress_bar:
            enableProgressBar()

        for filename in wrapWithProgressBar(
            filenames, stage="Autoformat", unit="files"
        ):
            if autoformat(filename, git_stage=False, check_only=options.check_only):
                result += 1

        if options.check_only and result > 0:
            tools_logger.sysexit(
                """Error, bin/autoformat-nuitka-source would make changes to %d files, \
make sure to have commit hook installed."""
                % result
            )
        elif result > 0:
            tools_logger.info("autoformat: Changes to formatting of %d files" % result)
        else:
            tools_logger.info("autoformat: No files needed formatting changes.")