diff --git a/dimos/project/test_get_logger.py b/dimos/codebase_checks/test_get_logger.py similarity index 98% rename from dimos/project/test_get_logger.py rename to dimos/codebase_checks/test_get_logger.py index a6ef3b4deb..26db11ab8f 100644 --- a/dimos/project/test_get_logger.py +++ b/dimos/codebase_checks/test_get_logger.py @@ -116,7 +116,7 @@ def test_no_get_logger(): "", "If the usage is legitimate (e.g. standalone script, logging " "infrastructure, or third-party logger suppression), add it to the " - "WHITELIST in dimos/project/test_get_logger.py.", + "WHITELIST in dimos/codebase_checks/test_get_logger.py.", "", ] for path, lineno, text in violations: diff --git a/dimos/codebase_checks/test_no_all.py b/dimos/codebase_checks/test_no_all.py new file mode 100644 index 0000000000..e77f79f096 --- /dev/null +++ b/dimos/codebase_checks/test_no_all.py @@ -0,0 +1,56 @@ +# Copyright 2026 Dimensional Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import ast +from pathlib import Path + +from dimos.constants import DIMOS_PROJECT_ROOT + + +def _is_all(target: ast.expr) -> bool: + return isinstance(target, ast.Name) and target.id == "__all__" + + +def _defines_all(node: ast.AST) -> bool: + if isinstance(node, ast.Assign): + return any(_is_all(t) for t in node.targets) + if isinstance(node, (ast.AnnAssign, ast.AugAssign)): + return _is_all(node.target) + return False + + +def find_all_definitions() -> list[tuple[Path, int]]: + """Return (file, line_number) for every `__all__` binding under dimos/.""" + dimos_dir = DIMOS_PROJECT_ROOT / "dimos" + hits: list[tuple[Path, int]] = [] + for path in sorted(dimos_dir.rglob("*.py")): + tree = ast.parse(path.read_text(encoding="utf-8")) + for node in ast.walk(tree): + if _defines_all(node): + hits.append((path, node.lineno)) + return hits + + +def test_no_all(): + """Fail if any file defines `__all__`.""" + dimos_dir = DIMOS_PROJECT_ROOT / "dimos" + hits = find_all_definitions() + if hits: + listing = "\n".join(f" - {p.relative_to(dimos_dir)}:{lineno}" for p, lineno in hits) + raise AssertionError( + f"Found __all__ definition(s) in dimos/:\n{listing}\n\n" + "__all__ is not allowed. We don't use `from x import *`, so __all__ " + "lists serve no purpose and are tedious to maintain. Remove them. For " + "an import that exists purely to be re-exported, use `# noqa: F401`." + ) diff --git a/dimos/project/test_no_init_files.py b/dimos/codebase_checks/test_no_init_files.py similarity index 100% rename from dimos/project/test_no_init_files.py rename to dimos/codebase_checks/test_no_init_files.py diff --git a/dimos/project/test_no_sections.py b/dimos/codebase_checks/test_no_sections.py similarity index 100% rename from dimos/project/test_no_sections.py rename to dimos/codebase_checks/test_no_sections.py diff --git a/dimos/control/blueprints/_hardware.py b/dimos/control/blueprints/_hardware.py index 5bb079c654..f652265b35 100644 --- a/dimos/control/blueprints/_hardware.py +++ b/dimos/control/blueprints/_hardware.py @@ -207,21 +207,3 @@ def mock_twist_base(hw_id: str = "base") -> HardwareComponent: joints=make_twist_base_joints(hw_id), adapter_type="mock_twist_base", ) - - -__all__ = [ - "A750_FK_MODEL", - "PIPER_FK_MODEL", - "PIPER_SIM_PATH", - "XARM6_FK_MODEL", - "XARM6_SIM_PATH", - "XARM7_FK_MODEL", - "XARM7_SIM_PATH", - "a750", - "manipulator", - "mock_arm", - "mock_twist_base", - "piper", - "xarm6", - "xarm7", -] diff --git a/dimos/control/blueprints/basic.py b/dimos/control/blueprints/basic.py index 165f707a85..214d01275e 100644 --- a/dimos/control/blueprints/basic.py +++ b/dimos/control/blueprints/basic.py @@ -126,12 +126,3 @@ def _mujoco_if_sim(sim_path: str, dof: int) -> tuple[Blueprint, ...]: ), *_mujoco_if_sim(str(PIPER_SIM_PATH), len(_piper_hw.joints)), ) - - -__all__ = [ - "coordinator_basic", - "coordinator_mock", - "coordinator_piper", - "coordinator_xarm6", - "coordinator_xarm7", -] diff --git a/dimos/control/blueprints/dual.py b/dimos/control/blueprints/dual.py index 5b6cabae26..07450bbefb 100644 --- a/dimos/control/blueprints/dual.py +++ b/dimos/control/blueprints/dual.py @@ -92,10 +92,3 @@ ), ], ) - - -__all__ = [ - "coordinator_dual_mock", - "coordinator_dual_xarm", - "coordinator_piper_xarm", -] diff --git a/dimos/control/blueprints/mobile.py b/dimos/control/blueprints/mobile.py index 66b2273e16..64a9090899 100644 --- a/dimos/control/blueprints/mobile.py +++ b/dimos/control/blueprints/mobile.py @@ -214,12 +214,3 @@ def _flowbase_twist_base( ), ], ).remappings([(ControlCoordinator, "twist_command", "cmd_vel")]) - - -__all__ = [ - "coordinator_flowbase", - "coordinator_flowbase_keyboard_teleop", - "coordinator_flowbase_nav", - "coordinator_mobile_manip_mock", - "coordinator_mock_twist_base", -] diff --git a/dimos/control/blueprints/teleop.py b/dimos/control/blueprints/teleop.py index 83c5b77fcf..993cc15267 100644 --- a/dimos/control/blueprints/teleop.py +++ b/dimos/control/blueprints/teleop.py @@ -262,16 +262,3 @@ def _mujoco_if_sim(sim_path: str, dof: int) -> tuple[Blueprint, ...]: ), ], ) - - -__all__ = [ - "coordinator_cartesian_ik_mock", - "coordinator_cartesian_ik_piper", - "coordinator_combined_xarm6", - "coordinator_servo_xarm6", - "coordinator_teleop_dual", - "coordinator_teleop_piper", - "coordinator_teleop_xarm6", - "coordinator_teleop_xarm7", - "coordinator_velocity_xarm6", -] diff --git a/dimos/control/components.py b/dimos/control/components.py index 3a93f6891b..1daab0b039 100644 --- a/dimos/control/components.py +++ b/dimos/control/components.py @@ -201,19 +201,3 @@ def make_humanoid_joints(hardware_id: HardwareId) -> list[JointName]: List of 29 joint names like ["g1/left_hip_pitch", ..., "g1/right_wrist_yaw"] """ return [f"{hardware_id}/{j}" for j in _HUMANOID_29DOF_JOINTS] - - -__all__ = [ - "TWIST_SUFFIX_MAP", - "HardwareComponent", - "HardwareId", - "HardwareType", - "JointName", - "JointState", - "TaskName", - "make_gripper_joints", - "make_humanoid_joints", - "make_joints", - "make_twist_base_joints", - "split_joint_name", -] diff --git a/dimos/control/hardware_interface.py b/dimos/control/hardware_interface.py index 5e5bb2a3da..51172ea599 100644 --- a/dimos/control/hardware_interface.py +++ b/dimos/control/hardware_interface.py @@ -445,10 +445,3 @@ def _try_initialize_last_commanded(self) -> bool: self._last_commanded[name] = states[i].q self._initialized = True return True - - -__all__ = [ - "ConnectedHardware", - "ConnectedTwistBase", - "ConnectedWholeBody", -] diff --git a/dimos/control/task.py b/dimos/control/task.py index 0b32fae4ef..6e22e48246 100644 --- a/dimos/control/task.py +++ b/dimos/control/task.py @@ -31,7 +31,7 @@ from typing import TYPE_CHECKING, Protocol, runtime_checkable from dimos.control.components import JointName -from dimos.hardware.manipulators.spec import ControlMode +from dimos.hardware.manipulators.spec import ControlMode as ControlMode from dimos.hardware.whole_body.spec import IMUState if TYPE_CHECKING: @@ -326,17 +326,3 @@ def set_target_by_name(self, positions: dict[str, float], t_now: float) -> bool: def set_velocities_by_name(self, velocities: dict[str, float], t_now: float) -> bool: """No-op default.""" return False - - -__all__ = [ - # Protocol + Base - "BaseControlTask", - # Types - "ControlMode", - "ControlTask", - "CoordinatorState", - "JointCommandOutput", - "JointName", - "JointStateSnapshot", - "ResourceClaim", -] diff --git a/dimos/control/tasks/cartesian_ik_task/cartesian_ik_task.py b/dimos/control/tasks/cartesian_ik_task/cartesian_ik_task.py index d43e10333d..fcf58b833a 100644 --- a/dimos/control/tasks/cartesian_ik_task/cartesian_ik_task.py +++ b/dimos/control/tasks/cartesian_ik_task/cartesian_ik_task.py @@ -324,12 +324,6 @@ def forward_kinematics(self, joint_positions: NDArray[np.floating[Any]]) -> pino return self._ik.forward_kinematics(joint_positions) -__all__ = [ - "CartesianIKTask", - "CartesianIKTaskConfig", -] - - class CartesianIKTaskParams(BaseConfig): model_path: str | Path ee_joint_id: int = 6 diff --git a/dimos/control/tasks/g1_groot_wbc_task/g1_groot_wbc_task.py b/dimos/control/tasks/g1_groot_wbc_task/g1_groot_wbc_task.py index 58a2eb2f91..98972195db 100644 --- a/dimos/control/tasks/g1_groot_wbc_task/g1_groot_wbc_task.py +++ b/dimos/control/tasks/g1_groot_wbc_task/g1_groot_wbc_task.py @@ -734,18 +734,6 @@ def _projected_gravity(quaternion: tuple[float, ...]) -> NDArray[np.float32]: return np.array([gx, gy, gz], dtype=np.float32) -__all__ = [ - "ARM_DEFAULT_POSE", - "G1_GROOT_KD", - "G1_GROOT_KP", - "G1GrootWBCTask", - "G1GrootWBCTaskConfig", - "g1_arms", - "g1_joints", - "g1_legs_waist", -] - - class G1GrootWBCTaskParams(BaseConfig): model_path: str | Path hardware_id: str diff --git a/dimos/control/tasks/registry.py b/dimos/control/tasks/registry.py index aab4d98731..44c3e80814 100644 --- a/dimos/control/tasks/registry.py +++ b/dimos/control/tasks/registry.py @@ -131,5 +131,3 @@ def _resolve_factory(self, key: str) -> TaskFactory: control_task_registry = ControlTaskRegistry() - -__all__ = ["ControlTaskRegistry", "TaskFactory", "control_task_registry"] diff --git a/dimos/control/tasks/servo_task/servo_task.py b/dimos/control/tasks/servo_task/servo_task.py index d61f58468d..ab30aff778 100644 --- a/dimos/control/tasks/servo_task/servo_task.py +++ b/dimos/control/tasks/servo_task/servo_task.py @@ -253,12 +253,6 @@ def is_streaming(self) -> bool: return self._active and self._target is not None -__all__ = [ - "JointServoTask", - "JointServoTaskConfig", -] - - class JointServoTaskParams(BaseConfig): timeout: float | None = None default_positions: list[float] | None = None diff --git a/dimos/control/tasks/teleop_task/teleop_task.py b/dimos/control/tasks/teleop_task/teleop_task.py index 32301b1f31..bcc7c62d98 100644 --- a/dimos/control/tasks/teleop_task/teleop_task.py +++ b/dimos/control/tasks/teleop_task/teleop_task.py @@ -354,12 +354,6 @@ def stop(self) -> None: logger.info(f"TeleopIKTask {self._name} stopped") -__all__ = [ - "TeleopIKTask", - "TeleopIKTaskConfig", -] - - class TeleopIKTaskParams(BaseConfig): model_path: str | Path ee_joint_id: int = 6 diff --git a/dimos/control/tasks/trajectory_task/trajectory_task.py b/dimos/control/tasks/trajectory_task/trajectory_task.py index b23ef6db3f..a3eb23dec3 100644 --- a/dimos/control/tasks/trajectory_task/trajectory_task.py +++ b/dimos/control/tasks/trajectory_task/trajectory_task.py @@ -250,13 +250,6 @@ def get_progress(self, t_now: float) -> float: return min(1.0, t_elapsed / self._trajectory.duration) -__all__ = [ - "JointTrajectoryTask", - "JointTrajectoryTaskConfig", - "TrajectoryState", -] - - def create_task(cfg: Any, hardware: Any) -> JointTrajectoryTask: return JointTrajectoryTask( cfg.name, diff --git a/dimos/control/tasks/velocity_task/velocity_task.py b/dimos/control/tasks/velocity_task/velocity_task.py index 94ff9fadd7..9d522d44bc 100644 --- a/dimos/control/tasks/velocity_task/velocity_task.py +++ b/dimos/control/tasks/velocity_task/velocity_task.py @@ -267,12 +267,6 @@ def is_streaming(self) -> bool: return self._active and self._velocities is not None and not self._timed_out -__all__ = [ - "JointVelocityTask", - "JointVelocityTaskConfig", -] - - class JointVelocityTaskParams(BaseConfig): timeout: float = 0.2 zero_on_timeout: bool = True diff --git a/dimos/control/tick_loop.py b/dimos/control/tick_loop.py index d38b7e76d2..975dfa9333 100644 --- a/dimos/control/tick_loop.py +++ b/dimos/control/tick_loop.py @@ -414,6 +414,3 @@ def _publish_joint_state(self, snapshot: JointStateSnapshot) -> None: ) if self._publish_callback: self._publish_callback(msg) - - -__all__ = ["TickLoop"] diff --git a/dimos/core/native_module.py b/dimos/core/native_module.py index 3736aea6d9..6e34a2ffd5 100644 --- a/dimos/core/native_module.py +++ b/dimos/core/native_module.py @@ -468,10 +468,3 @@ def _collect_topics(self) -> dict[str, str]: if topic is not None: topics[name] = str(topic) return topics - - -__all__ = [ - "LogFormat", - "NativeModule", - "NativeModuleConfig", -] diff --git a/dimos/core/tests/stress_test_blueprint.py b/dimos/core/tests/stress_test_blueprint.py index b8192680c6..884b85ad09 100644 --- a/dimos/core/tests/stress_test_blueprint.py +++ b/dimos/core/tests/stress_test_blueprint.py @@ -25,5 +25,3 @@ StressTestModule.blueprint(), McpServer.blueprint(), ) - -__all__ = ["demo_mcp_stress_test"] diff --git a/dimos/hardware/drive_trains/flowbase/adapter.py b/dimos/hardware/drive_trains/flowbase/adapter.py index 29a9fdee71..6ee8cb7854 100644 --- a/dimos/hardware/drive_trains/flowbase/adapter.py +++ b/dimos/hardware/drive_trains/flowbase/adapter.py @@ -180,6 +180,3 @@ def _send_velocity(self, vx: float, vy: float, wz: float) -> bool: def register(registry: TwistBaseAdapterRegistry) -> None: """Register this adapter with the registry.""" registry.register("flowbase", FlowBaseAdapter) - - -__all__ = ["FlowBaseAdapter"] diff --git a/dimos/hardware/drive_trains/mock/adapter.py b/dimos/hardware/drive_trains/mock/adapter.py index d6131305e6..976e3caa57 100644 --- a/dimos/hardware/drive_trains/mock/adapter.py +++ b/dimos/hardware/drive_trains/mock/adapter.py @@ -108,6 +108,3 @@ def set_velocities_directly(self, velocities: list[float]) -> None: def register(registry: TwistBaseAdapterRegistry) -> None: """Register this adapter with the registry.""" registry.register("mock_twist_base", MockTwistBaseAdapter) - - -__all__ = ["MockTwistBaseAdapter"] diff --git a/dimos/hardware/drive_trains/registry.py b/dimos/hardware/drive_trains/registry.py index a4c49b183c..a2b827a14c 100644 --- a/dimos/hardware/drive_trains/registry.py +++ b/dimos/hardware/drive_trains/registry.py @@ -99,5 +99,3 @@ def discover(self) -> None: twist_base_adapter_registry = TwistBaseAdapterRegistry() twist_base_adapter_registry.discover() - -__all__ = ["TwistBaseAdapterRegistry", "twist_base_adapter_registry"] diff --git a/dimos/hardware/drive_trains/spec.py b/dimos/hardware/drive_trains/spec.py index 1380ef1fa9..51365a1a7f 100644 --- a/dimos/hardware/drive_trains/spec.py +++ b/dimos/hardware/drive_trains/spec.py @@ -78,8 +78,3 @@ def write_enable(self, enable: bool) -> bool: def read_enabled(self) -> bool: """Check if platform is enabled.""" ... - - -__all__ = [ - "TwistBaseAdapter", -] diff --git a/dimos/hardware/drive_trains/transport/adapter.py b/dimos/hardware/drive_trains/transport/adapter.py index 5447b2eb93..cefae07a7e 100644 --- a/dimos/hardware/drive_trains/transport/adapter.py +++ b/dimos/hardware/drive_trains/transport/adapter.py @@ -152,6 +152,3 @@ def register(registry: TwistBaseAdapterRegistry) -> None: registry.register("transport_lcm", partial(TransportTwistAdapter, transport_cls=LCMTransport)) registry.register("transport_ros", partial(TransportTwistAdapter, transport_cls=ROSTransport)) - - -__all__ = ["TransportTwistAdapter"] diff --git a/dimos/hardware/drive_trains/unitree_go2/adapter.py b/dimos/hardware/drive_trains/unitree_go2/adapter.py index 6b8ce2167d..1d9726192c 100644 --- a/dimos/hardware/drive_trains/unitree_go2/adapter.py +++ b/dimos/hardware/drive_trains/unitree_go2/adapter.py @@ -686,6 +686,3 @@ def _send_velocity(self, vx: float, vy: float, wz: float) -> bool: def register(registry: TwistBaseAdapterRegistry) -> None: registry.register("unitree_go2", UnitreeGo2TwistAdapter) - - -__all__ = ["UnitreeGo2TwistAdapter"] diff --git a/dimos/hardware/manipulators/a750/adapter.py b/dimos/hardware/manipulators/a750/adapter.py index 1a04f8230c..82fc211fca 100644 --- a/dimos/hardware/manipulators/a750/adapter.py +++ b/dimos/hardware/manipulators/a750/adapter.py @@ -295,6 +295,3 @@ def _trace(self, method: str, **kwargs: object) -> None: def register(registry: AdapterRegistry) -> None: """Register this adapter with the registry.""" registry.register("a750", A750Adapter) - - -__all__ = ["A750Adapter"] diff --git a/dimos/hardware/manipulators/mock/adapter.py b/dimos/hardware/manipulators/mock/adapter.py index 95778f1b49..4d36849ef8 100644 --- a/dimos/hardware/manipulators/mock/adapter.py +++ b/dimos/hardware/manipulators/mock/adapter.py @@ -227,6 +227,3 @@ def set_efforts(self, efforts: list[float]) -> None: def register(registry: AdapterRegistry) -> None: """Register this adapter with the registry.""" registry.register("mock", MockAdapter) - - -__all__ = ["MockAdapter"] diff --git a/dimos/hardware/manipulators/openarm/adapter.py b/dimos/hardware/manipulators/openarm/adapter.py index 4a00556486..70a2413ddc 100644 --- a/dimos/hardware/manipulators/openarm/adapter.py +++ b/dimos/hardware/manipulators/openarm/adapter.py @@ -436,6 +436,3 @@ def read_force_torque(self) -> list[float] | None: # ── Registry hook (required for auto-discovery) ─────────────────── def register(registry: AdapterRegistry) -> None: registry.register("openarm", OpenArmAdapter) - - -__all__ = ["OpenArmAdapter", "register"] diff --git a/dimos/hardware/manipulators/openarm/driver.py b/dimos/hardware/manipulators/openarm/driver.py index 0783bd76ed..f7c9243cfa 100644 --- a/dimos/hardware/manipulators/openarm/driver.py +++ b/dimos/hardware/manipulators/openarm/driver.py @@ -327,21 +327,3 @@ def _rx_loop(self) -> None: continue with self._state_lock: self._states[motor.effective_recv_id] = state - - -__all__ = [ - "CTRL_MODE_MIT", - "KD_MAX", - "KD_MIN", - "KP_MAX", - "KP_MIN", - "DamiaoMotor", - "MotorState", - "MotorType", - "OpenArmBus", - "float_to_uint", - "pack_mit_frame", - "pack_write_param_frame", - "parse_state_frame", - "uint_to_float", -] diff --git a/dimos/hardware/manipulators/piper/adapter.py b/dimos/hardware/manipulators/piper/adapter.py index f1f1cdcd77..83d9c927aa 100644 --- a/dimos/hardware/manipulators/piper/adapter.py +++ b/dimos/hardware/manipulators/piper/adapter.py @@ -495,6 +495,3 @@ def read_force_torque(self) -> list[float] | None: def register(registry: AdapterRegistry) -> None: """Register this adapter with the registry.""" registry.register("piper", PiperAdapter) - - -__all__ = ["PiperAdapter"] diff --git a/dimos/hardware/manipulators/registry.py b/dimos/hardware/manipulators/registry.py index a8c87c149c..d30a6e7129 100644 --- a/dimos/hardware/manipulators/registry.py +++ b/dimos/hardware/manipulators/registry.py @@ -101,5 +101,3 @@ def discover(self) -> None: adapter_registry = AdapterRegistry() adapter_registry.discover() - -__all__ = ["AdapterRegistry", "adapter_registry"] diff --git a/dimos/hardware/manipulators/sim/adapter.py b/dimos/hardware/manipulators/sim/adapter.py index 0640461ff8..1cf117d071 100644 --- a/dimos/hardware/manipulators/sim/adapter.py +++ b/dimos/hardware/manipulators/sim/adapter.py @@ -247,6 +247,3 @@ def read_force_torque(self) -> list[float] | None: def register(registry: AdapterRegistry) -> None: """Register this adapter with the registry.""" registry.register("sim_mujoco", ShmMujocoAdapter) - - -__all__ = ["ShmMujocoAdapter"] diff --git a/dimos/hardware/manipulators/spec.py b/dimos/hardware/manipulators/spec.py index 3955416653..7cce1f5b7b 100644 --- a/dimos/hardware/manipulators/spec.py +++ b/dimos/hardware/manipulators/spec.py @@ -233,13 +233,3 @@ def write_gripper_position(self, position: float) -> bool: def read_force_torque(self) -> list[float] | None: """Read F/T sensor [fx, fy, fz, tx, ty, tz]. None if no sensor.""" ... - - -__all__ = [ - "ControlMode", - "DriverStatus", - "JointLimits", - "ManipulatorAdapter", - "ManipulatorInfo", - "default_base_transform", -] diff --git a/dimos/hardware/manipulators/xarm/adapter.py b/dimos/hardware/manipulators/xarm/adapter.py index bfc96d398f..ec3b09b565 100644 --- a/dimos/hardware/manipulators/xarm/adapter.py +++ b/dimos/hardware/manipulators/xarm/adapter.py @@ -404,6 +404,3 @@ def read_force_torque(self) -> list[float] | None: def register(registry: AdapterRegistry) -> None: """Register this adapter with the registry.""" registry.register("xarm", XArmAdapter) - - -__all__ = ["XArmAdapter"] diff --git a/dimos/hardware/sensors/camera/gstreamer/gstreamer_camera_test_script.py b/dimos/hardware/sensors/camera/gstreamer/gstreamer_camera_test_script.py index 56f0591b28..7bef41e5e1 100755 --- a/dimos/hardware/sensors/camera/gstreamer/gstreamer_camera_test_script.py +++ b/dimos/hardware/sensors/camera/gstreamer/gstreamer_camera_test_script.py @@ -22,7 +22,7 @@ from dimos.core.transport import LCMTransport from dimos.hardware.sensors.camera.gstreamer.gstreamer_camera import GstreamerCameraModule from dimos.msgs.sensor_msgs.Image import Image -from dimos.protocol.pubsub.impl import lcmpubsub as _lcm +from dimos.protocol.service.lcmservice import autoconf from dimos.utils.logging_config import setup_logger logger = setup_logger() @@ -59,7 +59,7 @@ def main() -> None: logging.getLogger().setLevel(logging.DEBUG) # Initialize LCM - _lcm.autoconf() + autoconf() # Start dimos dimos = ModuleCoordinator() diff --git a/dimos/hardware/sensors/camera/zed/compat.py b/dimos/hardware/sensors/camera/zed/compat.py index 349c4484a6..f7e78fc5d6 100644 --- a/dimos/hardware/sensors/camera/zed/compat.py +++ b/dimos/hardware/sensors/camera/zed/compat.py @@ -28,7 +28,10 @@ HAS_ZED_SDK = False if HAS_ZED_SDK: - from dimos.hardware.sensors.camera.zed.camera import ZEDCamera, ZEDModule + from dimos.hardware.sensors.camera.zed.camera import ( + ZEDCamera as ZEDCamera, + ZEDModule as ZEDModule, + ) else: # Provide stub classes when SDK is not available _ZED_ERR = ( @@ -51,10 +54,3 @@ def __init__(self, *args, **kwargs) -> None: # type: ignore[no-untyped-def] # Set up camera calibration provider (always available) CALIBRATION_DIR = Path(__file__).parent CameraInfo = CalibrationProvider(CALIBRATION_DIR) - -__all__ = [ - "HAS_ZED_SDK", - "CameraInfo", - "ZEDCamera", - "ZEDModule", -] diff --git a/dimos/hardware/whole_body/registry.py b/dimos/hardware/whole_body/registry.py index 5e6291b946..ec841fe182 100644 --- a/dimos/hardware/whole_body/registry.py +++ b/dimos/hardware/whole_body/registry.py @@ -102,5 +102,3 @@ def _discover_in(self, pkg_path: str, dir_path: str, *, max_depth: int) -> None: whole_body_adapter_registry = WholeBodyAdapterRegistry() whole_body_adapter_registry.discover() - -__all__ = ["WholeBodyAdapterRegistry", "whole_body_adapter_registry"] diff --git a/dimos/hardware/whole_body/spec.py b/dimos/hardware/whole_body/spec.py index 6cb88751f0..f725d51403 100644 --- a/dimos/hardware/whole_body/spec.py +++ b/dimos/hardware/whole_body/spec.py @@ -85,14 +85,3 @@ def has_motor_states(self) -> bool: ... def read_imu(self) -> IMUState: ... def write_motor_commands(self, commands: list[MotorCommand]) -> bool: ... - - -__all__ = [ - "POS_STOP", - "VEL_STOP", - "IMUState", - "MotorCommand", - "MotorState", - "WholeBodyAdapter", - "WholeBodyConfig", -] diff --git a/dimos/hardware/whole_body/transport/adapter.py b/dimos/hardware/whole_body/transport/adapter.py index 8950803bb3..66ed57523a 100644 --- a/dimos/hardware/whole_body/transport/adapter.py +++ b/dimos/hardware/whole_body/transport/adapter.py @@ -194,6 +194,3 @@ def register(registry: WholeBodyAdapterRegistry) -> None: "transport_ros", partial(TransportWholeBodyAdapter, transport_cls=ROSTransport), ) - - -__all__ = ["TransportWholeBodyAdapter"] diff --git a/dimos/manipulation/blueprints.py b/dimos/manipulation/blueprints.py index e49a11417a..5207135638 100644 --- a/dimos/manipulation/blueprints.py +++ b/dimos/manipulation/blueprints.py @@ -414,15 +414,3 @@ def _make_xarm7_model_config( McpServer.blueprint(), McpClient.blueprint(system_prompt=_MANIPULATION_AGENT_SYSTEM_PROMPT), ) - - -__all__ = [ - "dual_xarm6_planner", - "xarm6_planner_only", - "xarm7_planner_coordinator", - "xarm7_planner_coordinator_agent", - "xarm_perception", - "xarm_perception_agent", - "xarm_perception_sim", - "xarm_perception_sim_agent", -] diff --git a/dimos/manipulation/planning/kinematics/config.py b/dimos/manipulation/planning/kinematics/config.py index 3f31f0cacf..97835a6484 100644 --- a/dimos/manipulation/planning/kinematics/config.py +++ b/dimos/manipulation/planning/kinematics/config.py @@ -68,12 +68,3 @@ def kinematics_config_from_name(name: str) -> ManipulationKinematicsConfig: raise ValueError( f"Unknown kinematics solver: {name}. Available: ['jacobian', 'drake_optimization', 'pink']" ) - - -__all__ = [ - "DrakeOptimizationKinematicsConfig", - "JacobianKinematicsConfig", - "ManipulationKinematicsConfig", - "PinkKinematicsConfig", - "kinematics_config_from_name", -] diff --git a/dimos/manipulation/planning/kinematics/pink_ik.py b/dimos/manipulation/planning/kinematics/pink_ik.py index f8eb52e700..1245e5aea4 100644 --- a/dimos/manipulation/planning/kinematics/pink_ik.py +++ b/dimos/manipulation/planning/kinematics/pink_ik.py @@ -486,6 +486,3 @@ def _collision_failure(result: IKResult) -> IKResult: iterations=result.iterations, message="Pink IK solution rejected by collision check", ) - - -__all__ = ["PinkIK", "PinkIKConfig", "PinkIKDependencyError"] diff --git a/dimos/manipulation/planning/kinematics/pinocchio_ik.py b/dimos/manipulation/planning/kinematics/pinocchio_ik.py index f97dea7038..79eb831eef 100644 --- a/dimos/manipulation/planning/kinematics/pinocchio_ik.py +++ b/dimos/manipulation/planning/kinematics/pinocchio_ik.py @@ -253,12 +253,3 @@ def get_worst_joint_delta( joint_deltas = np.abs(q_new - q_current) worst_idx = int(np.argmax(joint_deltas)) return worst_idx, float(np.degrees(joint_deltas[worst_idx])) - - -__all__ = [ - "PinocchioIK", - "PinocchioIKConfig", - "check_joint_delta", - "get_worst_joint_delta", - "pose_to_se3", -] diff --git a/dimos/manipulation/visualization/viser/runtime.py b/dimos/manipulation/visualization/viser/runtime.py index 6e1a662343..fb4cc20ff9 100644 --- a/dimos/manipulation/visualization/viser/runtime.py +++ b/dimos/manipulation/visualization/viser/runtime.py @@ -22,14 +22,12 @@ VISER_URDF_INSTALL_HINT = VISER_INSTALL_HINT try: - from viser import ViserServer + from viser import ViserServer as ViserServer except ModuleNotFoundError as e: if e.name != "viser": raise raise ModuleNotFoundError(VISER_INSTALL_HINT) from e -__all__ = ["VISER_INSTALL_HINT", "VISER_URDF_INSTALL_HINT", "ViserRuntime", "ViserServer"] - class ViserRuntime: """Owns the Viser server lifecycle.""" diff --git a/dimos/mapping/ray_tracing/voxel_map.py b/dimos/mapping/ray_tracing/voxel_map.py index e362c6697c..fae8ee61a4 100644 --- a/dimos/mapping/ray_tracing/voxel_map.py +++ b/dimos/mapping/ray_tracing/voxel_map.py @@ -17,11 +17,9 @@ from __future__ import annotations try: - from dimos_voxel_ray_tracing import VoxelRayMapper + from dimos_voxel_ray_tracing import VoxelRayMapper # noqa: F401 (re-exported) except ImportError as e: raise ImportError( "dimos_voxel_ray_tracing is not built. Run: " "uv run maturin develop --uv -m dimos/mapping/ray_tracing/rust/Cargo.toml" ) from e - -__all__ = ["VoxelRayMapper"] diff --git a/dimos/models/vl/create.py b/dimos/models/vl/create.py index 362a95b000..b60f437bee 100644 --- a/dimos/models/vl/create.py +++ b/dimos/models/vl/create.py @@ -15,8 +15,6 @@ from dimos.models.vl.base import VlModel from dimos.models.vl.types import VlModelName -__all__ = ["VlModelName", "create"] - def create(name: VlModelName) -> VlModel: # This uses inline imports to only import what's needed. diff --git a/dimos/msgs/geometry_msgs/Twist.py b/dimos/msgs/geometry_msgs/Twist.py index be5d9a34a0..066afce454 100644 --- a/dimos/msgs/geometry_msgs/Twist.py +++ b/dimos/msgs/geometry_msgs/Twist.py @@ -116,6 +116,3 @@ def __bool__(self) -> bool: False if twist is zero, True otherwise """ return not self.is_zero() - - -__all__ = ["Quaternion", "Twist"] diff --git a/dimos/msgs/sensor_msgs/Image.py b/dimos/msgs/sensor_msgs/Image.py index 5eaca03886..3cc7bec103 100644 --- a/dimos/msgs/sensor_msgs/Image.py +++ b/dimos/msgs/sensor_msgs/Image.py @@ -619,14 +619,6 @@ def lcm_jpeg_decode(cls, data: bytes, **kwargs: Any) -> Image: ) -__all__ = [ - "Image", - "ImageFormat", - "sharpness_barrier", - "sharpness_window", -] - - def sharpness_window(target_frequency: float, source: Observable[Image]) -> Observable[Image]: """Emit the sharpest Image seen within each sliding time window.""" from reactivex.scheduler import ThreadPoolScheduler diff --git a/dimos/msgs/sensor_msgs/image_impls/AbstractImage.py b/dimos/msgs/sensor_msgs/image_impls/AbstractImage.py index 80a1bb7cec..3b901b874b 100644 --- a/dimos/msgs/sensor_msgs/image_impls/AbstractImage.py +++ b/dimos/msgs/sensor_msgs/image_impls/AbstractImage.py @@ -14,6 +14,4 @@ # Backwards compatibility stub for unpickling old data. # AbstractImage and ImageFormat were moved to Image. -from dimos.msgs.sensor_msgs.Image import Image as AbstractImage, ImageFormat - -__all__ = ["AbstractImage", "ImageFormat"] +from dimos.msgs.sensor_msgs.Image import Image as AbstractImage, ImageFormat # noqa: F401 diff --git a/dimos/navigation/base.py b/dimos/navigation/base.py index 1530308711..dc9cbbe9c2 100644 --- a/dimos/navigation/base.py +++ b/dimos/navigation/base.py @@ -68,6 +68,3 @@ def cancel_goal(self) -> bool: True if goal was cancelled, False if no goal was active """ pass - - -__all__ = ["NavigationInterface", "NavigationState"] diff --git a/dimos/navigation/nav_3d/evaluator/blueprints.py b/dimos/navigation/nav_3d/evaluator/blueprints.py index 97200c98fc..7806fbbc7c 100644 --- a/dimos/navigation/nav_3d/evaluator/blueprints.py +++ b/dimos/navigation/nav_3d/evaluator/blueprints.py @@ -115,6 +115,3 @@ def _render_node_edges(msg: LineSegments3D) -> Archetype: } ), ) - - -__all__ = ["path_planner_eval"] diff --git a/dimos/navigation/nav_3d/mls_planner/mls_planner.py b/dimos/navigation/nav_3d/mls_planner/mls_planner.py index 90e3d3b549..4aa8755f33 100644 --- a/dimos/navigation/nav_3d/mls_planner/mls_planner.py +++ b/dimos/navigation/nav_3d/mls_planner/mls_planner.py @@ -17,11 +17,9 @@ from __future__ import annotations try: - from dimos_mls_planner import MLSPlanner + from dimos_mls_planner import MLSPlanner # noqa: F401 (re-exported) except ImportError as e: raise ImportError( "dimos_mls_planner is not built. Run: " "uv run maturin develop --uv -m dimos/navigation/nav_3d/mls_planner/rust/Cargo.toml" ) from e - -__all__ = ["MLSPlanner"] diff --git a/dimos/perception/common/utils.py b/dimos/perception/common/utils.py index 20ffc2a254..bbbd43bcda 100644 --- a/dimos/perception/common/utils.py +++ b/dimos/perception/common/utils.py @@ -36,46 +36,6 @@ logger = setup_logger() -__all__ = [ - "BoundingBox2D", - "CameraInfo", - "Detection2D", - "Detection3D", - "Header", - "Image", - "ObjectData", - "Pose", - "Quaternion", - "Union", - "Vector", - "Vector3", - "bbox2d_to_corners", - "colorize_depth", - "combine_object_data", - "cp", - "cv2", - "detection_results_to_object_data", - "draw_bounding_box", - "draw_object_detection_visualization", - "draw_segmentation_mask", - "extract_pose_from_detection3d", - "find_clicked_detection", - "load_camera_info", - "load_camera_info_opencv", - "logger", - "np", - "point_in_bbox", - "project_2d_points_to_3d", - "project_2d_points_to_3d_cpu", - "project_2d_points_to_3d_cuda", - "project_3d_points_to_2d", - "project_3d_points_to_2d_cpu", - "project_3d_points_to_2d_cuda", - "rectify_image", - "setup_logger", - "torch", - "yaml", -] # Optional CuPy support try: # pragma: no cover - optional dependency diff --git a/dimos/perception/detection/objectDB.py b/dimos/perception/detection/objectDB.py index b9d96ab5ef..4ac57551a5 100644 --- a/dimos/perception/detection/objectDB.py +++ b/dimos/perception/detection/objectDB.py @@ -324,6 +324,3 @@ def __len__(self) -> int: def __repr__(self) -> str: with self._lock: return f"ObjectDB(permanent={len(self._objects)}, pending={len(self._pending_objects)})" - - -__all__ = ["ObjectDB"] diff --git a/dimos/perception/detection/type/detection3d/object.py b/dimos/perception/detection/type/detection3d/object.py index 1aafdd8df8..f832eedaf4 100644 --- a/dimos/perception/detection/type/detection3d/object.py +++ b/dimos/perception/detection/type/detection3d/object.py @@ -391,6 +391,3 @@ def to_detection3d_array(objects: list[Object]) -> Detection3DArray: array.detections.append(obj.to_detection3d_msg()) return array - - -__all__ = ["Object", "aggregate_pointclouds", "to_detection3d_array"] diff --git a/dimos/perception/experimental/temporal_memory/clip_filter.py b/dimos/perception/experimental/temporal_memory/clip_filter.py index 6ef7859e17..cb89c31c55 100644 --- a/dimos/perception/experimental/temporal_memory/clip_filter.py +++ b/dimos/perception/experimental/temporal_memory/clip_filter.py @@ -159,13 +159,3 @@ def adaptive_keyframes( keyframe_indices.update(candidates[::step][:needed]) return [frames[i] for i in sorted(keyframe_indices)] - - -__all__ = [ - "CLIP_AVAILABLE", - "adaptive_keyframes", - "select_diverse_frames_simple", -] - -if CLIP_AVAILABLE: - __all__.append("CLIPFrameFilter") diff --git a/dimos/protocol/pubsub/impl/ddspubsub.py b/dimos/protocol/pubsub/impl/ddspubsub.py index 1e6dc36296..f6cf4e024e 100644 --- a/dimos/protocol/pubsub/impl/ddspubsub.py +++ b/dimos/protocol/pubsub/impl/ddspubsub.py @@ -21,7 +21,7 @@ from cyclonedds.core import Listener from cyclonedds.pub import DataWriter as DDSDataWriter -from cyclonedds.qos import Policy, Qos +from cyclonedds.qos import Qos from cyclonedds.sub import DataReader as DDSDataReader from cyclonedds.topic import Topic as DDSTopic @@ -150,12 +150,3 @@ def stop(self) -> None: with self._writer_lock: self._writers.clear() super().stop() - - -__all__ = [ - "DDS", - "MessageCallback", - "Policy", - "Qos", - "Topic", -] diff --git a/dimos/protocol/pubsub/impl/lcmpubsub.py b/dimos/protocol/pubsub/impl/lcmpubsub.py index a8cfc8c7ab..53d23dfb2a 100644 --- a/dimos/protocol/pubsub/impl/lcmpubsub.py +++ b/dimos/protocol/pubsub/impl/lcmpubsub.py @@ -27,7 +27,7 @@ ) from dimos.protocol.pubsub.patterns import Glob from dimos.protocol.pubsub.spec import AllPubSub -from dimos.protocol.service.lcmservice import LCMService, autoconf +from dimos.protocol.service.lcmservice import LCMService from dimos.utils.logging_config import setup_logger logger = setup_logger() @@ -146,14 +146,3 @@ class PickleLCM( PickleEncoderMixin, # type: ignore[type-arg] LCMPubSubBase, ): ... - - -__all__ = [ - "LCM", - "Glob", - "LCMEncoderMixin", - "LCMPubSubBase", - "PickleLCM", - "Topic", - "autoconf", -] diff --git a/dimos/protocol/service/ddsservice.py b/dimos/protocol/service/ddsservice.py index 71df162707..0354989671 100644 --- a/dimos/protocol/service/ddsservice.py +++ b/dimos/protocol/service/ddsservice.py @@ -67,9 +67,3 @@ def participant(self) -> DomainParticipant: if domain_id not in _participants: raise RuntimeError(f"DomainParticipant not initialized for domain {domain_id}") return _participants[domain_id] - - -__all__ = [ - "DDSConfig", - "DDSService", -] diff --git a/dimos/robot/cli/topic.py b/dimos/robot/cli/topic.py index e4dce1f139..334c30fa79 100644 --- a/dimos/robot/cli/topic.py +++ b/dimos/robot/cli/topic.py @@ -120,7 +120,7 @@ def topic_send(topic: str, message_expr: str) -> None: for module_name in modules_to_import: try: module = importlib.import_module(module_name) - for name in getattr(module, "__all__", dir(module)): + for name in dir(module): if not name.startswith("_"): obj = getattr(module, name, None) if obj is not None: diff --git a/dimos/robot/diy/alfred/effector_high_level.py b/dimos/robot/diy/alfred/effector_high_level.py index e25a106688..cf8c0586db 100644 --- a/dimos/robot/diy/alfred/effector_high_level.py +++ b/dimos/robot/diy/alfred/effector_high_level.py @@ -157,6 +157,3 @@ async def _send_velocity(self, vx: float, vy: float, wz: float) -> bool: except Exception as e: logger.error(f"Error sending Alfred velocity: {e}") return False - - -__all__ = ["AlfredHighLevel", "AlfredHighLevelConfig"] diff --git a/dimos/robot/drone/blueprints/agentic/drone_agentic.py b/dimos/robot/drone/blueprints/agentic/drone_agentic.py index 364d05c6fd..5fbce4ef72 100644 --- a/dimos/robot/drone/blueprints/agentic/drone_agentic.py +++ b/dimos/robot/drone/blueprints/agentic/drone_agentic.py @@ -54,8 +54,3 @@ (DroneTrackingModule, "cmd_vel", "movecmd_twist"), ] ) - -__all__ = [ - "DRONE_SYSTEM_PROMPT", - "drone_agentic", -] diff --git a/dimos/robot/drone/blueprints/basic/drone_basic.py b/dimos/robot/drone/blueprints/basic/drone_basic.py index aaf82f6355..4fbee93840 100644 --- a/dimos/robot/drone/blueprints/basic/drone_basic.py +++ b/dimos/robot/drone/blueprints/basic/drone_basic.py @@ -81,7 +81,3 @@ def _drone_rerun_blueprint() -> Any: ), DroneCameraModule.blueprint(camera_intrinsics=[1000.0, 1000.0, 960.0, 540.0]), ) - -__all__ = [ - "drone_basic", -] diff --git a/dimos/robot/manipulators/a750/blueprints.py b/dimos/robot/manipulators/a750/blueprints.py index d4fcc930a1..408f2a4a83 100644 --- a/dimos/robot/manipulators/a750/blueprints.py +++ b/dimos/robot/manipulators/a750/blueprints.py @@ -117,5 +117,3 @@ def _a750_model_config() -> RobotModelConfig: visualization={"backend": "meshcat"}, ), ) - -__all__ = ["keyboard_teleop_a750"] diff --git a/dimos/robot/manipulators/openarm/blueprints.py b/dimos/robot/manipulators/openarm/blueprints.py index e7470a739f..84a8a0489a 100644 --- a/dimos/robot/manipulators/openarm/blueprints.py +++ b/dimos/robot/manipulators/openarm/blueprints.py @@ -287,15 +287,3 @@ def _openarm_single_model_config() -> RobotModelConfig: visualization={"backend": "meshcat"}, ), ) - - -__all__ = [ - "coordinator_openarm_bimanual", - "coordinator_openarm_left", - "coordinator_openarm_mock", - "coordinator_openarm_right", - "keyboard_teleop_openarm", - "keyboard_teleop_openarm_mock", - "openarm_mock_planner_coordinator", - "openarm_planner_coordinator", -] diff --git a/dimos/robot/manipulators/piper/blueprints.py b/dimos/robot/manipulators/piper/blueprints.py index 44225248d0..2ae06e98d5 100644 --- a/dimos/robot/manipulators/piper/blueprints.py +++ b/dimos/robot/manipulators/piper/blueprints.py @@ -106,5 +106,3 @@ def _piper_model_config() -> RobotModelConfig: visualization={"backend": "meshcat"}, ), ) - -__all__ = ["keyboard_teleop_piper"] diff --git a/dimos/robot/manipulators/xarm/blueprints.py b/dimos/robot/manipulators/xarm/blueprints.py index 7d48571f67..97b3db042b 100644 --- a/dimos/robot/manipulators/xarm/blueprints.py +++ b/dimos/robot/manipulators/xarm/blueprints.py @@ -159,5 +159,3 @@ def _xarm_model_config(dof: int, *, add_gripper: bool = False) -> RobotModelConf visualization={"backend": "meshcat"}, ), ) - -__all__ = ["keyboard_teleop_xarm6", "keyboard_teleop_xarm7"] diff --git a/dimos/robot/model_parser.py b/dimos/robot/model_parser.py index 1b760d065d..7040d98fc3 100644 --- a/dimos/robot/model_parser.py +++ b/dimos/robot/model_parser.py @@ -237,6 +237,3 @@ def _float_or_none(value: str | None) -> float | None: return float(value) except ValueError: return None - - -__all__ = ["JointDescription", "ModelDescription", "parse_model"] diff --git a/dimos/robot/unitree/g1/blueprints/agentic/_agentic_skills.py b/dimos/robot/unitree/g1/blueprints/agentic/_agentic_skills.py index 557554e061..1bc068044a 100644 --- a/dimos/robot/unitree/g1/blueprints/agentic/_agentic_skills.py +++ b/dimos/robot/unitree/g1/blueprints/agentic/_agentic_skills.py @@ -30,5 +30,3 @@ SpeakSkill.blueprint(), UnitreeG1SkillContainer.blueprint(), ) - -__all__ = ["_agentic_skills"] diff --git a/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_agentic.py b/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_agentic.py index cd2044d293..ba02bd6998 100644 --- a/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_agentic.py +++ b/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_agentic.py @@ -23,5 +23,3 @@ unitree_g1, _agentic_skills, ) - -__all__ = ["unitree_g1_agentic"] diff --git a/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_agentic_sim.py b/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_agentic_sim.py index 3c0894382b..9cbe4ea3e3 100644 --- a/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_agentic_sim.py +++ b/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_agentic_sim.py @@ -23,5 +23,3 @@ unitree_g1_sim, _agentic_skills, ) - -__all__ = ["unitree_g1_agentic_sim"] diff --git a/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_full.py b/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_full.py index a70b8f0bb3..6c425d08fa 100644 --- a/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_full.py +++ b/dimos/robot/unitree/g1/blueprints/agentic/unitree_g1_full.py @@ -25,5 +25,3 @@ _agentic_skills, KeyboardTeleop.blueprint(), ) - -__all__ = ["unitree_g1_full"] diff --git a/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_basic.py b/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_basic.py index 7a40ad71a4..0875c942d6 100644 --- a/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_basic.py +++ b/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_basic.py @@ -25,5 +25,3 @@ unitree_g1_primitive_no_nav, G1Connection.blueprint(), ) - -__all__ = ["unitree_g1_basic"] diff --git a/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_basic_sim.py b/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_basic_sim.py index 628e8a8867..2e24f27c79 100644 --- a/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_basic_sim.py +++ b/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_basic_sim.py @@ -27,5 +27,3 @@ G1SimConnection.blueprint(), ReplanningAStarPlanner.blueprint(), ) - -__all__ = ["unitree_g1_basic_sim"] diff --git a/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_coordinator.py b/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_coordinator.py index 33bfbac2cd..2f5d671bc9 100644 --- a/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_coordinator.py +++ b/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_coordinator.py @@ -73,6 +73,3 @@ } ) ) - - -__all__ = ["unitree_g1_coordinator"] diff --git a/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_groot_wbc.py b/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_groot_wbc.py index af91cbd200..3428ac91a1 100644 --- a/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_groot_wbc.py +++ b/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_groot_wbc.py @@ -261,5 +261,3 @@ def _viewer() -> Any: unitree_g1_groot_wbc = autoconnect(_backend, _coordinator, _viewer()).global_config( robot_model="unitree_g1" ) - -__all__ = ["unitree_g1_groot_wbc"] diff --git a/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_joystick.py b/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_joystick.py index c30797e1ee..1e05a110e3 100644 --- a/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_joystick.py +++ b/dimos/robot/unitree/g1/blueprints/basic/unitree_g1_joystick.py @@ -23,5 +23,3 @@ unitree_g1_basic, KeyboardTeleop.blueprint(), # Pygame-based joystick control ) - -__all__ = ["unitree_g1_joystick"] diff --git a/dimos/robot/unitree/g1/blueprints/navigation/unitree_g1_nav_onboard.py b/dimos/robot/unitree/g1/blueprints/navigation/unitree_g1_nav_onboard.py index 1fe25fb40d..70a2cfe177 100644 --- a/dimos/robot/unitree/g1/blueprints/navigation/unitree_g1_nav_onboard.py +++ b/dimos/robot/unitree/g1/blueprints/navigation/unitree_g1_nav_onboard.py @@ -80,6 +80,3 @@ ) .global_config(n_workers=12, robot_model="unitree_g1") ) - - -__all__ = ["unitree_g1_nav_onboard"] diff --git a/dimos/robot/unitree/g1/blueprints/navigation/unitree_g1_nav_simple.py b/dimos/robot/unitree/g1/blueprints/navigation/unitree_g1_nav_simple.py index e1c3bd7ba4..a323b8c88c 100644 --- a/dimos/robot/unitree/g1/blueprints/navigation/unitree_g1_nav_simple.py +++ b/dimos/robot/unitree/g1/blueprints/navigation/unitree_g1_nav_simple.py @@ -52,5 +52,3 @@ MovementManager.blueprint(), unitree_g1_vis, ).global_config(n_workers=10, robot_model="unitree_g1") - -__all__ = ["unitree_g1_nav_simple"] diff --git a/dimos/robot/unitree/g1/blueprints/perceptive/_perception_and_memory.py b/dimos/robot/unitree/g1/blueprints/perceptive/_perception_and_memory.py index 77d2e827ef..67224f3fd1 100644 --- a/dimos/robot/unitree/g1/blueprints/perceptive/_perception_and_memory.py +++ b/dimos/robot/unitree/g1/blueprints/perceptive/_perception_and_memory.py @@ -23,5 +23,3 @@ SpatialMemory.blueprint(), ObjectTracking.blueprint(frame_id="camera_link"), ) - -__all__ = ["_perception_and_memory"] diff --git a/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1.py b/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1.py index 7325b06601..e59b3794e0 100644 --- a/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1.py +++ b/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1.py @@ -25,5 +25,3 @@ unitree_g1_basic, _perception_and_memory, ).global_config(n_workers=8) - -__all__ = ["unitree_g1"] diff --git a/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_detection.py b/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_detection.py index a744662165..230d6ce32a 100644 --- a/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_detection.py +++ b/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_detection.py @@ -102,5 +102,3 @@ def _person_only(det: Any) -> bool: } ) ) - -__all__ = ["unitree_g1_detection"] diff --git a/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_shm.py b/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_shm.py index 33075703db..37727eaf9b 100644 --- a/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_shm.py +++ b/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_shm.py @@ -33,5 +33,3 @@ ), vis_module(viewer_backend=global_config.viewer), ) - -__all__ = ["unitree_g1_shm"] diff --git a/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_sim.py b/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_sim.py index a55bd40af8..f1ae5c5023 100644 --- a/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_sim.py +++ b/dimos/robot/unitree/g1/blueprints/perceptive/unitree_g1_sim.py @@ -25,5 +25,3 @@ unitree_g1_basic_sim, _perception_and_memory, ).global_config(n_workers=8) - -__all__ = ["unitree_g1_sim"] diff --git a/dimos/robot/unitree/g1/blueprints/primitive/unitree_g1_primitive_no_nav.py b/dimos/robot/unitree/g1/blueprints/primitive/unitree_g1_primitive_no_nav.py index 356d9d557b..3a7aa46f18 100644 --- a/dimos/robot/unitree/g1/blueprints/primitive/unitree_g1_primitive_no_nav.py +++ b/dimos/robot/unitree/g1/blueprints/primitive/unitree_g1_primitive_no_nav.py @@ -154,5 +154,3 @@ def _create_webcam() -> Webcam: } ) ) - -__all__ = ["unitree_g1_primitive_no_nav"] diff --git a/dimos/robot/unitree/g1/blueprints/primitive/unitree_g1_vis.py b/dimos/robot/unitree/g1/blueprints/primitive/unitree_g1_vis.py index 64dec5e4bb..d70a46a6c8 100644 --- a/dimos/robot/unitree/g1/blueprints/primitive/unitree_g1_vis.py +++ b/dimos/robot/unitree/g1/blueprints/primitive/unitree_g1_vis.py @@ -57,5 +57,3 @@ def _g1_path_colors(path: Path) -> Any: vis_throttle=0.5, ), ) - -__all__ = ["unitree_g1_vis"] diff --git a/dimos/robot/unitree/g1/effectors/high_level/commands.py b/dimos/robot/unitree/g1/effectors/high_level/commands.py index 09b84cfe4e..764b0b458d 100644 --- a/dimos/robot/unitree/g1/effectors/high_level/commands.py +++ b/dimos/robot/unitree/g1/effectors/high_level/commands.py @@ -94,19 +94,3 @@ def execute_g1_command( if logger is not None: logger.error(f"Failed to execute {command_name}: {exc}") return "Failed to execute the command." - - -__all__ = [ - "ARM_API_ID", - "ARM_COMMANDS", - "ARM_COMMANDS_DOC", - "ARM_TOPIC", - "G1_ARM_CONTROLS", - "G1_MODE_CONTROLS", - "MODE_API_ID", - "MODE_COMMANDS", - "MODE_COMMANDS_DOC", - "MODE_TOPIC", - "PublishRequest", - "execute_g1_command", -] diff --git a/dimos/robot/unitree/g1/effectors/high_level/dds_sdk.py b/dimos/robot/unitree/g1/effectors/high_level/dds_sdk.py index 462b48d959..df62f9c0b4 100644 --- a/dimos/robot/unitree/g1/effectors/high_level/dds_sdk.py +++ b/dimos/robot/unitree/g1/effectors/high_level/dds_sdk.py @@ -391,6 +391,3 @@ def _get_fsm_id(self) -> int | None: except Exception as e: logger.error(f"Error getting FSM ID: {e}") return None - - -__all__ = ["FsmState", "G1HighLevelDdsSdk", "G1HighLevelDdsSdkConfig"] diff --git a/dimos/robot/unitree/g1/effectors/high_level/high_level_spec.py b/dimos/robot/unitree/g1/effectors/high_level/high_level_spec.py index e150e3e322..01dde2ab24 100644 --- a/dimos/robot/unitree/g1/effectors/high_level/high_level_spec.py +++ b/dimos/robot/unitree/g1/effectors/high_level/high_level_spec.py @@ -35,6 +35,3 @@ def publish_request(self, topic: str, data: dict[str, Any]) -> dict[str, Any]: . def stand_up(self) -> bool: ... def lie_down(self) -> bool: ... - - -__all__ = ["HighLevelG1Spec"] diff --git a/dimos/robot/unitree/g1/effectors/high_level/webrtc.py b/dimos/robot/unitree/g1/effectors/high_level/webrtc.py index f027a088c9..7b9743f4d0 100644 --- a/dimos/robot/unitree/g1/effectors/high_level/webrtc.py +++ b/dimos/robot/unitree/g1/effectors/high_level/webrtc.py @@ -160,6 +160,3 @@ def execute_mode_command(self, command_name: str) -> str: {MODE_COMMANDS_DOC} """ - - -__all__ = ["G1HighLevelWebRtc", "G1HighLevelWebRtcConfig"] diff --git a/dimos/robot/unitree/g1/mujoco_sim.py b/dimos/robot/unitree/g1/mujoco_sim.py index f1c9e92310..0611c68a37 100644 --- a/dimos/robot/unitree/g1/mujoco_sim.py +++ b/dimos/robot/unitree/g1/mujoco_sim.py @@ -147,6 +147,3 @@ def publish_request(self, topic: str, data: dict[str, Any]) -> dict[Any, Any]: logger.info(f"Publishing request to topic: {topic} with data: {data}") assert self.connection is not None return self.connection.publish_request(topic, data) - - -__all__ = ["G1SimConnection"] diff --git a/dimos/robot/unitree/g1/wholebody_connection.py b/dimos/robot/unitree/g1/wholebody_connection.py index 9577554b5f..d1adeea993 100644 --- a/dimos/robot/unitree/g1/wholebody_connection.py +++ b/dimos/robot/unitree/g1/wholebody_connection.py @@ -423,11 +423,3 @@ def _release_sport_mode(self) -> None: time.sleep(1) logger.info("Sport mode released - low-level control active") - - -__all__ = [ - "G1_JOINT_NAMES", - "G1LowStateSnapshot", - "G1WholeBodyConnection", - "G1WholeBodyConnectionConfig", -] diff --git a/dimos/robot/unitree/go2/blueprints/agentic/_common_agentic.py b/dimos/robot/unitree/go2/blueprints/agentic/_common_agentic.py index 93312225bc..aa34547664 100644 --- a/dimos/robot/unitree/go2/blueprints/agentic/_common_agentic.py +++ b/dimos/robot/unitree/go2/blueprints/agentic/_common_agentic.py @@ -28,5 +28,3 @@ WebInput.blueprint(), SpeakSkill.blueprint(), ) - -__all__ = ["_common_agentic"] diff --git a/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic.py b/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic.py index b9716842fa..a81ae79e65 100644 --- a/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic.py +++ b/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic.py @@ -25,5 +25,3 @@ McpClient.blueprint(), _common_agentic, ) - -__all__ = ["unitree_go2_agentic"] diff --git a/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic_huggingface.py b/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic_huggingface.py index d7f7f26dfa..8e4a373504 100644 --- a/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic_huggingface.py +++ b/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic_huggingface.py @@ -25,5 +25,3 @@ McpClient.blueprint(model="huggingface:Qwen/Qwen2.5-1.5B-Instruct"), _common_agentic, ) - -__all__ = ["unitree_go2_agentic_huggingface"] diff --git a/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic_ollama.py b/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic_ollama.py index 20576ffe14..d123a792fd 100644 --- a/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic_ollama.py +++ b/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_agentic_ollama.py @@ -28,5 +28,3 @@ ).requirements( ollama_installed, ) - -__all__ = ["unitree_go2_agentic_ollama"] diff --git a/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_security.py b/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_security.py index 61efcbfd56..117e22f181 100644 --- a/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_security.py +++ b/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_security.py @@ -52,5 +52,3 @@ def _go2_rerun_blueprint() -> Any: rerun_config={**rerun_config, "blueprint": _go2_rerun_blueprint}, ), ) - -__all__ = ["unitree_go2_security"] diff --git a/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_temporal_memory.py b/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_temporal_memory.py index ba3be30c9d..cb9830bf26 100644 --- a/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_temporal_memory.py +++ b/dimos/robot/unitree/go2/blueprints/agentic/unitree_go2_temporal_memory.py @@ -27,5 +27,3 @@ unitree_go2_agentic, TemporalMemory.blueprint(config=TemporalMemoryConfig(new_memory=global_config.new_memory)), ) - -__all__ = ["unitree_go2_temporal_memory"] diff --git a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_basic.py b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_basic.py index 79bf570b01..8515f6b973 100644 --- a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_basic.py +++ b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_basic.py @@ -140,8 +140,3 @@ def _go2_rerun_blueprint() -> Any: # # .configurators(ClockSyncConfigurator()) ) - -__all__ = [ - "rerun_config", - "unitree_go2_basic", -] diff --git a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_coordinator.py b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_coordinator.py index 59487f1be8..d2a4c0454a 100644 --- a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_coordinator.py +++ b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_coordinator.py @@ -70,5 +70,3 @@ ) .global_config(obstacle_avoidance=False) ) - -__all__ = ["unitree_go2_coordinator"] diff --git a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_fleet.py b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_fleet.py index bda362eeca..829130da76 100644 --- a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_fleet.py +++ b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_fleet.py @@ -33,5 +33,3 @@ .global_config(n_workers=4, robot_model="unitree_go2") .configurators(ClockSyncConfigurator()) ) - -__all__ = ["unitree_go2_fleet"] diff --git a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_keyboard_teleop.py b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_keyboard_teleop.py index 0ca417e726..2d605eedb5 100644 --- a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_keyboard_teleop.py +++ b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_keyboard_teleop.py @@ -56,5 +56,3 @@ .remappings([(ControlCoordinator, "twist_command", "cmd_vel")]) .global_config(obstacle_avoidance=True) ) - -__all__ = ["unitree_go2_keyboard_teleop"] diff --git a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_webrtc_keyboard_teleop.py b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_webrtc_keyboard_teleop.py index 2f658dd711..9997668e69 100644 --- a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_webrtc_keyboard_teleop.py +++ b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_webrtc_keyboard_teleop.py @@ -36,5 +36,3 @@ unitree_go2_coordinator, KeyboardTeleop.blueprint(publish_only_when_active=True), ) - -__all__ = ["unitree_go2_webrtc_keyboard_teleop"] diff --git a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_webrtc_rage_keyboard_teleop.py b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_webrtc_rage_keyboard_teleop.py index c2fd9a3b87..415c216972 100644 --- a/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_webrtc_rage_keyboard_teleop.py +++ b/dimos/robot/unitree/go2/blueprints/basic/unitree_go2_webrtc_rage_keyboard_teleop.py @@ -37,5 +37,3 @@ GO2Connection.blueprint(mode="rage"), KeyboardTeleop.blueprint(linear_speed=1.25, angular_speed=1.2), ).global_config(obstacle_avoidance=True) - -__all__ = ["unitree_go2_webrtc_rage_keyboard_teleop"] diff --git a/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_detection.py b/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_detection.py index 632308dbfb..2d021657a2 100644 --- a/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_detection.py +++ b/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_detection.py @@ -55,5 +55,3 @@ } ) ) - -__all__ = ["unitree_go2_detection"] diff --git a/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_ros.py b/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_ros.py index b63b8f5f6c..ba35872bd9 100644 --- a/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_ros.py +++ b/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_ros.py @@ -27,5 +27,3 @@ ("color_image", Image): ROSTransport("color_image", Image), } ) - -__all__ = ["unitree_go2_ros"] diff --git a/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_spatial.py b/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_spatial.py index a37dce12a8..32e1504306 100644 --- a/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_spatial.py +++ b/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_spatial.py @@ -23,5 +23,3 @@ SpatialMemory.blueprint(), PerceiveLoopSkill.blueprint(), ).global_config(n_workers=8) - -__all__ = ["unitree_go2_spatial"] diff --git a/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_vlm_stream_test.py b/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_vlm_stream_test.py index 4ae42cdf47..296d96309d 100644 --- a/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_vlm_stream_test.py +++ b/dimos/robot/unitree/go2/blueprints/smart/unitree_go2_vlm_stream_test.py @@ -23,5 +23,3 @@ VLMAgent.blueprint(), VlmStreamTester.blueprint(), ) - -__all__ = ["unitree_go2_vlm_stream_test"] diff --git a/dimos/simulation/adapters/whole_body/g1.py b/dimos/simulation/adapters/whole_body/g1.py index 185ac0e801..43c8a98fb7 100644 --- a/dimos/simulation/adapters/whole_body/g1.py +++ b/dimos/simulation/adapters/whole_body/g1.py @@ -192,6 +192,3 @@ def write_motor_commands(self, commands: list[MotorCommand]) -> bool: def register(registry: WholeBodyAdapterRegistry) -> None: """Register with the whole-body adapter registry.""" registry.register("sim_mujoco_g1", SimMujocoG1WholeBodyAdapter) - - -__all__ = ["SimMujocoG1WholeBodyAdapter"] diff --git a/dimos/simulation/engines/mujoco_engine.py b/dimos/simulation/engines/mujoco_engine.py index 664209e86e..d9889027f4 100644 --- a/dimos/simulation/engines/mujoco_engine.py +++ b/dimos/simulation/engines/mujoco_engine.py @@ -525,11 +525,3 @@ def get_camera_fovy(self, camera_name: str) -> float | None: if cam_id < 0: return None return float(self._model.cam_fovy[cam_id]) - - -__all__ = [ - "CameraConfig", - "CameraFrame", - "MujocoEngine", - "StepHook", -] diff --git a/dimos/simulation/engines/mujoco_shm.py b/dimos/simulation/engines/mujoco_shm.py index f424147d65..7cb24e39a7 100644 --- a/dimos/simulation/engines/mujoco_shm.py +++ b/dimos/simulation/engines/mujoco_shm.py @@ -488,12 +488,3 @@ def _set_command_mode(self, mode: int) -> None: def _increment_seq(self, index: int) -> None: seq_arr = np.ndarray((_NUM_SEQ_COUNTERS,), dtype=np.int64, buffer=self.shm.seq.buf) seq_arr[index] += 1 - - -__all__ = [ - "MAX_JOINTS", - "ManipShmReader", - "ManipShmSet", - "ManipShmWriter", - "shm_key_from_path", -] diff --git a/dimos/simulation/engines/mujoco_sim_module.py b/dimos/simulation/engines/mujoco_sim_module.py index f474f368b7..ffc2effa39 100644 --- a/dimos/simulation/engines/mujoco_sim_module.py +++ b/dimos/simulation/engines/mujoco_sim_module.py @@ -766,6 +766,3 @@ def _generate_pointcloud(self) -> None: self.pointcloud.publish(pcd) except Exception as exc: logger.error("Pointcloud generation error", error=str(exc)) - - -__all__ = ["MujocoSimModule", "MujocoSimModuleConfig"] diff --git a/dimos/simulation/engines/robot_sim_binding.py b/dimos/simulation/engines/robot_sim_binding.py index 5c34e0ac9c..5efec95922 100644 --- a/dimos/simulation/engines/robot_sim_binding.py +++ b/dimos/simulation/engines/robot_sim_binding.py @@ -308,11 +308,3 @@ def _candidate_names(name: str, model_prefix: str | None) -> tuple[str, ...]: def _name(model: mujoco.MjModel, obj_type: int, obj_id: int) -> str: return mujoco.mj_id2name(model, obj_type, obj_id) or f"" - - -__all__ = [ - "RobotSimBinding", - "RobotSimSpec", - "mjcf_joint_names_from_hardware", - "resolve_robot_sim_binding", -] diff --git a/dimos/teleop/phone/blueprints.py b/dimos/teleop/phone/blueprints.py index d29c5f77fd..3af64082a3 100644 --- a/dimos/teleop/phone/blueprints.py +++ b/dimos/teleop/phone/blueprints.py @@ -34,6 +34,3 @@ SimplePhoneTeleop.blueprint(), unitree_go2_fleet, ) - - -__all__ = ["teleop_phone", "teleop_phone_go2", "teleop_phone_go2_fleet"] diff --git a/dimos/teleop/quest/blueprints.py b/dimos/teleop/quest/blueprints.py index 1e90251a65..24c4bfc2e1 100644 --- a/dimos/teleop/quest/blueprints.py +++ b/dimos/teleop/quest/blueprints.py @@ -117,14 +117,3 @@ ) .global_config(robot_model="unitree_go2") ) - - -__all__ = [ - "teleop_quest_dual", - "teleop_quest_go2", - "teleop_quest_piper", - "teleop_quest_rerun", - "teleop_quest_xarm6", - "teleop_quest_xarm7", - "teleop_quest_xarm7_video", -] diff --git a/dimos/teleop/quest/quest_types.py b/dimos/teleop/quest/quest_types.py index 7e7cfc7620..dbbcc9496c 100644 --- a/dimos/teleop/quest/quest_types.py +++ b/dimos/teleop/quest/quest_types.py @@ -193,6 +193,3 @@ def from_controllers( buttons.right_menu = right.menu return buttons - - -__all__ = ["Buttons", "QuestControllerState", "ThumbstickState"] diff --git a/dimos/teleop/quest_hosted/blueprints.py b/dimos/teleop/quest_hosted/blueprints.py index 50efc7afcd..199ae0c3ba 100644 --- a/dimos/teleop/quest_hosted/blueprints.py +++ b/dimos/teleop/quest_hosted/blueprints.py @@ -67,11 +67,3 @@ class HostedTeleopRecorder(TeleopRecorder): """ config: HostedTeleopRecorderConfig - - -__all__ = [ - "HostedTeleopRecorder", - "HostedTeleopRecorderConfig", - "teleop_hosted_go2", - "teleop_hosted_xarm7", -] diff --git a/dimos/teleop/quest_hosted/sdp.py b/dimos/teleop/quest_hosted/sdp.py index 5396a89d77..0b8dc6179b 100644 --- a/dimos/teleop/quest_hosted/sdp.py +++ b/dimos/teleop/quest_hosted/sdp.py @@ -45,6 +45,3 @@ def propagate_bundle_candidates(sdp: str) -> str: else: out.append(s) return "".join(out) - - -__all__ = ["propagate_bundle_candidates"] diff --git a/dimos/teleop/quest_hosted/video_track.py b/dimos/teleop/quest_hosted/video_track.py index 2a17c3c39a..6191a5ee0a 100644 --- a/dimos/teleop/quest_hosted/video_track.py +++ b/dimos/teleop/quest_hosted/video_track.py @@ -108,6 +108,3 @@ async def recv(self) -> av.VideoFrame: frame.pts = pts frame.time_base = VIDEO_TIME_BASE return frame - - -__all__ = ["CameraVideoTrack"] diff --git a/dimos/teleop/utils/recorder.py b/dimos/teleop/utils/recorder.py index 0b8c65666e..6a178fba0b 100644 --- a/dimos/teleop/utils/recorder.py +++ b/dimos/teleop/utils/recorder.py @@ -88,6 +88,3 @@ def stop(self) -> None: generate_report(db_path) except Exception: logger.exception("generate_report failed for %s", db_path) - - -__all__ = ["TeleopRecorder", "TeleopRecorderConfig"] diff --git a/dimos/teleop/utils/report.py b/dimos/teleop/utils/report.py index 0bdfa8129b..ad25322d99 100644 --- a/dimos/teleop/utils/report.py +++ b/dimos/teleop/utils/report.py @@ -277,6 +277,3 @@ def main() -> None: if __name__ == "__main__": main() - - -__all__ = ["generate_report"] diff --git a/dimos/teleop/utils/stream_stats.py b/dimos/teleop/utils/stream_stats.py index c10b1bb403..503bde2924 100644 --- a/dimos/teleop/utils/stream_stats.py +++ b/dimos/teleop/utils/stream_stats.py @@ -95,6 +95,3 @@ def snapshot(self) -> dict[str, float | None] | None: "jitter_ms": jit["p50"] if jit else None, "rate_hz": (len(samples) - 1) / span if span > 0 else None, } - - -__all__ = ["LiveStreamStats", "pcts"] diff --git a/dimos/teleop/utils/teleop_transforms.py b/dimos/teleop/utils/teleop_transforms.py index e27dc9a349..384e07979d 100644 --- a/dimos/teleop/utils/teleop_transforms.py +++ b/dimos/teleop/utils/teleop_transforms.py @@ -74,6 +74,3 @@ def webxr_to_robot( ts=pose_stamped.ts, frame_id=pose_stamped.frame_id, ) - - -__all__ = ["VR_TO_ROBOT_FRAME", "webxr_to_robot"] diff --git a/dimos/teleop/utils/video_stats.py b/dimos/teleop/utils/video_stats.py index a0e7e838f2..32cfdd92a2 100644 --- a/dimos/teleop/utils/video_stats.py +++ b/dimos/teleop/utils/video_stats.py @@ -201,6 +201,3 @@ def __eq__(self, other: object) -> bool: and self.frames_dropped == other.frames_dropped and self.freezes == other.freezes ) - - -__all__ = ["VideoStats"] diff --git a/dimos/types/ros_polyfill.py b/dimos/types/ros_polyfill.py index ca900d65b7..2a7cf75bf9 100644 --- a/dimos/types/ros_polyfill.py +++ b/dimos/types/ros_polyfill.py @@ -13,9 +13,9 @@ # limitations under the License. try: - from geometry_msgs.msg import Vector3 + from geometry_msgs.msg import Vector3 as Vector3 except ImportError: - from dimos.msgs.geometry_msgs.Vector3 import Vector3 + from dimos.msgs.geometry_msgs.Vector3 import Vector3 as Vector3 try: from geometry_msgs.msg import ( @@ -35,14 +35,3 @@ ) from dimos_lcm.nav_msgs import OccupancyGrid, Odometry from dimos_lcm.std_msgs import Header - -__all__ = [ - "Header", - "OccupancyGrid", - "Odometry", - "Point", - "Pose", - "Quaternion", - "Twist", - "Vector3", -] diff --git a/docs/capabilities/manipulation/adding_a_custom_arm.md b/docs/capabilities/manipulation/adding_a_custom_arm.md index 3d33f8877a..f5ca1c536f 100644 --- a/docs/capabilities/manipulation/adding_a_custom_arm.md +++ b/docs/capabilities/manipulation/adding_a_custom_arm.md @@ -348,9 +348,6 @@ class YourArmAdapter: def register(registry: AdapterRegistry) -> None: """Register this adapter with the registry.""" registry.register("yourarm", YourArmAdapter) - - -__all__ = ["YourArmAdapter"] ``` ### Key implementation notes @@ -372,23 +369,6 @@ __all__ = ["YourArmAdapter"] ## Step 2: Create Package Files -### \_\_init\_\_.py - -```python skip -"""YourArm manipulator hardware adapter. - -Usage: - >>> from dimos.hardware.manipulators.yourarm import YourArmAdapter - >>> adapter = YourArmAdapter(address="192.168.1.100", dof=6) - >>> adapter.connect() - >>> positions = adapter.read_joint_positions() -""" - -from dimos.hardware.manipulators.yourarm.adapter import YourArmAdapter - -__all__ = ["YourArmAdapter"] -``` - ### How auto-discovery works The `AdapterRegistry` in `dimos/hardware/manipulators/registry.py` automatically discovers your adapter at import time: diff --git a/pyproject.toml b/pyproject.toml index 38a3da0e04..b5af8dc760 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -476,6 +476,8 @@ ignore = [ "dimos/models/Detic/*" = ["ALL"] # Naming needs to match the actual libraries. "stubs/*.pyi" = ["N801", "N802", "N803", "N815", "N816", "N818"] +# Polyfill module: re-exports ROS message types (with a dimos_lcm fallback). +"dimos/types/ros_polyfill.py" = ["F401"] [tool.ruff.lint.isort] known-first-party = ["dimos"]