
    MZd              
       x   U d Z ddlmZmZ ddlZddlmZmZ ddl	m
Z
 ddlmZ  ed      \
  ZZZZZZZZZZ ed	      \
  ZZZZZZZZZZ  ed
      \  Z!Z"Z#Z$Z%Z& ed      \
  Z'Z(Z)Z*Z+Z,Z-Z.Z/Z0 ed      \
  Z1Z2Z3Z4Z5Z6Z7Z8Z9Z: ed      \  Z;Z<Z=Z>Z?Z@ ed      \  ZAZBZCZD ed      \  ZEZFZGZH ed      \  ZIZJZKZL ed      \  ZMZNZOZP ed      \  ZQZRZSZT ed      \  ZUZVZWZX eYej                        Z[ eYe
      Z\e\j                  d       e\j                  d       i Z_ee`ef   ead<    ebde_       i Zcee`ef   ead<   i Zdee`ef   ead<   e_rKe_j                         \  ZfZgefe\v reedef<   e\j                  ef       nefe[v reecef<   e[j                  ef       e_rKi Zhehj                  ec       ehj                  ed       [[[\[[f[y)a  
This module exports all latin and greek letters as Symbols, so you can
conveniently do

    >>> from sympy.abc import x, y

instead of the slightly more clunky-looking

    >>> from sympy import symbols
    >>> x, y = symbols('x y')

Caveats
=======

1. As of the time of writing this, the names ``O``, ``S``, ``I``, ``N``,
``E``, and ``Q`` are colliding with names defined in SymPy. If you import them
from both ``sympy.abc`` and ``sympy``, the second import will "win".
This is an issue only for * imports, which should only be used for short-lived
code such as interactive sessions and throwaway scripts that do not survive
until the next SymPy upgrade, where ``sympy`` may contain a different set of
names.

2. This module does not define symbol names on demand, i.e.
``from sympy.abc import foo`` will be reported as an error because
``sympy.abc`` does not contain the name ``foo``. To get a symbol named ``foo``,
you still need to use ``Symbol('foo')`` or ``symbols('foo')``.
You can freely mix usage of ``sympy.abc`` and ``Symbol``/``symbols``, though
sticking with one and only one way to get the symbols does tend to make the code
more readable.

The module also defines some special names to help detect which names clash
with the default SymPy namespace.

``_clash1`` defines all the single letter variables that clash with
SymPy objects; ``_clash2`` defines the multi-letter clashing symbols;
and ``_clash`` is the union of both. These can be passed for ``locals``
during sympification if one desires Symbols rather than the non-Symbol
objects for those names.

Examples
========

>>> from sympy import S
>>> from sympy.abc import _clash1, _clash2, _clash
>>> S("Q & C", locals=_clash1)
C & Q
>>> S('pi(x)', locals=_clash2)
pi(x)
>>> S('pi(C, Q)', locals=_clash)
pi(C, Q)

    )AnyDictN   )Symbolsymbols)greeks)nullza, b, c, d, e, f, g, h, i, jzk, l, m, n, o, p, q, r, s, tzu, v, w, x, y, zzA, B, C, D, E, F, G, H, I, JzK, L, M, N, O, P, Q, R, S, TzU, V, W, X, Y, Zzalpha, beta, gamma, deltazepsilon, zeta, eta, thetaziota, kappa, lamda, muznu, xi, omicron, pizrho, sigma, tau, upsilonzphi, chi, psi, omegalambdalamdanszfrom sympy import *_clash1_clash2)j__doc__typingr   r   tDictstringcorer   r   core.alphabetsr   sympy.parsing.sympy_parserr	   abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZalphabetagammadeltaepsilonzetaetathetaiotakappar   munuxiomicronpirhosigmatauupsilonphichipsiomegalistascii_letters_latin_greekremoveappendr   str__annotations__execr   r   popitem_k__clashupdate     +/usr/lib/python3/dist-packages/sympy/abc.py<module>rr      s3  3j &  ! " +  ''EF 1aAq!Q1&'EF 1aAq!Q1-. 1aAq&'EF 1aAq!Q1&'EF 1aAq!Q1-. 1aAq#$?@ tUE#$?@ sE !9: eUB34 B"#=> UC56 S#u 
f""	#	f h  g E#s(O  B sCx sCx JJLEB	V|b	vb 	 
 g  g 
FFBrp   