478 hang_closing=hangClosing, |
484 hang_closing=hangClosing, |
479 ) |
485 ) |
480 report = styleGuide.options.report |
486 report = styleGuide.options.report |
481 styleGuide.input_file(filename, lines=source) |
487 styleGuide.input_file(filename, lines=source) |
482 stats.update(report.counters) |
488 stats.update(report.counters) |
483 errors = report.errors |
489 errors += report.errors |
484 |
490 |
485 # check documentation style |
491 # check documentation style |
486 docStyleChecker = DocStyleChecker( |
492 if DocStyleChecker.Category in enabledCategories: |
487 source, |
493 docStyleChecker = DocStyleChecker( |
488 filename, |
494 source, |
489 select, |
495 filename, |
490 ignore, |
496 select, |
491 [], |
497 ignore, |
492 repeatMessages, |
498 [], |
493 maxLineLength=maxDocLineLength, |
499 repeatMessages, |
494 docType=docType, |
500 maxLineLength=maxDocLineLength, |
495 ) |
501 docType=docType, |
496 docStyleChecker.run() |
502 ) |
497 stats.update(docStyleChecker.counters) |
503 docStyleChecker.run() |
498 errors += docStyleChecker.errors |
504 stats.update(docStyleChecker.counters) |
|
505 errors += docStyleChecker.errors |
499 |
506 |
500 # miscellaneous additional checks |
507 # miscellaneous additional checks |
501 miscellaneousChecker = MiscellaneousChecker( |
508 if MiscellaneousChecker.Category in enabledCategories: |
502 source, |
509 miscellaneousChecker = MiscellaneousChecker( |
503 filename, |
510 source, |
504 tree, |
511 filename, |
505 select, |
512 tree, |
506 ignore, |
513 select, |
507 [], |
514 ignore, |
508 repeatMessages, |
515 [], |
509 miscellaneousArgs, |
516 repeatMessages, |
510 ) |
517 miscellaneousArgs, |
511 miscellaneousChecker.run() |
518 ) |
512 stats.update(miscellaneousChecker.counters) |
519 miscellaneousChecker.run() |
513 errors += miscellaneousChecker.errors |
520 stats.update(miscellaneousChecker.counters) |
|
521 errors += miscellaneousChecker.errors |
514 |
522 |
515 # check code complexity |
523 # check code complexity |
516 complexityChecker = ComplexityChecker( |
524 if ComplexityChecker.Category in enabledCategories: |
517 source, filename, tree, select, ignore, codeComplexityArgs |
525 complexityChecker = ComplexityChecker( |
518 ) |
526 source, filename, tree, select, ignore, codeComplexityArgs |
519 complexityChecker.run() |
527 ) |
520 stats.update(complexityChecker.counters) |
528 complexityChecker.run() |
521 errors += complexityChecker.errors |
529 stats.update(complexityChecker.counters) |
|
530 errors += complexityChecker.errors |
522 |
531 |
523 # check function annotations |
532 # check function annotations |
524 annotationsChecker = AnnotationsChecker( |
533 if AnnotationsChecker.Category in enabledCategories: |
525 source, |
534 annotationsChecker = AnnotationsChecker( |
526 filename, |
535 source, |
527 tree, |
536 filename, |
528 select, |
537 tree, |
529 ignore, |
538 select, |
530 [], |
539 ignore, |
531 repeatMessages, |
540 [], |
532 annotationArgs, |
541 repeatMessages, |
533 ) |
542 annotationArgs, |
534 annotationsChecker.run() |
543 ) |
535 stats.update(annotationsChecker.counters) |
544 annotationsChecker.run() |
536 errors += annotationsChecker.errors |
545 stats.update(annotationsChecker.counters) |
|
546 errors += annotationsChecker.errors |
537 |
547 |
538 # check for security issues |
548 # check for security issues |
539 securityChecker = SecurityChecker( |
549 if SecurityChecker.Category in enabledCategories: |
540 source, filename, tree, select, ignore, [], repeatMessages, securityArgs |
550 securityChecker = SecurityChecker( |
541 ) |
551 source, |
542 securityChecker.run() |
552 filename, |
543 stats.update(securityChecker.counters) |
553 tree, |
544 errors += securityChecker.errors |
554 select, |
|
555 ignore, |
|
556 [], |
|
557 repeatMessages, |
|
558 securityArgs, |
|
559 ) |
|
560 securityChecker.run() |
|
561 stats.update(securityChecker.counters) |
|
562 errors += securityChecker.errors |
545 |
563 |
546 # check for pathlib usage |
564 # check for pathlib usage |
547 pathlibChecker = PathlibChecker( |
565 if PathlibChecker.Category in enabledCategories: |
548 source, filename, tree, select, ignore, [], repeatMessages |
566 pathlibChecker = PathlibChecker( |
549 ) |
567 source, filename, tree, select, ignore, [], repeatMessages |
550 pathlibChecker.run() |
568 ) |
551 stats.update(pathlibChecker.counters) |
569 pathlibChecker.run() |
552 errors += pathlibChecker.errors |
570 stats.update(pathlibChecker.counters) |
|
571 errors += pathlibChecker.errors |
553 |
572 |
554 # check for code simplifications |
573 # check for code simplifications |
555 simplifyChecker = SimplifyChecker( |
574 if SimplifyChecker.Category in enabledCategories: |
556 source, filename, tree, select, ignore, [], repeatMessages |
575 simplifyChecker = SimplifyChecker( |
557 ) |
576 source, filename, tree, select, ignore, [], repeatMessages |
558 simplifyChecker.run() |
577 ) |
559 stats.update(simplifyChecker.counters) |
578 simplifyChecker.run() |
560 errors += simplifyChecker.errors |
579 stats.update(simplifyChecker.counters) |
|
580 errors += simplifyChecker.errors |
561 |
581 |
562 # check import statements |
582 # check import statements |
563 importsChecker = ImportsChecker( |
583 if ImportsChecker.Category in enabledCategories: |
564 source, filename, tree, select, ignore, [], repeatMessages, importsArgs |
584 importsChecker = ImportsChecker( |
565 ) |
585 source, |
566 importsChecker.run() |
586 filename, |
567 stats.update(importsChecker.counters) |
587 tree, |
568 errors += importsChecker.errors |
588 select, |
|
589 ignore, |
|
590 [], |
|
591 repeatMessages, |
|
592 importsArgs, |
|
593 ) |
|
594 importsChecker.run() |
|
595 stats.update(importsChecker.counters) |
|
596 errors += importsChecker.errors |
569 |
597 |
570 # check naming style |
598 # check naming style |
571 namingStyleChecker = NamingStyleChecker( |
599 if NamingStyleChecker.Category in enabledCategories: |
572 source, |
600 namingStyleChecker = NamingStyleChecker( |
573 filename, |
601 source, |
574 tree, |
602 filename, |
575 select, |
603 tree, |
576 ignore, |
604 select, |
577 [], |
605 ignore, |
578 repeatMessages, |
606 [], |
579 {}, # no arguments yet |
607 repeatMessages, |
580 ) |
608 {}, # no arguments yet |
581 namingStyleChecker.run() |
609 ) |
582 stats.update(namingStyleChecker.counters) |
610 namingStyleChecker.run() |
583 errors += namingStyleChecker.errors |
611 stats.update(namingStyleChecker.counters) |
|
612 errors += namingStyleChecker.errors |
584 |
613 |
585 # check name ordering |
614 # check name ordering |
586 nameOrderChecker = NameOrderChecker( |
615 if NameOrderChecker.Category in enabledCategories: |
587 source, |
616 nameOrderChecker = NameOrderChecker( |
588 filename, |
617 source, |
589 tree, |
618 filename, |
590 select, |
619 tree, |
591 ignore, |
620 select, |
592 [], |
621 ignore, |
593 repeatMessages, |
622 [], |
594 nameOrderArgs, |
623 repeatMessages, |
595 ) |
624 nameOrderArgs, |
596 nameOrderChecker.run() |
625 ) |
597 stats.update(nameOrderChecker.counters) |
626 nameOrderChecker.run() |
598 errors += nameOrderChecker.errors |
627 stats.update(nameOrderChecker.counters) |
|
628 errors += nameOrderChecker.errors |
599 |
629 |
600 # check unused arguments and variables |
630 # check unused arguments and variables |
601 unusedChecker = UnusedChecker( |
631 if UnusedChecker.Category in enabledCategories: |
602 source, |
632 unusedChecker = UnusedChecker( |
603 filename, |
633 source, |
604 tree, |
634 filename, |
605 select, |
635 tree, |
606 ignore, |
636 select, |
607 [], |
637 ignore, |
608 repeatMessages, |
638 [], |
609 unusedArgs, |
639 repeatMessages, |
610 ) |
640 unusedArgs, |
611 unusedChecker.run() |
641 ) |
612 stats.update(unusedChecker.counters) |
642 unusedChecker.run() |
613 errors += unusedChecker.errors |
643 stats.update(unusedChecker.counters) |
|
644 errors += unusedChecker.errors |
614 |
645 |
615 # check async function definitions |
646 # check async function definitions |
616 asyncChecker = AsyncChecker( |
647 if AsyncChecker.Category in enabledCategories: |
617 source, |
648 asyncChecker = AsyncChecker( |
618 filename, |
649 source, |
619 tree, |
650 filename, |
620 select, |
651 tree, |
621 ignore, |
652 select, |
622 [], |
653 ignore, |
623 repeatMessages, |
654 [], |
624 {}, # no arguments yet |
655 repeatMessages, |
625 ) |
656 {}, # no arguments yet |
626 asyncChecker.run() |
657 ) |
627 stats.update(asyncChecker.counters) |
658 asyncChecker.run() |
628 errors += asyncChecker.errors |
659 stats.update(asyncChecker.counters) |
|
660 errors += asyncChecker.errors |
629 |
661 |
630 # checking logging statements |
662 # checking logging statements |
631 loggingChecker = LoggingChecker( |
663 if LoggingChecker.Category in enabledCategories: |
632 source, |
664 loggingChecker = LoggingChecker( |
633 filename, |
665 source, |
634 tree, |
666 filename, |
635 select, |
667 tree, |
636 ignore, |
668 select, |
637 [], |
669 ignore, |
638 repeatMessages, |
670 [], |
639 {}, # no arguments yet |
671 repeatMessages, |
640 ) |
672 {}, # no arguments yet |
641 loggingChecker.run() |
673 ) |
642 stats.update(loggingChecker.counters) |
674 loggingChecker.run() |
643 errors += loggingChecker.errors |
675 stats.update(loggingChecker.counters) |
|
676 errors += loggingChecker.errors |
644 |
677 |
645 # check 'pydantic' related topics |
678 # check 'pydantic' related topics |
646 pydanticChecker = PydanticChecker( |
679 if PydanticChecker.Category in enabledCategories: |
647 source, |
680 pydanticChecker = PydanticChecker( |
648 filename, |
681 source, |
649 tree, |
682 filename, |
650 select, |
683 tree, |
651 ignore, |
684 select, |
652 [], |
685 ignore, |
653 repeatMessages, |
686 [], |
654 {}, # no arguments yet |
687 repeatMessages, |
655 ) |
688 {}, # no arguments yet |
656 pydanticChecker.run() |
689 ) |
657 stats.update(pydanticChecker.counters) |
690 pydanticChecker.run() |
658 errors += pydanticChecker.errors |
691 stats.update(pydanticChecker.counters) |
|
692 errors += pydanticChecker.errors |
659 |
693 |
660 elif syntaxError: |
694 elif syntaxError: |
661 errors = [syntaxError] |
695 errors = [syntaxError] |
662 stats.update(syntaxStats) |
696 stats.update(syntaxStats) |
663 |
697 |