Sat, 26 Apr 2025 12:34:32 +0200
MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.
11143
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a checker for pydantic related issues. |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
10 | from CodeStyleTopicChecker import CodeStyleTopicChecker |
11143
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
13 | class PydanticChecker(CodeStyleTopicChecker): |
11143
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | """ |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | Class implementing a checker for pydantic related issues. |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | """ |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | Codes = [ |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
19 | "PYD-001", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
20 | "PYD-002", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
21 | "PYD-003", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
22 | "PYD-004", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
23 | "PYD-005", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
24 | "PYD-006", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
25 | "PYD-010", |
11143
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | ] |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
27 | Category = "PYD" |
11143
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | def __init__(self, source, filename, tree, select, ignore, expected, repeat, args): |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | Constructor |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @param source source code to be checked |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | @type list of str |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | @param filename name of the source file |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | @type str |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | @param tree AST tree of the source code |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | @type ast.Module |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | @param select list of selected codes |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @type list of str |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @param ignore list of codes to be ignored |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | @type list of str |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | @param expected list of expected codes |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | @type list of str |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | @param repeat flag indicating to report each occurrence of a code |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | @type bool |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | @param args dictionary of arguments for the various checks |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | @type dict |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | """ |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
50 | super().__init__( |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
51 | PydanticChecker.Category, |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
52 | source, |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
53 | filename, |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
54 | tree, |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
55 | select, |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
56 | ignore, |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
57 | expected, |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
58 | repeat, |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
59 | args, |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
60 | ) |
11143
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | checkersWithCodes = [ |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | ( |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | self.__checkPydantic, |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | ( |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
66 | "PYD-001", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
67 | "PYD-002", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
68 | "PYD-003", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
69 | "PYD-004", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
70 | "PYD-005", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
71 | "PYD-006", |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
72 | "PYD-010", |
11143
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | ), |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | ), |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | ] |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
76 | self._initializeCheckers(checkersWithCodes) |
11143
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | def __checkPydantic(self): |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | """ |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | Private method to check pydantic related topics. |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | """ |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | from .PydanticVisitor import PydanticVisitor |
ef75c265ab47
Added a checker for `pydantic` and `dataclass` related topics based on `flake8-pydantic` v0.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | |
11150
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
84 | visitor = PydanticVisitor(errorCallback=self.addErrorFromNode) |
73d80859079c
Code Style Checkers
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11143
diff
changeset
|
85 | visitor.visit(self.tree) |