from mlagents.trainers.tf import tf as tf # noqa
from mlagents.trainers.tf import tf_flatten, tf_rnn, tf_variance_scaling # noqa
from mlagents.trainers import tf, tf_variance_scaling
from mlagents.tf_utils import tf, tf_variance_scaling
from mlagents.trainers.models import LearningModel
from mlagents.trainers import tf
from mlagents.tf_utils import tf
import numpy as np
import abc
from mlagents.envs.brain import BrainInfo
from mlagents.trainers.trainer import UnityTrainerException
from typing import List, Tuple
from typing import Any, Dict, List
from typing import List, Optional, Tuple
import logging
from mlagents.trainers.components.reward_signals import RewardSignal, RewardSignalResult
from typing import Callable, Dict, List, Optional
from mlagents.trainers import tf, tf_variance_scaling, tf_rnn, tf_flatten
from mlagents.tf_utils import tf, tf_variance_scaling, tf_rnn, tf_flatten
from mlagents.envs.brain import CameraResolution
from typing import Optional
from mlagents.trainers.models import LearningModel, EncoderType, LearningRateSchedule
logger = logging.getLogger("mlagents.trainers")
from tensorflow.python.client import device_lib
from mlagents.envs.timers import timed
from typing import Any, Dict, Optional
from mlagents.envs.brain import BrainInfo, BrainParameters
from typing import Dict, List, Optional
from mlagents.trainers.models import LearningModel, LearningRateSchedule, EncoderType
from typing import Dict, Any, Optional
from __future__ import print_function
import struct # convert from Python values and C structs
import re
# import barracuda
import os
import yaml
from mlagents.trainers.bc.models import BehavioralCloningModel
import unittest.mock as mock
import pytest
from mlagents.trainers.ppo.multi_gpu_policy import MultiGpuPPOPolicy
from mlagents.trainers.sac.models import SACModel
from unittest.mock import MagicMock, Mock, patch
from typing import Any, Dict, List, Optional
from mlagents.envs.exception import UnityException
from mlagents.envs.policy import Policy
from typing import Dict, List, Deque, Any
from collections import deque, defaultdict
from typing import Dict, List, Optional, Set
from time import time
from mlagents.envs.env_manager import EnvironmentStep
# For projects with upper bounds, we should periodically update this list to the latest release version
grpcio>=1.23.0
numpy>=1.17.2
tensorflow>=1.14.0,<2.0
tensorflow>=2.0.0,<2.1.0
numpy==1.16.0 # TEMP
Pillow==4.2.1
protobuf==3.6
# TEMPORARY
#tensorflow==1.7
tensorflow==2.0.0
tensorflow==1.7
from mlagents.tf_utils.tf import tf as tf # noqa
from mlagents.tf_utils.tf import tf_flatten, tf_rnn, tf_variance_scaling # noqa