class_docstr: Represents an unevaluated limit.
  
  Examples
  ========
  
  >>> from sympy import Limit, sin
  >>> from sympy.abc import x
  >>> Limit(sin(x)/x, x, 0)
  Limit(sin(x)/x, x, 0, dir='+')
  >>> Limit(1/x, x, 0, dir="-")
  Limit(1/x, x, 0, dir='-')
class_docstr_tok: ["Represents","an","unevaluated","limit",".","Examples","========",">",">",">","from","sympy","import","Limit",",","sin",">",">",">","from","sympy.abc","import","x",">",">",">","Limit","(","sin","(","x",")","\/x",",","x",",","0",")","Limit","(","sin","(","x",")","\/x",",","x",",","0",",","dir='+","'",")",">",">",">","Limit","(","1\/x",",","x",",","0",",","dir=","''","-","''",")","Limit","(","1\/x",",","x",",","0",",","dir='-","'",")"]
code: def __new__(cls, e, z, z0, dir="+"):
      e = sympify(e)
      z = sympify(z)
      z0 = sympify(z0)
  
      if z0 in (S.Infinity, S.ImaginaryUnit * S.Infinity):
          dir = "-"
      elif z0 in (
          S.NegativeInfinity,
          S.ImaginaryUnit * S.NegativeInfinity,
      ):
          dir = "+"
  
      if z0.has(z):
          raise NotImplementedError(
              "Limits approaching a variable point are"
              " not supported (%s -> %s)" % (z, z0)
          )
      if isinstance(dir, str):
          dir = Symbol(dir)
      elif not isinstance(dir, Symbol):
          raise TypeError(
              "direction must be of type basestring or "
              "Symbol, not %s" % type(dir)
          )
      if str(dir) not in ("+", "-", "+-"):
          raise ValueError(
              "direction must be one of '+', '-' "
              "or '+-', not %s" % dir
          )
  
      obj = Expr.__new__(cls)
      obj._args = (e, z, z0, dir)
      return obj
  
file_path: sympy/sympy/series/limits.py
imports: from sympy.calculus.accumulationbounds import AccumBounds
  from sympy.core import S, Symbol, Add, sympify, Expr, PoleError, Mul
  from sympy.core.exprtools import factor_terms
  from sympy.core.numbers import Float, _illegal
  from sympy.functions.combinatorial.factorials import factorial
  from sympy.functions.elementary.complexes import Abs, sign, arg, re
  from sympy.functions.elementary.exponential import exp, log
  from sympy.functions.special.gamma_functions import gamma
  from sympy.polys import PolynomialError, factor
  from sympy.series.order import Order
  from .gruntz import gruntz
label_desc: Use image node_id 1 for calling the Limit obj's underlying member method code with example usage: obj.__new__(cls, e, z, z0, dir) and returns: obj