PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  ]c@sddlmZmZmZmZmZddlmZdefdYZddZ ddZ ddZ ddZ dd Zdd Zdd Zdd Zdd ZddZddZddZdefdYZdedZdZddZdS(i(tDEFAULT_DB_ALIASt DatabaseErrortErrortProgrammingErrort connections(tContextDecoratortTransactionManagementErrorcBseZdZRS(sR This exception is thrown when transaction management is used improperly. (t__name__t __module__t__doc__(((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyRscCs|dkrt}nt|S(s Get a database connection by name, or the default database connection if no name is provided. This is a private API. N(tNoneRR(tusing((s9/usr/lib/python2.7/site-packages/django/db/transaction.pytget_connections  cCst|jS(s6 Get the autocommit status of the connection. (R tget_autocommit(R ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyR scCst|j|S(s6 Set the autocommit status of the connection. (R tset_autocommit(t autocommitR ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyRscCst|jdS(s Commits a transaction. N(R tcommit(R ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyR&scCst|jdS(s# Rolls back a transaction. N(R trollback(R ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyR-scCst|jS(s Creates a savepoint (if supported and required by the backend) inside the current transaction. Returns an identifier for the savepoint that will be used for the subsequent rollback or commit. (R t savepoint(R ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyR4scCst|j|dS(sq Rolls back the most recent savepoint (if one exists). Does nothing if savepoints are not supported. N(R tsavepoint_rollback(tsidR ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyR=scCst|j|dS(sn Commits the most recent savepoint (if one exists). Does nothing if savepoints are not supported. N(R tsavepoint_commit(RR ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyREscCst|jdS(sR Resets the counter used to generate unique savepoint ids in this thread. N(R tclean_savepoints(R ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyRMscCst|jS(sD Gets the "needs rollback" flag -- for *advanced use* only. (R t get_rollback(R ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyRTscCst|j|S(s Sets or unsets the "needs rollback" flag -- for *advanced use* only. When `rollback` is `True`, it triggers a rollback when exiting the innermost enclosing atomic block that has `savepoint=True` (that's the default). Use this to force a rollback without raising an exception. When `rollback` is `False`, it prevents such a rollback. Use this only after rolling back to a known-good state! Otherwise, you break the atomic block and data corruption may occur. (R t set_rollback(RR ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyR[s cCst|j|dS(s Register `func` to be called when the current transaction is committed. If the current transaction is rolled back, `func` will not be called. N(R t on_commit(tfuncR ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyRjstAtomiccBs)eZdZdZdZdZRS(s This class guarantees the atomic execution of a given block. An instance can be used either as a decorator or as a context manager. When it's used as a decorator, __call__ wraps the execution of the decorated function in the instance itself, used as a context manager. When it's used as a context manager, __enter__ creates a transaction or a savepoint, depending on whether a transaction is already in progress, and __exit__ commits the transaction or releases the savepoint on normal exit, and rolls back the transaction or to the savepoint on exceptions. It's possible to disable the creation of savepoints if the goal is to ensure that some code runs within a transaction without creating overhead. A stack of savepoints identifiers is maintained as an attribute of the connection. None denotes the absence of a savepoint. This allows reentrancy even if the same AtomicWrapper is reused. For example, it's possible to define `oa = atomic('other')` and use `@oa` or `with oa:` multiple times. Since database connections are thread-local, this is thread-safe. This is a private API. cCs||_||_dS(N(R R(tselfR R((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyt__init__s cCst|j}|jsit|_t|_|jsi|jj rQt dnt|_t|_qin|jr|j r|j r|j }|j j |q|j j dn|jtdtt|_dS(NsgYour database backend doesn't behave properly when autocommit is off. Turn it on before using 'atomic'.t.force_begin_transaction_with_broken_autocommit(R R tin_atomic_blocktTruetcommit_on_exittFalsetneeds_rollbackR tfeaturest"autocommits_when_autocommit_is_offRRt savepoint_idstappendR R(Rt connectionR((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyt __enter__s"         cCs*t|j}|jr*|jj}n t|_z|jrBn||dkr*|j r*|jr|dk r'y|j |Wqt k ry|j ||j |Wnt k rt |_nXqXq'qy|jWqt k r&y|jWnt k r|jnXqXnt|_|jr|dkrTt |_qy|j ||j |Wqt k rt |_qXn,y|jWnt k r|jnXWd|js|jrd|_q%|jt n5|j r%|j r%|jrd|_q%t|_nXdS(N(R R R&tpopR"Rtclosed_in_transactionR R#RRRRR RRtcloseR(RR!(Rtexc_typet exc_valuet tracebackR(R((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyt__exit__s`                         (RRR RR)R0(((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyRvs  $cCs0t|rtt||St||SdS(N(tcallableRR(R R((s9/usr/lib/python2.7/site-packages/django/db/transaction.pytatomics cCs8y|jj|Wntk r3|h|_nX|S(N(t_non_atomic_requeststaddtAttributeError(tviewR ((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyR3s  cs?trttSdkr.tnfdSdS(Ncs t|S(N(R3(R6(R (s9/usr/lib/python2.7/site-packages/django/db/transaction.pyt,s(R1R3RR (R ((R s9/usr/lib/python2.7/site-packages/django/db/transaction.pytnon_atomic_requests&s     N(t django.dbRRRRRtdjango.utils.decoratorsRRR R R RRRRRRRRRRRR R2R3R8(((s9/usr/lib/python2.7/site-packages/django/db/transaction.pyts$(