class_docstr: Code printer which creates Theano symbolic expression graphs.
  
  Parameters
  ==========
  
  cache : dict
      Cache dictionary to use. If None (default) will use
      the global cache. To create a printer which does not depend on or alter
      global state pass an empty dictionary. Note: the dictionary is not
      copied on initialization of the printer and will be updated in-place,
      so using the same dict object when creating multiple printers or making
      multiple calls to :func:`.theano_code` or :func:`.theano_function` means
      the cache is shared between all these applications.
  
  Attributes
  ==========
  
  cache : dict
      A cache of Theano variables which have been created for SymPy
      symbol-like objects (e.g. :class:`sympy.core.symbol.Symbol` or
      :class:`sympy.matrices.expressions.MatrixSymbol`). This is used to
      ensure that all references to a given symbol in an expression (or
      multiple expressions) are printed as the same Theano variable, which is
      created only once. Symbols are differentiated only by name and type. The
      format of the cache's contents should be considered opaque to the user.
docstr: Convert a SymPy expression to a Theano graph variable.
  
  The ``dtypes`` and ``broadcastables`` arguments are used to specify the
  data type, dimension, and broadcasting behavior of the Theano variables
  corresponding to the free symbols in ``expr``. Each is a mapping from
  SymPy symbols to the value of the corresponding argument to
  ``theano.tensor.Tensor``.
  
  See the corresponding `documentation page`__ for more information on
  broadcasting in Theano.
  
  .. __: http://deeplearning.net/software/theano/tutorial/broadcasting.html
  
  Parameters
  ==========
  
  expr : sympy.core.expr.Expr
      SymPy expression to print.
  
  dtypes : dict
      Mapping from SymPy symbols to Theano datatypes to use when creating
      new Theano variables for those symbols. Corresponds to the ``dtype``
      argument to ``theano.tensor.Tensor``. Defaults to ``'floatX'``
      for symbols not included in the mapping.
  
  broadcastables : dict
      Mapping from SymPy symbols to the value of the ``broadcastable``
      argument to ``theano.tensor.Tensor`` to use when creating Theano
      variables for those symbols. Defaults to the empty tuple for symbols
      not included in the mapping (resulting in a scalar).
  
  Returns
  =======
  
  theano.gof.graph.Variable
      A variable corresponding to the expression's value in a Theano
      symbolic expression graph.
docstr_tok: ["Convert","a","SymPy","expression","to","a","Theano","graph","variable",".","The","``","dtypes","``","and","``","broadcastables","``","arguments","are","used","to","specify","the","data","type",",","dimension",",","and","broadcasting","behavior","of","the","Theano","variables","corresponding","to","the","free","symbols","in","``","expr","``",".","Each","is","a","mapping","from","SymPy","symbols","to","the","value","of","the","corresponding","argument","to","``","theano.tensor.Tensor","``",".","See","the","corresponding","`","documentation","page","`","__","for","more","information","on","broadcasting","in","Theano",".","..","__",":","http",":","\/\/deeplearning.net\/software\/theano\/tutorial\/broadcasting.html","Parameters","==========","expr",":","sympy.core.expr.Expr","SymPy","expression","to","print",".","dtypes",":","dict","Mapping","from","SymPy","symbols","to","Theano","datatypes","to","use","when","creating","new","Theano","variables","for","those","symbols",".","Corresponds","to","the","``","dtype","``","argument","to","``","theano.tensor.Tensor","``",".","Defaults","to","``","'floatX","'","``","for","symbols","not","included","in","the","mapping",".","broadcastables",":","dict","Mapping","from","SymPy","symbols","to","the","value","of","the","``","broadcastable","``","argument","to","``","theano.tensor.Tensor","``","to","use","when","creating","Theano","variables","for","those","symbols",".","Defaults","to","the","empty","tuple","for","symbols","not","included","in","the","mapping","(","resulting","in","a","scalar",")",".","Returns","=======","theano.gof.graph.Variable","A","variable","corresponding","to","the","expression","'s","value","in","a","Theano","symbolic","expression","graph","."]
code: def doprint(self, expr, dtypes=None, broadcastables=None):
      """Convert a SymPy expression to a Theano graph variable.
  
      The ``dtypes`` and ``broadcastables`` arguments are used to specify the
      data type, dimension, and broadcasting behavior of the Theano variables
      corresponding to the free symbols in ``expr``. Each is a mapping from
      SymPy symbols to the value of the corresponding argument to
      ``theano.tensor.Tensor``.
  
      See the corresponding `documentation page`__ for more information on
      broadcasting in Theano.
  
      .. __: http://deeplearning.net/software/theano/tutorial/broadcasting.html
  
      Parameters
      ==========
  
      expr : sympy.core.expr.Expr
          SymPy expression to print.
  
      dtypes : dict
          Mapping from SymPy symbols to Theano datatypes to use when creating
          new Theano variables for those symbols. Corresponds to the ``dtype``
          argument to ``theano.tensor.Tensor``. Defaults to ``'floatX'``
          for symbols not included in the mapping.
  
      broadcastables : dict
          Mapping from SymPy symbols to the value of the ``broadcastable``
          argument to ``theano.tensor.Tensor`` to use when creating Theano
          variables for those symbols. Defaults to the empty tuple for symbols
          not included in the mapping (resulting in a scalar).
  
      Returns
      =======
  
      theano.gof.graph.Variable
          A variable corresponding to the expression's value in a Theano
          symbolic expression graph.
  
      """
      if dtypes is None:
          dtypes = {}
      if broadcastables is None:
          broadcastables = {}
  
      return self._print(
          expr, dtypes=dtypes, broadcastables=broadcastables
      )
  
imports: from __future__ import annotations
  from typing import Any
  from sympy.external import import_module
  from sympy.printing.printer import Printer
  from sympy.utilities.iterables import is_sequence
  import sympy
  from functools import partial
  from sympy.utilities.decorator import doctest_depends_on
  from sympy.utilities.exceptions import sympy_deprecation_warning
label_desc: Use image node_id 23 for calling the TheanoPrinter obj's underlying member method code with example usage: obj.doprint(expr, dtypes, broadcastables) and returns: self