From 95d36da0e08f4d37b79a43e97949f5ac1ac2fe16 Mon Sep 17 00:00:00 2001 From: Dryw Wade Date: Fri, 27 Mar 2026 12:14:22 -0600 Subject: [PATCH] Fix lib structure and imports. The Qwiic drivers should live in the lib/ directory, they are independent packages. Also make the imports follow standard Python conventions. Signed-off-by: Dryw Wade --- lib/AgXRPLib/agxrp_controller.py | 2 +- lib/AgXRPLib/agxrp_sensor_as7343.py | 4 ++-- lib/AgXRPLib/agxrp_sensor_kit copy.py | 14 +++++++------- lib/AgXRPLib/agxrp_sensor_kit.py | 16 ++++++++-------- lib/AgXRPLib/agxrp_sensor_kit_demo.py | 2 +- lib/AgXRPLib/agxrp_sensor_resistive_soil.py | 4 ++-- lib/AgXRPLib/agxrp_sensor_scd4x.py | 4 ++-- lib/AgXRPLib/agxrp_sensor_soil.py | 4 ++-- lib/AgXRPLib/agxrp_sensor_veml.py | 4 ++-- lib/AgXRPLib/agxrp_water_pump.py | 3 +-- lib/AgXRPLib/agxrp_web_dashboard.py | 3 +-- lib/{AgXRPLib => }/qwiic_as7343.py | 2 +- lib/{AgXRPLib => }/qwiic_bme280.py | 2 +- lib/{AgXRPLib => }/qwiic_cy8cmbr3.py | 2 +- lib/qwiic_i2c/__init__.py | 2 +- lib/{AgXRPLib => }/qwiic_oled/__init__.py | 0 .../qwiic_oled/fonts/0_font5x7.bin | Bin .../qwiic_oled/fonts/1_font8x16.bin | Bin .../qwiic_oled/fonts/2_7segment.bin | Bin .../qwiic_oled/fonts/3_fontlargenumber.bin | Bin .../qwiic_oled/fonts/4_fontlargeletter31x48.bin | Bin lib/{AgXRPLib => }/qwiic_oled/oled_fonts.py | 0 lib/{AgXRPLib => }/qwiic_oled/oled_logos.py | 0 .../qwiic_oled/qwiic_large_oled.py | 4 ++-- .../qwiic_oled/qwiic_micro_oled.py | 4 ++-- .../qwiic_oled/qwiic_oled_base.py | 2 +- .../qwiic_oled/qwiic_oled_display.py | 4 ++-- lib/{AgXRPLib => }/qwiic_scd4x.py | 2 +- .../qwiic_soil_moisture_sensor.py | 2 +- lib/{AgXRPLib => }/qwiic_veml.py | 2 +- web_server.py | 10 +++++----- 31 files changed, 48 insertions(+), 50 deletions(-) rename lib/{AgXRPLib => }/qwiic_as7343.py (99%) rename lib/{AgXRPLib => }/qwiic_bme280.py (99%) rename lib/{AgXRPLib => }/qwiic_cy8cmbr3.py (99%) rename lib/{AgXRPLib => }/qwiic_oled/__init__.py (100%) rename lib/{AgXRPLib => }/qwiic_oled/fonts/0_font5x7.bin (100%) rename lib/{AgXRPLib => }/qwiic_oled/fonts/1_font8x16.bin (100%) rename lib/{AgXRPLib => }/qwiic_oled/fonts/2_7segment.bin (100%) rename lib/{AgXRPLib => }/qwiic_oled/fonts/3_fontlargenumber.bin (100%) rename lib/{AgXRPLib => }/qwiic_oled/fonts/4_fontlargeletter31x48.bin (100%) rename lib/{AgXRPLib => }/qwiic_oled/oled_fonts.py (100%) rename lib/{AgXRPLib => }/qwiic_oled/oled_logos.py (100%) rename lib/{AgXRPLib => }/qwiic_oled/qwiic_large_oled.py (97%) rename lib/{AgXRPLib => }/qwiic_oled/qwiic_micro_oled.py (97%) rename lib/{AgXRPLib => }/qwiic_oled/qwiic_oled_base.py (99%) rename lib/{AgXRPLib => }/qwiic_oled/qwiic_oled_display.py (97%) rename lib/{AgXRPLib => }/qwiic_scd4x.py (99%) rename lib/{AgXRPLib => }/qwiic_soil_moisture_sensor.py (99%) rename lib/{AgXRPLib => }/qwiic_veml.py (99%) diff --git a/lib/AgXRPLib/agxrp_controller.py b/lib/AgXRPLib/agxrp_controller.py index 805b361..dfb5d3f 100644 --- a/lib/AgXRPLib/agxrp_controller.py +++ b/lib/AgXRPLib/agxrp_controller.py @@ -10,7 +10,7 @@ import time import uasyncio -from lib.AgXRPLib.agxrp_water_pump import AgXRPWaterPump +from .agxrp_water_pump import AgXRPWaterPump class AgXRPController: """! diff --git a/lib/AgXRPLib/agxrp_sensor_as7343.py b/lib/AgXRPLib/agxrp_sensor_as7343.py index fc21539..89f33a3 100644 --- a/lib/AgXRPLib/agxrp_sensor_as7343.py +++ b/lib/AgXRPLib/agxrp_sensor_as7343.py @@ -8,8 +8,8 @@ # Written for AgXRPSensorKit, 2024 #=============================================================================== -from lib.AgXRPLib.qwiic_as7343 import QwiicAS7343 -from lib.AgXRPLib.agxrp_sensor import AgXRPSensor +from qwiic_as7343 import QwiicAS7343 +from .agxrp_sensor import AgXRPSensor class AgXRPSensorAS7343(AgXRPSensor): """! diff --git a/lib/AgXRPLib/agxrp_sensor_kit copy.py b/lib/AgXRPLib/agxrp_sensor_kit copy.py index 10439e1..2d976fa 100644 --- a/lib/AgXRPLib/agxrp_sensor_kit copy.py +++ b/lib/AgXRPLib/agxrp_sensor_kit copy.py @@ -7,16 +7,16 @@ # Written for AgXRPSensorKit, 2024 #=============================================================================== -import lib.qwiic_i2c as qwiic_i2c -import lib.AgXRPLib.qwiic_oled as qwiic_oled +import qwiic_i2c as qwiic_i2c +import qwiic_oled as qwiic_oled import time import sys -from lib.AgXRPLib.agxrp_sensor_scd4x import AgXRPSensorSCD4x -from lib.AgXRPLib.agxrp_sensor_as7343 import AgXRPSensorAS7343 -from lib.AgXRPLib.agxrp_sensor_veml import AgXRPSensorVEML -from lib.AgXRPLib.agxrp_sensor_soil import AgXRPSensorSoil -from lib.AgXRPLib.agxrp_csv_logger import AgXRPCSVLogger +from .agxrp_sensor_scd4x import AgXRPSensorSCD4x +from .agxrp_sensor_as7343 import AgXRPSensorAS7343 +from .agxrp_sensor_veml import AgXRPSensorVEML +from .agxrp_sensor_soil import AgXRPSensorSoil +from .agxrp_csv_logger import AgXRPCSVLogger class AgXRPSensorKit: """! diff --git a/lib/AgXRPLib/agxrp_sensor_kit.py b/lib/AgXRPLib/agxrp_sensor_kit.py index f8dc8e0..099b61e 100644 --- a/lib/AgXRPLib/agxrp_sensor_kit.py +++ b/lib/AgXRPLib/agxrp_sensor_kit.py @@ -7,17 +7,17 @@ # Written for AgXRPSensorKit, 2024 #=============================================================================== -import lib.qwiic_i2c as qwiic_i2c -import lib.AgXRPLib.qwiic_oled as qwiic_oled +import qwiic_i2c as qwiic_i2c +import qwiic_oled as qwiic_oled import time import sys -from lib.AgXRPLib.agxrp_sensor_scd4x import AgXRPSensorSCD4x -from lib.AgXRPLib.agxrp_sensor_as7343 import AgXRPSensorAS7343 -from lib.AgXRPLib.agxrp_sensor_veml import AgXRPSensorVEML -from lib.AgXRPLib.agxrp_sensor_soil import AgXRPSensorSoil -from lib.AgXRPLib.agxrp_sensor_resistive_soil import AgXRPResistiveSoilSensor -from lib.AgXRPLib.agxrp_csv_logger import AgXRPCSVLogger +from .agxrp_sensor_scd4x import AgXRPSensorSCD4x +from .agxrp_sensor_as7343 import AgXRPSensorAS7343 +from .agxrp_sensor_veml import AgXRPSensorVEML +from .agxrp_sensor_soil import AgXRPSensorSoil +from .agxrp_sensor_resistive_soil import AgXRPResistiveSoilSensor +from .agxrp_csv_logger import AgXRPCSVLogger class AgXRPSensorKit: """! diff --git a/lib/AgXRPLib/agxrp_sensor_kit_demo.py b/lib/AgXRPLib/agxrp_sensor_kit_demo.py index dcd222c..dad7853 100644 --- a/lib/AgXRPLib/agxrp_sensor_kit_demo.py +++ b/lib/AgXRPLib/agxrp_sensor_kit_demo.py @@ -10,7 +10,7 @@ import sys import time -from lib.AgXRPLib.agxrp_sensor_kit import AgXRPSensorKit +from .agxrp_sensor_kit import AgXRPSensorKit def demo_full_configuration(): """! diff --git a/lib/AgXRPLib/agxrp_sensor_resistive_soil.py b/lib/AgXRPLib/agxrp_sensor_resistive_soil.py index ea7345d..e9bd84d 100644 --- a/lib/AgXRPLib/agxrp_sensor_resistive_soil.py +++ b/lib/AgXRPLib/agxrp_sensor_resistive_soil.py @@ -8,8 +8,8 @@ # Written for AgXRPSensorKit, 2024 #=============================================================================== -from lib.AgXRPLib.qwiic_soil_moisture_sensor import QwiicSoilMoistureSensor -from lib.AgXRPLib.agxrp_sensor import AgXRPSensor +from qwiic_soil_moisture_sensor import QwiicSoilMoistureSensor +from .agxrp_sensor import AgXRPSensor # Raw ADC range from Qwiic soil moisture sensor (10-bit) diff --git a/lib/AgXRPLib/agxrp_sensor_scd4x.py b/lib/AgXRPLib/agxrp_sensor_scd4x.py index c17a45d..6e0e10e 100644 --- a/lib/AgXRPLib/agxrp_sensor_scd4x.py +++ b/lib/AgXRPLib/agxrp_sensor_scd4x.py @@ -8,8 +8,8 @@ # Written for AgXRPSensorKit, 2024 #=============================================================================== -from lib.AgXRPLib.qwiic_scd4x import QwiicSCD4x -from lib.AgXRPLib.agxrp_sensor import AgXRPSensor +from qwiic_scd4x import QwiicSCD4x +from .agxrp_sensor import AgXRPSensor class AgXRPSensorSCD4x(AgXRPSensor): """! diff --git a/lib/AgXRPLib/agxrp_sensor_soil.py b/lib/AgXRPLib/agxrp_sensor_soil.py index 462c158..4423b3d 100644 --- a/lib/AgXRPLib/agxrp_sensor_soil.py +++ b/lib/AgXRPLib/agxrp_sensor_soil.py @@ -8,8 +8,8 @@ # Written for AgXRPSensorKit, 2024 #=============================================================================== -from lib.AgXRPLib.agxrp_sensor import AgXRPSensor -from lib.AgXRPLib.qwiic_cy8cmbr3 import QwiicCY8CMBR3 +from .agxrp_sensor import AgXRPSensor +from qwiic_cy8cmbr3 import QwiicCY8CMBR3 class AgXRPSensorSoil(AgXRPSensor): """! diff --git a/lib/AgXRPLib/agxrp_sensor_veml.py b/lib/AgXRPLib/agxrp_sensor_veml.py index 4d27321..9231a60 100644 --- a/lib/AgXRPLib/agxrp_sensor_veml.py +++ b/lib/AgXRPLib/agxrp_sensor_veml.py @@ -8,8 +8,8 @@ # Written for AgXRPSensorKit, 2024 #=============================================================================== -from lib.AgXRPLib.qwiic_veml import QwiicVEML -from lib.AgXRPLib.agxrp_sensor import AgXRPSensor +from qwiic_veml import QwiicVEML +from .agxrp_sensor import AgXRPSensor class AgXRPSensorVEML(AgXRPSensor): """! diff --git a/lib/AgXRPLib/agxrp_water_pump.py b/lib/AgXRPLib/agxrp_water_pump.py index 9b4fc07..cea9d19 100644 --- a/lib/AgXRPLib/agxrp_water_pump.py +++ b/lib/AgXRPLib/agxrp_water_pump.py @@ -5,11 +5,10 @@ # AgXRPWaterPump class for controlling peristaltic pumps using encoded motors. #------------------------------------------------------------------------------- -from lib.XRPLib.encoded_motor import EncodedMotor +from XRPLib.encoded_motor import EncodedMotor from machine import Timer, RTC import micropython import time -import os class AgXRPWaterPump: """! diff --git a/lib/AgXRPLib/agxrp_web_dashboard.py b/lib/AgXRPLib/agxrp_web_dashboard.py index 647a923..26723ca 100644 --- a/lib/AgXRPLib/agxrp_web_dashboard.py +++ b/lib/AgXRPLib/agxrp_web_dashboard.py @@ -10,14 +10,13 @@ import json import random -import time try: from machine import RTC as _MachineRTC _HAS_RTC = True except ImportError: _HAS_RTC = False from phew import server, access_point, dns, logging -from lib.AgXRPLib.agxrp_water_pump import AgXRPWaterPump +from .agxrp_water_pump import AgXRPWaterPump class AgXRPWebDashboard: """! diff --git a/lib/AgXRPLib/qwiic_as7343.py b/lib/qwiic_as7343.py similarity index 99% rename from lib/AgXRPLib/qwiic_as7343.py rename to lib/qwiic_as7343.py index 6fda140..897a617 100644 --- a/lib/AgXRPLib/qwiic_as7343.py +++ b/lib/qwiic_as7343.py @@ -44,7 +44,7 @@ # The Qwiic_I2C_Py platform driver is designed to work on almost any Python # platform, check it out here: https://github.com/sparkfun/Qwiic_I2C_Py -import lib.qwiic_i2c as qwiic_i2c +import qwiic_i2c # Define the device name and I2C addresses. These are set in the class defintion # as class variables, making them avilable without having to create a class diff --git a/lib/AgXRPLib/qwiic_bme280.py b/lib/qwiic_bme280.py similarity index 99% rename from lib/AgXRPLib/qwiic_bme280.py rename to lib/qwiic_bme280.py index 99c06d7..42a85dc 100644 --- a/lib/AgXRPLib/qwiic_bme280.py +++ b/lib/qwiic_bme280.py @@ -59,7 +59,7 @@ #----------------------------------------------------------------------------- import math import time -import lib.qwiic_i2c as qwiic_i2c +import qwiic_i2c # Define the device name and I2C addresses. These are set in the class defintion # as class variables, making them avilable without having to create a class instance. diff --git a/lib/AgXRPLib/qwiic_cy8cmbr3.py b/lib/qwiic_cy8cmbr3.py similarity index 99% rename from lib/AgXRPLib/qwiic_cy8cmbr3.py rename to lib/qwiic_cy8cmbr3.py index 73bacad..0160a47 100644 --- a/lib/AgXRPLib/qwiic_cy8cmbr3.py +++ b/lib/qwiic_cy8cmbr3.py @@ -44,7 +44,7 @@ # The Qwiic_I2C_Py platform driver is designed to work on almost any Python # platform, check it out here: https://github.com/sparkfun/Qwiic_I2C_Py -import lib.qwiic_i2c as qwiic_i2c +import qwiic_i2c # Define the device name and I2C addresses. These are set in the class defintion # as class variables, making them avilable without having to create a class diff --git a/lib/qwiic_i2c/__init__.py b/lib/qwiic_i2c/__init__.py index de0b8d3..77fbb68 100644 --- a/lib/qwiic_i2c/__init__.py +++ b/lib/qwiic_i2c/__init__.py @@ -79,7 +79,7 @@ # append them to the driver list if so for module_name, class_name in _supported_platforms.items(): try: - sub_module = __import__("lib.qwiic_i2c." + module_name, None, None, [None]) + sub_module = __import__("qwiic_i2c." + module_name, None, None, [None]) _drivers.append(getattr(sub_module, class_name)) except: pass diff --git a/lib/AgXRPLib/qwiic_oled/__init__.py b/lib/qwiic_oled/__init__.py similarity index 100% rename from lib/AgXRPLib/qwiic_oled/__init__.py rename to lib/qwiic_oled/__init__.py diff --git a/lib/AgXRPLib/qwiic_oled/fonts/0_font5x7.bin b/lib/qwiic_oled/fonts/0_font5x7.bin similarity index 100% rename from lib/AgXRPLib/qwiic_oled/fonts/0_font5x7.bin rename to lib/qwiic_oled/fonts/0_font5x7.bin diff --git a/lib/AgXRPLib/qwiic_oled/fonts/1_font8x16.bin b/lib/qwiic_oled/fonts/1_font8x16.bin similarity index 100% rename from lib/AgXRPLib/qwiic_oled/fonts/1_font8x16.bin rename to lib/qwiic_oled/fonts/1_font8x16.bin diff --git a/lib/AgXRPLib/qwiic_oled/fonts/2_7segment.bin b/lib/qwiic_oled/fonts/2_7segment.bin similarity index 100% rename from lib/AgXRPLib/qwiic_oled/fonts/2_7segment.bin rename to lib/qwiic_oled/fonts/2_7segment.bin diff --git a/lib/AgXRPLib/qwiic_oled/fonts/3_fontlargenumber.bin b/lib/qwiic_oled/fonts/3_fontlargenumber.bin similarity index 100% rename from lib/AgXRPLib/qwiic_oled/fonts/3_fontlargenumber.bin rename to lib/qwiic_oled/fonts/3_fontlargenumber.bin diff --git a/lib/AgXRPLib/qwiic_oled/fonts/4_fontlargeletter31x48.bin b/lib/qwiic_oled/fonts/4_fontlargeletter31x48.bin similarity index 100% rename from lib/AgXRPLib/qwiic_oled/fonts/4_fontlargeletter31x48.bin rename to lib/qwiic_oled/fonts/4_fontlargeletter31x48.bin diff --git a/lib/AgXRPLib/qwiic_oled/oled_fonts.py b/lib/qwiic_oled/oled_fonts.py similarity index 100% rename from lib/AgXRPLib/qwiic_oled/oled_fonts.py rename to lib/qwiic_oled/oled_fonts.py diff --git a/lib/AgXRPLib/qwiic_oled/oled_logos.py b/lib/qwiic_oled/oled_logos.py similarity index 100% rename from lib/AgXRPLib/qwiic_oled/oled_logos.py rename to lib/qwiic_oled/oled_logos.py diff --git a/lib/AgXRPLib/qwiic_oled/qwiic_large_oled.py b/lib/qwiic_oled/qwiic_large_oled.py similarity index 97% rename from lib/AgXRPLib/qwiic_oled/qwiic_large_oled.py rename to lib/qwiic_oled/qwiic_large_oled.py index 2a4ec62..0e143c6 100644 --- a/lib/AgXRPLib/qwiic_oled/qwiic_large_oled.py +++ b/lib/qwiic_oled/qwiic_large_oled.py @@ -53,9 +53,9 @@ """ import math -import lib.qwiic_i2c as qwiic_i2c +import qwiic_i2c -from lib.AgXRPLib.qwiic_oled.qwiic_oled_base import QwiicOledBase +from qwiic_oled import QwiicOledBase # Define the device name and I2C addresses. These are set in the class defintion # as class variables, making them avilable without having to create a class instance. diff --git a/lib/AgXRPLib/qwiic_oled/qwiic_micro_oled.py b/lib/qwiic_oled/qwiic_micro_oled.py similarity index 97% rename from lib/AgXRPLib/qwiic_oled/qwiic_micro_oled.py rename to lib/qwiic_oled/qwiic_micro_oled.py index c339def..9f5ab09 100644 --- a/lib/AgXRPLib/qwiic_oled/qwiic_micro_oled.py +++ b/lib/qwiic_oled/qwiic_micro_oled.py @@ -53,9 +53,9 @@ """ import math -import lib.qwiic_i2c as qwiic_i2c +import qwiic_i2c -from lib.AgXRPLib.qwiic_oled.qwiic_oled_base import QwiicOledBase +from qwiic_oled import QwiicOledBase # Define the device name and I2C addresses. These are set in the class defintion # as class variables, making them avilable without having to create a class instance. diff --git a/lib/AgXRPLib/qwiic_oled/qwiic_oled_base.py b/lib/qwiic_oled/qwiic_oled_base.py similarity index 99% rename from lib/AgXRPLib/qwiic_oled/qwiic_oled_base.py rename to lib/qwiic_oled/qwiic_oled_base.py index 34b0242..2fa935a 100644 --- a/lib/AgXRPLib/qwiic_oled/qwiic_oled_base.py +++ b/lib/qwiic_oled/qwiic_oled_base.py @@ -57,7 +57,7 @@ import math # import time -import lib.qwiic_i2c as qwiic_i2c +import qwiic_i2c from . import oled_fonts from . import oled_logos diff --git a/lib/AgXRPLib/qwiic_oled/qwiic_oled_display.py b/lib/qwiic_oled/qwiic_oled_display.py similarity index 97% rename from lib/AgXRPLib/qwiic_oled/qwiic_oled_display.py rename to lib/qwiic_oled/qwiic_oled_display.py index 3ece4c3..6d27be3 100644 --- a/lib/AgXRPLib/qwiic_oled/qwiic_oled_display.py +++ b/lib/qwiic_oled/qwiic_oled_display.py @@ -53,9 +53,9 @@ """ import math -import lib.qwiic_i2c as qwiic_i2c +import qwiic_i2c -from lib.AgXRPLib.qwiic_oled.qwiic_oled_base import QwiicOledBase +from qwiic_oled import QwiicOledBase # Define the device name and I2C addresses. These are set in the class defintion # as class variables, making them avilable without having to create a class instance. diff --git a/lib/AgXRPLib/qwiic_scd4x.py b/lib/qwiic_scd4x.py similarity index 99% rename from lib/AgXRPLib/qwiic_scd4x.py rename to lib/qwiic_scd4x.py index d6970e9..5775890 100644 --- a/lib/AgXRPLib/qwiic_scd4x.py +++ b/lib/qwiic_scd4x.py @@ -44,7 +44,7 @@ # The Qwiic_I2C_Py platform driver is designed to work on almost any Python # platform, check it out here: https://github.com/sparkfun/Qwiic_I2C_Py -import lib.qwiic_i2c as qwiic_i2c +import qwiic_i2c import time # Define the device name and I2C addresses. These are set in the class defintion diff --git a/lib/AgXRPLib/qwiic_soil_moisture_sensor.py b/lib/qwiic_soil_moisture_sensor.py similarity index 99% rename from lib/AgXRPLib/qwiic_soil_moisture_sensor.py rename to lib/qwiic_soil_moisture_sensor.py index 477f5d9..5abe13e 100644 --- a/lib/AgXRPLib/qwiic_soil_moisture_sensor.py +++ b/lib/qwiic_soil_moisture_sensor.py @@ -10,7 +10,7 @@ New to qwiic? Take a look at the entire [SparkFun qwiic ecosystem](https://www.sparkfun.com/qwiic). """ -import lib.qwiic_i2c as qwiic_i2c +import qwiic_i2c #====================================================================== # Basic setup of I2C commands and available I2C Addresses diff --git a/lib/AgXRPLib/qwiic_veml.py b/lib/qwiic_veml.py similarity index 99% rename from lib/AgXRPLib/qwiic_veml.py rename to lib/qwiic_veml.py index 67aa7e4..9b07db0 100644 --- a/lib/AgXRPLib/qwiic_veml.py +++ b/lib/qwiic_veml.py @@ -52,7 +52,7 @@ # The Qwiic_I2C_Py platform driver is designed to work on almost any Python # platform, check it out here: https://github.com/sparkfun/Qwiic_I2C_Py -import lib.qwiic_i2c as qwiic_i2c +import qwiic_i2c import time # Define the device name and I2C addresses. These are set in the class defintion diff --git a/web_server.py b/web_server.py index c46559c..315a11b 100644 --- a/web_server.py +++ b/web_server.py @@ -14,11 +14,11 @@ _HAS_RTC = True except ImportError: _HAS_RTC = False -from lib.AgXRPLib.agxrp_sensor_kit import AgXRPSensorKit -from lib.AgXRPLib.agxrp_web_dashboard import AgXRPWebDashboard -from lib.AgXRPLib.agxrp_web_configure import AgXRPWebConfigure -from lib.AgXRPLib.agxrp_web_data_viewer import AgXRPWebDataViewer -from lib.AgXRPLib.agxrp_controller import AgXRPController +from AgXRPLib.agxrp_sensor_kit import AgXRPSensorKit +from AgXRPLib.agxrp_web_dashboard import AgXRPWebDashboard +from AgXRPLib.agxrp_web_configure import AgXRPWebConfigure +from AgXRPLib.agxrp_web_data_viewer import AgXRPWebDataViewer +from AgXRPLib.agxrp_controller import AgXRPController CONFIG_VERSION = 2