wikimedia/pywikibot

View on GitHub

Showing 580 of 580 total issues

File proofreadpage.py has 1032 lines of code (exceeds 900 allowed). Consider refactoring.
Open

"""Objects used with ProofreadPage Extension.
 
OCR support of page scans via:
 
- Wikimedia OCR, see:
Severity: Major
Found in pywikibot/proofreadpage.py - About 5 hrs to fix

    File _requests.py has 1025 lines of code (exceeds 900 allowed). Consider refactoring.
    Open

    """Objects representing API requests."""
    #
    # (C) Pywikibot team, 2007-2025
    #
    # Distributed under the terms of the MIT license.
    Severity: Major
    Found in pywikibot/data/api/_requests.py - About 5 hrs to fix

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      def test_claim_eq_simple_different_value(self):
      """Test comparing two claims.
       
      If they have the same property and different values,
      they are not equal.
      Severity: Major
      Found in tests/wikibase_tests.py and 2 other locations - About 5 hrs to fix
      tests/wikibase_tests.py on lines 733..744
      tests/wikibase_tests.py on lines 789..801

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      def test_claim_eq_simple_different_property(self):
      """Test comparing two claims.
       
      If they have the same value and different properties,
      they are not equal.
      Severity: Major
      Found in tests/wikibase_tests.py and 2 other locations - About 5 hrs to fix
      tests/wikibase_tests.py on lines 733..744
      tests/wikibase_tests.py on lines 746..758

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      def test_claim_eq_simple(self):
      """Test comparing two claims.
       
      If they have the same property and value, they are equal.
      """
      Severity: Major
      Found in tests/wikibase_tests.py and 2 other locations - About 5 hrs to fix
      tests/wikibase_tests.py on lines 746..758
      tests/wikibase_tests.py on lines 789..801

      Function parse_page_tuples has a Cognitive Complexity of 38 (exceeds 10 allowed). Consider refactoring.
      Open

      def parse_page_tuples(self, wikitext, user=None):
      """Parse page details apart from 'user:' for use."""
      whitelist = defaultdict(set)
       
      current_user = False
      Severity: Minor
      Found in scripts/patrol.py - About 4 hrs to fix

      Function preloadpages has a Cognitive Complexity of 37 (exceeds 10 allowed). Consider refactoring.
      Open

      def preloadpages(
      self,
      pagelist: Iterable[pywikibot.Page],
      *,
      groupsize: int | None = None,
      Severity: Minor
      Found in pywikibot/site/_generators.py - About 4 hrs to fix

      Identical blocks of code found in 3 locations. Consider refactoring.
      Open

      try:
      page.touch()
      except (NoCreateError, NoPageError):
      pywikibot.error(f'Page {page.title(as_link=True)} does not exist.')
      except LockedPageError:
      Severity: Major
      Found in scripts/category_redirect.py and 2 other locations - About 4 hrs to fix
      scripts/newitem.py on lines 82..90
      scripts/touch.py on lines 59..66

      Identical blocks of code found in 3 locations. Consider refactoring.
      Open

      try:
      page.touch(bot=self.opt.botflag)
      except (NoCreateError, NoPageError):
      pywikibot.error(f'Page {page.title(as_link=True)} does not exist.')
      except LockedPageError:
      Severity: Major
      Found in scripts/touch.py and 2 other locations - About 4 hrs to fix
      scripts/category_redirect.py on lines 309..316
      scripts/newitem.py on lines 82..90

      Identical blocks of code found in 3 locations. Consider refactoring.
      Open

      try:
      pywikibot.info('Doing a null edit on the page.')
      page.touch()
      except (NoCreateError, NoPageError):
      pywikibot.error(f'Page {page.title(as_link=True)} does not exist.')
      Severity: Major
      Found in scripts/newitem.py and 2 other locations - About 4 hrs to fix
      scripts/category_redirect.py on lines 309..316
      scripts/touch.py on lines 59..66

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      def removeClaims(self, claims, **kwargs) -> None:
      """Remove the claims from the form.
       
      :param claims: list of claims to be removed
      :type claims: list or pywikibot.Claim
      Severity: Major
      Found in pywikibot/page/_wikibase.py and 2 other locations - About 4 hrs to fix
      pywikibot/page/_wikibase.py on lines 561..577
      pywikibot/page/_wikibase.py on lines 902..916

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      def removeClaims(self, claims, **kwargs) -> None:
      """Remove the claims from the MediaInfo.
       
      .. versionadded:: 8.5
       
       
      Severity: Major
      Found in pywikibot/page/_wikibase.py and 2 other locations - About 4 hrs to fix
      pywikibot/page/_wikibase.py on lines 902..916
      pywikibot/page/_wikibase.py on lines 2393..2407

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      def removeClaims(self, claims, **kwargs) -> None:
      """Remove the claims from the entity.
       
      :param claims: list of claims to be removed
      :type claims: list or pywikibot.Claim
      Severity: Major
      Found in pywikibot/page/_wikibase.py and 2 other locations - About 4 hrs to fix
      pywikibot/page/_wikibase.py on lines 561..577
      pywikibot/page/_wikibase.py on lines 2393..2407

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      if 'ddc' in isbn_classify and DEWCLASIDPROP not in item.claims:
      claim = pywikibot.Claim(repo, DEWCLASIDPROP)
      claim.setTarget(isbn_classify['ddc'])
      item.addClaim(claim, bot=wdbotflag, summary=transcmt)
      pywikibot.warning(f'Add Dewey Decimale Classificatie ({DEWCLASIDPROP})'
      Severity: Major
      Found in scripts/create_isbn_edition.py and 2 other locations - About 4 hrs to fix
      scripts/create_isbn_edition.py on lines 1294..1299
      scripts/create_isbn_edition.py on lines 1395..1400

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      if 'lcc' in isbn_classify and LIBCONGEDPROP not in item.claims:
      claim = pywikibot.Claim(repo, LIBCONGEDPROP)
      claim.setTarget(isbn_classify['lcc'])
      item.addClaim(claim, bot=wdbotflag, summary=transcmt)
      pywikibot.warning(
      Severity: Major
      Found in scripts/create_isbn_edition.py and 2 other locations - About 4 hrs to fix
      scripts/create_isbn_edition.py on lines 1294..1299
      scripts/create_isbn_edition.py on lines 1405..1409

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      if 'oclc' in isbn_classify and OCLDIDPROP not in item.claims:
      claim = pywikibot.Claim(repo, OCLDIDPROP)
      claim.setTarget(isbn_classify['oclc'])
      item.addClaim(claim, bot=wdbotflag, summary=transcmt)
      pywikibot.warning(
      Severity: Major
      Found in scripts/create_isbn_edition.py and 2 other locations - About 4 hrs to fix
      scripts/create_isbn_edition.py on lines 1395..1400
      scripts/create_isbn_edition.py on lines 1405..1409

      Function editEntity has a Cognitive Complexity of 35 (exceeds 10 allowed). Consider refactoring.
      Open

      def editEntity(
      self,
      data: ENTITY_DATA_TYPE | None = None,
      **kwargs
      ) -> None:
      Severity: Minor
      Found in pywikibot/page/_wikibase.py - About 4 hrs to fix

      Function package_versions has a Cognitive Complexity of 35 (exceeds 10 allowed). Consider refactoring.
      Open

      def package_versions(
      modules: list[str] | None = None,
      builtins: bool | None = False,
      standard_lib: bool | None = None,
      ):
      Severity: Minor
      Found in pywikibot/version.py - About 4 hrs to fix

      Function analyze_page has a Cognitive Complexity of 33 (exceeds 10 allowed). Consider refactoring.
      Open

      def analyze_page(self) -> set[tuple[str, str]]:
      """Analyze DiscussionPage."""
      max_size = self.get_attr('maxarchivesize')
      max_arch_size = str2size(max_size)
      if not max_arch_size[0]:
      Severity: Minor
      Found in scripts/archivebot.py - About 4 hrs to fix

      Function put_mex_in_talk has a Cognitive Complexity of 33 (exceeds 10 allowed). Consider refactoring.
      Open

      def put_mex_in_talk(self) -> None:
      """Function to put the warning in talk page of the uploader.
       
      When the bot find that the usertalk is empty it adds the welcome
      message first. The messages are imported from welcome.py script.
      Severity: Minor
      Found in scripts/checkimages.py - About 4 hrs to fix
      Severity
      Category
      Status
      Source
      Language