The following issues were found

gym/utils/json_utils.py
3 issues
Missing module docstring
Error

Line: 1 Column: 1

              import numpy as np


def json_encode_np(obj):
    """
    JSON can't serialize numpy types, so convert to pure python
    """
    if isinstance(obj, np.ndarray):
        return list(obj)

            

Reported by Pylint.

Too many return statements (8/6)
Error

Line: 4 Column: 1

              import numpy as np


def json_encode_np(obj):
    """
    JSON can't serialize numpy types, so convert to pure python
    """
    if isinstance(obj, np.ndarray):
        return list(obj)

            

Reported by Pylint.

Unnecessary "elif" after "return"
Error

Line: 8 Column: 5

                  """
    JSON can't serialize numpy types, so convert to pure python
    """
    if isinstance(obj, np.ndarray):
        return list(obj)
    elif isinstance(obj, np.float32):
        return float(obj)
    elif isinstance(obj, np.float64):
        return float(obj)

            

Reported by Pylint.

gym/wrappers/filter_observation.py
3 issues
Missing module docstring
Error

Line: 1 Column: 1

              import copy
from gym import spaces
from gym import ObservationWrapper


class FilterObservation(ObservationWrapper):
    """Filter dictionary observations by their keys.

    Args:

            

Reported by Pylint.

Consider using Python 3 style super() without arguments
Error

Line: 22 Column: 9

                  """

    def __init__(self, env, filter_keys=None):
        super(FilterObservation, self).__init__(env)

        wrapped_observation_space = env.observation_space
        assert isinstance(
            wrapped_observation_space, spaces.Dict
        ), "FilterObservationWrapper is only usable with dict observations."

            

Reported by Pylint.

Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Security

Line: 25
Suggestion: https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html

                      super(FilterObservation, self).__init__(env)

        wrapped_observation_space = env.observation_space
        assert isinstance(
            wrapped_observation_space, spaces.Dict
        ), "FilterObservationWrapper is only usable with dict observations."

        observation_keys = wrapped_observation_space.spaces.keys()


            

Reported by Bandit.

gym/envs/mujoco/half_cheetah.py
3 issues
Missing module docstring
Error

Line: 1 Column: 1

              import numpy as np
from gym import utils
from gym.envs.mujoco import mujoco_env


class HalfCheetahEnv(mujoco_env.MujocoEnv, utils.EzPickle):
    def __init__(self):
        mujoco_env.MujocoEnv.__init__(self, "half_cheetah.xml", 5)
        utils.EzPickle.__init__(self)

            

Reported by Pylint.

Missing class docstring
Error

Line: 6 Column: 1

              from gym.envs.mujoco import mujoco_env


class HalfCheetahEnv(mujoco_env.MujocoEnv, utils.EzPickle):
    def __init__(self):
        mujoco_env.MujocoEnv.__init__(self, "half_cheetah.xml", 5)
        utils.EzPickle.__init__(self)

    def step(self, action):

            

Reported by Pylint.

Variable name "ob" doesn't conform to snake_case naming style
Error

Line: 15 Column: 9

                      xposbefore = self.sim.data.qpos[0]
        self.do_simulation(action, self.frame_skip)
        xposafter = self.sim.data.qpos[0]
        ob = self._get_obs()
        reward_ctrl = -0.1 * np.square(action).sum()
        reward_run = (xposafter - xposbefore) / self.dt
        reward = reward_ctrl + reward_run
        done = False
        return ob, reward, done, dict(reward_run=reward_run, reward_ctrl=reward_ctrl)

            

Reported by Pylint.

gym/envs/algorithmic/reverse.py
3 issues
Parameters differ from overridden 'target_from_input_data' method
Error

Line: 15 Column: 5

                      super(ReverseEnv, self).__init__(base=base, chars=True, starting_min_length=1)
        self.last = 50

    def target_from_input_data(self, input_str):
        return list(reversed(input_str))

            

Reported by Pylint.

Missing class docstring
Error

Line: 8 Column: 1

              from gym.envs.algorithmic import algorithmic_env


class ReverseEnv(algorithmic_env.TapeAlgorithmicEnv):
    MIN_REWARD_SHORTFALL_FOR_PROMOTION = -0.1

    def __init__(self, base=2):
        super(ReverseEnv, self).__init__(base=base, chars=True, starting_min_length=1)
        self.last = 50

            

Reported by Pylint.

Consider using Python 3 style super() without arguments
Error

Line: 12 Column: 9

                  MIN_REWARD_SHORTFALL_FOR_PROMOTION = -0.1

    def __init__(self, base=2):
        super(ReverseEnv, self).__init__(base=base, chars=True, starting_min_length=1)
        self.last = 50

    def target_from_input_data(self, input_str):
        return list(reversed(input_str))

            

Reported by Pylint.

gym/utils/ezpickle.py
3 issues
Class 'EzPickle' inherits from object, can be safely removed from bases in python3
Error

Line: 1 Column: 1

              class EzPickle(object):
    """Objects that are pickled and unpickled via their constructor
    arguments.

    Example usage:

        class Dog(Animal, EzPickle):
            def __init__(self, furcolor, tailkind="bushy"):
                Animal.__init__()

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              class EzPickle(object):
    """Objects that are pickled and unpickled via their constructor
    arguments.

    Example usage:

        class Dog(Animal, EzPickle):
            def __init__(self, furcolor, tailkind="bushy"):
                Animal.__init__()

            

Reported by Pylint.

Argument name "d" doesn't conform to snake_case naming style
Error

Line: 31 Column: 5

                          "_ezpickle_kwargs": self._ezpickle_kwargs,
        }

    def __setstate__(self, d):
        out = type(self)(*d["_ezpickle_args"], **d["_ezpickle_kwargs"])
        self.__dict__.update(out.__dict__)

            

Reported by Pylint.

gym/envs/algorithmic/duplicated_input.py
2 issues
Missing class docstring
Error

Line: 8 Column: 1

              from gym.envs.algorithmic import algorithmic_env


class DuplicatedInputEnv(algorithmic_env.TapeAlgorithmicEnv):
    def __init__(self, duplication=2, base=5):
        self.duplication = duplication
        super(DuplicatedInputEnv, self).__init__(base=base, chars=True)

    def generate_input_data(self, size):

            

Reported by Pylint.

Consider using Python 3 style super() without arguments
Error

Line: 11 Column: 9

              class DuplicatedInputEnv(algorithmic_env.TapeAlgorithmicEnv):
    def __init__(self, duplication=2, base=5):
        self.duplication = duplication
        super(DuplicatedInputEnv, self).__init__(base=base, chars=True)

    def generate_input_data(self, size):
        res = []
        if size < self.duplication:
            size = self.duplication

            

Reported by Pylint.

gym/wrappers/flatten_observation.py
2 issues
Missing module docstring
Error

Line: 1 Column: 1

              import gym.spaces as spaces
from gym import ObservationWrapper


class FlattenObservation(ObservationWrapper):
    r"""Observation wrapper that flattens the observation."""

    def __init__(self, env):
        super(FlattenObservation, self).__init__(env)

            

Reported by Pylint.

Consider using Python 3 style super() without arguments
Error

Line: 9 Column: 9

                  r"""Observation wrapper that flattens the observation."""

    def __init__(self, env):
        super(FlattenObservation, self).__init__(env)
        self.observation_space = spaces.flatten_space(env.observation_space)

    def observation(self, observation):
        return spaces.flatten(self.env.observation_space, observation)

            

Reported by Pylint.

gym/utils/__init__.py
2 issues
Unable to import '__init__.colorize'
Error

Line: 8 Column: 1

              # These submodules should not have any import-time dependencies.
# We want this since we use `utils` during our import-time sanity checks
# that verify that our dependencies are actually present.
from .colorize import colorize
from .ezpickle import EzPickle

            

Reported by Pylint.

Unable to import '__init__.ezpickle'
Error

Line: 9 Column: 1

              # We want this since we use `utils` during our import-time sanity checks
# that verify that our dependencies are actually present.
from .colorize import colorize
from .ezpickle import EzPickle

            

Reported by Pylint.

gym/wrappers/monitoring/tests/helpers.py
2 issues
Missing module docstring
Error

Line: 1 Column: 1

              import contextlib
import shutil
import tempfile


@contextlib.contextmanager
def tempdir():
    temp = tempfile.mkdtemp()
    yield temp

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 7 Column: 1

              

@contextlib.contextmanager
def tempdir():
    temp = tempfile.mkdtemp()
    yield temp
    shutil.rmtree(temp)

            

Reported by Pylint.

gym/envs/algorithmic/copy_.py
2 issues
Missing class docstring
Error

Line: 8 Column: 1

              from gym.envs.algorithmic import algorithmic_env


class CopyEnv(algorithmic_env.TapeAlgorithmicEnv):
    def __init__(self, base=5, chars=True):
        super(CopyEnv, self).__init__(base=base, chars=chars)

    def target_from_input_data(self, input_data):
        return input_data

            

Reported by Pylint.

Consider using Python 3 style super() without arguments
Error

Line: 10 Column: 9

              
class CopyEnv(algorithmic_env.TapeAlgorithmicEnv):
    def __init__(self, base=5, chars=True):
        super(CopyEnv, self).__init__(base=base, chars=chars)

    def target_from_input_data(self, input_data):
        return input_data

            

Reported by Pylint.