padelt / temper-python

libusb/PyUSB-based driver to read TEMPer USB HID devices (USB ID 0c45:7401) and serve as a NetSNMP passpersist module
Other
182 stars 76 forks source link

Pylint? #119

Open davet2001 opened 2 years ago

davet2001 commented 2 years ago

@padelt How do you feel about pylint?

Could be a code improvement? Probably a dedicated PR with no functional change, just formatting/renaming. All tests should pass before and after.

To give an idea, these are the current errors:

 pylint temperusb/
************* Module temperusb
temperusb/__init__.py:1:0: C0114: Missing module docstring (missing-module-docstring)
************* Module temperusb.snmp
temperusb/snmp.py:5:1: C0303: Trailing whitespace (trailing-whitespace)
temperusb/snmp.py:35:0: C0301: Line too long (103/100) (line-too-long)
temperusb/snmp.py:45:0: C0301: Line too long (127/100) (line-too-long)
temperusb/snmp.py:57:91: C0303: Trailing whitespace (trailing-whitespace)
temperusb/snmp.py:79:0: C0301: Line too long (109/100) (line-too-long)
temperusb/snmp.py:1:0: C0114: Missing module docstring (missing-module-docstring)
temperusb/snmp.py:14:0: E0401: Unable to import 'snmp_passpersist' (import-error)
temperusb/snmp.py:20:23: C0103: Argument name "fd" doesn't conform to snake_case naming style (invalid-name)
temperusb/snmp.py:24:0: C0115: Missing class docstring (missing-class-docstring)
temperusb/snmp.py:27:4: C0116: Missing function or method docstring (missing-function-docstring)
temperusb/snmp.py:27:4: R0201: Method could be a function (no-self-use)
temperusb/snmp.py:24:0: R0903: Too few public methods (1/2) (too-few-public-methods)
temperusb/snmp.py:33:8: C0103: Attribute name "pp" doesn't conform to snake_case naming style (invalid-name)
temperusb/snmp.py:41:16: C0103: Attribute name "th" doesn't conform to snake_case naming style (invalid-name)
temperusb/snmp.py:30:0: C0115: Missing class docstring (missing-class-docstring)
temperusb/snmp.py:31:23: C0103: Argument name "pp" doesn't conform to snake_case naming style (invalid-name)
temperusb/snmp.py:46:19: W0703: Catching too general exception Exception (broad-except)
temperusb/snmp.py:43:38: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/snmp.py:44:23: C0103: Variable name "d" doesn't conform to snake_case naming style (invalid-name)
temperusb/snmp.py:45:42: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/snmp.py:46:12: C0103: Variable name "e" doesn't conform to snake_case naming style (invalid-name)
temperusb/snmp.py:47:38: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/snmp.py:53:18: C0103: Variable name "d" doesn't conform to snake_case naming style (invalid-name)
temperusb/snmp.py:56:23: W0703: Catching too general exception Exception (broad-except)
temperusb/snmp.py:56:16: C0103: Variable name "e" doesn't conform to snake_case naming style (invalid-name)
temperusb/snmp.py:57:42: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/snmp.py:60:4: C0116: Missing function or method docstring (missing-function-docstring)
temperusb/snmp.py:75:19: W0703: Catching too general exception Exception (broad-except)
temperusb/snmp.py:74:40: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/snmp.py:75:12: C0103: Variable name "e" doesn't conform to snake_case naming style (invalid-name)
temperusb/snmp.py:76:38: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/snmp.py:30:0: R0903: Too few public methods (1/2) (too-few-public-methods)
temperusb/snmp.py:85:0: C0116: Missing function or method docstring (missing-function-docstring)
temperusb/snmp.py:87:4: C0103: Variable name "pp" doesn't conform to snake_case naming style (invalid-name)
temperusb/snmp.py:15:0: W0611: Unused TemperDevice imported from temperusb.temper (unused-import)
************* Module temperusb.temper
temperusb/temper.py:26:18: W1401: Anomalous backslash in string: '\s'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:26:22: W1401: Anomalous backslash in string: '\d'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:26:28: W1401: Anomalous backslash in string: '\d'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:26:34: W1401: Anomalous backslash in string: '\.'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:26:36: W1401: Anomalous backslash in string: '\d'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:5: W1401: Anomalous backslash in string: '\s'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:9: W1401: Anomalous backslash in string: '\s'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:17: W1401: Anomalous backslash in string: '\s'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:21: W1401: Anomalous backslash in string: '\s'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:31: W1401: Anomalous backslash in string: '\d'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:34: W1401: Anomalous backslash in string: '\.'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:36: W1401: Anomalous backslash in string: '\d'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:40: W1401: Anomalous backslash in string: '\s'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:44: W1401: Anomalous backslash in string: '\s'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:53: W1401: Anomalous backslash in string: '\s'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:57: W1401: Anomalous backslash in string: '\s'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:67: W1401: Anomalous backslash in string: '\d'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:70: W1401: Anomalous backslash in string: '\.'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:28:72: W1401: Anomalous backslash in string: '\d'. String constant might be missing an r prefix. (anomalous-backslash-in-string)
temperusb/temper.py:145:0: C0301: Line too long (114/100) (line-too-long)
temperusb/temper.py:170:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
temperusb/temper.py:171:0: C0301: Line too long (111/100) (line-too-long)
temperusb/temper.py:1:0: C0114: Missing module docstring (missing-module-docstring)
temperusb/temper.py:11:0: E0401: Unable to import 'usb' (import-error)
temperusb/temper.py:43:8: C0103: Variable name "f" doesn't conform to snake_case naming style (invalid-name)
temperusb/temper.py:43:12: W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
temperusb/temper.py:43:12: R1732: Consider using 'with' for resource-allocating operations (consider-using-with)
temperusb/temper.py:49:0: R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)
temperusb/temper.py:78:0: R0205: Class 'TemperDevice' inherits from object, can be safely removed from bases in python3 (useless-object-inheritance)
temperusb/temper.py:88:11: C0121: Comparison 'self._ports == None' should be 'self._ports is None' (singleton-comparison)
temperusb/temper.py:96:8: C0103: Variable name "e" doesn't conform to snake_case naming style (invalid-name)
temperusb/temper.py:104:21: W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
temperusb/temper.py:104:21: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/temper.py:118:16: C0103: Variable name "f" doesn't conform to snake_case naming style (invalid-name)
temperusb/temper.py:118:20: W1514: Using open without explicitly specifying an encoding (unspecified-encoding)
temperusb/temper.py:120:16: C0103: Variable name "f" doesn't conform to snake_case naming style (invalid-name)
temperusb/temper.py:118:20: R1732: Consider using 'with' for resource-allocating operations (consider-using-with)
temperusb/temper.py:150:37: W0613: Unused argument 'sensor' (unused-argument)
temperusb/temper.py:165:11: R1714: Consider merging these comparisons with "in" to "self._device.product in ('TEMPerV1.2', 'TEMPer1F_V1.3', 'TEMPERHUM1V1.3', 'TEMPer1F_H1_V1.4')" (consider-using-in)
temperusb/temper.py:170:53: C0321: More than one statement on a single line (multiple-statements)
temperusb/temper.py:260:12: W1201: Use lazy % formatting in logging functions (logging-not-lazy)
temperusb/temper.py:260:25: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/temper.py:261:15: R1714: Consider merging these comparisons with "in" to "self._device.product in ('TEMPer1F_H1_V1.4', 'TEMPERHUM1V1.3')" (consider-using-in)
temperusb/temper.py:280:12: R1720: Unnecessary "else" after "raise" (no-else-raise)
temperusb/temper.py:281:16: W0707: Consider explicitly re-raising using the 'from' keyword (raise-missing-from)
temperusb/temper.py:288:30: W0622: Redefining built-in 'format' (redefined-builtin)
temperusb/temper.py:294:8: R1705: Unnecessary "elif" after "return" (no-else-return)
temperusb/temper.py:319:16: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/temper.py:369:16: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/temper.py:417:8: W0107: Unnecessary pass statement (unnecessary-pass)
temperusb/temper.py:420:0: R0205: Class 'TemperHandler' inherits from object, can be safely removed from bases in python3 (useless-object-inheritance)
temperusb/temper.py:430:20: W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
temperusb/temper.py:430:20: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/temper.py:420:0: R0903: Too few public methods (1/2) (too-few-public-methods)
temperusb/temper.py:12:0: C0411: standard import "import os" should be placed before "import usb" (wrong-import-order)
temperusb/temper.py:13:0: C0411: standard import "import re" should be placed before "import usb" (wrong-import-order)
temperusb/temper.py:14:0: C0411: standard import "import logging" should be placed before "import usb" (wrong-import-order)
temperusb/temper.py:15:0: C0411: standard import "import struct" should be placed before "import usb" (wrong-import-order)
************* Module temperusb.cli
temperusb/cli.py:1:0: C0114: Missing module docstring (missing-module-docstring)
temperusb/cli.py:9:0: C0116: Missing function or method docstring (missing-function-docstring)
temperusb/cli.py:32:0: C0116: Missing function or method docstring (missing-function-docstring)
temperusb/cli.py:32:0: R0914: Too many local variables (21/15) (too-many-locals)
temperusb/cli.py:38:4: C0103: Variable name "th" doesn't conform to snake_case naming style (invalid-name)
temperusb/cli.py:41:14: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/cli.py:58:15: C0103: Variable name "v" doesn't conform to snake_case naming style (invalid-name)
temperusb/cli.py:59:12: C0103: Variable name "c" doesn't conform to snake_case naming style (invalid-name)
temperusb/cli.py:62:12: W0702: No exception type(s) specified (bare-except)
temperusb/cli.py:78:26: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/cli.py:86:31: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/cli.py:92:16: W0702: No exception type(s) specified (bare-except)
temperusb/cli.py:88:32: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/cli.py:96:16: W0702: No exception type(s) specified (bare-except)
temperusb/cli.py:95:31: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/cli.py:101:21: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
temperusb/cli.py:32:0: R0912: Too many branches (18/12) (too-many-branches)
temperusb/cli.py:32:0: R0915: Too many statements (53/50) (too-many-statements)
padelt commented 2 years ago

Not a big fan of refactoring working code only to conform to things like Too many branches or Variable name "th" doesn't conform to snake_case naming style (invalid-name) in general.

But if you as a human with common sense judgement would want to comb through those hints to improve the code - please feel free to do that!