wikimedia/pywikibot

View on GitHub
scripts/redirect.py

Summary

Maintainability
D
2 days
Test Coverage

Function get_redirects_from_dump has a Cognitive Complexity of 24 (exceeds 10 allowed). Consider refactoring.
Open

    def get_redirects_from_dump(
        self,
        alsoGetPageTitles: bool = False
    ) -> tuple[dict[str, str], set[str]]:
        """
Severity: Minor
Found in scripts/redirect.py - About 2 hrs to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function main has a Cognitive Complexity of 24 (exceeds 10 allowed). Consider refactoring.
Open

def main(*args: str) -> None:
    """
    Process command line arguments and invoke bot.

    If args is an empty list, sys.argv is used.
Severity: Minor
Found in scripts/redirect.py - About 2 hrs to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function fix_1_double_redirect has a Cognitive Complexity of 22 (exceeds 10 allowed). Consider refactoring.
Open

    def fix_1_double_redirect(self) -> None:
        """Treat one double redirect."""
        newRedir = redir = self.current_page
        redirList = []  # bookkeeping to detect loops
        while True:
Severity: Minor
Found in scripts/redirect.py - About 2 hrs to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function delete_1_broken_redirect has a Cognitive Complexity of 21 (exceeds 10 allowed). Consider refactoring.
Open

    def delete_1_broken_redirect(self) -> None:
        """Treat one broken redirect."""
        redir_page = self.current_page
        done = not self.opt.delete
        try:
Severity: Minor
Found in scripts/redirect.py - About 2 hrs to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function get_redirects_via_api has a Cognitive Complexity of 20 (exceeds 10 allowed). Consider refactoring.
Open

    def get_redirects_via_api(
        self,
        maxlen: int = 8
    ) -> Generator[tuple[str, int | None, str, str | None], None, None]:
        r"""
Severity: Minor
Found in scripts/redirect.py - About 1 hr to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function retrieve_double_redirects has a Cognitive Complexity of 18 (exceeds 10 allowed). Consider refactoring.
Open

    def retrieve_double_redirects(self) -> Generator[
            str | pywikibot.Page, None, None]:
        """Retrieve double redirects."""
        if self.opt.moves:
            yield from self.get_moved_pages_redirects()
Severity: Minor
Found in scripts/redirect.py - About 1 hr to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function retrieve_broken_redirects has a Cognitive Complexity of 18 (exceeds 10 allowed). Consider refactoring.
Open

    def retrieve_broken_redirects(self) -> Generator[
            str | pywikibot.Page, None, None]:
        """Retrieve broken redirects."""
        if self.opt.fullscan:
            count = 0
Severity: Minor
Found in scripts/redirect.py - About 1 hr to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function get_sd_template has a Cognitive Complexity of 14 (exceeds 10 allowed). Consider refactoring.
Open

    def get_sd_template(
        self, site: pywikibot.site.BaseSite | None = None
    ) -> str | None:
        """Look for speedy deletion template and return it.

Severity: Minor
Found in scripts/redirect.py - About 55 mins to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Avoid deeply nested control flow statements.
Open

                        while result <= maxlen:
                            result += 1
                            final = redirects[final]

                # only yield multiple or broken redirects
Severity: Major
Found in scripts/redirect.py - About 45 mins to fix

    Function get_moved_pages_redirects has a Cognitive Complexity of 12 (exceeds 10 allowed). Consider refactoring.
    Open

        def get_moved_pages_redirects(self) -> Generator[pywikibot.Page, None,
                                                         None]:
            """Generate redirects to recently-moved pages."""
            # this will run forever, until user interrupts it
            if self.opt.offset <= 0:
    Severity: Minor
    Found in scripts/redirect.py - About 35 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    FIXME found
    Open

                        break  # FIXME: doesn't work. edits twice!
    Severity: Minor
    Found in scripts/redirect.py by fixme

    FIXME found
    Open

                        # FIXME: Test to another move
    Severity: Minor
    Found in scripts/redirect.py by fixme

    TODO found
    Open

                            # TODO: Check whether pages aren't vandalized
    Severity: Minor
    Found in scripts/redirect.py by fixme

    There are no issues that match your filters.

    Category
    Status