
    \h                         S r  " S S5      rg)z
Replacement rules.
c                   <    \ rS rSrSrS 4S jrS rS rS
S jrS	r	g)	Transform   aA  
Immutable mapping that can be used as a generic transformation rule.

Parameters
==========

transform : callable
    Computes the value corresponding to any key.

filter : callable, optional
    If supplied, specifies which objects are in the mapping.

Examples
========

>>> from sympy.core.rules import Transform
>>> from sympy.abc import x

This Transform will return, as a value, one more than the key:

>>> add1 = Transform(lambda x: x + 1)
>>> add1[1]
2
>>> add1[x]
x + 1

By default, all values are considered to be in the dictionary. If a filter
is supplied, only the objects for which it returns True are considered as
being in the dictionary:

>>> add1_odd = Transform(lambda x: x + 1, lambda x: x%2 == 1)
>>> 2 in add1_odd
False
>>> add1_odd.get(2, 0)
0
>>> 3 in add1_odd
True
>>> add1_odd[3]
4
>>> add1_odd.get(3, 0)
4
c                     g)NT )xs    H/var/www/auris/envauris/lib/python3.13/site-packages/sympy/core/rules.py<lambda>Transform.<lambda>1   s    4    c                     Xl         X l        g N)
_transform_filter)self	transformfilters      r   __init__Transform.__init__1   s    #r   c                 $    U R                  U5      $ r   )r   )r   items     r   __contains__Transform.__contains__5   s    ||D!!r   c                 f    U R                  U5      (       a  U R                  U5      $ [        U5      er   )r   r   KeyError)r   keys     r   __getitem__Transform.__getitem__8   s*    <<??3''3-r   Nc                     X;   a  X   $ U$ r   r   )r   r   defaults      r   getTransform.get>   s    <:Nr   )r   r   r   )
__name__
__module____qualname____firstlineno____doc__r   r   r   r    __static_attributes__r   r   r   r   r      s!    )V *8 " r   r   N)r&   r   r   r   r   <module>r(      s   = =r   