From 97f6eeeb4ef02eb5cbef588d0cee94508e56bcd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20LUONG=20=28L=C6=AF=C6=A0NG=20Th=E1=BA=BF=20Vi?= =?UTF-8?q?nh=29?= Date: Wed, 8 Nov 2023 20:55:39 -0800 Subject: [PATCH 1/9] update .pylintrc linting config file --- .pylintrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.pylintrc b/.pylintrc index e648eabf..818518a7 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,2 +1,3 @@ +[MESSAGES CONTROL] + disable= - isinstance-second-argument-not-valid-type, From 38e909d18f9c20a1cd4eaca2c8307cda34ab9afe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20LUONG=20=28L=C6=AF=C6=A0NG=20Th=E1=BA=BF=20Vi?= =?UTF-8?q?nh=29?= Date: Wed, 8 Nov 2023 20:56:45 -0800 Subject: [PATCH 2/9] add linting job to testing workflow --- .github/workflows/test.yml | 12 ++++++------ Makefile | 3 +++ lint/all | 4 ++++ lint/all.bat | 1 + lint/pylint | 4 ++++ lint/pylint.bat | 1 + 6 files changed, 19 insertions(+), 6 deletions(-) create mode 100755 lint/all create mode 100644 lint/all.bat create mode 100755 lint/pylint create mode 100755 lint/pylint.bat diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bb0d88fe..7847d419 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: Run tests +name: Install, Lint & Test on: push: @@ -20,7 +20,7 @@ jobs: # github.com/actions/python-versions/blob/main/versions-manifest.json steps: - - name: Checkout repo + - name: Checkout Repo uses: actions/checkout@v2 - name: Set Up Python ${{ matrix.python-version }} @@ -28,12 +28,12 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Display Python version - run: python -c "import sys; print(sys.version)" - - - name: Install dependencies + - name: Install Python Module(s)/Package(s) & Dependencies run: make install-editable + - name: Lint Python Code + run: make lint-all + - name: Install pytest run: | python -m pip install --upgrade pip diff --git a/Makefile b/Makefile index 5b4fb3a5..5118400c 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,5 @@ install-editable: @ install/install-editable + +lint-all: + @ lint/all diff --git a/lint/all b/lint/all new file mode 100755 index 00000000..2781b435 --- /dev/null +++ b/lint/all @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + + +lint/pylint diff --git a/lint/all.bat b/lint/all.bat new file mode 100644 index 00000000..4230ea15 --- /dev/null +++ b/lint/all.bat @@ -0,0 +1 @@ +lint/pylint.bat diff --git a/lint/pylint b/lint/pylint new file mode 100755 index 00000000..b5966c19 --- /dev/null +++ b/lint/pylint @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + + +pylint src/ diff --git a/lint/pylint.bat b/lint/pylint.bat new file mode 100755 index 00000000..6355d5b9 --- /dev/null +++ b/lint/pylint.bat @@ -0,0 +1 @@ +pylint src/ From c80efbfb72dfb8d43f207424958b1caf8bc8d559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20LUONG=20=28L=C6=AF=C6=A0NG=20Th=E1=BA=BF=20Vi?= =?UTF-8?q?nh=29?= Date: Wed, 8 Nov 2023 21:39:33 -0800 Subject: [PATCH 3/9] update .pylintrc config file --- .pylintrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.pylintrc b/.pylintrc index 818518a7..e397d57a 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,3 +1,4 @@ [MESSAGES CONTROL] disable= + invalid-name, From ec0a6c6a0d8e5eb62872b0c3f66b0142298aa0b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20LUONG=20=28L=C6=AF=C6=A0NG=20Th=E1=BA=BF=20Vi?= =?UTF-8?q?nh=29?= Date: Wed, 8 Nov 2023 21:41:02 -0800 Subject: [PATCH 4/9] add module docstring to vex._util.io --- src/vex/_util/io.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/vex/_util/io.py b/src/vex/_util/io.py index a8d2681d..44477428 100644 --- a/src/vex/_util/io.py +++ b/src/vex/_util/io.py @@ -1,3 +1,6 @@ +"""IO Utilities.""" + + from contextlib import contextmanager from io import StringIO import sys From 65634ab9e330e43bd1e03616349c384acea428d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20LUONG=20=28L=C6=AF=C6=A0NG=20Th=E1=BA=BF=20Vi?= =?UTF-8?q?nh=29?= Date: Wed, 8 Nov 2023 21:43:33 -0800 Subject: [PATCH 5/9] suppress too-few-public-methods PyLint error in Enum classes --- src/vex/_common_enums/distance.py | 2 +- src/vex/_common_enums/power.py | 2 +- src/vex/_common_enums/rotation.py | 2 +- src/vex/_common_enums/temperature.py | 2 +- src/vex/_common_enums/velocity.py | 2 +- src/vex/motor/current.py | 2 +- src/vex/motor/efficiency.py | 2 +- src/vex/motor/torque.py | 2 +- src/vex/motor/voltage.py | 2 +- src/vex/time/units.py | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/vex/_common_enums/distance.py b/src/vex/_common_enums/distance.py index 15355565..cde5cbb4 100644 --- a/src/vex/_common_enums/distance.py +++ b/src/vex/_common_enums/distance.py @@ -31,5 +31,5 @@ class DistanceUnits(IntEnum): INCHES: DistanceUnits = DistanceUnits.IN -class _Distance(_MeasurementWithUnitABC): +class _Distance(_MeasurementWithUnitABC): # pylint: disable=too-few-public-methods unit: DistanceUnits = MM diff --git a/src/vex/_common_enums/power.py b/src/vex/_common_enums/power.py index dcaa6069..3aa8a336 100644 --- a/src/vex/_common_enums/power.py +++ b/src/vex/_common_enums/power.py @@ -24,5 +24,5 @@ class PowerUnits(IntEnum): WATT: int = 0 # unit representing values of power in watts -class _Power(_MeasurementWithUnitABC): +class _Power(_MeasurementWithUnitABC): # pylint: disable=too-few-public-methods unit: PowerUnits = PowerUnits.WATT diff --git a/src/vex/_common_enums/rotation.py b/src/vex/_common_enums/rotation.py index 982e1d7b..0af48717 100755 --- a/src/vex/_common_enums/rotation.py +++ b/src/vex/_common_enums/rotation.py @@ -31,5 +31,5 @@ class RotationUnits(IntEnum): TURNS: RotationUnits = RotationUnits.REV -class _Rotation(_MeasurementWithUnitABC): +class _Rotation(_MeasurementWithUnitABC): # pylint: disable=too-few-public-methods unit: RotationUnits = DEGREES diff --git a/src/vex/_common_enums/temperature.py b/src/vex/_common_enums/temperature.py index f1e38d64..409d33bd 100644 --- a/src/vex/_common_enums/temperature.py +++ b/src/vex/_common_enums/temperature.py @@ -26,6 +26,6 @@ class TemperatureUnits(IntEnum): PCT: int = 0xFF -class _Temperature(_MeasurementWithUnitABC): +class _Temperature(_MeasurementWithUnitABC): # pylint: disable=too-few-public-methods measurement: float unit: TemperatureUnits = TemperatureUnits.CELSIUS diff --git a/src/vex/_common_enums/velocity.py b/src/vex/_common_enums/velocity.py index 63edef97..23d03e8d 100755 --- a/src/vex/_common_enums/velocity.py +++ b/src/vex/_common_enums/velocity.py @@ -37,5 +37,5 @@ class VelocityUnits(IntEnum): DPS: VelocityUnits = VelocityUnits.DPS -class _Velocity(_MeasurementWithUnitABC): +class _Velocity(_MeasurementWithUnitABC): # pylint: disable=too-few-public-methods unit: VelocityUnits = RPM diff --git a/src/vex/motor/current.py b/src/vex/motor/current.py index ac4c7b85..e9846be9 100644 --- a/src/vex/motor/current.py +++ b/src/vex/motor/current.py @@ -17,5 +17,5 @@ class CurrentUnits(IntEnum): AMP: int = auto() -class _Current(_MeasurementWithUnitABC): +class _Current(_MeasurementWithUnitABC): # pylint: disable=too-few-public-methods unit: CurrentUnits = CurrentUnits.AMP diff --git a/src/vex/motor/efficiency.py b/src/vex/motor/efficiency.py index d9fed6ee..3fd94759 100644 --- a/src/vex/motor/efficiency.py +++ b/src/vex/motor/efficiency.py @@ -11,6 +11,6 @@ __all__: Sequence[LiteralString] = ('_Efficiency',) -class _Efficiency(_MeasurementWithUnitABC): +class _Efficiency(_MeasurementWithUnitABC): # pylint: disable=too-few-public-methods measurement: float unit: PercentUnits | Literal[PERCENT] = PERCENT diff --git a/src/vex/motor/torque.py b/src/vex/motor/torque.py index ef0c8b9f..5f86e3fc 100755 --- a/src/vex/motor/torque.py +++ b/src/vex/motor/torque.py @@ -30,5 +30,5 @@ class TorqueUnits(IntEnum): IN_LB: int = 1 # torque unit measured in Inch Pounds -class _Torque(_MeasurementWithUnitABC): +class _Torque(_MeasurementWithUnitABC): # pylint: disable=too-few-public-methods unit: TorqueUnits | PercentUnits | Literal[PERCENT] = PERCENT diff --git a/src/vex/motor/voltage.py b/src/vex/motor/voltage.py index 6e8cacac..15e0c8f1 100644 --- a/src/vex/motor/voltage.py +++ b/src/vex/motor/voltage.py @@ -25,5 +25,5 @@ class VoltageUnits(IntEnum): MV: int = 1 -class _Voltage(_MeasurementWithUnitABC): +class _Voltage(_MeasurementWithUnitABC): # pylint: disable=too-few-public-methods unit: VoltageUnits = VoltageUnits.VOLT diff --git a/src/vex/time/units.py b/src/vex/time/units.py index d469fcbd..9a893517 100755 --- a/src/vex/time/units.py +++ b/src/vex/time/units.py @@ -33,5 +33,5 @@ class TimeUnits(IntEnum): MSEC: TimeUnits = TimeUnits.MSEC -class _Time(_MeasurementWithUnitABC): +class _Time(_MeasurementWithUnitABC): # pylint: disable=too-few-public-methods unit: TimeUnits = SECONDS From 74a46ee5cf2d5336bf94cb40bf594c3222065601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20LUONG=20=28L=C6=AF=C6=A0NG=20Th=E1=BA=BF=20Vi?= =?UTF-8?q?nh=29?= Date: Wed, 8 Nov 2023 21:53:10 -0800 Subject: [PATCH 6/9] suppress too-many-arguments PyLint errors in Motor-related classes --- src/drivetrain.py | 16 ++++++++-------- src/motor_group.py | 11 ++++++----- src/smartdrive.py | 12 ++++++------ src/vex/motor/__init__.py | 11 ++++++----- src/vex/multi_device_group/drive_train.py | 1 + src/vex/touch_led/__init__.py | 1 + 6 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/drivetrain.py b/src/drivetrain.py index f0d91981..c2fd24e8 100644 --- a/src/drivetrain.py +++ b/src/drivetrain.py @@ -55,8 +55,8 @@ class Drivetrain: # pylint: disable=too-many-instance-attributes a DistanceUnits enum value - gear_ratio: external gear ratio, usually 1.0 """) - def __init__( - self, + def __init__( # pylint: disable=too-many-arguments + self: Self, left_motor: DrivetrainMotorType, right_motor: DrivetrainMotorType, wheel_travel: Num = 200, track_width: Num = 176, distanceUnits: DistanceUnits = DistanceUnits.MM, @@ -128,8 +128,8 @@ def drive(self: Self, directionType: DirectionType, True if the drivetrain has reached the target distance, False otherwise """) @act - def drive_for( - self, directionType: DirectionType, + def drive_for( # pylint: disable=too-many-arguments + self: Self, directionType: DirectionType, distance: Num, distanceUnits: DistanceUnits = DistanceUnits.MM, velocity: Optional[Num] = None, velocityUnits: VelocityUnits = VelocityUnits.PCT, @@ -150,8 +150,8 @@ def drive_for( a VelocityUnits enum value """) @act - def start_drive_for( - self, directionType: DirectionType, + def start_drive_for( # pylint: disable=too-many-arguments + self: Self, directionType: DirectionType, distance: Num, distanceUnits: DistanceUnits = DistanceUnits.MM, velocity: Optional[Num] = None, velocityUnits: VelocityUnits = VelocityUnits.PCT, /): @@ -193,7 +193,7 @@ def turn(self: Self, turnType: TurnType, Reimplemented from drivetrain.Drivetrain. """) @act - def turn_for(self: Self, turnType: TurnType, + def turn_for(self: Self, turnType: TurnType, # pylint: disable=too-many-arguments angle: Num, rotationUnits: RotationUnits = RotationUnits.DEG, # noqa: E501 velocity: Optional[Num] = None, velocityUnits: VelocityUnits = VelocityUnits.PCT, @@ -216,7 +216,7 @@ def turn_for(self: Self, turnType: TurnType, Reimplemented in smartdrive.Smartdrive. """) @act - def start_turn_for(self: Self, turnType: TurnType, + def start_turn_for(self: Self, turnType: TurnType, # pylint: disable=too-many-arguments angle: Num, angleUnits: RotationUnits = RotationUnits.DEG, # noqa: E501 velocity: Optional[Num] = None, velocityUnits: VelocityUnits = VelocityUnits.PCT, /): diff --git a/src/motor_group.py b/src/motor_group.py index 21354f9a..e44c92f4 100644 --- a/src/motor_group.py +++ b/src/motor_group.py @@ -19,6 +19,7 @@ from vex.motor.torque import TorqueUnits from vex.time.units import TimeUnits from vex._common_enums.rotation import RotationUnits +from vex._common_enums.percent import PERCENT from vex._common_enums.velocity import VelocityUnits from vex._util.doc import robotmesh_doc @@ -197,7 +198,7 @@ def spin(self: Self, By default, this parameter is true. """) @act - def spin_to(self: Self, + def spin_to(self: Self, # pylint: disable=too-many-arguments rotation: Num, rotationUnits: RotationUnits = RotationUnits.DEG, # noqa: E501 velocity: Optional[Num] = None, velocityUnits: VelocityUnits = VelocityUnits.PCT, @@ -226,7 +227,7 @@ def spin_to(self: Self, By default, this parameter is true. """) @act - def spin_for(self: Self, + def spin_for(self: Self, # pylint: disable=too-many-arguments dir: DirectionType, # pylint: disable=redefined-builtin rotation: Num, rotationUnits: RotationUnits = RotationUnits.DEG, # noqa: E501 velocity: Optional[Num] = None, @@ -247,7 +248,7 @@ def spin_for(self: Self, a VelocityUnits enum value. """) @act - def spin_for_time(self: Self, + def spin_for_time(self: Self, # pylint: disable=too-many-arguments dir: DirectionType, # pylint: disable=redefined-builtin time: Num, timeUnits: TimeUnits = TimeUnits.SEC, velocity: Optional[Num] = None, @@ -286,7 +287,7 @@ def start_spin_to(self: Self, - velocityUnits: The measurement unit for the velocity value. """) @act - def start_spin_for(self: Self, + def start_spin_for(self: Self, # pylint: disable=too-many-arguments dir: DirectionType, # pylint: disable=redefined-builtin rotation: Num, rotationUnits: RotationUnits = RotationUnits.DEG, # noqa: E501 @@ -335,7 +336,7 @@ def stop(self: Self, brakeType: Optional[BrakeType] = None, /): @act def set_max_torque_percent(self: Self, value: int, /): """Set max torque percentage level.""" - self.max_torque[TorqueUnits.PCT] = value + self.max_torque[PERCENT] = value @robotmesh_doc(""" Set the max torque of all motors. diff --git a/src/smartdrive.py b/src/smartdrive.py index 646f1b23..8d01bef7 100644 --- a/src/smartdrive.py +++ b/src/smartdrive.py @@ -49,8 +49,8 @@ class Smartdrive(Drivetrain): a DistanceUnits enum value - gear_ratio: external gear ratio, usually 1.0 """) - def __init__( - self, + def __init__( # pylint: disable=too-many-arguments + self: Self, left_motor: DrivetrainMotorType, right_motor: DrivetrainMotorType, gyro: Gyro, wheel_travel: Num = 200, track_width: Num = 176, @@ -100,8 +100,8 @@ def __hash__(self: Self) -> int: By default, this parameter is true. """) @act - def turn_to_heading( - self, + def turn_to_heading( # pylint: disable=too-many-arguments + self: Self, angle: Num, angleUnits: RotationUnits = RotationUnits.DEG, velocity: Optional[Num] = None, velocityUnits: VelocityUnits = VelocityUnits.PCT, @@ -112,8 +112,8 @@ def turn_to_heading( Turn to rotation. """) @act - def turn_to_rotation( - self, + def turn_to_rotation( # pylint: disable=too-many-arguments + self: Self, angle: Num, angleUnits: RotationUnits = RotationUnits.DEG, velocity: Optional[Num] = None, velocityUnits: VelocityUnits = VelocityUnits.PCT, diff --git a/src/vex/motor/__init__.py b/src/vex/motor/__init__.py index 29bcd54d..a41bc5cf 100644 --- a/src/vex/motor/__init__.py +++ b/src/vex/motor/__init__.py @@ -90,7 +90,8 @@ def __init__(self: Self, index: Ports, /, *args: GearSetting | bool) -> None: # self.gear_setting, self.reverse = args assert isinstance(self.gear_setting, GearSetting), \ - TypeError(f'*** 2ND ARG gearSetting={self.gear_setting} NOT GearSetting ***') # noqa: E501 + TypeError(f'*** 2ND ARG gearSetting={self.gear_setting} ' + 'NOT GearSetting ***') assert isinstance(self.reverse, bool), \ TypeError(f'*** 3ND ARG reverse={self.reverse} NOT BOOL ***') @@ -493,8 +494,8 @@ def spin_for(self: Self, direction: DirectionType, ... @overload - def spin_for( - self, + def spin_for( # pylint: disable=too-many-arguments + self: Self, dir: Optional[DirectionType], # pylint: disable=redefined-builtin rotation: Num, rotationUnits: RotationUnits = RotationUnits.DEG, @@ -641,7 +642,7 @@ def spin_to_position(self: Self, By default, this parameter is true. """) @act - def spin_to(self: Self, + def spin_to(self: Self, # pylint: disable=too-many-arguments rotation: Num, rotationUnits: RotationUnits = RotationUnits.DEG, velocity: Optional[Num] = None, @@ -677,7 +678,7 @@ def spin_to(self: Self, - velocityUnits: measurement unit for velocity """) @act - def spin_for_time( + def spin_for_time( # pylint: disable=too-many-arguments self, dir: Optional[DirectionType], # pylint: disable=redefined-builtin time: Num, diff --git a/src/vex/multi_device_group/drive_train.py b/src/vex/multi_device_group/drive_train.py index 6a9e6ac3..1b833eeb 100755 --- a/src/vex/multi_device_group/drive_train.py +++ b/src/vex/multi_device_group/drive_train.py @@ -31,6 +31,7 @@ class DriveTrain(MotorGroup): # pylint: disable=too-many-instance-attributes def __init__(self: Self, left_motor: Motor, right_motor: Motor, wheel_base: float = 200, track_width: float = 176, length_unit: DistanceUnits = MM, gear_ratio: float = 1, /): + # pylint: disable=too-many-arguments """Initialize Drivetrain.""" super().__init__(left_motor, right_motor) diff --git a/src/vex/touch_led/__init__.py b/src/vex/touch_led/__init__.py index e73b752a..2e14d92a 100755 --- a/src/vex/touch_led/__init__.py +++ b/src/vex/touch_led/__init__.py @@ -197,6 +197,7 @@ def blink_hue(self: Self, colorHue: Color, @act def blink_rgb(self: Self, red: int, green: int, blue: int, on_time: float = 0.25, off_time: float = 0.25, /): + # pylint: disable=too-many-arguments """Blink RGB color.""" @robotmesh_doc(""" From 67052198bb102abff2c11344eb9b64677bbae725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20LUONG=20=28L=C6=AF=C6=A0NG=20Th=E1=BA=BF=20Vi?= =?UTF-8?q?nh=29?= Date: Wed, 8 Nov 2023 21:55:20 -0800 Subject: [PATCH 7/9] remove unused TypeVar import in vex.controller.axis sub-module --- src/vex/controller/axis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vex/controller/axis.py b/src/vex/controller/axis.py index a0af5e5d..a75de730 100755 --- a/src/vex/controller/axis.py +++ b/src/vex/controller/axis.py @@ -3,7 +3,7 @@ from collections.abc import Callable, Sequence from threading import Thread -from typing import LiteralString, Self, TypeVar # noqa: F401 +from typing import LiteralString, Self from abm.decor import sense From 84222014260e3643adec972c616a5d93adb858bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20LUONG=20=28L=C6=AF=C6=A0NG=20Th=E1=BA=BF=20Vi?= =?UTF-8?q?nh=29?= Date: Wed, 8 Nov 2023 22:06:41 -0800 Subject: [PATCH 8/9] update linting suppressions in vex.motor sub-module --- src/vex/motor/__init__.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/vex/motor/__init__.py b/src/vex/motor/__init__.py index a41bc5cf..eddef3cb 100644 --- a/src/vex/motor/__init__.py +++ b/src/vex/motor/__init__.py @@ -1,6 +1,9 @@ """Motor.""" +# pylint: disable=too-many-lines + + from collections.abc import Sequence from typing import Literal, LiteralString, Optional, Self, overload @@ -679,7 +682,7 @@ def spin_to(self: Self, # pylint: disable=too-many-arguments """) @act def spin_for_time( # pylint: disable=too-many-arguments - self, + self: Self, dir: Optional[DirectionType], # pylint: disable=redefined-builtin time: Num, timeUnits: TimeUnits = TimeUnits.SEC, @@ -714,8 +717,8 @@ def spin_for_time( # pylint: disable=too-many-arguments - velocityUnits: measurement unit for velocity """) @act - def start_spin_for( - self, + def start_spin_for( # pylint: disable=too-many-arguments + self: Self, dir: Optional[DirectionType], # pylint: disable=redefined-builtin rotation: Num, rotationUnits: RotationUnits = RotationUnits.DEG, @@ -989,12 +992,13 @@ def efficiency( Returns: temperature of motor in unit defined """) @sense - def temperature( - self: Self, - temperatureUnits: TemperatureUnits = TemperatureUnits.CELSIUS, /) -> float: # noqa: E501 + def temperature(self: Self, + temperatureUnits: TemperatureUnits = TemperatureUnits.CELSIUS, # noqa: E501 + /) -> float: """Return temperature.""" assert isinstance(temperatureUnits, TemperatureUnits), \ - TypeError(f'*** temperatureUnits={temperatureUnits} NOT OF TYPE TemperatureUnits ***') # noqa: E501 + TypeError(f'*** temperatureUnits={temperatureUnits} ' + 'NOT OF TYPE TemperatureUnits ***') @robotmesh_doc(""" Get device type From dc3610a7dd586d6b7ef8dada99281d66de1e2e4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Vinh=20LUONG=20=28L=C6=AF=C6=A0NG=20Th=E1=BA=BF=20Vi?= =?UTF-8?q?nh=29?= Date: Wed, 8 Nov 2023 22:09:34 -0800 Subject: [PATCH 9/9] suppress duplicate-code PyLint error --- .pylintrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.pylintrc b/.pylintrc index e397d57a..0ac7a637 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,4 +1,5 @@ [MESSAGES CONTROL] disable= + duplicate-code, invalid-name,