# Path: humanrl/frame.py
# class Episode(object):
# class Frame(object):
# class HumanLabelWrapper(gym.Wrapper):
# class FrameSaverWrapper(gym.Wrapper):
#     def __init__(self):
#     def __setstate__(self, state):
#     def __init__(self,
#                  observation=None,
#                  action=None,
#                  reward=None,
#                  image=None,
#                  info=None,
#                  label=None,
#                  prediction=None):
#     def has_action(self):
#     def get_label(self):
#     def set_label(self, label):
#     def was_blocked(self):
#     def get_proposed_action(self):
#     def get_real_action(self):
#     def get_action(self, action_type):
#     def set_proposed_action(self, action):
#     def set_real_action(self, action):
#     def __repr__(self):
#     def __setstate__(self, state):
#     def __init__(self,
#                  env_id,
#                  env,
#                  online_blocking_mode="action_replacement",
#                  reward_scale=1.0,
#                  catastrophe_reward=0.0,
#                  **_):
#     def _reset(self):
#     def __send_init_msg(self):
#     def __send_frame_to_human(self, frame, proposed_action):
#     def __handle_feedback(self, msg, proposed_action):
#     def _step(self, proposed_action):
#     def _close(self):
#     def __init__(self, env, directory, max_episodes=1000):
#     def _reset(self):
#     def _step(self, action):
# def get_episode_number(filename):
# def paths_with_suffix(directory, empty_ok=False, suffixes=("pkl.gz", )):
# def episode_paths(directory, empty_ok=False):
# def feature_file_paths(directory, empty_ok=False):
# def load_episode(episode_path):
# def save_episode(episode_path, episode):
# def check_episode(episode_path):
# def fix_episode(episode_path):
#     REAL = "real"
#     PROPOSED = "proposed"


import argparse
import distutils.version
import logging
import os
import signal
import sys
import time
import go_vncdriver
import tensorflow as tf
from a3c import A3C
from envs import create_env
from hparams import add_hparams, get_hparams
from humanrl import frame
        port += 1
    cluster['worker'] = all_workers
    return cluster


def main(_):
    """
Setting up Tensorflow for data parallel work
"""

    parser = argparse.ArgumentParser(description=None)
    parser.add_argument(
        '-v', '--verbose', action='count', dest='verbosity', default=0, help='Set verbosity.')
    parser.add_argument('--task', default=0, type=int, help='Task index')
    parser.add_argument('--job-name', default="worker", help='worker or ps')
    parser.add_argument('--num-workers', default=1, type=int, help='Number of workers')
    parser.add_argument('--log-dir', default="/tmp/pong", help='Log directory path')
    parser.add_argument('--env-id', default="PongDeterministic-v3", help='Environment id')
    parser.add_argument(
        '-r',
        '--remotes',
        default=None,
        help='References to environments to create (e.g. -r 20), '
        'or the address of pre-existing VNC servers and '
        'rewarders to use (e.g. -r vnc://localhost:5900+15900,vnc://localhost:5901+15901)')
    parser = add_hparams(parser)
    args = parser.parse_args()
    spec = cluster_spec(args.num_workers, 1)
    cluster = tf.train.ClusterSpec(spec).as_cluster_def()


# Path: humanrl/frame.py
# class Episode(object):
# class Frame(object):
# class HumanLabelWrapper(gym.Wrapper):
# class FrameSaverWrapper(gym.Wrapper):
#     def __init__(self):
#     def __setstate__(self, state):
#     def __init__(self,
#                  observation=None,
#                  action=None,
#                  reward=None,
#                  image=None,
#                  info=None,
#                  label=None,
#                  prediction=None):
#     def has_action(self):
#     def get_label(self):
#     def set_label(self, label):
#     def was_blocked(self):
#     def get_proposed_action(self):
#     def get_real_action(self):
#     def get_action(self, action_type):
#     def set_proposed_action(self, action):
#     def set_real_action(self, action):
#     def __repr__(self):
#     def __setstate__(self, state):
#     def __init__(self,
#                  env_id,
#                  env,
#                  online_blocking_mode="action_replacement",
#                  reward_scale=1.0,
#                  catastrophe_reward=0.0,
#                  **_):
#     def _reset(self):
#     def __send_init_msg(self):
#     def __send_frame_to_human(self, frame, proposed_action):
#     def __handle_feedback(self, msg, proposed_action):
#     def _step(self, proposed_action):
#     def _close(self):
#     def __init__(self, env, directory, max_episodes=1000):
#     def _reset(self):
#     def _step(self, action):
# def get_episode_number(filename):
# def paths_with_suffix(directory, empty_ok=False, suffixes=("pkl.gz", )):
# def episode_paths(directory, empty_ok=False):
# def feature_file_paths(directory, empty_ok=False):
# def load_episode(episode_path):
# def save_episode(episode_path, episode):
# def check_episode(episode_path):
# def fix_episode(episode_path):
#     REAL = "real"
#     PROPOSED = "proposed"


# Path: universe-starter-agent/worker.py
import argparse
import distutils.version
import logging
import os
import signal
import sys
import time
import go_vncdriver
import tensorflow as tf
from a3c import A3C
from envs import create_env
from hparams import add_hparams, get_hparams
from humanrl import frame

        port += 1
    cluster['worker'] = all_workers
    return cluster


def main(_):
    """
Setting up Tensorflow for data parallel work
"""

    parser = argparse.ArgumentParser(description=None)
    parser.add_argument(
        '-v', '--verbose', action='count', dest='verbosity', default=0, help='Set verbosity.')
    parser.add_argument('--task', default=0, type=int, help='Task index')
    parser.add_argument('--job-name', default="worker", help='worker or ps')
    parser.add_argument('--num-workers', default=1, type=int, help='Number of workers')
    parser.add_argument('--log-dir', default="/tmp/pong", help='Log directory path')
    parser.add_argument('--env-id', default="PongDeterministic-v3", help='Environment id')
    parser.add_argument(
        '-r',
        '--remotes',
        default=None,
        help='References to environments to create (e.g. -r 20), '
        'or the address of pre-existing VNC servers and '
        'rewarders to use (e.g. -r vnc://localhost:5900+15900,vnc://localhost:5901+15901)')
    parser = add_hparams(parser)
    args = parser.parse_args()
    spec = cluster_spec(args.num_workers, 1)
    cluster = tf.train.ClusterSpec(spec).as_cluster_def()


    def shutdown(signal, frame):