Log git commit in behavior log file and check on replay
This commit is contained in:
parent
eeda84dc7f
commit
bfed6a9c49
|
@ -6,14 +6,16 @@ import argparse
|
|||
import os
|
||||
import datetime
|
||||
import h5py
|
||||
import pprint
|
||||
|
||||
import gibson2
|
||||
from gibson2.robots.behavior_robot import BehaviorRobot
|
||||
from gibson2.render.mesh_renderer.mesh_renderer_cpu import MeshRendererSettings
|
||||
from gibson2.render.mesh_renderer.mesh_renderer_vr import VrConditionSwitcher, VrSettings
|
||||
from gibson2.render.mesh_renderer.mesh_renderer_vr import VrSettings
|
||||
from gibson2.simulator import Simulator
|
||||
from gibson2.task.task_base import iGTNTask
|
||||
from gibson2.utils.ig_logging import IGLogReader, IGLogWriter
|
||||
from gibson2.utils.git_utils import project_git_info
|
||||
from gibson2.utils.utils import parse_str_config
|
||||
import tasknet
|
||||
|
||||
import numpy as np
|
||||
|
@ -21,36 +23,6 @@ import pybullet as p
|
|||
|
||||
|
||||
def parse_args():
|
||||
scene_choices = [
|
||||
"Beechwood_0_int",
|
||||
"Beechwood_1_int",
|
||||
"Benevolence_0_int",
|
||||
"Benevolence_1_int",
|
||||
"Benevolence_2_int",
|
||||
"Ihlen_0_int",
|
||||
"Ihlen_1_int",
|
||||
"Merom_0_int",
|
||||
"Merom_1_int",
|
||||
"Pomaria_0_int",
|
||||
"Pomaria_1_int",
|
||||
"Pomaria_2_int",
|
||||
"Rs_int",
|
||||
"Wainscott_0_int",
|
||||
"Wainscott_1_int",
|
||||
]
|
||||
|
||||
task_choices = [
|
||||
"packing_lunches_filtered",
|
||||
"assembling_gift_baskets_filtered",
|
||||
"organizing_school_stuff_filtered",
|
||||
"re-shelving_library_books_filtered",
|
||||
"serving_hors_d_oeuvres_filtered",
|
||||
"putting_away_toys_filtered",
|
||||
"putting_away_Christmas_decorations_filtered",
|
||||
"putting_dishes_away_after_cleaning_filtered",
|
||||
"cleaning_out_drawers_filtered",
|
||||
]
|
||||
task_id_choices = [0, 1]
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Run and collect an ATUS demo')
|
||||
parser.add_argument('--vr_log_path', type=str,
|
||||
|
@ -72,6 +44,7 @@ def parse_args():
|
|||
|
||||
def main():
|
||||
args = parse_args()
|
||||
pp = pprint.PrettyPrinter(indent=4)
|
||||
tasknet.set_backend("iGibson")
|
||||
|
||||
# HDR files for PBR rendering
|
||||
|
@ -113,6 +86,18 @@ def main():
|
|||
else:
|
||||
filter_objects = True
|
||||
|
||||
if IGLogReader.has_metadata_attr(args.vr_log_path, '/metadata/git_info'):
|
||||
logged_git_info = IGLogReader.read_metadata_attr(args.vr_log_path, '/metadata/git_info')
|
||||
logged_git_info = parse_str_config(logged_git_info)
|
||||
git_info = project_git_info()
|
||||
for key in logged_git_info:
|
||||
if logged_git_info[key] != git_info[key]:
|
||||
print("Warning, difference in git commits for repo: {}. This may impact deterministic replay".format(key))
|
||||
print("Logged git info:\n")
|
||||
pp.pprint(logged_git_info[key])
|
||||
print("Current git info:\n")
|
||||
pp.pprint(git_info[key])
|
||||
|
||||
# Get dictionary mapping object body id to name, also check it is a dictionary
|
||||
obj_body_id_to_name = IGLogReader.get_obj_body_id_to_name(args.vr_log_path)
|
||||
assert type(obj_body_id_to_name) == dict
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
import git
|
||||
import gibson2
|
||||
from pathlib import Path
|
||||
import tasknet
|
||||
|
||||
def git_info(directory):
|
||||
repo = git.Repo(directory)
|
||||
try:
|
||||
branch_name = repo.active_branch.name
|
||||
except TypeError:
|
||||
branch_name = '[DETACHED]'
|
||||
return {
|
||||
"directory": str(directory),
|
||||
"code_diff": repo.git.diff(None),
|
||||
"code_diff_staged": repo.git.diff('--staged'),
|
||||
"commit_hash": repo.head.commit.hexsha,
|
||||
"branch_name": branch_name
|
||||
}
|
||||
|
||||
def project_git_info():
|
||||
return {
|
||||
"iGibson": git_info(Path(gibson2.root_path).parent),
|
||||
"tasknet": git_info(Path(tasknet.__file__).parent.parent),
|
||||
"ig_assets": git_info(gibson2.assets_path),
|
||||
"ig_dataset": git_info(gibson2.ig_dataset_path),
|
||||
}
|
|
@ -12,7 +12,8 @@ import copy
|
|||
|
||||
from gibson2.utils.utils import parse_str_config, dump_config
|
||||
from gibson2.utils.vr_utils import VrData, convert_button_data_to_binary, VR_BUTTON_COMBO_NUM
|
||||
from gibson2.object_states import AABB, Pose
|
||||
from gibson2.utils.git_utils import project_git_info
|
||||
from gibson2.object_states import Pose
|
||||
|
||||
|
||||
class IGLogWriter(object):
|
||||
|
@ -240,6 +241,7 @@ class IGLogWriter(object):
|
|||
self.hf.attrs['/metadata/start_time'] = str(datetime.datetime.now())
|
||||
self.hf.attrs['/metadata/physics_timestep'] = self.sim.physics_timestep
|
||||
self.hf.attrs['/metadata/render_timestep'] = self.sim.render_timestep
|
||||
self.hf.attrs['/metadata/git_info'] = dump_config(project_git_info())
|
||||
|
||||
if self.task:
|
||||
self.hf.attrs['/metadata/task_name'] = self.task.atus_activity
|
||||
|
|
Loading…
Reference in New Issue