# Path: deluca/core.py
# class Env(Obj):
# 
#   @abstractmethod
#   def init(self):
#     """Return an initialized state"""
# 
#   @abstractmethod
#   def __call__(self, state, action, *args, **kwargs):
#     """Return an updated state"""
# 
# Path: deluca/core.py
# def field(default=None, jaxed=True, **kwargs):
#   if "default_factory" not in kwargs:
#     kwargs["default"] = default
#   kwargs["pytree_node"] = jaxed
#   return flax.struct.field(**kwargs)


from deluca.core import Env
from deluca.core import field
import jax
import jax.numpy as jnp
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Acrobot."""

__copyright__ = "Copyright 2013, RLPy http://acl.mit.edu/RLPy"
__credits__ = [
    "Alborz Geramifard",
    "Robert H. Klein",
    "Christoph Dann",
    "William Dabney",
    "Jonathan P. How",
]
__license__ = "BSD 3-Clause"
__author__ = "Christoph Dann <cdann@cdann.de>"

# SOURCE:
# https://github.com/rlpy/rlpy/blob/master/rlpy/Domains/Acrobot.py


class Acrobot(Env):
  """Acrobot."""

# Path: deluca/core.py
# class Env(Obj):
# 
#   @abstractmethod
#   def init(self):
#     """Return an initialized state"""
# 
#   @abstractmethod
#   def __call__(self, state, action, *args, **kwargs):
#     """Return an updated state"""
# 
# Path: deluca/core.py
# def field(default=None, jaxed=True, **kwargs):
#   if "default_factory" not in kwargs:
#     kwargs["default"] = default
#   kwargs["pytree_node"] = jaxed
#   return flax.struct.field(**kwargs)


# Path: deluca/envs/classic/_acrobot.py
from deluca.core import Env
from deluca.core import field
import jax
import jax.numpy as jnp

# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Acrobot."""

__copyright__ = "Copyright 2013, RLPy http://acl.mit.edu/RLPy"
__credits__ = [
    "Alborz Geramifard",
    "Robert H. Klein",
    "Christoph Dann",
    "William Dabney",
    "Jonathan P. How",
]
__license__ = "BSD 3-Clause"
__author__ = "Christoph Dann <cdann@cdann.de>"

# SOURCE:
# https://github.com/rlpy/rlpy/blob/master/rlpy/Domains/Acrobot.py


class Acrobot(Env):
  """Acrobot."""

  key: jnp.ndarray = field(jaxed=False)