Skip to content

Error when running make sanity-test: TabError in e2_single_agent example #2174

@Yvemir9

Description

@Yvemir9

High Level Description

Hi there! I encountered an issue when running make sanity-test, and below is the full error output I see in the terminal:
(.venv) ubuntu@ubuntu-Legion-Y9000P-IAH7H:~/SMARTS$ make sanity-test
scl scenario build --clean scenarios/sumo/loop
Building: scenarios/sumo/loop
scl scenario build --clean scenarios/sumo/zoo_intersection
Building: scenarios/sumo/zoo_intersection
PYTHONPATH=/home/ubuntu/SMARTS PYTHONHASHSEED=42 pytest -v
--doctest-modules
--forked
--dist=loadscope
--junitxml="sanity_test_result.xml"
-n expr \( \nproc` / 2 & `nproc` > 3 ) | 2`
./smarts/core/tests/test_python_version.py::test_python_version
./smarts/core/tests/test_sumo_version.py::test_sumo_version
./smarts/core/tests/test_dynamics_backend.py::test_set_pose
./smarts/core/tests/test_sensors.py::test_waypoints_sensor
./smarts/core/tests/test_smarts.py::test_smarts_doesnt_leak_tasks_after_reset
./examples/tests/test_examples.py::test_examples[e2_single_agent]
./smarts/env/tests/test_social_agent.py::test_social_agents_not_in_env_obs_keys
/home/ubuntu/.venv/lib/python3.10/site-packages/pytest_benchmark/logger.py:39: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
warner(PytestBenchmarkWarning(text))
============================= test session starts ==============================
platform linux -- Python 3.10.12, pytest-8.3.5, pluggy-1.5.0 -- /home/ubuntu/.venv/bin/python3.10
cachedir: .pytest_cache
benchmark: 5.1.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/ubuntu/SMARTS
configfile: pyproject.toml
plugins: cov-6.1.1, forked-1.6.0, hydra-core-1.3.2, benchmark-5.1.0, xdist-3.6.1
10 workers [7 items]
scheduling tests via LoadScopeScheduling

smarts/core/tests/test_python_version.py::test_python_version
smarts/core/tests/test_sensors.py::test_waypoints_sensor
smarts/core/tests/test_sumo_version.py::test_sumo_version
smarts/core/tests/test_dynamics_backend.py::test_set_pose
examples/tests/test_examples.py::test_examples[e2_single_agent]
smarts/env/tests/test_social_agent.py::test_social_agents_not_in_env_obs_keys
smarts/core/tests/test_smarts.py::test_smarts_doesnt_leak_tasks_after_reset
[gw0] [ 14%] PASSED smarts/core/tests/test_python_version.py::test_python_version
[gw2] [ 28%] PASSED smarts/core/tests/test_dynamics_backend.py::test_set_pose
[gw5] [ 42%] FAILED examples/tests/test_examples.py::test_examples[e2_single_agent]
[gw1] [ 57%] PASSED smarts/core/tests/test_sumo_version.py::test_sumo_version
[gw6] [ 71%] PASSED smarts/env/tests/test_social_agent.py::test_social_agents_not_in_env_obs_keys
[gw3] [ 85%] PASSED smarts/core/tests/test_sensors.py::test_waypoints_sensor
[gw4] [100%] PASSED smarts/core/tests/test_smarts.py::test_smarts_doesnt_leak_tasks_after_reset

=================================== FAILURES ===================================
________________________ test_examples[e2_single_agent] ________________________
[gw5] linux -- Python 3.10.12 /home/ubuntu/.venv/bin/python3.10
example = 'e2_single_agent'

@pytest.mark.parametrize(
    "example",
    [
        "e1_egoless",
        "e2_single_agent",
        "e3_multi_agent",
        "e4_environment_config",
        "e5_agent_zoo",
        "e6_agent_action_space",
        "e7_experiment_base",
        "e8_parallel_environment",
    ],
    # TODO: "ego_open_agent" and "human_in_the_loop" are causing aborts, fix later
)
def test_examples(example):
  current_example = import_module(example, "examples")

examples/tests/test_examples.py:35:


/usr/lib/python3.10/importlib/init.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
:1050: in _gcd_import
???
:1027: in _find_and_load
???
:1006: in _find_and_load_unlocked
???
:688: in _load_unlocked
???
:883: in exec_module
???
:241: in _call_with_frames_removed
???


"""This example shows how you might run a SMARTS environment for single-agent work. SMARTS is
natively multi-agent so a single-agent wrapper is used."""
import argparse
import logging
import random
import sys
import warnings
from pathlib import Path
from typing import Final

logging.basicConfig(level=logging.ERROR)
warnings.filterwarnings("ignore")


import gymnasium as gym

SMARTS_REPO_PATH = Path(__file__).parents[1].absolute()
sys.path.insert(0, str(SMARTS_REPO_PATH))
from examples.tools.argument_parser import minimal_argument_parser
from smarts.core.agent import Agent
from smarts.core.agent_interface import AgentInterface, AgentType
from smarts.core.utils.episodes import episodes

from smarts.env.gymnasium.wrappers.single_agent import SingleAgent
E File "/home/ubuntu/SMARTS/smarts/env/gymnasium/wrappers/single_agent.py", line 41
E agent_ids = list(env.unwrapped.agent_interfaces.keys()) # add .unwrapped
E ^
E TabError: inconsistent use of tabs and spaces in indentation

examples/e2_single_agent.py:23: TabError
-------- generated xml file: /home/ubuntu/SMARTS/sanity_test_result.xml --------
=========================== short test summary info ============================
FAILED examples/tests/test_examples.py::test_examples[e2_single_agent]
========================= 1 failed, 6 passed in 2.35s ==========================
make: *** [Makefile:29:sanity-test] 错误 1

Version

System Information:

OS: Ubuntu 22.04

Python Version: 3.10.12

SMARTS Version: Latest clone from the GitHub repository

Additional Information:

The error happens around line 23 in examples/e2_single_agent.py.

When running make sanity-test, all other tests pass, except for the e2_single_agent test.

Could anyone please help me resolve this? Is there a known solution to this indentation error, or am I missing something important?

Operating System

No response

Problems

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions