MCPcopy Index your code
hub / github.com/MagicStack/asyncpg / __init__

Method __init__

asyncpg/connection.py:59–121  ·  view source on GitHub ↗
(self, protocol, transport, loop,
                 addr,
                 config: connect_utils._ClientConfiguration,
                 params: connect_utils._ConnectionParameters)

Source from the content-addressed store, hash-verified

57 '_source_traceback', '_query_loggers', '__weakref__')
58
59 def __init__(self, protocol, transport, loop,
60 addr,
61 config: connect_utils._ClientConfiguration,
62 params: connect_utils._ConnectionParameters):
63 self._protocol = protocol
64 self._transport = transport
65 self._loop = loop
66 self._top_xact = None
67 self._aborted = False
68 # Incremented every time the connection is released back to a pool.
69 # Used to catch invalid references to connection-related resources
70 # post-release (e.g. explicit prepared statements).
71 self._pool_release_ctr = 0
72
73 self._addr = addr
74 self._config = config
75 self._params = params
76
77 self._stmt_cache = _StatementCache(
78 loop=loop,
79 max_size=config.statement_cache_size,
80 on_remove=functools.partial(
81 _weak_maybe_gc_stmt, weakref.ref(self)),
82 max_lifetime=config.max_cached_statement_lifetime)
83
84 self._stmts_to_close = set()
85 self._stmt_cache_enabled = config.statement_cache_size > 0
86
87 self._listeners = {}
88 self._log_listeners = set()
89 self._cancellations = set()
90 self._termination_listeners = set()
91 self._query_loggers = set()
92
93 settings = self._protocol.get_settings()
94 ver_string = settings.server_version
95 self._server_version = \
96 serverversion.split_server_version_string(ver_string)
97
98 self._server_caps = _detect_server_capabilities(
99 self._server_version, settings)
100
101 if self._server_version < (14, 0):
102 self._intro_query = introspection.INTRO_LOOKUP_TYPES_13
103 else:
104 self._intro_query = introspection.INTRO_LOOKUP_TYPES
105
106 self._reset_query = None
107 self._proxy = None
108
109 # Used to serialize operations that might involve anonymous
110 # statements. Specifically, we want to make the following
111 # operation atomic:
112 # ("prepare an anonymous statement", "use the statement")
113 #
114 # Used for `con.fetchval()`, `con.fetch()`, `con.fetchrow()`,
115 # `con.execute()`, and `con.executemany()`.
116 self._stmt_exclusive_section = _Atomic()

Callers

nothing calls this directly

Calls 5

_StatementCacheClass · 0.85
_AtomicClass · 0.85
_extract_stackFunction · 0.85
get_settingsMethod · 0.80

Tested by

no test coverage detected