HongzeFu commited on
Commit
de73880
·
1 Parent(s): 6b17232
Files changed (1) hide show
  1. app.py +47 -0
app.py CHANGED
@@ -1,6 +1,8 @@
1
  """Dummy Gradio entrypoint with layout similar to original RoboMME UI."""
2
 
 
3
  import os
 
4
 
5
  # Disable SSR for HF Spaces compatibility (avoids gradio_api heartbeat 404).
6
  os.environ["GRADIO_SSR_MODE"] = "false"
@@ -37,6 +39,31 @@ CSS = """
37
  """
38
 
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  def _task_goal(task_name: str) -> str:
41
  return f"Dummy goal for {task_name}"
42
 
@@ -96,15 +123,18 @@ def create_dummy_demo() -> gr.Blocks:
96
  """Build a dummy app that mimics original layout without ManiSkill."""
97
 
98
  def on_task_change(task_name: str):
 
99
  task = task_name if task_name in DUMMY_TASKS else DUMMY_TASKS[0]
100
  step = 0
101
  return (step,) + _build_task_updates(task, step, PHASE_DEMO_VIDEO)
102
 
103
  def skip_video(task_name: str, step: int):
 
104
  task = task_name if task_name in DUMMY_TASKS else DUMMY_TASKS[0]
105
  return _build_task_updates(task, step, PHASE_ACTION_KEYPOINT)
106
 
107
  def on_reference_action(task_name: str):
 
108
  actions = _task_actions(task_name)
109
  return (
110
  gr.update(value=actions[0]),
@@ -113,11 +143,20 @@ def create_dummy_demo() -> gr.Blocks:
113
 
114
  def on_map_click(evt: gr.SelectData):
115
  if evt is None or evt.index is None:
 
116
  return ""
117
  x, y = evt.index
 
118
  return f"({x}, {y})"
119
 
120
  def execute_step(task_name: str, action_name: str, coords_text: str, step: int):
 
 
 
 
 
 
 
121
  task = task_name if task_name in DUMMY_TASKS else DUMMY_TASKS[0]
122
  next_step = min(step + 1, 5)
123
  action = action_name or "No action selected"
@@ -132,11 +171,13 @@ def create_dummy_demo() -> gr.Blocks:
132
  return next_step, _dummy_frame(task, next_step), log, progress
133
 
134
  def restart_episode(task_name: str):
 
135
  task = task_name if task_name in DUMMY_TASKS else DUMMY_TASKS[0]
136
  step = 0
137
  return (step,) + _build_task_updates(task, step, PHASE_DEMO_VIDEO)
138
 
139
  def next_task(current_task: str):
 
140
  try:
141
  idx = DUMMY_TASKS.index(current_task)
142
  except ValueError:
@@ -411,6 +452,9 @@ _original_launch = demo.launch
411
  def _patched_launch(**kwargs):
412
  kwargs.setdefault("ssr_mode", False)
413
  kwargs.setdefault("show_error", True)
 
 
 
414
  return _original_launch(**kwargs)
415
 
416
 
@@ -418,9 +462,12 @@ demo.launch = _patched_launch
418
 
419
 
420
  if __name__ == "__main__":
 
421
  demo.launch(
422
  server_name="0.0.0.0",
423
  server_port=int(os.getenv("PORT", "7860")),
424
  ssr_mode=False,
425
  show_error=True,
 
 
426
  )
 
1
  """Dummy Gradio entrypoint with layout similar to original RoboMME UI."""
2
 
3
+ import logging
4
  import os
5
+ import sys
6
 
7
  # Disable SSR for HF Spaces compatibility (avoids gradio_api heartbeat 404).
8
  os.environ["GRADIO_SSR_MODE"] = "false"
 
39
  """
40
 
41
 
42
+ def _setup_logging() -> logging.Logger:
43
+ """Configure terminal logging for runtime debugging."""
44
+ level_name = os.getenv("LOG_LEVEL", "INFO").upper()
45
+ level = getattr(logging, level_name, logging.INFO)
46
+ try:
47
+ sys.stdout.reconfigure(line_buffering=True)
48
+ except Exception:
49
+ pass
50
+ logging.basicConfig(
51
+ level=level,
52
+ format="%(asctime)s | %(levelname)s | %(name)s | %(message)s",
53
+ stream=sys.stdout,
54
+ force=True,
55
+ )
56
+ # Keep noisy dependency logs down unless explicitly requested.
57
+ logging.getLogger("httpx").setLevel(logging.WARNING)
58
+ logging.getLogger("uvicorn.access").setLevel(logging.INFO)
59
+ logger = logging.getLogger("robomme.app")
60
+ logger.info("Logging initialized with LOG_LEVEL=%s", level_name)
61
+ return logger
62
+
63
+
64
+ LOGGER = _setup_logging()
65
+
66
+
67
  def _task_goal(task_name: str) -> str:
68
  return f"Dummy goal for {task_name}"
69
 
 
123
  """Build a dummy app that mimics original layout without ManiSkill."""
124
 
125
  def on_task_change(task_name: str):
126
+ LOGGER.debug("on_task_change(task_name=%s)", task_name)
127
  task = task_name if task_name in DUMMY_TASKS else DUMMY_TASKS[0]
128
  step = 0
129
  return (step,) + _build_task_updates(task, step, PHASE_DEMO_VIDEO)
130
 
131
  def skip_video(task_name: str, step: int):
132
+ LOGGER.debug("skip_video(task_name=%s, step=%s)", task_name, step)
133
  task = task_name if task_name in DUMMY_TASKS else DUMMY_TASKS[0]
134
  return _build_task_updates(task, step, PHASE_ACTION_KEYPOINT)
135
 
136
  def on_reference_action(task_name: str):
137
+ LOGGER.debug("on_reference_action(task_name=%s)", task_name)
138
  actions = _task_actions(task_name)
139
  return (
140
  gr.update(value=actions[0]),
 
143
 
144
  def on_map_click(evt: gr.SelectData):
145
  if evt is None or evt.index is None:
146
+ LOGGER.debug("on_map_click received empty event")
147
  return ""
148
  x, y = evt.index
149
+ LOGGER.debug("on_map_click(x=%s, y=%s)", x, y)
150
  return f"({x}, {y})"
151
 
152
  def execute_step(task_name: str, action_name: str, coords_text: str, step: int):
153
+ LOGGER.info(
154
+ "execute_step(task_name=%s, action=%s, coords=%s, step=%s)",
155
+ task_name,
156
+ action_name,
157
+ coords_text,
158
+ step,
159
+ )
160
  task = task_name if task_name in DUMMY_TASKS else DUMMY_TASKS[0]
161
  next_step = min(step + 1, 5)
162
  action = action_name or "No action selected"
 
171
  return next_step, _dummy_frame(task, next_step), log, progress
172
 
173
  def restart_episode(task_name: str):
174
+ LOGGER.info("restart_episode(task_name=%s)", task_name)
175
  task = task_name if task_name in DUMMY_TASKS else DUMMY_TASKS[0]
176
  step = 0
177
  return (step,) + _build_task_updates(task, step, PHASE_DEMO_VIDEO)
178
 
179
  def next_task(current_task: str):
180
+ LOGGER.info("next_task(current_task=%s)", current_task)
181
  try:
182
  idx = DUMMY_TASKS.index(current_task)
183
  except ValueError:
 
452
  def _patched_launch(**kwargs):
453
  kwargs.setdefault("ssr_mode", False)
454
  kwargs.setdefault("show_error", True)
455
+ kwargs.setdefault("debug", True)
456
+ kwargs.setdefault("quiet", False)
457
+ LOGGER.info("Launching app with kwargs=%s", kwargs)
458
  return _original_launch(**kwargs)
459
 
460
 
 
462
 
463
 
464
  if __name__ == "__main__":
465
+ LOGGER.info("Starting app.py entrypoint")
466
  demo.launch(
467
  server_name="0.0.0.0",
468
  server_port=int(os.getenv("PORT", "7860")),
469
  ssr_mode=False,
470
  show_error=True,
471
+ debug=True,
472
+ quiet=False,
473
  )