src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py

branch
eric7
changeset 9458
3b41bb7d1623
parent 9413
80c06d472826
child 9473
3f23dbf37dbe
equal deleted inserted replaced
9457:1e0a9199479e 9458:3b41bb7d1623
37 from . import pycodestyle 37 from . import pycodestyle
38 from . import CodeStyleCheckerUtilities 38 from . import CodeStyleCheckerUtilities
39 39
40 from .Miscellaneous.MiscellaneousDefaults import MiscellaneousCheckerDefaultArgs 40 from .Miscellaneous.MiscellaneousDefaults import MiscellaneousCheckerDefaultArgs
41 from .Annotations.AnnotationsCheckerDefaults import AnnotationsCheckerDefaultArgs 41 from .Annotations.AnnotationsCheckerDefaults import AnnotationsCheckerDefaultArgs
42 from .Security.SecurityDefaults import SecurityDefaults
42 43
43 44
44 class CodeStyleCheckerDialog(QDialog, Ui_CodeStyleCheckerDialog): 45 class CodeStyleCheckerDialog(QDialog, Ui_CodeStyleCheckerDialog):
45 """ 46 """
46 Class implementing a dialog to show the results of the code style check. 47 Class implementing a dialog to show the results of the code style check.
149 CodeStyleCheckerDialog.cryptoBitSelectionsDsaRsa 150 CodeStyleCheckerDialog.cryptoBitSelectionsDsaRsa
150 ) 151 )
151 self.ecHighRiskCombo.addItems(CodeStyleCheckerDialog.cryptoBitSelectionsEc) 152 self.ecHighRiskCombo.addItems(CodeStyleCheckerDialog.cryptoBitSelectionsEc)
152 self.ecMediumRiskCombo.addItems(CodeStyleCheckerDialog.cryptoBitSelectionsEc) 153 self.ecMediumRiskCombo.addItems(CodeStyleCheckerDialog.cryptoBitSelectionsEc)
153 154
155 self.sortOrderComboBox.addItem("Natural", "natural")
156 self.sortOrderComboBox.addItem("Native Python", "native")
157
154 self.statisticsButton.setEnabled(False) 158 self.statisticsButton.setEnabled(False)
155 self.showButton.setEnabled(False) 159 self.showButton.setEnabled(False)
156 self.cancelButton.setEnabled(True) 160 self.cancelButton.setEnabled(True)
157 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(False) 161 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(False)
158 162
415 elif value == "true": 419 elif value == "true":
416 self.banAllButton.setChecked(True) 420 self.banAllButton.setChecked(True)
417 else: 421 else:
418 self.allowAllButton.setChecked(True) 422 self.allowAllButton.setChecked(True)
419 423
420 def prepare(self, fileList, project): 424 def getDefaults(self):
421 """ 425 """
422 Public method to prepare the dialog with a list of filenames. 426 Public method to get a dictionary containing the default values.
423 427
424 @param fileList list of filenames 428 @return dictionary containing the default values
425 @type list of str 429 @rtype dict
426 @param project reference to the project object 430 """
427 @type Project 431 defaults = {
428 """ 432 # General
429 self.__fileOrFileList = fileList[:] 433 "ExcludeFiles": "",
430 self.__project = project 434 "ExcludeMessages": pycodestyle.DEFAULT_IGNORE,
431 self.__forProject = True 435 "IncludeMessages": "",
432 436 "RepeatMessages": False,
433 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(True) 437 "FixCodes": "",
434 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True) 438 "FixIssues": False,
435 self.cancelButton.setEnabled(False) 439 "EnabledCheckerCategories": ",".join(
436
437 self.__data = self.__project.getData("CHECKERSPARMS", "Pep8Checker")
438 if self.__data is None or len(self.__data) < 6:
439 # initialize the data structure
440 self.__data = {
441 "ExcludeFiles": "",
442 "ExcludeMessages": pycodestyle.DEFAULT_IGNORE,
443 "IncludeMessages": "",
444 "RepeatMessages": False,
445 "FixCodes": "",
446 "FixIssues": False,
447 }
448 if "EnabledCheckerCategories" not in self.__data:
449 self.__data["EnabledCheckerCategories"] = ",".join(
450 CodeStyleCheckerDialog.checkCategories.keys() 440 CodeStyleCheckerDialog.checkCategories.keys()
451 ) 441 ),
452 if "MaxLineLength" not in self.__data: 442 "MaxLineLength": 88,
453 self.__data["MaxLineLength"] = 88
454 # better code formatting than pycodestyle.MAX_LINE_LENGTH 443 # better code formatting than pycodestyle.MAX_LINE_LENGTH
455 # see the Black tool 444 # see the Black tool
456 if "MaxDocLineLength" not in self.__data: 445 "MaxDocLineLength": 88,
457 self.__data["MaxDocLineLength"] = 88 446 "BlankLines": (2, 1), # top level, method
458 if "BlankLines" not in self.__data: 447 "HangClosing": False,
459 self.__data["BlankLines"] = (2, 1) 448 "NoFixCodes": "E501",
460 # top level, method 449 "DocstringType": "pep257",
461 if "HangClosing" not in self.__data: 450 "ShowIgnored": False,
462 self.__data["HangClosing"] = False 451 # Complexity
463 if "NoFixCodes" not in self.__data: 452 "MaxCodeComplexity": 10,
464 self.__data["NoFixCodes"] = "E501" 453 "LineComplexity": 15,
465 if "DocstringType" not in self.__data: 454 "LineComplexityScore": 10,
466 self.__data["DocstringType"] = "pep257" 455 # Miscellaneous
467 if "ShowIgnored" not in self.__data: 456 "ValidEncodings": MiscellaneousCheckerDefaultArgs["CodingChecker"],
468 self.__data["ShowIgnored"] = False 457 "CopyrightMinFileSize": MiscellaneousCheckerDefaultArgs["CopyrightChecker"][
469 if "MaxCodeComplexity" not in self.__data: 458 "MinFilesize"
470 self.__data["MaxCodeComplexity"] = 10 459 ],
471 if "LineComplexity" not in self.__data: 460 "CopyrightAuthor": MiscellaneousCheckerDefaultArgs["CopyrightChecker"][
472 self.__data["LineComplexity"] = 15 461 "Author"
473 if "LineComplexityScore" not in self.__data: 462 ],
474 self.__data["LineComplexityScore"] = 10 463 "FutureChecker": "",
475 if "ValidEncodings" not in self.__data: 464 "BuiltinsChecker": copy.deepcopy(
476 self.__data["ValidEncodings"] = MiscellaneousCheckerDefaultArgs[
477 "CodingChecker"
478 ]
479 if (
480 "CopyrightMinFileSize" not in self.__data
481 or "CopyrightAuthor" not in self.__data
482 ):
483 self.__data["CopyrightMinFileSize"] = MiscellaneousCheckerDefaultArgs[
484 "CopyrightChecker"
485 ]["MinFilesize"]
486 self.__data["CopyrightAuthor"] = MiscellaneousCheckerDefaultArgs[
487 "CopyrightChecker"
488 ]["Author"]
489 if "FutureChecker" not in self.__data:
490 self.__data["FutureChecker"] = ""
491 if "BuiltinsChecker" not in self.__data:
492 self.__data["BuiltinsChecker"] = copy.deepcopy(
493 MiscellaneousCheckerDefaultArgs["BuiltinsChecker"] 465 MiscellaneousCheckerDefaultArgs["BuiltinsChecker"]
494 ) 466 ),
495 467 "CommentedCodeChecker": copy.deepcopy(
496 if "CommentedCodeChecker" not in self.__data:
497 self.__data["CommentedCodeChecker"] = copy.deepcopy(
498 MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"] 468 MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"]
499 ) 469 ),
500 if "WhiteList" not in self.__data["CommentedCodeChecker"]: 470 # Annotations
501 self.__data["CommentedCodeChecker"][ 471 "AnnotationsChecker": copy.deepcopy(AnnotationsCheckerDefaultArgs),
502 "WhiteList" 472 # Security
503 ] = MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"]["WhiteList"][:] 473 "SecurityChecker": {
504
505 if "AnnotationsChecker" not in self.__data:
506 self.__data["AnnotationsChecker"] = copy.deepcopy(
507 AnnotationsCheckerDefaultArgs
508 )
509 else:
510 # We are upgrading from an older data structure
511 if "MaximumLength" not in self.__data["AnnotationsChecker"]:
512 # MaximumLength is the sentinel for the first extension
513 self.__data["AnnotationsChecker"].update(
514 {
515 "MaximumLength": AnnotationsCheckerDefaultArgs["MaximumLength"],
516 "SuppressNoneReturning": AnnotationsCheckerDefaultArgs[
517 "SuppressNoneReturning"
518 ],
519 "SuppressDummyArgs": AnnotationsCheckerDefaultArgs[
520 "SuppressDummyArgs"
521 ],
522 "AllowUntypedDefs": AnnotationsCheckerDefaultArgs[
523 "AllowUntypedDefs"
524 ],
525 "AllowUntypedNested": AnnotationsCheckerDefaultArgs[
526 "AllowUntypedNested"
527 ],
528 "MypyInitReturn": AnnotationsCheckerDefaultArgs[
529 "MypyInitReturn"
530 ],
531 "DispatchDecorators": AnnotationsCheckerDefaultArgs[
532 "DispatchDecorators"
533 ],
534 "OverloadDecorators": AnnotationsCheckerDefaultArgs[
535 "OverloadDecorators"
536 ],
537 }
538 )
539 if "AllowStarArgAny" not in self.__data["AnnotationsChecker"]:
540 # AllowStarArgAny is the sentinel for the second extension
541 self.__data["AnnotationsChecker"].update(
542 {
543 "AllowStarArgAny": AnnotationsCheckerDefaultArgs[
544 "AllowStarArgAny"
545 ],
546 "ForceFutureAnnotations": AnnotationsCheckerDefaultArgs[
547 "ForceFutureAnnotations"
548 ],
549 }
550 )
551
552 if "SecurityChecker" not in self.__data:
553 from .Security.SecurityDefaults import SecurityDefaults
554
555 self.__data["SecurityChecker"] = {
556 "HardcodedTmpDirectories": SecurityDefaults[ 474 "HardcodedTmpDirectories": SecurityDefaults[
557 "hardcoded_tmp_directories" 475 "hardcoded_tmp_directories"
558 ], 476 ],
559 "InsecureHashes": SecurityDefaults["insecure_hashes"], 477 "InsecureHashes": SecurityDefaults["insecure_hashes"],
560 "InsecureSslProtocolVersions": SecurityDefaults[ 478 "InsecureSslProtocolVersions": SecurityDefaults[
569 SecurityDefaults["weak_key_size_rsa_medium"] 487 SecurityDefaults["weak_key_size_rsa_medium"]
570 ), 488 ),
571 "WeakKeySizeEcHigh": str(SecurityDefaults["weak_key_size_ec_high"]), 489 "WeakKeySizeEcHigh": str(SecurityDefaults["weak_key_size_ec_high"]),
572 "WeakKeySizeEcMedium": str(SecurityDefaults["weak_key_size_ec_medium"]), 490 "WeakKeySizeEcMedium": str(SecurityDefaults["weak_key_size_ec_medium"]),
573 "CheckTypedException": SecurityDefaults["check_typed_exception"], 491 "CheckTypedException": SecurityDefaults["check_typed_exception"],
574 } 492 },
575 493 # Imports
576 if "ImportsChecker" not in self.__data: 494 "ImportsChecker": {
577 self.__data["ImportsChecker"] = {
578 "ApplicationPackageNames": [], 495 "ApplicationPackageNames": [],
579 "BannedModules": [], 496 "BannedModules": [],
580 "BanRelativeImports": "", 497 "BanRelativeImports": "",
581 } 498 "SortOrder": "natural",
499 "SortCaseSensitive": False,
500 },
501 }
502
503 return defaults
504
505 def prepare(self, fileList, project):
506 """
507 Public method to prepare the dialog with a list of filenames.
508
509 @param fileList list of filenames
510 @type list of str
511 @param project reference to the project object
512 @type Project
513 """
514 self.__fileOrFileList = fileList[:]
515 self.__project = project
516 self.__forProject = True
517
518 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(True)
519 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True)
520 self.cancelButton.setEnabled(False)
521
522 defaultParameters = self.getDefaults()
523 self.__data = self.__project.getData("CHECKERSPARMS", "Pep8Checker")
524 if self.__data is None or len(self.__data) < 6:
525 # initialize the data structure
526 self.__data = defaultParameters
527 else:
528 for key in defaultParameters:
529 if key not in self.__data:
530 self.__data[key] = defaultParameters[key]
531
532 if "WhiteList" not in self.__data["CommentedCodeChecker"]:
533 self.__data["CommentedCodeChecker"]["WhiteList"] = defaultParameters[
534 "CommentedCodeChecker"
535 ]["WhiteList"][:]
536
537 # Upgrading AnnotationsChecker from older data structures
538 if "MaximumLength" not in self.__data["AnnotationsChecker"]:
539 # MaximumLength is the sentinel for the first extension
540 self.__data["AnnotationsChecker"].update(
541 {
542 "MaximumLength": defaultParameters["AnnotationsChecker"][
543 "MaximumLength"
544 ],
545 "SuppressNoneReturning": defaultParameters[
546 "AnnotationsChecker"
547 ]["SuppressNoneReturning"],
548 "SuppressDummyArgs": defaultParameters["AnnotationsChecker"][
549 "SuppressDummyArgs"
550 ],
551 "AllowUntypedDefs": defaultParameters["AnnotationsChecker"][
552 "AllowUntypedDefs"
553 ],
554 "AllowUntypedNested": defaultParameters["AnnotationsChecker"][
555 "AllowUntypedNested"
556 ],
557 "MypyInitReturn": defaultParameters["AnnotationsChecker"][
558 "MypyInitReturn"
559 ],
560 "DispatchDecorators": defaultParameters["AnnotationsChecker"][
561 "DispatchDecorators"
562 ],
563 "OverloadDecorators": defaultParameters["AnnotationsChecker"][
564 "OverloadDecorators"
565 ],
566 }
567 )
568 if "AllowStarArgAny" not in self.__data["AnnotationsChecker"]:
569 # AllowStarArgAny is the sentinel for the second extension
570 self.__data["AnnotationsChecker"].update(
571 {
572 "AllowStarArgAny": defaultParameters["AnnotationsChecker"][
573 "AllowStarArgAny"
574 ],
575 "ForceFutureAnnotations": defaultParameters[
576 "AnnotationsChecker"
577 ]["ForceFutureAnnotations"],
578 }
579 )
580
581 # Upgrading ImportsChecker from older data structures
582 if "SortOrder" not in self.__data["ImportsChecker"]:
583 self.__data["ImportsChecker"].update(
584 {
585 "SortOrder": defaultParameters["ImportsChecker"]["SortOrder"],
586 "SortCaseSensitive": defaultParameters["ImportsChecker"][
587 "SortCaseSensitive"
588 ],
589 }
590 )
582 591
583 self.__initCategoriesList(self.__data["EnabledCheckerCategories"]) 592 self.__initCategoriesList(self.__data["EnabledCheckerCategories"])
584 self.excludeFilesEdit.setText(self.__data["ExcludeFiles"]) 593 self.excludeFilesEdit.setText(self.__data["ExcludeFiles"])
585 self.excludeMessagesEdit.setText(self.__data["ExcludeMessages"]) 594 self.excludeMessagesEdit.setText(self.__data["ExcludeMessages"])
586 self.includeMessagesEdit.setText(self.__data["IncludeMessages"]) 595 self.includeMessagesEdit.setText(self.__data["IncludeMessages"])
678 self.ecMediumRiskCombo.setCurrentText( 687 self.ecMediumRiskCombo.setCurrentText(
679 self.__data["SecurityChecker"]["WeakKeySizeEcMedium"] 688 self.__data["SecurityChecker"]["WeakKeySizeEcMedium"]
680 ) 689 )
681 self.typedExceptionsCheckBox.setChecked( 690 self.typedExceptionsCheckBox.setChecked(
682 self.__data["SecurityChecker"]["CheckTypedException"] 691 self.__data["SecurityChecker"]["CheckTypedException"]
692 )
693
694 # ImportsChecker
695 self.appPackagesEdit.setPlainText(
696 " ".join(sorted(self.__data["ImportsChecker"]["ApplicationPackageNames"]))
697 )
698 self.bannedModulesEdit.setPlainText(
699 " ".join(sorted(self.__data["ImportsChecker"]["BannedModules"]))
700 )
701 self.__setBanRelativeImports(
702 self.__data["ImportsChecker"]["BanRelativeImports"]
703 )
704 self.sortOrderComboBox.setCurrentIndex(
705 self.sortOrderComboBox.findData(self.__data["ImportsChecker"]["SortOrder"])
706 )
707 self.sortCaseSensitiveCheckBox.setChecked(
708 self.__data["ImportsChecker"]["SortCaseSensitive"]
683 ) 709 )
684 710
685 self.__cleanupData() 711 self.__cleanupData()
686 712
687 def __prepareProgress(self): 713 def __prepareProgress(self):
856 "ApplicationPackageNames": sorted( 882 "ApplicationPackageNames": sorted(
857 self.appPackagesEdit.toPlainText().split() 883 self.appPackagesEdit.toPlainText().split()
858 ), 884 ),
859 "BannedModules": sorted(self.bannedModulesEdit.toPlainText().split()), 885 "BannedModules": sorted(self.bannedModulesEdit.toPlainText().split()),
860 "BanRelativeImports": self.__getBanRelativeImportsValue(), 886 "BanRelativeImports": self.__getBanRelativeImportsValue(),
887 "SortOrder": self.sortOrderComboBox.currentData(),
888 "SortCaseSensitive": self.sortCaseSensitiveCheckBox.isChecked(),
861 } 889 }
862 890
863 self.__options = [ 891 self.__options = [
864 excludeMessages, 892 excludeMessages,
865 includeMessages, 893 includeMessages,
1295 ), 1323 ),
1296 "BannedModules": sorted( 1324 "BannedModules": sorted(
1297 self.bannedModulesEdit.toPlainText().split() 1325 self.bannedModulesEdit.toPlainText().split()
1298 ), 1326 ),
1299 "BanRelativeImports": self.__getBanRelativeImportsValue(), 1327 "BanRelativeImports": self.__getBanRelativeImportsValue(),
1328 "SortOrder": self.sortOrderComboBox.currentData(),
1329 "SortCaseSensitive": self.sortCaseSensitiveCheckBox.isChecked(),
1300 }, 1330 },
1301 } 1331 }
1302 if json.dumps(data, sort_keys=True) != json.dumps( 1332 if json.dumps(data, sort_keys=True) != json.dumps(
1303 self.__data, sort_keys=True 1333 self.__data, sort_keys=True
1304 ): 1334 ):
1471 @pyqtSlot() 1501 @pyqtSlot()
1472 def on_loadDefaultButton_clicked(self): 1502 def on_loadDefaultButton_clicked(self):
1473 """ 1503 """
1474 Private slot to load the default configuration values. 1504 Private slot to load the default configuration values.
1475 """ 1505 """
1506 defaultParameters = self.getDefaults()
1507 settings = Preferences.getSettings()
1508
1476 self.__initCategoriesList( 1509 self.__initCategoriesList(
1477 Preferences.getSettings().value( 1510 settings.value(
1478 "PEP8/EnabledCheckerCategories", 1511 "PEP8/EnabledCheckerCategories",
1479 ",".join(CodeStyleCheckerDialog.checkCategories.keys()), 1512 defaultParameters["EnabledCheckerCategories"],
1480 ) 1513 )
1481 ) 1514 )
1482 self.excludeFilesEdit.setText( 1515 self.excludeFilesEdit.setText(
1483 Preferences.getSettings().value("PEP8/ExcludeFilePatterns", "") 1516 settings.value(
1517 "PEP8/ExcludeFilePatterns", defaultParameters["ExcludeFiles"]
1518 )
1484 ) 1519 )
1485 self.excludeMessagesEdit.setText( 1520 self.excludeMessagesEdit.setText(
1486 Preferences.getSettings().value( 1521 settings.value("PEP8/ExcludeMessages", defaultParameters["ExcludeMessages"])
1487 "PEP8/ExcludeMessages", pycodestyle.DEFAULT_IGNORE
1488 )
1489 ) 1522 )
1490 self.includeMessagesEdit.setText( 1523 self.includeMessagesEdit.setText(
1491 Preferences.getSettings().value("PEP8/IncludeMessages", "") 1524 settings.value("PEP8/IncludeMessages", defaultParameters["IncludeMessages"])
1492 ) 1525 )
1493 self.repeatCheckBox.setChecked( 1526 self.repeatCheckBox.setChecked(
1494 Preferences.toBool( 1527 Preferences.toBool(
1495 Preferences.getSettings().value("PEP8/RepeatMessages", False) 1528 settings.value(
1496 ) 1529 "PEP8/RepeatMessages", defaultParameters["RepeatMessages"]
1497 ) 1530 )
1498 self.fixIssuesEdit.setText(Preferences.getSettings().value("PEP8/FixCodes", "")) 1531 )
1532 )
1533 self.fixIssuesEdit.setText(
1534 settings.value("PEP8/FixCodes", defaultParameters["FixCodes"])
1535 )
1499 self.noFixIssuesEdit.setText( 1536 self.noFixIssuesEdit.setText(
1500 Preferences.getSettings().value("PEP8/NoFixCodes", "E501") 1537 settings.value("PEP8/NoFixCodes", defaultParameters["NoFixCodes"])
1501 ) 1538 )
1502 self.fixIssuesCheckBox.setChecked( 1539 self.fixIssuesCheckBox.setChecked(
1503 Preferences.toBool(Preferences.getSettings().value("PEP8/FixIssues", False)) 1540 Preferences.toBool(
1541 settings.value("PEP8/FixIssues", defaultParameters["FixIssues"])
1542 )
1504 ) 1543 )
1505 self.ignoredCheckBox.setChecked( 1544 self.ignoredCheckBox.setChecked(
1506 Preferences.toBool( 1545 Preferences.toBool(
1507 Preferences.getSettings().value("PEP8/ShowIgnored", False) 1546 settings.value("PEP8/ShowIgnored", defaultParameters["ShowIgnored"])
1508 ) 1547 )
1509 ) 1548 )
1510 self.lineLengthSpinBox.setValue( 1549 self.lineLengthSpinBox.setValue(
1511 int(Preferences.getSettings().value("PEP8/MaxLineLength", 88)) 1550 int(
1551 settings.value("PEP8/MaxLineLength", defaultParameters["MaxLineLength"])
1552 )
1512 ) 1553 )
1513 self.docLineLengthSpinBox.setValue( 1554 self.docLineLengthSpinBox.setValue(
1514 int(Preferences.getSettings().value("PEP8/MaxDocLineLength", 88)) 1555 int(
1556 settings.value(
1557 "PEP8/MaxDocLineLength", defaultParameters["MaxDocLineLength"]
1558 )
1559 )
1515 ) 1560 )
1516 self.blankBeforeTopLevelSpinBox.setValue( 1561 self.blankBeforeTopLevelSpinBox.setValue(
1517 int(Preferences.getSettings().value("PEP8/BlankLinesBeforeTopLevel", 2)) 1562 int(
1563 settings.value(
1564 "PEP8/BlankLinesBeforeTopLevel", defaultParameters["BlankLines"][0]
1565 )
1566 )
1518 ) 1567 )
1519 self.blankBeforeMethodSpinBox.setValue( 1568 self.blankBeforeMethodSpinBox.setValue(
1520 int(Preferences.getSettings().value("PEP8/BlankLinesBeforeMethod", 1)) 1569 int(
1570 settings.value(
1571 "PEP8/BlankLinesBeforeMethod", defaultParameters["BlankLines"][1]
1572 )
1573 )
1521 ) 1574 )
1522 self.hangClosingCheckBox.setChecked( 1575 self.hangClosingCheckBox.setChecked(
1523 Preferences.toBool( 1576 Preferences.toBool(
1524 Preferences.getSettings().value("PEP8/HangClosing", False) 1577 settings.value("PEP8/HangClosing", defaultParameters["HangClosing"])
1525 ) 1578 )
1526 ) 1579 )
1527 self.docTypeComboBox.setCurrentIndex( 1580 self.docTypeComboBox.setCurrentIndex(
1528 self.docTypeComboBox.findData( 1581 self.docTypeComboBox.findData(
1529 Preferences.getSettings().value("PEP8/DocstringType", "pep257") 1582 settings.value("PEP8/DocstringType", defaultParameters["DocstringType"])
1530 ) 1583 )
1531 ) 1584 )
1532 self.complexitySpinBox.setValue( 1585 self.complexitySpinBox.setValue(
1533 int(Preferences.getSettings().value("PEP8/MaxCodeComplexity", 10)) 1586 int(
1587 settings.value(
1588 "PEP8/MaxCodeComplexity", defaultParameters["MaxCodeComplexity"]
1589 )
1590 )
1534 ) 1591 )
1535 self.lineComplexitySpinBox.setValue( 1592 self.lineComplexitySpinBox.setValue(
1536 int(Preferences.getSettings().value("PEP8/LineComplexity", 15)) 1593 int(
1594 settings.value(
1595 "PEP8/LineComplexity", defaultParameters["LineComplexity"]
1596 )
1597 )
1537 ) 1598 )
1538 self.lineComplexityScoreSpinBox.setValue( 1599 self.lineComplexityScoreSpinBox.setValue(
1539 int(Preferences.getSettings().value("PEP8/LineComplexityScore", 10)) 1600 int(
1601 settings.value(
1602 "PEP8/LineComplexityScore", defaultParameters["LineComplexityScore"]
1603 )
1604 )
1540 ) 1605 )
1541 self.encodingsEdit.setText( 1606 self.encodingsEdit.setText(
1542 Preferences.getSettings().value( 1607 settings.value("PEP8/ValidEncodings", defaultParameters["ValidEncodings"])
1543 "PEP8/ValidEncodings", MiscellaneousCheckerDefaultArgs["CodingChecker"]
1544 )
1545 ) 1608 )
1546 self.copyrightFileSizeSpinBox.setValue( 1609 self.copyrightFileSizeSpinBox.setValue(
1547 int( 1610 int(
1548 Preferences.getSettings().value( 1611 settings.value(
1549 "PEP8/CopyrightMinFileSize", 1612 "PEP8/CopyrightMinFileSize",
1550 MiscellaneousCheckerDefaultArgs["CopyrightChecker"]["MinFilesize"], 1613 defaultParameters["CopyrightMinFileSize"],
1551 ) 1614 )
1552 ) 1615 )
1553 ) 1616 )
1554 self.copyrightAuthorEdit.setText( 1617 self.copyrightAuthorEdit.setText(
1555 Preferences.getSettings().value( 1618 settings.value("PEP8/CopyrightAuthor", defaultParameters["CopyrightAuthor"])
1556 "PEP8/CopyrightAuthor",
1557 MiscellaneousCheckerDefaultArgs["CopyrightChecker"]["Author"],
1558 )
1559 ) 1619 )
1560 self.__initFuturesList( 1620 self.__initFuturesList(
1561 Preferences.getSettings().value("PEP8/FutureChecker", "") 1621 settings.value("PEP8/FutureChecker", defaultParameters["FutureChecker"])
1562 ) 1622 )
1563 self.__initBuiltinsIgnoreList( 1623 self.__initBuiltinsIgnoreList(
1564 Preferences.toDict( 1624 Preferences.toDict(
1565 Preferences.getSettings().value( 1625 settings.value(
1566 "PEP8/BuiltinsChecker", 1626 "PEP8/BuiltinsChecker", defaultParameters["BuiltinsChecker"]
1567 MiscellaneousCheckerDefaultArgs["BuiltinsChecker"],
1568 ) 1627 )
1569 ) 1628 )
1570 ) 1629 )
1571 self.aggressiveCheckBox.setChecked( 1630 self.aggressiveCheckBox.setChecked(
1572 Preferences.toBool( 1631 Preferences.toBool(
1573 Preferences.getSettings().value( 1632 settings.value(
1574 "PEP8/AggressiveSearch", 1633 "PEP8/AggressiveSearch",
1575 MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"][ 1634 defaultParameters["CommentedCodeChecker"]["Aggressive"],
1576 "Aggressive"
1577 ],
1578 ) 1635 )
1579 ) 1636 )
1580 ) 1637 )
1581 self.__initCommentedCodeCheckerWhiteList( 1638 self.__initCommentedCodeCheckerWhiteList(
1582 Preferences.toList( 1639 Preferences.toList(
1583 Preferences.getSettings().value( 1640 settings.value(
1584 "PEP8/CommentedCodeWhitelist", 1641 "PEP8/CommentedCodeWhitelist",
1585 MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"][ 1642 defaultParameters["CommentedCodeChecker"]["WhiteList"],
1586 "WhiteList"
1587 ],
1588 ) 1643 )
1589 ) 1644 )
1590 ) 1645 )
1591 1646
1592 # Type Annotations Checker 1647 # Type Annotations Checker
1593 self.minAnnotationsCoverageSpinBox.setValue( 1648 self.minAnnotationsCoverageSpinBox.setValue(
1594 int( 1649 int(
1595 Preferences.getSettings().value( 1650 settings.value(
1596 "PEP8/MinimumAnnotationsCoverage", 1651 "PEP8/MinimumAnnotationsCoverage",
1597 AnnotationsCheckerDefaultArgs["MinimumCoverage"], 1652 defaultParameters["AnnotationsChecker"]["MinimumCoverage"],
1598 ) 1653 )
1599 ) 1654 )
1600 ) 1655 )
1601 self.maxAnnotationsComplexitySpinBox.setValue( 1656 self.maxAnnotationsComplexitySpinBox.setValue(
1602 int( 1657 int(
1603 Preferences.getSettings().value( 1658 settings.value(
1604 "PEP8/MaximumAnnotationComplexity", 1659 "PEP8/MaximumAnnotationComplexity",
1605 AnnotationsCheckerDefaultArgs["MaximumComplexity"], 1660 defaultParameters["AnnotationsChecker"]["MaximumComplexity"],
1606 ) 1661 )
1607 ) 1662 )
1608 ) 1663 )
1609 self.maxAnnotationsLengthSpinBox.setValue( 1664 self.maxAnnotationsLengthSpinBox.setValue(
1610 int( 1665 int(
1611 Preferences.getSettings().value( 1666 settings.value(
1612 "PEP8/MaximumAnnotationLength", 1667 "PEP8/MaximumAnnotationLength",
1613 AnnotationsCheckerDefaultArgs["MaximumLength"], 1668 defaultParameters["AnnotationsChecker"]["MaximumLength"],
1614 ) 1669 )
1615 ) 1670 )
1616 ) 1671 )
1617 self.suppressNoneReturningCheckBox.setChecked( 1672 self.suppressNoneReturningCheckBox.setChecked(
1618 Preferences.toBool( 1673 Preferences.toBool(
1619 Preferences.getSettings().value( 1674 settings.value(
1620 "PEP8/SuppressNoneReturning", 1675 "PEP8/SuppressNoneReturning",
1621 AnnotationsCheckerDefaultArgs["SuppressNoneReturning"], 1676 defaultParameters["AnnotationsChecker"]["SuppressNoneReturning"],
1622 ) 1677 )
1623 ) 1678 )
1624 ) 1679 )
1625 self.suppressDummyArgsCheckBox.setChecked( 1680 self.suppressDummyArgsCheckBox.setChecked(
1626 Preferences.toBool( 1681 Preferences.toBool(
1627 Preferences.getSettings().value( 1682 settings.value(
1628 "PEP8/SuppressDummyArgs", 1683 "PEP8/SuppressDummyArgs",
1629 AnnotationsCheckerDefaultArgs["SuppressDummyArgs"], 1684 defaultParameters["AnnotationsChecker"]["SuppressDummyArgs"],
1630 ) 1685 )
1631 ) 1686 )
1632 ) 1687 )
1633 self.allowUntypedDefsCheckBox.setChecked( 1688 self.allowUntypedDefsCheckBox.setChecked(
1634 Preferences.toBool( 1689 Preferences.toBool(
1635 Preferences.getSettings().value( 1690 settings.value(
1636 "PEP8/AllowUntypedDefs", 1691 "PEP8/AllowUntypedDefs",
1637 AnnotationsCheckerDefaultArgs["AllowUntypedDefs"], 1692 defaultParameters["AnnotationsChecker"]["AllowUntypedDefs"],
1638 ) 1693 )
1639 ) 1694 )
1640 ) 1695 )
1641 self.allowUntypedNestedCheckBox.setChecked( 1696 self.allowUntypedNestedCheckBox.setChecked(
1642 Preferences.toBool( 1697 Preferences.toBool(
1643 Preferences.getSettings().value( 1698 settings.value(
1644 "PEP8/AllowUntypedNested", 1699 "PEP8/AllowUntypedNested",
1645 AnnotationsCheckerDefaultArgs["AllowUntypedNested"], 1700 defaultParameters["AnnotationsChecker"]["AllowUntypedNested"],
1646 ) 1701 )
1647 ) 1702 )
1648 ) 1703 )
1649 self.mypyInitReturnCheckBox.setChecked( 1704 self.mypyInitReturnCheckBox.setChecked(
1650 Preferences.toBool( 1705 Preferences.toBool(
1651 Preferences.getSettings().value( 1706 settings.value(
1652 "PEP8/MypyInitReturn", 1707 "PEP8/MypyInitReturn",
1653 AnnotationsCheckerDefaultArgs["MypyInitReturn"], 1708 defaultParameters["AnnotationsChecker"]["MypyInitReturn"],
1654 ) 1709 )
1655 ) 1710 )
1656 ) 1711 )
1657 self.allowStarArgAnyCheckBox.setChecked( 1712 self.allowStarArgAnyCheckBox.setChecked(
1658 Preferences.toBool( 1713 Preferences.toBool(
1659 Preferences.getSettings().value( 1714 settings.value(
1660 "PEP8/AllowStarArgAny", 1715 "PEP8/AllowStarArgAny",
1661 AnnotationsCheckerDefaultArgs["AllowStarArgAny"], 1716 defaultParameters["AnnotationsChecker"]["AllowStarArgAny"],
1662 ) 1717 )
1663 ) 1718 )
1664 ) 1719 )
1665 self.forceFutureAnnotationsCheckBox.setChecked( 1720 self.forceFutureAnnotationsCheckBox.setChecked(
1666 Preferences.toBool( 1721 Preferences.toBool(
1667 Preferences.getSettings().value( 1722 settings.value(
1668 "PEP8/ForceFutureAnnotations", 1723 "PEP8/ForceFutureAnnotations",
1669 AnnotationsCheckerDefaultArgs["ForceFutureAnnotations"], 1724 defaultParameters["AnnotationsChecker"]["ForceFutureAnnotations"],
1670 ) 1725 )
1671 ) 1726 )
1672 ) 1727 )
1673 self.dispatchDecoratorEdit.setText( 1728 self.dispatchDecoratorEdit.setText(
1674 ", ".join( 1729 ", ".join(
1675 Preferences.toList( 1730 Preferences.toList(
1676 Preferences.getSettings().value( 1731 settings.value(
1677 "PEP8/DispatchDecorators", 1732 "PEP8/DispatchDecorators",
1678 AnnotationsCheckerDefaultArgs["DispatchDecorators"], 1733 defaultParameters["AnnotationsChecker"]["DispatchDecorators"],
1679 ) 1734 )
1680 ) 1735 )
1681 ) 1736 )
1682 ) 1737 )
1683 self.overloadDecoratorEdit.setText( 1738 self.overloadDecoratorEdit.setText(
1684 ", ".join( 1739 ", ".join(
1685 Preferences.toList( 1740 Preferences.toList(
1686 Preferences.getSettings().value( 1741 settings.value(
1687 "PEP8/OverloadDecorators", 1742 "PEP8/OverloadDecorators",
1688 AnnotationsCheckerDefaultArgs["OverloadDecorators"], 1743 defaultParameters["AnnotationsChecker"]["OverloadDecorators"],
1689 ) 1744 )
1690 ) 1745 )
1691 ) 1746 )
1692 ) 1747 )
1693 1748
1694 # Security Checker 1749 # Security Checker
1695 from .Security.SecurityDefaults import SecurityDefaults
1696
1697 self.tmpDirectoriesEdit.setPlainText( 1750 self.tmpDirectoriesEdit.setPlainText(
1698 "\n".join( 1751 "\n".join(
1699 Preferences.toList( 1752 Preferences.toList(
1700 Preferences.getSettings().value( 1753 settings.value(
1701 "PEP8/HardcodedTmpDirectories", 1754 "PEP8/HardcodedTmpDirectories",
1702 SecurityDefaults["hardcoded_tmp_directories"], 1755 defaultParameters["SecurityChecker"]["HardcodedTmpDirectories"],
1703 ) 1756 )
1704 ) 1757 )
1705 ) 1758 )
1706 ) 1759 )
1707 self.hashesEdit.setText( 1760 self.hashesEdit.setText(
1708 ", ".join( 1761 ", ".join(
1709 Preferences.toList( 1762 Preferences.toList(
1710 Preferences.getSettings().value( 1763 settings.value(
1711 "PEP8/InsecureHashes", SecurityDefaults["insecure_hashes"] 1764 "PEP8/InsecureHashes",
1765 defaultParameters["SecurityChecker"]["InsecureHashes"],
1712 ) 1766 )
1713 ) 1767 )
1714 ) 1768 )
1715 ), 1769 ),
1716 self.insecureSslProtocolsEdit.setPlainText( 1770 self.insecureSslProtocolsEdit.setPlainText(
1717 "\n".join( 1771 "\n".join(
1718 Preferences.toList( 1772 Preferences.toList(
1719 Preferences.getSettings().value( 1773 settings.value(
1720 "PEP8/InsecureSslProtocolVersions", 1774 "PEP8/InsecureSslProtocolVersions",
1721 SecurityDefaults["insecure_ssl_protocol_versions"], 1775 defaultParameters["SecurityChecker"][
1776 "InsecureSslProtocolVersions"
1777 ],
1722 ) 1778 )
1723 ) 1779 )
1724 ) 1780 )
1725 ), 1781 ),
1726 self.dsaHighRiskCombo.setCurrentText( 1782 self.dsaHighRiskCombo.setCurrentText(
1727 Preferences.getSettings().value( 1783 settings.value(
1728 "PEP8/WeakKeySizeDsaHigh", 1784 "PEP8/WeakKeySizeDsaHigh",
1729 str(SecurityDefaults["weak_key_size_dsa_high"]), 1785 defaultParameters["SecurityChecker"]["WeakKeySizeDsaHigh"],
1730 ) 1786 )
1731 ) 1787 )
1732 self.dsaMediumRiskCombo.setCurrentText( 1788 self.dsaMediumRiskCombo.setCurrentText(
1733 Preferences.getSettings().value( 1789 settings.value(
1734 "PEP8/WeakKeySizeDsaMedium", 1790 "PEP8/WeakKeySizeDsaMedium",
1735 str(SecurityDefaults["weak_key_size_dsa_medium"]), 1791 defaultParameters["SecurityChecker"]["WeakKeySizeDsaMedium"],
1736 ) 1792 )
1737 ), 1793 ),
1738 self.rsaHighRiskCombo.setCurrentText( 1794 self.rsaHighRiskCombo.setCurrentText(
1739 Preferences.getSettings().value( 1795 settings.value(
1740 "PEP8/WeakKeySizeRsaHigh", 1796 "PEP8/WeakKeySizeRsaHigh",
1741 str(SecurityDefaults["weak_key_size_rsa_high"]), 1797 defaultParameters["SecurityChecker"]["WeakKeySizeRsaHigh"],
1742 ) 1798 )
1743 ), 1799 ),
1744 self.rsaMediumRiskCombo.setCurrentText( 1800 self.rsaMediumRiskCombo.setCurrentText(
1745 Preferences.getSettings().value( 1801 settings.value(
1746 "PEP8/WeakKeySizeRsaMedium", 1802 "PEP8/WeakKeySizeRsaMedium",
1747 str(SecurityDefaults["weak_key_size_rsa_medium"]), 1803 defaultParameters["SecurityChecker"]["WeakKeySizeRsaMedium"],
1748 ) 1804 )
1749 ), 1805 ),
1750 self.ecHighRiskCombo.setCurrentText( 1806 self.ecHighRiskCombo.setCurrentText(
1751 Preferences.getSettings().value( 1807 settings.value(
1752 "PEP8/WeakKeySizeEcHigh", str(SecurityDefaults["weak_key_size_ec_high"]) 1808 "PEP8/WeakKeySizeEcHigh",
1809 defaultParameters["SecurityChecker"]["WeakKeySizeEcHigh"],
1753 ) 1810 )
1754 ), 1811 ),
1755 self.ecMediumRiskCombo.setCurrentText( 1812 self.ecMediumRiskCombo.setCurrentText(
1756 Preferences.getSettings().value( 1813 settings.value(
1757 "PEP8/WeakKeySizeEcMedium", 1814 "PEP8/WeakKeySizeEcMedium",
1758 str(SecurityDefaults["weak_key_size_ec_medium"]), 1815 defaultParameters["SecurityChecker"]["WeakKeySizeEcMedium"],
1759 ) 1816 )
1760 ), 1817 ),
1761 self.typedExceptionsCheckBox.setChecked( 1818 self.typedExceptionsCheckBox.setChecked(
1762 Preferences.toBool( 1819 Preferences.toBool(
1763 Preferences.getSettings().value( 1820 settings.value(
1764 "PEP8/CheckTypedException", 1821 "PEP8/CheckTypedException",
1765 SecurityDefaults["check_typed_exception"], 1822 defaultParameters["SecurityChecker"]["CheckTypedException"],
1766 ) 1823 )
1767 ) 1824 )
1768 ), 1825 ),
1769 1826
1770 # Imports Checker 1827 # Imports Checker
1771 self.appPackagesEdit.setPlainText( 1828 self.appPackagesEdit.setPlainText(
1772 " ".join( 1829 " ".join(
1773 sorted( 1830 sorted(
1774 Preferences.toList( 1831 Preferences.toList(
1775 Preferences.getSettings().value( 1832 settings.value(
1776 "PEP8/ApplicationPackageNames", [] 1833 "PEP8/ApplicationPackageNames",
1834 defaultParameters["ImportsChecker"][
1835 "ApplicationPackageNames"
1836 ],
1777 ) 1837 )
1778 ) 1838 )
1779 ) 1839 )
1780 ) 1840 )
1781 ) 1841 )
1782 self.bannedModulesEdit.setPlainText( 1842 self.bannedModulesEdit.setPlainText(
1783 " ".join( 1843 " ".join(
1784 sorted( 1844 sorted(
1785 Preferences.toList( 1845 Preferences.toList(
1786 Preferences.getSettings().value("PEP8/BannedModules", []) 1846 settings.value(
1847 "PEP8/BannedModules",
1848 defaultParameters["ImportsChecker"]["BannedModules"],
1849 )
1787 ) 1850 )
1788 ) 1851 )
1789 ) 1852 )
1790 ) 1853 )
1791 self.__setBanRelativeImports( 1854 self.__setBanRelativeImports(
1792 Preferences.getSettings().value("PEP8/BanRelativeImports", "") 1855 settings.value(
1856 "PEP8/BanRelativeImports",
1857 defaultParameters["ImportsChecker"]["BanRelativeImports"],
1858 )
1859 )
1860 self.sortOrderComboBox.setCurrentIndex(
1861 self.sortOrderComboBox.findData(
1862 settings.value(
1863 "PEP8/SortOrder", defaultParameters["ImportsChecker"]["SortOrder"]
1864 )
1865 )
1866 )
1867 self.sortCaseSensitiveCheckBox.setChecked(
1868 Preferences.toBool(
1869 settings.value(
1870 "PEP8/SortCaseSensitive",
1871 defaultParameters["ImportsChecker"]["SortCaseSensitive"],
1872 )
1873 )
1793 ) 1874 )
1794 1875
1795 self.__cleanupData() 1876 self.__cleanupData()
1796 1877
1797 @pyqtSlot() 1878 @pyqtSlot()
1798 def on_storeDefaultButton_clicked(self): 1879 def on_storeDefaultButton_clicked(self):
1799 """ 1880 """
1800 Private slot to store the current configuration values as 1881 Private slot to store the current configuration values as
1801 default values. 1882 default values.
1802 """ 1883 """
1803 Preferences.getSettings().setValue( 1884 settings = Preferences.getSettings()
1804 "PEP8/EnabledCheckerCategories", self.__getCategories(True) 1885
1805 ) 1886 settings.setValue("PEP8/EnabledCheckerCategories", self.__getCategories(True))
1806 Preferences.getSettings().setValue( 1887 settings.setValue("PEP8/ExcludeFilePatterns", self.excludeFilesEdit.text())
1807 "PEP8/ExcludeFilePatterns", self.excludeFilesEdit.text() 1888 settings.setValue("PEP8/ExcludeMessages", self.excludeMessagesEdit.text())
1808 ) 1889 settings.setValue("PEP8/IncludeMessages", self.includeMessagesEdit.text())
1809 Preferences.getSettings().setValue( 1890 settings.setValue("PEP8/RepeatMessages", self.repeatCheckBox.isChecked())
1810 "PEP8/ExcludeMessages", self.excludeMessagesEdit.text() 1891 settings.setValue("PEP8/FixCodes", self.fixIssuesEdit.text())
1811 ) 1892 settings.setValue("PEP8/NoFixCodes", self.noFixIssuesEdit.text())
1812 Preferences.getSettings().setValue( 1893 settings.setValue("PEP8/FixIssues", self.fixIssuesCheckBox.isChecked())
1813 "PEP8/IncludeMessages", self.includeMessagesEdit.text() 1894 settings.setValue("PEP8/ShowIgnored", self.ignoredCheckBox.isChecked())
1814 ) 1895 settings.setValue("PEP8/MaxLineLength", self.lineLengthSpinBox.value())
1815 Preferences.getSettings().setValue( 1896 settings.setValue("PEP8/MaxDocLineLength", self.docLineLengthSpinBox.value())
1816 "PEP8/RepeatMessages", self.repeatCheckBox.isChecked() 1897 settings.setValue(
1817 )
1818 Preferences.getSettings().setValue("PEP8/FixCodes", self.fixIssuesEdit.text())
1819 Preferences.getSettings().setValue(
1820 "PEP8/NoFixCodes", self.noFixIssuesEdit.text()
1821 )
1822 Preferences.getSettings().setValue(
1823 "PEP8/FixIssues", self.fixIssuesCheckBox.isChecked()
1824 )
1825 Preferences.getSettings().setValue(
1826 "PEP8/ShowIgnored", self.ignoredCheckBox.isChecked()
1827 )
1828 Preferences.getSettings().setValue(
1829 "PEP8/MaxLineLength", self.lineLengthSpinBox.value()
1830 )
1831 Preferences.getSettings().setValue(
1832 "PEP8/MaxDocLineLength", self.docLineLengthSpinBox.value()
1833 )
1834 Preferences.getSettings().setValue(
1835 "PEP8/BlankLinesBeforeTopLevel", self.blankBeforeTopLevelSpinBox.value() 1898 "PEP8/BlankLinesBeforeTopLevel", self.blankBeforeTopLevelSpinBox.value()
1836 ) 1899 )
1837 Preferences.getSettings().setValue( 1900 settings.setValue(
1838 "PEP8/BlankLinesBeforeMethod", self.blankBeforeMethodSpinBox.value() 1901 "PEP8/BlankLinesBeforeMethod", self.blankBeforeMethodSpinBox.value()
1839 ) 1902 )
1840 Preferences.getSettings().setValue( 1903 settings.setValue("PEP8/HangClosing", self.hangClosingCheckBox.isChecked())
1841 "PEP8/HangClosing", self.hangClosingCheckBox.isChecked() 1904 settings.setValue(
1842 )
1843 Preferences.getSettings().setValue(
1844 "PEP8/DocstringType", 1905 "PEP8/DocstringType",
1845 self.docTypeComboBox.itemData(self.docTypeComboBox.currentIndex()), 1906 self.docTypeComboBox.itemData(self.docTypeComboBox.currentIndex()),
1846 ) 1907 )
1847 Preferences.getSettings().setValue( 1908 settings.setValue("PEP8/MaxCodeComplexity", self.complexitySpinBox.value())
1848 "PEP8/MaxCodeComplexity", self.complexitySpinBox.value() 1909 settings.setValue("PEP8/LineComplexity", self.lineComplexitySpinBox.value())
1849 ) 1910 settings.setValue(
1850 Preferences.getSettings().setValue(
1851 "PEP8/LineComplexity", self.lineComplexitySpinBox.value()
1852 )
1853 Preferences.getSettings().setValue(
1854 "PEP8/LineComplexityScore", self.lineComplexityScoreSpinBox.value() 1911 "PEP8/LineComplexityScore", self.lineComplexityScoreSpinBox.value()
1855 ) 1912 )
1856 Preferences.getSettings().setValue( 1913 settings.setValue("PEP8/ValidEncodings", self.encodingsEdit.text())
1857 "PEP8/ValidEncodings", self.encodingsEdit.text() 1914 settings.setValue(
1858 )
1859 Preferences.getSettings().setValue(
1860 "PEP8/CopyrightMinFileSize", self.copyrightFileSizeSpinBox.value() 1915 "PEP8/CopyrightMinFileSize", self.copyrightFileSizeSpinBox.value()
1861 ) 1916 )
1862 Preferences.getSettings().setValue( 1917 settings.setValue("PEP8/CopyrightAuthor", self.copyrightAuthorEdit.text())
1863 "PEP8/CopyrightAuthor", self.copyrightAuthorEdit.text() 1918 settings.setValue("PEP8/FutureChecker", self.__getSelectedFutureImports())
1864 ) 1919 settings.setValue("PEP8/BuiltinsChecker", self.__getBuiltinsIgnoreList())
1865 Preferences.getSettings().setValue( 1920 settings.setValue("PEP8/AggressiveSearch", self.aggressiveCheckBox.isChecked())
1866 "PEP8/FutureChecker", self.__getSelectedFutureImports() 1921 settings.setValue(
1867 )
1868 Preferences.getSettings().setValue(
1869 "PEP8/BuiltinsChecker", self.__getBuiltinsIgnoreList()
1870 )
1871 Preferences.getSettings().setValue(
1872 "PEP8/AggressiveSearch", self.aggressiveCheckBox.isChecked()
1873 )
1874 Preferences.getSettings().setValue(
1875 "PEP8/CommentedCodeWhitelist", self.__getCommentedCodeCheckerWhiteList() 1922 "PEP8/CommentedCodeWhitelist", self.__getCommentedCodeCheckerWhiteList()
1876 ) 1923 )
1877 1924
1878 # Type Annotations Checker 1925 # Type Annotations Checker
1879 Preferences.getSettings().setValue( 1926 settings.setValue(
1880 "PEP8/MinimumAnnotationsCoverage", 1927 "PEP8/MinimumAnnotationsCoverage",
1881 self.minAnnotationsCoverageSpinBox.value(), 1928 self.minAnnotationsCoverageSpinBox.value(),
1882 ) 1929 )
1883 Preferences.getSettings().setValue( 1930 settings.setValue(
1884 "PEP8/MaximumAnnotationComplexity", 1931 "PEP8/MaximumAnnotationComplexity",
1885 self.maxAnnotationsComplexitySpinBox.value(), 1932 self.maxAnnotationsComplexitySpinBox.value(),
1886 ) 1933 )
1887 Preferences.getSettings().setValue( 1934 settings.setValue(
1888 "PEP8/MaximumAnnotationLength", self.maxAnnotationsLengthSpinBox.value() 1935 "PEP8/MaximumAnnotationLength", self.maxAnnotationsLengthSpinBox.value()
1889 ) 1936 )
1890 Preferences.getSettings().setValue( 1937 settings.setValue(
1891 "PEP8/SuppressNoneReturning", self.suppressNoneReturningCheckBox.isChecked() 1938 "PEP8/SuppressNoneReturning", self.suppressNoneReturningCheckBox.isChecked()
1892 ) 1939 )
1893 Preferences.getSettings().setValue( 1940 settings.setValue(
1894 "PEP8/SuppressDummyArgs", self.suppressDummyArgsCheckBox.isChecked() 1941 "PEP8/SuppressDummyArgs", self.suppressDummyArgsCheckBox.isChecked()
1895 ) 1942 )
1896 Preferences.getSettings().setValue( 1943 settings.setValue(
1897 "PEP8/AllowUntypedDefs", self.allowUntypedDefsCheckBox.isChecked() 1944 "PEP8/AllowUntypedDefs", self.allowUntypedDefsCheckBox.isChecked()
1898 ) 1945 )
1899 Preferences.getSettings().setValue( 1946 settings.setValue(
1900 "PEP8/AllowUntypedNested", self.allowUntypedNestedCheckBox.isChecked() 1947 "PEP8/AllowUntypedNested", self.allowUntypedNestedCheckBox.isChecked()
1901 ) 1948 )
1902 Preferences.getSettings().setValue( 1949 settings.setValue(
1903 "PEP8/MypyInitReturn", self.mypyInitReturnCheckBox.isChecked() 1950 "PEP8/MypyInitReturn", self.mypyInitReturnCheckBox.isChecked()
1904 ) 1951 )
1905 Preferences.getSettings().setValue( 1952 settings.setValue(
1906 "PEP8/AllowStarArgAny", self.allowStarArgAnyCheckBox.isChecked() 1953 "PEP8/AllowStarArgAny", self.allowStarArgAnyCheckBox.isChecked()
1907 ) 1954 )
1908 Preferences.getSettings().setValue( 1955 settings.setValue(
1909 "PEP8/ForceFutureAnnotations", 1956 "PEP8/ForceFutureAnnotations",
1910 self.forceFutureAnnotationsCheckBox.isChecked(), 1957 self.forceFutureAnnotationsCheckBox.isChecked(),
1911 ) 1958 )
1912 Preferences.getSettings().setValue( 1959 settings.setValue(
1913 "PEP8/DispatchDecorators", 1960 "PEP8/DispatchDecorators",
1914 [d.strip() for d in self.dispatchDecoratorEdit.text().split(",")], 1961 [d.strip() for d in self.dispatchDecoratorEdit.text().split(",")],
1915 ) 1962 )
1916 Preferences.getSettings().setValue( 1963 settings.setValue(
1917 "PEP8/OverloadDecorators", 1964 "PEP8/OverloadDecorators",
1918 [d.strip() for d in self.overloadDecoratorEdit.text().split(",")], 1965 [d.strip() for d in self.overloadDecoratorEdit.text().split(",")],
1919 ) 1966 )
1920 1967
1921 # Security Checker 1968 # Security Checker
1922 Preferences.getSettings().setValue( 1969 settings.setValue(
1923 "PEP8/HardcodedTmpDirectories", 1970 "PEP8/HardcodedTmpDirectories",
1924 [t.strip() for t in self.tmpDirectoriesEdit.toPlainText().splitlines()], 1971 [t.strip() for t in self.tmpDirectoriesEdit.toPlainText().splitlines()],
1925 ), 1972 ),
1926 Preferences.getSettings().setValue( 1973 settings.setValue(
1927 "PEP8/InsecureHashes", 1974 "PEP8/InsecureHashes",
1928 [h.strip() for h in self.hashesEdit.text().split(",")], 1975 [h.strip() for h in self.hashesEdit.text().split(",")],
1929 ), 1976 ),
1930 Preferences.getSettings().setValue( 1977 settings.setValue(
1931 "PEP8/InsecureSslProtocolVersions", 1978 "PEP8/InsecureSslProtocolVersions",
1932 [ 1979 [
1933 p.strip() 1980 p.strip()
1934 for p in self.insecureSslProtocolsEdit.toPlainText().splitlines() 1981 for p in self.insecureSslProtocolsEdit.toPlainText().splitlines()
1935 ], 1982 ],
1936 ), 1983 ),
1937 Preferences.getSettings().setValue( 1984 settings.setValue(
1938 "PEP8/WeakKeySizeDsaHigh", self.dsaHighRiskCombo.currentText() 1985 "PEP8/WeakKeySizeDsaHigh", self.dsaHighRiskCombo.currentText()
1939 ), 1986 ),
1940 Preferences.getSettings().setValue( 1987 settings.setValue(
1941 "PEP8/WeakKeySizeDsaMedium", self.dsaMediumRiskCombo.currentText() 1988 "PEP8/WeakKeySizeDsaMedium", self.dsaMediumRiskCombo.currentText()
1942 ), 1989 ),
1943 Preferences.getSettings().setValue( 1990 settings.setValue(
1944 "PEP8/WeakKeySizeRsaHigh", self.rsaHighRiskCombo.currentText() 1991 "PEP8/WeakKeySizeRsaHigh", self.rsaHighRiskCombo.currentText()
1945 ), 1992 ),
1946 Preferences.getSettings().setValue( 1993 settings.setValue(
1947 "PEP8/WeakKeySizeRsaMedium", self.rsaMediumRiskCombo.currentText() 1994 "PEP8/WeakKeySizeRsaMedium", self.rsaMediumRiskCombo.currentText()
1948 ), 1995 ),
1949 Preferences.getSettings().setValue( 1996 settings.setValue("PEP8/WeakKeySizeEcHigh", self.ecHighRiskCombo.currentText()),
1950 "PEP8/WeakKeySizeEcHigh", self.ecHighRiskCombo.currentText() 1997 settings.setValue(
1951 ),
1952 Preferences.getSettings().setValue(
1953 "PEP8/WeakKeySizeEcMedium", self.ecMediumRiskCombo.currentText() 1998 "PEP8/WeakKeySizeEcMedium", self.ecMediumRiskCombo.currentText()
1954 ), 1999 ),
1955 Preferences.getSettings().setValue( 2000 settings.setValue(
1956 "PEP8/CheckTypedException", self.typedExceptionsCheckBox.isChecked() 2001 "PEP8/CheckTypedException", self.typedExceptionsCheckBox.isChecked()
1957 ), 2002 ),
1958 2003
1959 # Imports Checker 2004 # Imports Checker
1960 Preferences.getSettings().setValue( 2005 settings.setValue(
1961 "PEP8/ApplicationPackageNames", 2006 "PEP8/ApplicationPackageNames",
1962 sorted(self.appPackagesEdit.toPlainText().split()), 2007 sorted(self.appPackagesEdit.toPlainText().split()),
1963 ) 2008 )
1964 Preferences.getSettings().setValue( 2009 settings.setValue(
1965 "PEP8/BannedModules", sorted(self.bannedModulesEdit.toPlainText().split()) 2010 "PEP8/BannedModules", sorted(self.bannedModulesEdit.toPlainText().split())
1966 ) 2011 )
1967 Preferences.getSettings().setValue( 2012 settings.setValue(
1968 "PEP8/BanRelativeImports", self.__getBanRelativeImportsValue() 2013 "PEP8/BanRelativeImports", self.__getBanRelativeImportsValue()
2014 )
2015 settings.setValue("PEP8/SortOrder", self.sortOrderComboBox.currentData())
2016 settings.setValue(
2017 "PEP8/SortCaseSensitive", self.sortCaseSensitiveCheckBox.isChecked()
1969 ) 2018 )
1970 2019
1971 @pyqtSlot() 2020 @pyqtSlot()
1972 def on_resetDefaultButton_clicked(self): 2021 def on_resetDefaultButton_clicked(self):
1973 """ 2022 """
1974 Private slot to reset the configuration values to their default values. 2023 Private slot to reset the configuration values to their default values.
1975 """ 2024 """
1976 Preferences.getSettings().setValue( 2025 defaultParameters = self.getDefaults()
2026 settings = Preferences.getSettings()
2027
2028 settings.setValue(
1977 "PEP8/EnabledCheckerCategories", 2029 "PEP8/EnabledCheckerCategories",
1978 ",".join(CodeStyleCheckerDialog.checkCategories.keys()), 2030 defaultParameters["EnabledCheckerCategories"],
1979 ) 2031 )
1980 Preferences.getSettings().setValue("PEP8/ExcludeFilePatterns", "") 2032 settings.setValue("PEP8/ExcludeFilePatterns", defaultParameters["ExcludeFiles"])
1981 Preferences.getSettings().setValue( 2033 settings.setValue("PEP8/ExcludeMessages", defaultParameters["ExcludeMessages"])
1982 "PEP8/ExcludeMessages", pycodestyle.DEFAULT_IGNORE 2034 settings.setValue("PEP8/IncludeMessages", defaultParameters["IncludeMessages"])
1983 ) 2035 settings.setValue("PEP8/RepeatMessages", defaultParameters["RepeatMessages"])
1984 Preferences.getSettings().setValue("PEP8/IncludeMessages", "") 2036 settings.setValue("PEP8/FixCodes", defaultParameters["FixCodes"])
1985 Preferences.getSettings().setValue("PEP8/RepeatMessages", False) 2037 settings.setValue("PEP8/NoFixCodes", defaultParameters["NoFixCodes"])
1986 Preferences.getSettings().setValue("PEP8/FixCodes", "") 2038 settings.setValue("PEP8/FixIssues", defaultParameters["FixIssues"])
1987 Preferences.getSettings().setValue("PEP8/NoFixCodes", "E501") 2039 settings.setValue("PEP8/ShowIgnored", defaultParameters["ShowIgnored"])
1988 Preferences.getSettings().setValue("PEP8/FixIssues", False) 2040 settings.setValue("PEP8/MaxLineLength", defaultParameters["MaxLineLength"])
1989 Preferences.getSettings().setValue("PEP8/ShowIgnored", False) 2041 settings.setValue(
1990 Preferences.getSettings().setValue("PEP8/MaxLineLength", 88) 2042 "PEP8/MaxDocLineLength", defaultParameters["MaxDocLineLength"]
1991 Preferences.getSettings().setValue("PEP8/MaxDocLineLength", 88) 2043 )
1992 Preferences.getSettings().setValue("PEP8/BlankLinesBeforeTopLevel", 2) 2044 settings.setValue(
1993 Preferences.getSettings().setValue("PEP8/BlankLinesBeforeMethod", 1) 2045 "PEP8/BlankLinesBeforeTopLevel", defaultParameters["BlankLines"][0]
1994 Preferences.getSettings().setValue("PEP8/HangClosing", False) 2046 )
1995 Preferences.getSettings().setValue("PEP8/DocstringType", "pep257") 2047 settings.setValue(
1996 Preferences.getSettings().setValue("PEP8/MaxCodeComplexity", 10) 2048 "PEP8/BlankLinesBeforeMethod", defaultParameters["BlankLines"][1]
1997 Preferences.getSettings().setValue("PEP8/LineComplexity", 15) 2049 )
1998 Preferences.getSettings().setValue("PEP8/LineComplexityScore", 10) 2050 settings.setValue("PEP8/HangClosing", defaultParameters["HangClosing"])
1999 Preferences.getSettings().setValue( 2051 settings.setValue("PEP8/DocstringType", defaultParameters["DocstringType"])
2000 "PEP8/ValidEncodings", MiscellaneousCheckerDefaultArgs["CodingChecker"] 2052 settings.setValue(
2001 ) 2053 "PEP8/MaxCodeComplexity", defaultParameters["MaxCodeComplexity"]
2002 Preferences.getSettings().setValue( 2054 )
2003 "PEP8/CopyrightMinFileSize", 2055 settings.setValue("PEP8/LineComplexity", defaultParameters["LineComplexity"])
2004 MiscellaneousCheckerDefaultArgs["CopyrightChecker"]["MinFilesize"], 2056 settings.setValue(
2005 ) 2057 "PEP8/LineComplexityScore", defaultParameters["LineComplexityScore"]
2006 Preferences.getSettings().setValue( 2058 )
2007 "PEP8/CopyrightAuthor", 2059 settings.setValue("PEP8/ValidEncodings", defaultParameters["ValidEncodings"])
2008 MiscellaneousCheckerDefaultArgs["CopyrightChecker"]["Author"], 2060 settings.setValue(
2009 ) 2061 "PEP8/CopyrightMinFileSize", defaultParameters["CopyrightMinFileSize"]
2010 Preferences.getSettings().setValue("PEP8/FutureChecker", "") 2062 )
2011 Preferences.getSettings().setValue( 2063 settings.setValue("PEP8/CopyrightAuthor", defaultParameters["CopyrightAuthor"])
2012 "PEP8/BuiltinsChecker", MiscellaneousCheckerDefaultArgs["BuiltinsChecker"] 2064 settings.setValue("PEP8/FutureChecker", defaultParameters["FutureChecker"])
2013 ) 2065 settings.setValue("PEP8/BuiltinsChecker", defaultParameters["BuiltinsChecker"])
2014 Preferences.getSettings().setValue( 2066 settings.setValue(
2015 "PEP8/AggressiveSearch", 2067 "PEP8/AggressiveSearch",
2016 MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"]["Aggressive"], 2068 defaultParameters["CommentedCodeChecker"]["Aggressive"],
2017 ) 2069 )
2018 Preferences.getSettings().setValue( 2070 settings.setValue(
2019 "PEP8/CommentedCodeWhitelist", 2071 "PEP8/CommentedCodeWhitelist",
2020 MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"]["WhiteList"], 2072 defaultParameters["CommentedCodeChecker"]["WhiteList"],
2021 ) 2073 )
2022 2074
2023 # Type Annotations Checker 2075 # Type Annotations Checker
2024 Preferences.getSettings().setValue( 2076 settings.setValue(
2025 "PEP8/MinimumAnnotationsCoverage", 2077 "PEP8/MinimumAnnotationsCoverage",
2026 AnnotationsCheckerDefaultArgs["MinimumCoverage"], 2078 defaultParameters["AnnotationsChecker"]["MinimumCoverage"],
2027 ) 2079 )
2028 Preferences.getSettings().setValue( 2080 settings.setValue(
2029 "PEP8/MaximumAnnotationComplexity", 2081 "PEP8/MaximumAnnotationComplexity",
2030 AnnotationsCheckerDefaultArgs["MaximumComplexity"], 2082 defaultParameters["AnnotationsChecker"]["MaximumComplexity"],
2031 ) 2083 )
2032 Preferences.getSettings().setValue( 2084 settings.setValue(
2033 "PEP8/MaximumAnnotationLength", 2085 "PEP8/MaximumAnnotationLength",
2034 AnnotationsCheckerDefaultArgs["MaximumLength"], 2086 defaultParameters["AnnotationsChecker"]["MaximumLength"],
2035 ) 2087 )
2036 Preferences.getSettings().setValue( 2088 settings.setValue(
2037 "PEP8/SuppressNoneReturning", 2089 "PEP8/SuppressNoneReturning",
2038 AnnotationsCheckerDefaultArgs["SuppressNoneReturning"], 2090 defaultParameters["AnnotationsChecker"]["SuppressNoneReturning"],
2039 ) 2091 )
2040 Preferences.getSettings().setValue( 2092 settings.setValue(
2041 "PEP8/SuppressDummyArgs", AnnotationsCheckerDefaultArgs["SuppressDummyArgs"] 2093 "PEP8/SuppressDummyArgs",
2042 ) 2094 defaultParameters["AnnotationsChecker"]["SuppressDummyArgs"],
2043 Preferences.getSettings().setValue( 2095 )
2044 "PEP8/AllowUntypedDefs", AnnotationsCheckerDefaultArgs["AllowUntypedDefs"] 2096 settings.setValue(
2045 ) 2097 "PEP8/AllowUntypedDefs",
2046 Preferences.getSettings().setValue( 2098 defaultParameters["AnnotationsChecker"]["AllowUntypedDefs"],
2099 )
2100 settings.setValue(
2047 "PEP8/AllowUntypedNested", 2101 "PEP8/AllowUntypedNested",
2048 AnnotationsCheckerDefaultArgs["AllowUntypedNested"], 2102 defaultParameters["AnnotationsChecker"]["AllowUntypedNested"],
2049 ) 2103 )
2050 Preferences.getSettings().setValue( 2104 settings.setValue(
2051 "PEP8/MypyInitReturn", AnnotationsCheckerDefaultArgs["MypyInitReturn"] 2105 "PEP8/MypyInitReturn",
2052 ) 2106 defaultParameters["AnnotationsChecker"]["MypyInitReturn"],
2053 Preferences.getSettings().setValue( 2107 )
2054 "PEP8/AllowStarArgAny", AnnotationsCheckerDefaultArgs["AllowStarArgAny"] 2108 settings.setValue(
2055 ) 2109 "PEP8/AllowStarArgAny",
2056 Preferences.getSettings().setValue( 2110 defaultParameters["AnnotationsChecker"]["AllowStarArgAny"],
2111 )
2112 settings.setValue(
2057 "PEP8/ForceFutureAnnotations", 2113 "PEP8/ForceFutureAnnotations",
2058 AnnotationsCheckerDefaultArgs["ForceFutureAnnotations"], 2114 defaultParameters["AnnotationsChecker"]["ForceFutureAnnotations"],
2059 ) 2115 )
2060 Preferences.getSettings().setValue( 2116 settings.setValue(
2061 "PEP8/DispatchDecorators", 2117 "PEP8/DispatchDecorators",
2062 AnnotationsCheckerDefaultArgs["DispatchDecorators"], 2118 defaultParameters["AnnotationsChecker"]["DispatchDecorators"],
2063 ) 2119 )
2064 Preferences.getSettings().setValue( 2120 settings.setValue(
2065 "PEP8/OverloadDecorators", 2121 "PEP8/OverloadDecorators",
2066 AnnotationsCheckerDefaultArgs["OverloadDecorators"], 2122 defaultParameters["AnnotationsChecker"]["OverloadDecorators"],
2067 ) 2123 )
2068 2124
2069 # Security Checker 2125 # Security Checker
2070 from .Security.SecurityDefaults import SecurityDefaults 2126 settings.setValue(
2071
2072 Preferences.getSettings().setValue(
2073 "PEP8/HardcodedTmpDirectories", 2127 "PEP8/HardcodedTmpDirectories",
2074 SecurityDefaults["hardcoded_tmp_directories"], 2128 defaultParameters["SecurityChecker"]["HardcodedTmpDirectories"],
2075 ) 2129 )
2076 Preferences.getSettings().setValue( 2130 settings.setValue(
2077 "PEP8/InsecureHashes", SecurityDefaults["insecure_hashes"] 2131 "PEP8/InsecureHashes",
2078 ) 2132 defaultParameters["SecurityChecker"]["InsecureHashes"],
2079 Preferences.getSettings().setValue( 2133 )
2134 settings.setValue(
2080 "PEP8/InsecureSslProtocolVersions", 2135 "PEP8/InsecureSslProtocolVersions",
2081 SecurityDefaults["insecure_ssl_protocol_versions"], 2136 defaultParameters["SecurityChecker"]["InsecureSslProtocolVersions"],
2082 ) 2137 )
2083 Preferences.getSettings().setValue( 2138 settings.setValue(
2084 "PEP8/WeakKeySizeDsaHigh", str(SecurityDefaults["weak_key_size_dsa_high"]) 2139 "PEP8/WeakKeySizeDsaHigh",
2085 ) 2140 defaultParameters["SecurityChecker"]["WeakKeySizeDsaHigh"],
2086 Preferences.getSettings().setValue( 2141 )
2142 settings.setValue(
2087 "PEP8/WeakKeySizeDsaMedium", 2143 "PEP8/WeakKeySizeDsaMedium",
2088 str(SecurityDefaults["weak_key_size_dsa_medium"]), 2144 defaultParameters["SecurityChecker"]["WeakKeySizeDsaMedium"],
2089 ) 2145 )
2090 Preferences.getSettings().setValue( 2146 settings.setValue(
2091 "PEP8/WeakKeySizeRsaHigh", str(SecurityDefaults["weak_key_size_rsa_high"]) 2147 "PEP8/WeakKeySizeRsaHigh",
2092 ) 2148 defaultParameters["SecurityChecker"]["WeakKeySizeRsaHigh"],
2093 Preferences.getSettings().setValue( 2149 )
2150 settings.setValue(
2094 "PEP8/WeakKeySizeRsaMedium", 2151 "PEP8/WeakKeySizeRsaMedium",
2095 str(SecurityDefaults["weak_key_size_rsa_medium"]), 2152 defaultParameters["SecurityChecker"]["WeakKeySizeRsaMedium"],
2096 ) 2153 )
2097 Preferences.getSettings().setValue( 2154 settings.setValue(
2098 "PEP8/WeakKeySizeEcHigh", str(SecurityDefaults["weak_key_size_ec_high"]) 2155 "PEP8/WeakKeySizeEcHigh",
2099 ) 2156 defaultParameters["SecurityChecker"]["WeakKeySizeEcHigh"],
2100 Preferences.getSettings().setValue( 2157 )
2101 "PEP8/WeakKeySizeEcMedium", str(SecurityDefaults["weak_key_size_ec_medium"]) 2158 settings.setValue(
2102 ) 2159 "PEP8/WeakKeySizeEcMedium",
2103 Preferences.getSettings().setValue( 2160 defaultParameters["SecurityChecker"]["WeakKeySizeEcMedium"],
2104 "PEP8/CheckTypedException", SecurityDefaults["check_typed_exception"] 2161 )
2162 settings.setValue(
2163 "PEP8/CheckTypedException",
2164 defaultParameters["SecurityChecker"]["CheckTypedException"],
2105 ) 2165 )
2106 2166
2107 # Imports Checker 2167 # Imports Checker
2108 Preferences.getSettings().setValue("PEP8/ApplicationPackageNames", []) 2168 settings.setValue(
2109 Preferences.getSettings().setValue("PEP8/BannedModules", []) 2169 "PEP8/ApplicationPackageNames",
2110 Preferences.getSettings().setValue("PEP8/BanRelativeImports", "") 2170 defaultParameters["ImportsChecker"]["ApplicationPackageNames"],
2171 )
2172 settings.setValue(
2173 "PEP8/BannedModules",
2174 defaultParameters["ImportsChecker"]["BannedModules"],
2175 )
2176 settings.setValue(
2177 "PEP8/BanRelativeImports",
2178 defaultParameters["ImportsChecker"]["BanRelativeImports"],
2179 )
2180 settings.setValue(
2181 "PEP8/SortOrder",
2182 defaultParameters["ImportsChecker"]["SortOrder"],
2183 )
2184 settings.setValue(
2185 "PEP8/SortCaseSensitive",
2186 defaultParameters["ImportsChecker"]["SortCaseSensitive"],
2187 )
2111 2188
2112 # Update UI with default values 2189 # Update UI with default values
2113 self.on_loadDefaultButton_clicked() 2190 self.on_loadDefaultButton_clicked()
2114 2191
2115 @pyqtSlot() 2192 @pyqtSlot()
2385 def __cleanupData(self): 2462 def __cleanupData(self):
2386 """ 2463 """
2387 Private method to clean the loaded/entered data of redundant entries. 2464 Private method to clean the loaded/entered data of redundant entries.
2388 """ 2465 """
2389 # Migrate single letter exclude messages to disabled checker categories 2466 # Migrate single letter exclude messages to disabled checker categories
2390 # and delete them from exlude messages 2467 # and delete them from exclude messages
2391 excludedMessages = [ 2468 excludedMessages = [
2392 m.strip() for m in self.excludeMessagesEdit.text().split(",") if bool(m) 2469 m.strip() for m in self.excludeMessagesEdit.text().split(",") if bool(m)
2393 ] 2470 ]
2394 excludedMessageCategories = [c for c in excludedMessages if len(c) == 1] 2471 excludedMessageCategories = [c for c in excludedMessages if len(c) == 1]
2395 enabledCheckers = self.__getCategories(True, asList=True) 2472 enabledCheckers = self.__getCategories(True, asList=True)

eric ide

mercurial