# Path: labmaze/base.py
# class BaseMaze(metaclass=abc.ABCMeta):
#   def regenerate(self):
#   def entity_layer(self):
#   def variations_layer(self):
#   def height(self):
#   def width(self):
#   def max_variations(self):
#   def spawn_token(self):
#   def object_token(self):
# 
# Path: labmaze/defaults.py

# 
# Path: labmaze/text_grid.py
# class TextGrid(np.ndarray):
#   def __new__(cls, newline_delimited_string):
#   def __str__(self):


import itertools
import numpy as np
from labmaze import base
from labmaze import defaults
from labmaze import text_grid
    Args:
      entity_layer: A string specifying the layout of this maze. The lines in
        this string should be of equal length, and the string should terminate
        with a newline character. Maze walls are represented by the '*'
        character. Optionally, candidate positions for spawn points and object
        locations can be specified by adding the appropriate tokens to the
        desired locations in the string. See this class' docstring for details.
      variations_layer: A string specifying the variations layer for this maze.
        This is used to change the visual appearance across various parts of
        the maze. See the docstring for `variations_layer` property for details.
      num_spawns: The total number of spawn points to be generated within this
        maze. If `None`, this maze will use all spawn tokens present in the
        `entity_layer` string (i.e. no randomization).
      spawn_token: The character that is used to represent spawn points in this
        text maze.
      num_objects: The total number of object positions to be generated within
        this maze. If `None`, this maze will use all object tokens present in
        the `entity_layer` string (i.e. no randomization).
      object_token: The character that is used to represent object locations in
        this text maze.
      random_state: A `numpy.random.RandomState` object.

    Raises:
      ValueError: If `variations_layer` is not of the same shape as
        `entity_layer`, or if `spawn_token` or `object_token` is not exactly
        one character long.
    """
    self._entity_layer = text_grid.TextGrid(entity_layer)

    if variations_layer is not None:

# Path: labmaze/base.py
# class BaseMaze(metaclass=abc.ABCMeta):
#   def regenerate(self):
#   def entity_layer(self):
#   def variations_layer(self):
#   def height(self):
#   def width(self):
#   def max_variations(self):
#   def spawn_token(self):
#   def object_token(self):
# 
# Path: labmaze/defaults.py

# 
# Path: labmaze/text_grid.py
# class TextGrid(np.ndarray):
#   def __new__(cls, newline_delimited_string):
#   def __str__(self):


# Path: labmaze/fixed_maze.py
import itertools
import numpy as np
from labmaze import base
from labmaze import defaults
from labmaze import text_grid

    Args:
      entity_layer: A string specifying the layout of this maze. The lines in
        this string should be of equal length, and the string should terminate
        with a newline character. Maze walls are represented by the '*'
        character. Optionally, candidate positions for spawn points and object
        locations can be specified by adding the appropriate tokens to the
        desired locations in the string. See this class' docstring for details.
      variations_layer: A string specifying the variations layer for this maze.
        This is used to change the visual appearance across various parts of
        the maze. See the docstring for `variations_layer` property for details.
      num_spawns: The total number of spawn points to be generated within this
        maze. If `None`, this maze will use all spawn tokens present in the
        `entity_layer` string (i.e. no randomization).
      spawn_token: The character that is used to represent spawn points in this
        text maze.
      num_objects: The total number of object positions to be generated within
        this maze. If `None`, this maze will use all object tokens present in
        the `entity_layer` string (i.e. no randomization).
      object_token: The character that is used to represent object locations in
        this text maze.
      random_state: A `numpy.random.RandomState` object.

    Raises:
      ValueError: If `variations_layer` is not of the same shape as
        `entity_layer`, or if `spawn_token` or `object_token` is not exactly
        one character long.
    """
    self._entity_layer = text_grid.TextGrid(entity_layer)

    if variations_layer is not None:

      self._variations_layer = text_grid.TextGrid(variations_layer)