From 8073926ecabc5a968da300cc94d7816eef2ea6af Mon Sep 17 00:00:00 2001 From: josep Date: Wed, 18 Dec 2024 18:34:26 +0900 Subject: [PATCH 01/18] =?UTF-8?q?motor=20set=20angle=20=EB=8F=99=EC=9E=91?= =?UTF-8?q?=20=EC=9D=B4=EC=8A=88=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modi_plus/module/output_module/motor.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modi_plus/module/output_module/motor.py b/modi_plus/module/output_module/motor.py index e680f4a..3bfcdd4 100644 --- a/modi_plus/module/output_module/motor.py +++ b/modi_plus/module/output_module/motor.py @@ -104,11 +104,17 @@ def set_angle(self, target_angle: int, target_speed: int = 70) -> None: :return: None """ + if (target_angle < 0 or target_angle > 360)\ + or (target_speed < 0 or target_speed > 100): + return + self._set_property( destination_id=self._id, property_num=Motor.PROPERTY_MOTOR_ANGLE, property_values=(("u16", target_angle), - ("u16", target_speed), ) + ("u16", target_speed), + ("u16", 0), + ("u16", 0), ) ) time.sleep(0.01) From 4fb1e21a0dfd27021d0771e0454d3b010001265f Mon Sep 17 00:00:00 2001 From: josep Date: Wed, 18 Dec 2024 20:02:43 +0900 Subject: [PATCH 02/18] =?UTF-8?q?=ED=99=98=EA=B2=BD=20=EC=A1=B0=EB=8F=84?= =?UTF-8?q?=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modi_plus/module/input_module/env.py | 6 +++--- modi_plus/util/inspection_util.py | 4 ++-- modi_plus/util/usage_util.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modi_plus/module/input_module/env.py b/modi_plus/module/input_module/env.py index 90711e1..8eb16b2 100644 --- a/modi_plus/module/input_module/env.py +++ b/modi_plus/module/input_module/env.py @@ -14,10 +14,10 @@ class Env(InputModule): PROPERTY_OFFSET_VOLUME = 6 @property - def intensity(self) -> int: - """Returns the value of intensity between 0 and 100 + def illuminance(self) -> int: + """Returns the value of illuminance between 0 and 100 - :return: The environment's intensity. + :return: The environment's illuminance. :rtype: int """ diff --git a/modi_plus/util/inspection_util.py b/modi_plus/util/inspection_util.py index e18d8f1..ed6b4ea 100644 --- a/modi_plus/util/inspection_util.py +++ b/modi_plus/util/inspection_util.py @@ -106,13 +106,13 @@ def inspect_battery(self, module, i, nb_modules): def inspect_env(self, module, i, nb_modules): self.print_wrap( """ - Environment module has intensity, temperature, humidity and volume as its property. + Environment module has illuminance, temperature, humidity and volume as its property. """ ) input("\nIf you are ready to inspect this module, Press ENTER: ") self.clear() - properties = ["intensity", "temperature", "humidity", "volume"] + properties = ["illuminance", "temperature", "humidity", "volume"] for prop in properties: self.print_module_page(module, i, nb_modules) diff --git a/modi_plus/util/usage_util.py b/modi_plus/util/usage_util.py index 814c37a..f3b21a2 100644 --- a/modi_plus/util/usage_util.py +++ b/modi_plus/util/usage_util.py @@ -135,7 +135,7 @@ def run_env_manual(self): env = bundle.envs[0] while True: - print(f"Env ({env.id}) intensity: {env.intensity}") + print(f"Env ({env.id}) illuminance: {env.illuminance}") print(f"Env ({env.id}) temperature: {env.temperature}") print(f"Env ({env.id}) humidity: {env.humidity}") print(f"Env ({env.id}) volume: {env.volume}") From 4e8d89511c91451905ff97d1b6ea73f370e0ac61 Mon Sep 17 00:00:00 2001 From: josep Date: Wed, 18 Dec 2024 20:11:26 +0900 Subject: [PATCH 03/18] =?UTF-8?q?imu=20roll=20pitch=20yaw=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=EC=9D=84=20x,y,z=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/basic_usage_examples/imu_example.py | 6 ++--- examples/creation_examples/brush.py | 4 +-- examples/creation_examples/dodge.py | 6 ++--- modi_plus/module/input_module/imu.py | 26 ++++++++++---------- modi_plus/module/setup_module/network.py | 18 +++++++------- modi_plus/util/usage_util.py | 6 ++--- tests/module/input_module/test_imu.py | 20 +++++++-------- tests/module/setup_module/test_network.py | 18 +++++++------- 8 files changed, 52 insertions(+), 52 deletions(-) diff --git a/examples/basic_usage_examples/imu_example.py b/examples/basic_usage_examples/imu_example.py index dd4282f..24d8af8 100644 --- a/examples/basic_usage_examples/imu_example.py +++ b/examples/basic_usage_examples/imu_example.py @@ -11,9 +11,9 @@ imu = bundle.imus[0] while True: - print(f"Pitch: {imu.pitch:<10}" - f"Roll: {imu.roll:<10}" - f"Yaw: {imu.yaw:<10}" + print(f"Angle_y: {imu.angle_y:<10}" + f"Angle_x: {imu.angle_x:<10}" + f"Angle_z: {imu.angle_z:<10}" f"Vel x: {imu.angular_vel_x:<10}" f"Vel y: {imu.angular_vel_y:<10}" f"Vel z: {imu.angular_vel_z:<10}" diff --git a/examples/creation_examples/brush.py b/examples/creation_examples/brush.py index a525f72..cc2aa3b 100644 --- a/examples/creation_examples/brush.py +++ b/examples/creation_examples/brush.py @@ -15,8 +15,8 @@ def setup(self): def update(self): h, w = self.height // 2, self.width // 2 - self.cursor.y = h - h * sin(radians(-self.imu.roll)) - self.cursor.x = w - w * sin(radians(-self.imu.pitch)) + self.cursor.y = h - h * sin(radians(-self.imu.angle_x)) + self.cursor.x = w - w * sin(radians(-self.imu.angle_y)) if self.button.pressed: self.add_object(Brush((self.cursor.x, self.cursor.y), "x")) diff --git a/examples/creation_examples/dodge.py b/examples/creation_examples/dodge.py index 0c0823e..e283d2b 100644 --- a/examples/creation_examples/dodge.py +++ b/examples/creation_examples/dodge.py @@ -34,10 +34,10 @@ def setup(self): self.fire.x, self.fire.y = 25, 20 def update(self): - pitch = -self.imu.pitch - if pitch < -5 and self.player.x < 48: + angle_y = -self.imu.angle_y + if angle_y < -5 and self.player.x < 48: self.player.x += 30 * self.delta_time - elif pitch > 5 and self.player.x > 0: + elif angle_y > 5 and self.player.x > 0: self.player.x -= 30 * self.delta_time self.fire.y -= 15 * self.delta_time if self.fire.y < 0: diff --git a/modi_plus/module/input_module/imu.py b/modi_plus/module/input_module/imu.py index db9821f..b5a5dbe 100644 --- a/modi_plus/module/input_module/imu.py +++ b/modi_plus/module/input_module/imu.py @@ -24,10 +24,10 @@ class Imu(InputModule): PROPERTY_OFFSET_VIBRATION = 0 @property - def roll(self) -> float: - """Returns the roll angle of the imu + def angle_x(self) -> float: + """Returns the angle_x angle of the imu - :return: The imu's roll angle. + :return: The imu's angle_x angle. :rtype: float """ @@ -37,10 +37,10 @@ def roll(self) -> float: return data @property - def pitch(self) -> float: - """Returns the pitch angle of the imu + def angle_y(self) -> float: + """Returns the angle_y angle of the imu - :return: The imu's pitch angle. + :return: The imu's angle_y angle. :rtype: float """ @@ -50,10 +50,10 @@ def pitch(self) -> float: return data @property - def yaw(self) -> float: - """Returns the yaw angle of the imu + def angle_z(self) -> float: + """Returns the angle_zle_z angle of the imu - :return: The imu's yaw angle. + :return: The imu's angle_z angle. :rtype: float """ @@ -64,17 +64,17 @@ def yaw(self) -> float: @property def angle(self) -> Tuple[float, float, float]: - """Returns the roll, pitch and yaw angle of the imu + """Returns the angle_x, angle_y and angle_z angle of the imu - :return: The imu's angles of roll, pitch and yaw. + :return: The imu's angles of angle_x, angle_y and angle_z. :rtype: tuple """ - return self.roll, self.pitch, self.yaw + return self.angle_x, self.angle_y_y, self.angle_z @property def angular_vel_x(self) -> float: - """Returns the roll angle of the imu + """Returns the angle_x angle of the imu :return: The imu's angular velocity the about x-axis. :rtype: float diff --git a/modi_plus/module/setup_module/network.py b/modi_plus/module/setup_module/network.py index bf3bdc5..9a17cfc 100644 --- a/modi_plus/module/setup_module/network.py +++ b/modi_plus/module/setup_module/network.py @@ -245,10 +245,10 @@ def time_up(self) -> bool: @property @check_connection - def imu_roll(self) -> int: - """Returns the roll angle of the MODI Play imu + def imu_angle_x(self) -> int: + """Returns the angle_x angle of the MODI Play imu - :return: Roll angle. + :return: Angle_x angle. :rtype: int """ @@ -261,10 +261,10 @@ def imu_roll(self) -> int: @property @check_connection - def imu_pitch(self) -> int: - """Returns the pitch angle of the MODI Play imu + def imu_angle_y(self) -> int: + """Returns the angle_y angle of the MODI Play imu - :return: Pitch angle. + :return: Angle_y angle. :rtype: int """ @@ -277,10 +277,10 @@ def imu_pitch(self) -> int: @property @check_connection - def imu_yaw(self) -> int: - """Returns the yaw angle of the MODI Play imu + def imu_angle_zle_z(self) -> int: + """Returns the angle_z angle of the MODI Play imu - :return: Yaw angle. + :return: Angle_z angle. :rtype: int """ diff --git a/modi_plus/util/usage_util.py b/modi_plus/util/usage_util.py index f3b21a2..fa8b347 100644 --- a/modi_plus/util/usage_util.py +++ b/modi_plus/util/usage_util.py @@ -154,9 +154,9 @@ def run_imu_manual(self): imu = bundle.imus[0] while True: - print(f"Gyro ({imu.id}) roll: {imu.roll}") - print(f"Gyro ({imu.id}) pitch: {imu.pitch}") - print(f"Gyro ({imu.id}) yaw: {imu.yaw}") + print(f"Gyro ({imu.id}) angle_x: {imu.angle_x}") + print(f"Gyro ({imu.id}) angle_y: {imu.angle_y}") + print(f"Gyro ({imu.id}) angle_z: {imu.angle_z}") print(f"Gyro ({imu.id}) angular_vel_x: {imu.angular_vel_x}") print(f"Gyro ({imu.id}) angular_vel_y: {imu.angular_vel_y}") print(f"Gyro ({imu.id}) angular_vel_z: {imu.angular_vel_z}") diff --git a/tests/module/input_module/test_imu.py b/tests/module/input_module/test_imu.py index 9998c2e..1d23bfd 100644 --- a/tests/module/input_module/test_imu.py +++ b/tests/module/input_module/test_imu.py @@ -20,30 +20,30 @@ def tearDown(self): del self.imu - def test_get_roll(self): - """Test get_roll method.""" + def test_get_angle_x(self): + """Test get_angle_x method.""" - _ = self.imu.roll + _ = self.imu.angle_x self.assertEqual( self.connection.send_list[0], parse_get_property_message(-1, Imu.PROPERTY_ANGLE_STATE, self.imu.prop_samp_freq) ) self.assertEqual(_, 0.0) - def test_get_pitch(self): - """Test get_pitch method.""" + def test_get_angle_y(self): + """Test get_angle_y method.""" - _ = self.imu.pitch + _ = self.imu.angle_y self.assertEqual( self.connection.send_list[0], parse_get_property_message(-1, Imu.PROPERTY_ANGLE_STATE, self.imu.prop_samp_freq) ) self.assertEqual(_, 0.0) - def test_get_yaw(self): - """Test get_yaw method.""" + def test_get_angle_z(self): + """Test get_angle_z method.""" - _ = self.imu.yaw + _ = self.imu.angle_z self.assertEqual( self.connection.send_list[0], parse_get_property_message(-1, Imu.PROPERTY_ANGLE_STATE, self.imu.prop_samp_freq) @@ -121,7 +121,7 @@ def test_get_vibration(self): self.assertEqual(_, 0.0) def test_get_angle(self): - """Test get_yaw method.""" + """Test get_angle_z method.""" _ = self.imu.angle self.assertEqual( diff --git a/tests/module/setup_module/test_network.py b/tests/module/setup_module/test_network.py index 7a7f7ca..aa7abc3 100644 --- a/tests/module/setup_module/test_network.py +++ b/tests/module/setup_module/test_network.py @@ -110,30 +110,30 @@ def test_time_up(self): ) self.assertEqual(_, False) - def test_imu_roll(self): - """Test imu_roll method.""" + def test_imu_angle_x(self): + """Test imu_angle_x method.""" - _ = self.network.imu_roll + _ = self.network.imu_angle_x self.assertEqual( self.connection.send_list[0], parse_get_property_message(-1, Network.PROPERTY_NETWORK_IMU, self.network.prop_samp_freq) ) self.assertEqual(_, 0) - def test_imu_pitch(self): - """Test imu_pitch method.""" + def test_imu_angle_y(self): + """Test imu_angle_y method.""" - _ = self.network.imu_pitch + _ = self.network.imu_angle_y self.assertEqual( self.connection.send_list[0], parse_get_property_message(-1, Network.PROPERTY_NETWORK_IMU, self.network.prop_samp_freq) ) self.assertEqual(_, 0) - def test_imu_yaw(self): - """Test imu_yaw method.""" + def test_imu_angle_z(self): + """Test imu_angle_z method.""" - _ = self.network.imu_yaw + _ = self.network.imu_angle_z self.assertEqual( self.connection.send_list[0], parse_get_property_message(-1, Network.PROPERTY_NETWORK_IMU, self.network.prop_samp_freq) From 210998351f8940c2a66209243043351e4ea62a57 Mon Sep 17 00:00:00 2001 From: josep Date: Thu, 19 Dec 2024 09:51:02 +0900 Subject: [PATCH 04/18] =?UTF-8?q?unit=20test=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=951?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/basic_usage_examples/env_example.py | 2 +- modi_plus/module/input_module/env.py | 4 ++-- modi_plus/module/input_module/imu.py | 2 +- tests/module/input_module/test_env.py | 6 +++--- tests/module/output_module/test_motor.py | 5 ++++- tests/module/setup_module/test_network.py | 18 +++++++++--------- 6 files changed, 20 insertions(+), 17 deletions(-) diff --git a/examples/basic_usage_examples/env_example.py b/examples/basic_usage_examples/env_example.py index 20e8563..866f207 100644 --- a/examples/basic_usage_examples/env_example.py +++ b/examples/basic_usage_examples/env_example.py @@ -12,5 +12,5 @@ while True: print(f"humidity(%): {env.humidity:<10} temperature(°C): {env.temperature:<10} " - f"intensity(%): {env.intensity:<10} Volume(%): {env.volume:<10}", end="\r") + f"illuminance(%): {env.illuminance:<10} Volume(%): {env.volume:<10}", end="\r") time.sleep(0.02) diff --git a/modi_plus/module/input_module/env.py b/modi_plus/module/input_module/env.py index 8eb16b2..1569d03 100644 --- a/modi_plus/module/input_module/env.py +++ b/modi_plus/module/input_module/env.py @@ -8,7 +8,7 @@ class Env(InputModule): PROPERTY_ENV_STATE = 2 - PROPERTY_OFFSET_INTENSICY = 0 + PROPERTY_OFFSET_ILLUMINANCE = 0 PROPERTY_OFFSET_TEMPERATURE = 2 PROPERTY_OFFSET_HUMIDITY = 4 PROPERTY_OFFSET_VOLUME = 6 @@ -21,7 +21,7 @@ def illuminance(self) -> int: :rtype: int """ - offset = Env.PROPERTY_OFFSET_INTENSICY + offset = Env.PROPERTY_OFFSET_ILLUMINANCE raw = self._get_property(Env.PROPERTY_ENV_STATE) data = struct.unpack("h", raw[offset:offset + 2])[0] return data diff --git a/modi_plus/module/input_module/imu.py b/modi_plus/module/input_module/imu.py index b5a5dbe..c469a76 100644 --- a/modi_plus/module/input_module/imu.py +++ b/modi_plus/module/input_module/imu.py @@ -70,7 +70,7 @@ def angle(self) -> Tuple[float, float, float]: :rtype: tuple """ - return self.angle_x, self.angle_y_y, self.angle_z + return self.angle_x, self.angle_y, self.angle_z @property def angular_vel_x(self) -> float: diff --git a/tests/module/input_module/test_env.py b/tests/module/input_module/test_env.py index 811ba8b..14a7369 100644 --- a/tests/module/input_module/test_env.py +++ b/tests/module/input_module/test_env.py @@ -40,10 +40,10 @@ def test_get_humidity(self): ) self.assertEqual(_, 0) - def test_get_intensity(self): - """Test get_intensity method.""" + def test_get_illuminance(self): + """Test get_illuminance method.""" - _ = self.env.intensity + _ = self.env.illuminance self.assertEqual( self.connection.send_list[0], parse_get_property_message(-1, Env.PROPERTY_ENV_STATE, self.env.prop_samp_freq) diff --git a/tests/module/output_module/test_motor.py b/tests/module/output_module/test_motor.py index d57c8f4..0e6c15c 100644 --- a/tests/module/output_module/test_motor.py +++ b/tests/module/output_module/test_motor.py @@ -61,7 +61,10 @@ def test_set_angle(self): self.motor.angle = mock_angle, mock_speed set_message = parse_set_property_message( -1, Motor.PROPERTY_MOTOR_ANGLE, - (("u16", mock_angle), ("u16", mock_speed), ) + (("u16", mock_angle), + ("u16", mock_speed), + ("u16", 0), + ("u16", 0), ) ) sent_messages = [] while self.connection.send_list: diff --git a/tests/module/setup_module/test_network.py b/tests/module/setup_module/test_network.py index aa7abc3..7a7f7ca 100644 --- a/tests/module/setup_module/test_network.py +++ b/tests/module/setup_module/test_network.py @@ -110,30 +110,30 @@ def test_time_up(self): ) self.assertEqual(_, False) - def test_imu_angle_x(self): - """Test imu_angle_x method.""" + def test_imu_roll(self): + """Test imu_roll method.""" - _ = self.network.imu_angle_x + _ = self.network.imu_roll self.assertEqual( self.connection.send_list[0], parse_get_property_message(-1, Network.PROPERTY_NETWORK_IMU, self.network.prop_samp_freq) ) self.assertEqual(_, 0) - def test_imu_angle_y(self): - """Test imu_angle_y method.""" + def test_imu_pitch(self): + """Test imu_pitch method.""" - _ = self.network.imu_angle_y + _ = self.network.imu_pitch self.assertEqual( self.connection.send_list[0], parse_get_property_message(-1, Network.PROPERTY_NETWORK_IMU, self.network.prop_samp_freq) ) self.assertEqual(_, 0) - def test_imu_angle_z(self): - """Test imu_angle_z method.""" + def test_imu_yaw(self): + """Test imu_yaw method.""" - _ = self.network.imu_angle_z + _ = self.network.imu_yaw self.assertEqual( self.connection.send_list[0], parse_get_property_message(-1, Network.PROPERTY_NETWORK_IMU, self.network.prop_samp_freq) From 5e02e64fcd0a6958ff4fc4b45ab78c32b201c93c Mon Sep 17 00:00:00 2001 From: josep Date: Thu, 19 Dec 2024 10:34:36 +0900 Subject: [PATCH 05/18] =?UTF-8?q?python=203.7=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/unit_test_macos.yml | 2 +- .github/workflows/unit_test_ubuntu.yml | 2 +- .github/workflows/unit_test_windows.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/unit_test_macos.yml b/.github/workflows/unit_test_macos.yml index 7ac2221..bcae973 100644 --- a/.github/workflows/unit_test_macos.yml +++ b/.github/workflows/unit_test_macos.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/unit_test_ubuntu.yml b/.github/workflows/unit_test_ubuntu.yml index aa9f51c..1b2a043 100644 --- a/.github/workflows/unit_test_ubuntu.yml +++ b/.github/workflows/unit_test_ubuntu.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/unit_test_windows.yml b/.github/workflows/unit_test_windows.yml index 0c4cc29..b1459d5 100644 --- a/.github/workflows/unit_test_windows.yml +++ b/.github/workflows/unit_test_windows.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - uses: actions/checkout@v2 From 6c209234bfb6de240c77221fedfa6dd912581128 Mon Sep 17 00:00:00 2001 From: josep Date: Thu, 19 Dec 2024 10:39:20 +0900 Subject: [PATCH 06/18] =?UTF-8?q?network=20imu=20=EB=A1=A4=EB=B0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modi_plus/module/setup_module/network.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modi_plus/module/setup_module/network.py b/modi_plus/module/setup_module/network.py index 9a17cfc..bf3bdc5 100644 --- a/modi_plus/module/setup_module/network.py +++ b/modi_plus/module/setup_module/network.py @@ -245,10 +245,10 @@ def time_up(self) -> bool: @property @check_connection - def imu_angle_x(self) -> int: - """Returns the angle_x angle of the MODI Play imu + def imu_roll(self) -> int: + """Returns the roll angle of the MODI Play imu - :return: Angle_x angle. + :return: Roll angle. :rtype: int """ @@ -261,10 +261,10 @@ def imu_angle_x(self) -> int: @property @check_connection - def imu_angle_y(self) -> int: - """Returns the angle_y angle of the MODI Play imu + def imu_pitch(self) -> int: + """Returns the pitch angle of the MODI Play imu - :return: Angle_y angle. + :return: Pitch angle. :rtype: int """ @@ -277,10 +277,10 @@ def imu_angle_y(self) -> int: @property @check_connection - def imu_angle_zle_z(self) -> int: - """Returns the angle_z angle of the MODI Play imu + def imu_yaw(self) -> int: + """Returns the yaw angle of the MODI Play imu - :return: Angle_z angle. + :return: Yaw angle. :rtype: int """ From 112883ee3e34624687a440282bfeb1ade5b73a18 Mon Sep 17 00:00:00 2001 From: josep Date: Thu, 19 Dec 2024 10:43:44 +0900 Subject: [PATCH 07/18] =?UTF-8?q?PEP8=20=EA=B7=9C=EC=B9=99=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modi_plus/module/output_module/motor.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modi_plus/module/output_module/motor.py b/modi_plus/module/output_module/motor.py index 3bfcdd4..97923db 100644 --- a/modi_plus/module/output_module/motor.py +++ b/modi_plus/module/output_module/motor.py @@ -104,8 +104,8 @@ def set_angle(self, target_angle: int, target_speed: int = 70) -> None: :return: None """ - if (target_angle < 0 or target_angle > 360)\ - or (target_speed < 0 or target_speed > 100): + if ((target_angle < 0 or target_angle > 360) or + (target_speed < 0 or target_speed > 100)): return self._set_property( From d1fb9048e560362dd1e529db7ce7db4de3db645b Mon Sep 17 00:00:00 2001 From: josep Date: Thu, 19 Dec 2024 10:49:21 +0900 Subject: [PATCH 08/18] =?UTF-8?q?E129=20=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modi_plus/module/output_module/motor.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modi_plus/module/output_module/motor.py b/modi_plus/module/output_module/motor.py index 97923db..2795b8c 100644 --- a/modi_plus/module/output_module/motor.py +++ b/modi_plus/module/output_module/motor.py @@ -104,8 +104,10 @@ def set_angle(self, target_angle: int, target_speed: int = 70) -> None: :return: None """ - if ((target_angle < 0 or target_angle > 360) or - (target_speed < 0 or target_speed > 100)): + invalid_angle = (target_angle < 0 or target_angle > 360) + invalid_speed = (target_speed < 0 or target_speed > 100) + + if invalid_angle or invalid_speed: return self._set_property( From 1b06ba0670f1d4acdadc48351f94c8f6eb1dddaf Mon Sep 17 00:00:00 2001 From: josep Date: Tue, 24 Dec 2024 09:18:06 +0900 Subject: [PATCH 09/18] =?UTF-8?q?display=20=EB=B3=80=EC=88=98=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5=20=EC=8B=9C=20line=20=EC=84=A4=EC=A0=95=20=EA=B0=80?= =?UTF-8?q?=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic_usage_examples/display_example.py | 2 +- modi_plus/module/output_module/display.py | 36 +++++++++++++++---- tests/module/output_module/test_display.py | 22 ++++++++++-- 3 files changed, 50 insertions(+), 10 deletions(-) diff --git a/examples/basic_usage_examples/display_example.py b/examples/basic_usage_examples/display_example.py index 22cd467..1460e20 100644 --- a/examples/basic_usage_examples/display_example.py +++ b/examples/basic_usage_examples/display_example.py @@ -17,7 +17,7 @@ pos = (20, 30) for i in range(500): - display.write_variable(0, pos[0], pos[1]) + display.write_variable_xy(pos[0], pos[1], 0) pos = (pos[0] + vel[0], pos[1] + vel[1]) if pos[0] < 0 or pos[0] > 40: vel = (-vel[0], vel[1]) diff --git a/modi_plus/module/output_module/display.py b/modi_plus/module/output_module/display.py index c46f139..aa89098 100644 --- a/modi_plus/module/output_module/display.py +++ b/modi_plus/module/output_module/display.py @@ -216,7 +216,7 @@ def write_text(self, text: str) -> None: self._text = text time.sleep(0.02 + 0.003 * len(encoding_data)) - def write_variable(self, x: int, y: int, variable: float) -> None: + def write_variable_xy(self, x: int, y: int, variable: float) -> None: """Show the input variable on the display. :param x: X coordinate of the desired position @@ -227,13 +227,31 @@ def write_variable(self, x: int, y: int, variable: float) -> None: :type variable: float :return: None """ - self._set_property( self._id, Display.PROPERTY_DISPLAY_WRITE_VARIABLE, property_values=(("u8", x), - ("u8", y), - ("float", variable), ) + ("u8", y), + ("float", variable), ) + ) + self._text += str(variable) + time.sleep(0.01) + + def write_variable_line(self, line: int, variable: float) -> None: + """Show the input variable on the display. + + :param line: display line number of the desired position + :type line: int + :param variable: Variable to display. + :type variable: float + :return: None + """ + self._set_property( + self._id, + Display.PROPERTY_DISPLAY_WRITE_VARIABLE, + property_values=(("u8", 0), + ("u8", line * 20), + ("float", variable), ) ) self._text += str(variable) time.sleep(0.01) @@ -326,16 +344,22 @@ def move_screen(self, x: int, y: int) -> None: ) time.sleep(0.01) - def reset(self) -> None: + def reset(self, mode=0) -> None: """Clear the screen. + :param mode: Erase mode + - mode 0 : Erase inside buffer(it looks like nothing has changed) + - mode 1 : Erase display :return: None """ + if mode > 1: + mode = 0 + self._set_property( self._id, Display.PROPERTY_DISPLAY_RESET, - property_values=(("u8", 0), ) + property_values=(("u8", mode), ) ) self._text = "" time.sleep(0.01) diff --git a/tests/module/output_module/test_display.py b/tests/module/output_module/test_display.py index 1b265d4..7f3a1c9 100644 --- a/tests/module/output_module/test_display.py +++ b/tests/module/output_module/test_display.py @@ -44,12 +44,12 @@ def test_write_text(self): self.assertTrue(set_message in sent_messages) self.assertEqual(self.display.text, mock_text) - def test_write_variable(self): - """Test write_variable method.""" + def test_write_variable_xy(self): + """Test write_variable_xy method.""" mock_variable = 123 mock_position = 5 - self.display.write_variable(mock_position, mock_position, mock_variable) + self.display.write_variable_xy(mock_position, mock_position, mock_variable) set_message = parse_set_property_message( -1, Display.PROPERTY_DISPLAY_WRITE_VARIABLE, (("u8", mock_position), ("u8", mock_position), @@ -60,6 +60,22 @@ def test_write_variable(self): sent_messages.append(self.connection.send_list.pop()) self.assertTrue(set_message in sent_messages) + def test_write_variable_line(self): + """Test write_variable_line method.""" + + mock_variable = 123 + mock_line = 2 + self.display.write_variable_line(mock_line, mock_variable) + set_message = parse_set_property_message( + -1, Display.PROPERTY_DISPLAY_WRITE_VARIABLE, + (("u8", 0), ("u8", mock_line * 20), + ("float", mock_variable), ) + ) + sent_messages = [] + while self.connection.send_list: + sent_messages.append(self.connection.send_list.pop()) + self.assertTrue(set_message in sent_messages) + def test_draw_picture(self): """Test draw_picture method.""" From ad29db0af7515283e6fdb4e9c527dfe334c1e137 Mon Sep 17 00:00:00 2001 From: josep Date: Tue, 24 Dec 2024 09:28:44 +0900 Subject: [PATCH 10/18] =?UTF-8?q?display=20move=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modi_plus/module/output_module/display.py | 26 ++++------------------ tests/module/output_module/test_display.py | 15 ------------- 2 files changed, 4 insertions(+), 37 deletions(-) diff --git a/modi_plus/module/output_module/display.py b/modi_plus/module/output_module/display.py index aa89098..848185c 100644 --- a/modi_plus/module/output_module/display.py +++ b/modi_plus/module/output_module/display.py @@ -231,8 +231,8 @@ def write_variable_xy(self, x: int, y: int, variable: float) -> None: self._id, Display.PROPERTY_DISPLAY_WRITE_VARIABLE, property_values=(("u8", x), - ("u8", y), - ("float", variable), ) + ("u8", y), + ("float", variable), ) ) self._text += str(variable) time.sleep(0.01) @@ -250,8 +250,8 @@ def write_variable_line(self, line: int, variable: float) -> None: self._id, Display.PROPERTY_DISPLAY_WRITE_VARIABLE, property_values=(("u8", 0), - ("u8", line * 20), - ("float", variable), ) + ("u8", line * 20), + ("float", variable), ) ) self._text += str(variable) time.sleep(0.01) @@ -326,24 +326,6 @@ def set_offset(self, x: int, y: int) -> None: ) time.sleep(0.01) - def move_screen(self, x: int, y: int) -> None: - """Move the screen by x and y - - :param x: X-axis movement value - :type x: int - :param y: Y-axis movement value - :type y: int - :return: None - """ - - self._set_property( - self.id, - Display.PROPERTY_DISPLAY_MOVE_SCREEN, - property_values=(("s8", x), ("s8", y), ), - force=True - ) - time.sleep(0.01) - def reset(self, mode=0) -> None: """Clear the screen. diff --git a/tests/module/output_module/test_display.py b/tests/module/output_module/test_display.py index 7f3a1c9..f0dad31 100644 --- a/tests/module/output_module/test_display.py +++ b/tests/module/output_module/test_display.py @@ -132,21 +132,6 @@ def test_set_offset(self): sent_messages.append(self.connection.send_list.pop()) self.assertTrue(set_message in sent_messages) - def test_move_screen(self): - """Test move_screen method.""" - - mock_x = 10 - mock_y = 20 - self.display.move_screen(mock_x, mock_y) - set_message = parse_set_property_message( - -1, Display.PROPERTY_DISPLAY_MOVE_SCREEN, - (("s8", mock_x), ("s8", mock_y), ) - ) - sent_messages = [] - while self.connection.send_list: - sent_messages.append(self.connection.send_list.pop()) - self.assertTrue(set_message in sent_messages) - def test_reset(self): """Test reset method.""" From 7ccce757ab3928765c533283fec30dd8c318606a Mon Sep 17 00:00:00 2001 From: josep Date: Thu, 26 Dec 2024 08:55:47 +0900 Subject: [PATCH 11/18] =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EB=8F=99=EC=9E=91?= =?UTF-8?q?=20=EC=8B=9C=20=EC=9D=B8=ED=84=B0=ED=94=84=EB=A6=AC=ED=84=B0=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modi_plus/task/exe_task.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modi_plus/task/exe_task.py b/modi_plus/task/exe_task.py index 46b50eb..0cb92e8 100644 --- a/modi_plus/task/exe_task.py +++ b/modi_plus/task/exe_task.py @@ -80,9 +80,12 @@ def __update_health(self, message): module.last_updated_time = curr_time module.is_connected = True - if module.module_type == "network" and message["l"] == 5: - _, dir = unpack_data(message["b"], (4, 1)) - if dir == 1: + if module.module_type == "network" and message["l"] == 6: + _, dir = unpack_data(message["b"], (5, 1)) + + # usb로 연결된 네트워크 모듈인 경우 interpreter 삭제제 + if dir & 2 and module.is_usb_connected is False: + self.__request_erase_interpreter() module.is_usb_connected = True # 일반 모듈의 OS 버전이 1.3.1 이상일 경우, health data에 pnp on/off 상태가 포함되어 있다. @@ -206,3 +209,6 @@ def __request_find_network_id(self, id=BROADCAST_ID): def __request_esp_version(self, id): self._connection.send_nowait(parse_message(0xA0, 25, id, (0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF))) + + def __request_erase_interpreter(self): + self._connection.send_nowait(parse_message(160, 80, 4095, (0, 0, 0, 0, 0, 0, 0, 0))) From ef57722200ef7d484884535bea5b6db87c84c2c0 Mon Sep 17 00:00:00 2001 From: josep Date: Thu, 26 Dec 2024 10:51:55 +0900 Subject: [PATCH 12/18] =?UTF-8?q?build=EC=9A=A9=20manifest=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MANIFEST.in | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFEST.in b/MANIFEST.in index 3d11e76..6132c3b 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,6 +7,7 @@ include README.md include about.py include requirements.txt +include requirements-dev.txt recursive-include modi_plus/assets * recursive-include modi_plus/task/ble_task * From ba588c59de5dc78d11702e2cb35b8dd7b5d448db Mon Sep 17 00:00:00 2001 From: josep Date: Tue, 31 Dec 2024 11:16:19 +0900 Subject: [PATCH 13/18] =?UTF-8?q?v1.3.0-rc1=20=EB=B0=B0=ED=8F=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modi_plus/about.py | 2 +- modi_plus/module/output_module/display.py | 6 +++--- setup.cfg | 2 +- tests/module/output_module/test_display.py | 7 ++----- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/modi_plus/about.py b/modi_plus/about.py index 99079e9..902d837 100644 --- a/modi_plus/about.py +++ b/modi_plus/about.py @@ -1,5 +1,5 @@ __title__ = "pymodi-plus" -__version__ = "0.3.0" +__version__ = "0.3.1" __author__ = "LUXROBO" __email__ = "module.dev@luxrobo.com" __description__ = "Python API for controlling modular electronics, MODI+." diff --git a/modi_plus/module/output_module/display.py b/modi_plus/module/output_module/display.py index 848185c..1823e8c 100644 --- a/modi_plus/module/output_module/display.py +++ b/modi_plus/module/output_module/display.py @@ -256,7 +256,7 @@ def write_variable_line(self, line: int, variable: float) -> None: self._text += str(variable) time.sleep(0.01) - def draw_picture(self, x: int, y: int, name: int) -> None: + def draw_picture(self, name: int) -> None: """Clears the display and show the input picture on the display. :param x: X coordinate of the desired position @@ -275,8 +275,8 @@ def draw_picture(self, x: int, y: int, name: int) -> None: self._set_property( self._id, Display.PROPERTY_DISPLAY_DRAW_PICTURE, - property_values=(("u8", x), - ("u8", y), + property_values=(("u8", 0), + ("u8", 0), ("u8", Display.WIDTH), ("u8", Display.HEIGHT), ("string", file_name), ) diff --git a/setup.cfg b/setup.cfg index 1fa93ed..69ec257 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.2.0 +current_version = 1.3.0 commit = True tag = False diff --git a/tests/module/output_module/test_display.py b/tests/module/output_module/test_display.py index f0dad31..e854340 100644 --- a/tests/module/output_module/test_display.py +++ b/tests/module/output_module/test_display.py @@ -79,14 +79,11 @@ def test_write_variable_line(self): def test_draw_picture(self): """Test draw_picture method.""" - mock_x = 12 - mock_y = 34 mock_name = Display.preset_pictures()[0] - self.display.draw_picture(mock_x, mock_y, mock_name) + self.display.draw_picture(mock_name) set_message = parse_set_property_message( -1, Display.PROPERTY_DISPLAY_DRAW_PICTURE, - (("u8", mock_x), ("u8", mock_y), - ("u8", Display.WIDTH), ("u8", Display.HEIGHT), + (("u8", Display.WIDTH), ("u8", Display.HEIGHT), ("string", Display.PRESET_PICTURE[mock_name]), ) ) sent_messages = [] From 30eefbcd4d2e90a8d342841037fdc6e697f1e555 Mon Sep 17 00:00:00 2001 From: josep Date: Tue, 31 Dec 2024 11:19:42 +0900 Subject: [PATCH 14/18] =?UTF-8?q?test=20function=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- release_notes.md | 17 +++++++++++++++++ tests/module/output_module/test_display.py | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 release_notes.md diff --git a/release_notes.md b/release_notes.md new file mode 100644 index 0000000..50a3554 --- /dev/null +++ b/release_notes.md @@ -0,0 +1,17 @@ +# Version + +v1.3.0 + +# Feature +### Display +1. draw_picture 함수 좌표 인자 제거 +2. draw_variable 함수 제거 +3. write_variable_xy 함수 추가 - write_variable_xy(0, 0, variable) +4. write_variable_line 함수 추가 - write_variable_line(0, variable) + +### Environment +1. intensity 이름 illuminance로 변경 + +### IMU +1. roll, pitch, yaw 이름 x, y, z로 변경 + diff --git a/tests/module/output_module/test_display.py b/tests/module/output_module/test_display.py index e854340..94dcd5f 100644 --- a/tests/module/output_module/test_display.py +++ b/tests/module/output_module/test_display.py @@ -83,7 +83,8 @@ def test_draw_picture(self): self.display.draw_picture(mock_name) set_message = parse_set_property_message( -1, Display.PROPERTY_DISPLAY_DRAW_PICTURE, - (("u8", Display.WIDTH), ("u8", Display.HEIGHT), + (("u8", 0), ("u8", 0), + ("u8", Display.WIDTH), ("u8", Display.HEIGHT), ("string", Display.PRESET_PICTURE[mock_name]), ) ) sent_messages = [] From 15ef764efd68bacfb8f1202207e5796b3ceae508 Mon Sep 17 00:00:00 2001 From: josep Date: Thu, 2 Jan 2025 20:29:50 +0900 Subject: [PATCH 15/18] =?UTF-8?q?v1.3.0-rc2=20=EB=B0=B0=ED=8F=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modi_plus/about.py | 2 +- modi_plus/task/exe_task.py | 3 ++- setup.cfg | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modi_plus/about.py b/modi_plus/about.py index 902d837..cfa4fb6 100644 --- a/modi_plus/about.py +++ b/modi_plus/about.py @@ -1,5 +1,5 @@ __title__ = "pymodi-plus" -__version__ = "0.3.1" +__version__ = "0.3.1-rc2" __author__ = "LUXROBO" __email__ = "module.dev@luxrobo.com" __description__ = "Python API for controlling modular electronics, MODI+." diff --git a/modi_plus/task/exe_task.py b/modi_plus/task/exe_task.py index 0cb92e8..26f9e7a 100644 --- a/modi_plus/task/exe_task.py +++ b/modi_plus/task/exe_task.py @@ -86,6 +86,7 @@ def __update_health(self, message): # usb로 연결된 네트워크 모듈인 경우 interpreter 삭제제 if dir & 2 and module.is_usb_connected is False: self.__request_erase_interpreter() + self.__request_reboot() module.is_usb_connected = True # 일반 모듈의 OS 버전이 1.3.1 이상일 경우, health data에 pnp on/off 상태가 포함되어 있다. @@ -104,7 +105,7 @@ def __update_health(self, message): # Disconnect module with no health message for more than 2 second for module in self._modules: - if curr_time - module.last_updated_time > 2: + if (curr_time - module.last_updated_time > 2) and (module.is_connected is True): module.is_connected = False module._last_set_message = None diff --git a/setup.cfg b/setup.cfg index 69ec257..649334e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,7 +3,7 @@ current_version = 1.3.0 commit = True tag = False -[bumpversion:file:./modi/about.py] +[bumpversion:file:./modi_plus/about.py] search = __version__ = "{current_version}" replace = __version__ = "{new_version}" From 6c31a1e7c7abf4b7bf50ada31ccb2cac7ee46ee6 Mon Sep 17 00:00:00 2001 From: josep Date: Thu, 2 Jan 2025 21:03:30 +0900 Subject: [PATCH 16/18] =?UTF-8?q?v1.3.1-rc3=20=EB=B0=B0=ED=8F=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 재부팅 딜레이 추가 --- modi_plus/task/exe_task.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modi_plus/task/exe_task.py b/modi_plus/task/exe_task.py index 26f9e7a..03294a7 100644 --- a/modi_plus/task/exe_task.py +++ b/modi_plus/task/exe_task.py @@ -83,10 +83,11 @@ def __update_health(self, message): if module.module_type == "network" and message["l"] == 6: _, dir = unpack_data(message["b"], (5, 1)) - # usb로 연결된 네트워크 모듈인 경우 interpreter 삭제제 + # usb로 연결된 네트워크 모듈인 경우 interpreter 삭제 if dir & 2 and module.is_usb_connected is False: self.__request_erase_interpreter() - self.__request_reboot() + self.__request_reboot(BROADCAST_ID) + time.sleep(1) module.is_usb_connected = True # 일반 모듈의 OS 버전이 1.3.1 이상일 경우, health data에 pnp on/off 상태가 포함되어 있다. From 8fad8702eab3f363602d855ea9af4ec9f351cc17 Mon Sep 17 00:00:00 2001 From: josep Date: Tue, 7 Jan 2025 10:34:00 +0900 Subject: [PATCH 17/18] v0.3.1 release --- modi_plus/about.py | 2 +- release_notes.md | 7 ++++++- setup.cfg | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modi_plus/about.py b/modi_plus/about.py index cfa4fb6..902d837 100644 --- a/modi_plus/about.py +++ b/modi_plus/about.py @@ -1,5 +1,5 @@ __title__ = "pymodi-plus" -__version__ = "0.3.1-rc2" +__version__ = "0.3.1" __author__ = "LUXROBO" __email__ = "module.dev@luxrobo.com" __description__ = "Python API for controlling modular electronics, MODI+." diff --git a/release_notes.md b/release_notes.md index 50a3554..c53303a 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,8 +1,12 @@ # Version -v1.3.0 +v1.3.1 # Feature +### Pymodi+ +1. 코드 동작 시 인터프리터 코드 제거 + +--- ### Display 1. draw_picture 함수 좌표 인자 제거 2. draw_variable 함수 제거 @@ -15,3 +19,4 @@ v1.3.0 ### IMU 1. roll, pitch, yaw 이름 x, y, z로 변경 + diff --git a/setup.cfg b/setup.cfg index 649334e..a721edb 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.3.0 +current_version = 1.3.1 commit = True tag = False From a3cb761d53ef90f60027ee60b4a462e915161b4b Mon Sep 17 00:00:00 2001 From: josep Date: Tue, 7 Jan 2025 10:42:07 +0900 Subject: [PATCH 18/18] =?UTF-8?q?python=20=EB=B2=84=EC=A0=84=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 2 +- .github/workflows/deploy.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index de5cd36..6671f87 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e64f844..631d215 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -19,7 +19,7 @@ jobs: - name: Install Python uses: actions/setup-python@v2 with: - python-version: '3.7' + python-version: '3.8' architecture: 'x64' - name: install-dependencies