graph LR
Core_Database_Management["Core Database Management"]
Data_Type_Adapters["Data Type Adapters"]
SQL_Query_Construction["SQL Query Construction"]
Advanced_Cursor_Connection_Features["Advanced Cursor & Connection Features"]
Build_Documentation_Utilities["Build & Documentation Utilities"]
Advanced_Cursor_Connection_Features -- "uses" --> Core_Database_Management
SQL_Query_Construction -- "uses" --> Core_Database_Management
Data_Type_Adapters -- "uses" --> Core_Database_Management
Data_Type_Adapters -- "registers with" --> Core_Database_Management
click Core_Database_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/psycopg2/Core Database Management.md" "Details"
click Data_Type_Adapters href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/psycopg2/Data Type Adapters.md" "Details"
click SQL_Query_Construction href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/psycopg2/SQL Query Construction.md" "Details"
click Advanced_Cursor_Connection_Features href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/psycopg2/Advanced Cursor & Connection Features.md" "Details"
click Build_Documentation_Utilities href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/psycopg2/Build & Documentation Utilities.md" "Details"
The psycopg2 library provides a comprehensive interface for interacting with PostgreSQL databases from Python. Its architecture is modular, separating core connection and extension management from specialized data type handling, SQL query construction, and advanced cursor features. This design allows for efficient database operations, robust type conversions, and secure query building, while also including utilities for build processes and documentation generation.
This component provides the foundational functionalities for managing database connections, including connection pooling for efficient resource reuse, and core extensions for DSN string creation and SQL IN clause handling. It also includes utilities for timezone management.
Related Classes/Methods:
psycopg2.lib.pool.PoolError(32:33)psycopg2.lib.pool.AbstractConnectionPool(36:144)psycopg2.lib.pool.SimpleConnectionPool(147:152)psycopg2.lib.pool.ThreadedConnectionPool(155:187)psycopg2.lib.extensions.SQL_IN(101:122)psycopg2.lib.extensions.make_dsn(138:169)psycopg2.lib.extensions._param_escape(172:185)psycopg2.lib.extensions.register_adapter(95:97)psycopg2.lib.tz.FixedOffsetTimezone(36:116)psycopg2.lib.tz.LocalTimezone(127:153)
This component is responsible for adapting Python data types to PostgreSQL-specific types and vice-versa, ensuring seamless data exchange. It includes specialized handlers for IP addresses, range types, JSON/JSONB, hstore, composite types, and UUIDs.
Related Classes/Methods:
psycopg2.lib._ipaddress.register_ipaddress(37:63)psycopg2.lib._ipaddress._make_casters(66:73)psycopg2.lib._ipaddress.cast_interface(76:80)psycopg2.lib._ipaddress.cast_network(83:86)psycopg2.lib._ipaddress.adapt_ipaddress(89:90)psycopg2.lib._range.Range(35:203)psycopg2.lib._range.register_range(206:234)psycopg2.lib._range.RangeAdapter(237:282)psycopg2.lib._range.RangeCaster(285:470)psycopg2.lib._range.NumericRange(473:479)psycopg2.lib._range.DateRange(482:484)psycopg2.lib._range.DateTimeRange(487:489)psycopg2.lib._range.DateTimeTZRange(492:494)psycopg2.lib._json.Json(46:86)psycopg2.lib._json.register_json(89:125)psycopg2.lib._json.register_default_json(128:138)psycopg2.lib._json.register_default_jsonb(141:151)psycopg2.lib._json._create_json_typecasters(154:170)psycopg2.lib._json._get_json_oids(173:199)psycopg2.lib.extras.HstoreAdapter(788:921)psycopg2.lib.extras.CompositeCaster(984:1144)psycopg2.lib.extras.UUID_adapter(626:644)psycopg2.lib.extras.Inet(681:709)
This component provides a safe and programmatic interface for building SQL queries, preventing SQL injection vulnerabilities through composable objects like SQL fragments, identifiers, and placeholders.
Related Classes/Methods:
psycopg2.lib.sql.Composable(35:83)psycopg2.lib.sql.Composed(86:156)psycopg2.lib.sql.SQL(159:287)psycopg2.lib.sql.Identifier(290:350)psycopg2.lib.sql.Placeholder(398:450)
This component extends basic database interaction with specialized cursor implementations (e.g., DictCursor, NamedTupleCursor) for varied result formats, logging capabilities for monitoring database operations, and functionalities for PostgreSQL replication.
Related Classes/Methods:
psycopg2.lib.extras.DictCursorBase(65:122)psycopg2.lib.extras.DictConnection(125:129)psycopg2.lib.extras.DictCursor(132:157)psycopg2.lib.extras.DictRow(160:211)psycopg2.lib.extras.RealDictConnection(214:218)psycopg2.lib.extras.RealDictCursor(221:246)psycopg2.lib.extras.RealDictRow(249:281)psycopg2.lib.extras.NamedTupleConnection(284:288)psycopg2.lib.extras.NamedTupleCursor(291:376)psycopg2.lib.extras.LoggingConnection(389:437)psycopg2.lib.extras.LoggingCursor(440:453)psycopg2.lib.extras.MinTimeLoggingConnection(456:481)psycopg2.lib.extras.MinTimeLoggingCursor(484:493)psycopg2.lib.extras.LogicalReplicationConnection(496:500)psycopg2.lib.extras.PhysicalReplicationConnection(503:507)psycopg2.lib.extras.ReplicationCursor(522:621)psycopg2.lib.extras.execute_batch(1194:1216)psycopg2.lib.extras.execute_values(1219:1303)
This component provides auxiliary functionalities for the psycopg2 project, including build-related utilities like a stub for pg_config_vcpkg and tools for generating documentation, particularly for DBAPI extensions.
Related Classes/Methods:
psycopg2.scripts.build.pg_config_vcpkg_stub.pg_config_vcpkg_stub:_main(full file reference)psycopg2.scripts.build.pg_config_vcpkg_stub.pg_config_vcpkg_stub.ScriptError(full file reference)psycopg2.scripts.build.pg_config_vcpkg_stub.pg_config_vcpkg_stub.parse_cmdline(full file reference)psycopg2.scripts.build.pg_config_vcpkg_stub.pg_config_vcpkg_stub:main(full file reference)psycopg2.doc.src.tools.lib.dbapi_extension.extension_node(16:16)psycopg2.doc.src.tools.lib.dbapi_extension.Extension(19:35)psycopg2.doc.src.tools.lib.dbapi_extension.Extension:run(30:35)psycopg2.doc.src.tools.lib.dbapi_extension.visit_extension_node(38:39)psycopg2.doc.src.tools.lib.dbapi_extension.depart_extension_node(41:42)psycopg2.doc.src.tools.lib.dbapi_extension.setup(44:50)