~ubuntu-branches/debian/sid/python-django/sid

« back to all changes in this revision

Viewing changes to django/db/__init__.py

  • Committer: Package Import Robot
  • Author(s): Raphaël Hertzog
  • Date: 2014-09-17 14:15:11 UTC
  • mfrom: (1.3.17) (6.2.18 experimental)
  • Revision ID: package-import@ubuntu.com-20140917141511-icneokthe9ww5sk4
Tags: 1.7-2
* Release to unstable.
* Add a migrate-south sample script to help users apply their South
  migrations. Thanks to Brian May.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
import warnings
2
2
 
3
3
from django.core import signals
4
 
from django.db.utils import (DEFAULT_DB_ALIAS,
5
 
    DataError, OperationalError, IntegrityError, InternalError,
6
 
    ProgrammingError, NotSupportedError, DatabaseError,
7
 
    InterfaceError, Error,
8
 
    load_backend, ConnectionHandler, ConnectionRouter)
 
4
from django.db.utils import (DEFAULT_DB_ALIAS, DataError, OperationalError,
 
5
    IntegrityError, InternalError, ProgrammingError, NotSupportedError,
 
6
    DatabaseError, InterfaceError, Error, load_backend,
 
7
    ConnectionHandler, ConnectionRouter)
 
8
from django.utils.deprecation import RemovedInDjango18Warning
9
9
from django.utils.functional import cached_property
10
10
 
11
 
__all__ = ('backend', 'connection', 'connections', 'router', 'DatabaseError',
12
 
    'IntegrityError', 'DEFAULT_DB_ALIAS')
 
11
 
 
12
__all__ = [
 
13
    'backend', 'connection', 'connections', 'router', 'DatabaseError',
 
14
    'IntegrityError', 'InternalError', 'ProgrammingError', 'DataError',
 
15
    'NotSupportedError', 'Error', 'InterfaceError', 'OperationalError',
 
16
    'DEFAULT_DB_ALIAS'
 
17
]
13
18
 
14
19
connections = ConnectionHandler()
15
20
 
16
21
router = ConnectionRouter()
17
22
 
 
23
 
18
24
# `connection`, `DatabaseError` and `IntegrityError` are convenient aliases
19
25
# for backend bits.
20
26
 
39
45
    def __delattr__(self, name):
40
46
        return delattr(connections[DEFAULT_DB_ALIAS], name)
41
47
 
 
48
    def __eq__(self, other):
 
49
        return connections[DEFAULT_DB_ALIAS] == other
 
50
 
 
51
    def __ne__(self, other):
 
52
        return connections[DEFAULT_DB_ALIAS] != other
 
53
 
42
54
connection = DefaultConnectionProxy()
43
55
 
 
56
 
44
57
class DefaultBackendProxy(object):
45
58
    """
46
59
    Temporary proxy class used during deprecation period of the `backend` module
49
62
    @cached_property
50
63
    def _backend(self):
51
64
        warnings.warn("Accessing django.db.backend is deprecated.",
52
 
            PendingDeprecationWarning, stacklevel=2)
 
65
            RemovedInDjango18Warning, stacklevel=2)
53
66
        return load_backend(connections[DEFAULT_DB_ALIAS].settings_dict['ENGINE'])
54
67
 
55
68
    def __getattr__(self, item):
63
76
 
64
77
backend = DefaultBackendProxy()
65
78
 
 
79
 
66
80
def close_connection(**kwargs):
67
81
    warnings.warn(
68
82
        "close_connection is superseded by close_old_connections.",
69
 
        PendingDeprecationWarning, stacklevel=2)
 
83
        RemovedInDjango18Warning, stacklevel=2)
70
84
    # Avoid circular imports
71
85
    from django.db import transaction
72
86
    for conn in connections:
76
90
        transaction.abort(conn)
77
91
        connections[conn].close()
78
92
 
 
93
 
79
94
# Register an event to reset saved queries when a Django request is started.
80
95
def reset_queries(**kwargs):
81
96
    for conn in connections.all():
82
97
        conn.queries = []
83
98
signals.request_started.connect(reset_queries)
84
99
 
 
100
 
85
101
# Register an event to reset transaction state and close connections past
86
102
# their lifetime. NB: abort() doesn't do anything outside of a transaction.
87
103
def close_old_connections(**kwargs):