sqlalchemy-jdbcapi 2.0.0.post2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sqlalchemy_jdbcapi/__init__.py +128 -0
- sqlalchemy_jdbcapi/_version.py +34 -0
- sqlalchemy_jdbcapi/dialects/__init__.py +30 -0
- sqlalchemy_jdbcapi/dialects/base.py +879 -0
- sqlalchemy_jdbcapi/dialects/db2.py +134 -0
- sqlalchemy_jdbcapi/dialects/mssql.py +117 -0
- sqlalchemy_jdbcapi/dialects/mysql.py +152 -0
- sqlalchemy_jdbcapi/dialects/oceanbase.py +218 -0
- sqlalchemy_jdbcapi/dialects/odbc_base.py +389 -0
- sqlalchemy_jdbcapi/dialects/odbc_mssql.py +69 -0
- sqlalchemy_jdbcapi/dialects/odbc_mysql.py +101 -0
- sqlalchemy_jdbcapi/dialects/odbc_oracle.py +80 -0
- sqlalchemy_jdbcapi/dialects/odbc_postgresql.py +63 -0
- sqlalchemy_jdbcapi/dialects/oracle.py +180 -0
- sqlalchemy_jdbcapi/dialects/postgresql.py +110 -0
- sqlalchemy_jdbcapi/dialects/sqlite.py +141 -0
- sqlalchemy_jdbcapi/jdbc/__init__.py +98 -0
- sqlalchemy_jdbcapi/jdbc/connection.py +244 -0
- sqlalchemy_jdbcapi/jdbc/cursor.py +329 -0
- sqlalchemy_jdbcapi/jdbc/dataframe.py +198 -0
- sqlalchemy_jdbcapi/jdbc/driver_manager.py +353 -0
- sqlalchemy_jdbcapi/jdbc/exceptions.py +53 -0
- sqlalchemy_jdbcapi/jdbc/jvm.py +176 -0
- sqlalchemy_jdbcapi/jdbc/type_converter.py +292 -0
- sqlalchemy_jdbcapi/jdbc/types.py +72 -0
- sqlalchemy_jdbcapi/odbc/__init__.py +46 -0
- sqlalchemy_jdbcapi/odbc/connection.py +136 -0
- sqlalchemy_jdbcapi/odbc/exceptions.py +48 -0
- sqlalchemy_jdbcapi/py.typed +2 -0
- sqlalchemy_jdbcapi-2.0.0.post2.dist-info/METADATA +825 -0
- sqlalchemy_jdbcapi-2.0.0.post2.dist-info/RECORD +36 -0
- sqlalchemy_jdbcapi-2.0.0.post2.dist-info/WHEEL +5 -0
- sqlalchemy_jdbcapi-2.0.0.post2.dist-info/entry_points.txt +20 -0
- sqlalchemy_jdbcapi-2.0.0.post2.dist-info/licenses/AUTHORS +7 -0
- sqlalchemy_jdbcapi-2.0.0.post2.dist-info/licenses/LICENSE +13 -0
- sqlalchemy_jdbcapi-2.0.0.post2.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SQLAlchemy JDBC API - Modern JDBC Dialect for SQLAlchemy.
|
|
3
|
+
|
|
4
|
+
This package provides a modern, type-safe SQLAlchemy dialect for JDBC connections,
|
|
5
|
+
supporting multiple databases through a native JPype-based implementation.
|
|
6
|
+
|
|
7
|
+
Supported Databases:
|
|
8
|
+
- PostgreSQL
|
|
9
|
+
- Oracle Database
|
|
10
|
+
- OceanBase (Oracle mode)
|
|
11
|
+
- MySQL
|
|
12
|
+
- MariaDB
|
|
13
|
+
- Microsoft SQL Server
|
|
14
|
+
- IBM DB2
|
|
15
|
+
- SQLite (via JDBC)
|
|
16
|
+
|
|
17
|
+
Features:
|
|
18
|
+
- Modern Python 3.10+ with full type hints
|
|
19
|
+
- Native JDBC implementation (no JayDeBeApi dependency)
|
|
20
|
+
- DataFrame integration (pandas, polars, pyarrow)
|
|
21
|
+
- SQLAlchemy 2.0+ compatible
|
|
22
|
+
- Comprehensive error handling and logging
|
|
23
|
+
- Connection pooling support
|
|
24
|
+
|
|
25
|
+
Example usage:
|
|
26
|
+
>>> from sqlalchemy import create_engine
|
|
27
|
+
>>> # PostgreSQL
|
|
28
|
+
>>> engine = create_engine('jdbcapi+postgresql://user:pass@localhost/db')
|
|
29
|
+
>>> # Oracle
|
|
30
|
+
>>> engine = create_engine('jdbcapi+oracle://user:pass@localhost:1521/ORCL')
|
|
31
|
+
>>> # MySQL
|
|
32
|
+
>>> engine = create_engine('jdbcapi+mysql://user:pass@localhost/db')
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
from __future__ import annotations
|
|
36
|
+
|
|
37
|
+
# Version management
|
|
38
|
+
try:
|
|
39
|
+
from ._version import version as __version__
|
|
40
|
+
except ImportError:
|
|
41
|
+
__version__ = "2.0.0.dev0"
|
|
42
|
+
|
|
43
|
+
# Public API
|
|
44
|
+
from . import jdbc
|
|
45
|
+
from .dialects import (
|
|
46
|
+
DB2Dialect,
|
|
47
|
+
MariaDBDialect,
|
|
48
|
+
MSSQLDialect,
|
|
49
|
+
MySQLDialect,
|
|
50
|
+
OceanBaseDialect,
|
|
51
|
+
OracleDialect,
|
|
52
|
+
PostgreSQLDialect,
|
|
53
|
+
SQLiteDialect,
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
__all__ = [
|
|
57
|
+
# Version
|
|
58
|
+
"__version__",
|
|
59
|
+
# JDBC Module
|
|
60
|
+
"jdbc",
|
|
61
|
+
# Dialects
|
|
62
|
+
"PostgreSQLDialect",
|
|
63
|
+
"OracleDialect",
|
|
64
|
+
"OceanBaseDialect",
|
|
65
|
+
"MySQLDialect",
|
|
66
|
+
"MariaDBDialect",
|
|
67
|
+
"MSSQLDialect",
|
|
68
|
+
"DB2Dialect",
|
|
69
|
+
"SQLiteDialect",
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
# SQLAlchemy dialect registration
|
|
73
|
+
# This is automatically done via entry_points in pyproject.toml,
|
|
74
|
+
# but we can also register them here for programmatic access
|
|
75
|
+
try:
|
|
76
|
+
from sqlalchemy.dialects import registry
|
|
77
|
+
|
|
78
|
+
# Register all dialects
|
|
79
|
+
registry.register(
|
|
80
|
+
"jdbcapi.postgresql",
|
|
81
|
+
"sqlalchemy_jdbcapi.dialects.postgresql",
|
|
82
|
+
"PostgreSQLDialect",
|
|
83
|
+
)
|
|
84
|
+
registry.register(
|
|
85
|
+
"jdbcapi.pgjdbc", # Alias for backward compatibility
|
|
86
|
+
"sqlalchemy_jdbcapi.dialects.postgresql",
|
|
87
|
+
"PostgreSQLDialect",
|
|
88
|
+
)
|
|
89
|
+
registry.register(
|
|
90
|
+
"jdbcapi.oracle", "sqlalchemy_jdbcapi.dialects.oracle", "OracleDialect"
|
|
91
|
+
)
|
|
92
|
+
registry.register(
|
|
93
|
+
"jdbcapi.oraclejdbc", # Alias for backward compatibility
|
|
94
|
+
"sqlalchemy_jdbcapi.dialects.oracle",
|
|
95
|
+
"OracleDialect",
|
|
96
|
+
)
|
|
97
|
+
registry.register(
|
|
98
|
+
"jdbcapi.oceanbase",
|
|
99
|
+
"sqlalchemy_jdbcapi.dialects.oceanbase",
|
|
100
|
+
"OceanBaseDialect",
|
|
101
|
+
)
|
|
102
|
+
registry.register(
|
|
103
|
+
"jdbcapi.oceanbasejdbc", # Alias for backward compatibility
|
|
104
|
+
"sqlalchemy_jdbcapi.dialects.oceanbase",
|
|
105
|
+
"OceanBaseDialect",
|
|
106
|
+
)
|
|
107
|
+
registry.register(
|
|
108
|
+
"jdbcapi.mysql", "sqlalchemy_jdbcapi.dialects.mysql", "MySQLDialect"
|
|
109
|
+
)
|
|
110
|
+
registry.register(
|
|
111
|
+
"jdbcapi.mariadb", "sqlalchemy_jdbcapi.dialects.mysql", "MariaDBDialect"
|
|
112
|
+
)
|
|
113
|
+
registry.register(
|
|
114
|
+
"jdbcapi.mssql", "sqlalchemy_jdbcapi.dialects.mssql", "MSSQLDialect"
|
|
115
|
+
)
|
|
116
|
+
registry.register(
|
|
117
|
+
"jdbcapi.sqlserver", # Alias
|
|
118
|
+
"sqlalchemy_jdbcapi.dialects.mssql",
|
|
119
|
+
"MSSQLDialect",
|
|
120
|
+
)
|
|
121
|
+
registry.register("jdbcapi.db2", "sqlalchemy_jdbcapi.dialects.db2", "DB2Dialect")
|
|
122
|
+
registry.register(
|
|
123
|
+
"jdbcapi.sqlite", "sqlalchemy_jdbcapi.dialects.sqlite", "SQLiteDialect"
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
except ImportError:
|
|
127
|
+
# SQLAlchemy not installed yet (e.g., during installation)
|
|
128
|
+
pass
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = [
|
|
5
|
+
"__version__",
|
|
6
|
+
"__version_tuple__",
|
|
7
|
+
"version",
|
|
8
|
+
"version_tuple",
|
|
9
|
+
"__commit_id__",
|
|
10
|
+
"commit_id",
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
TYPE_CHECKING = False
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from typing import Tuple
|
|
16
|
+
from typing import Union
|
|
17
|
+
|
|
18
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
+
COMMIT_ID = Union[str, None]
|
|
20
|
+
else:
|
|
21
|
+
VERSION_TUPLE = object
|
|
22
|
+
COMMIT_ID = object
|
|
23
|
+
|
|
24
|
+
version: str
|
|
25
|
+
__version__: str
|
|
26
|
+
__version_tuple__: VERSION_TUPLE
|
|
27
|
+
version_tuple: VERSION_TUPLE
|
|
28
|
+
commit_id: COMMIT_ID
|
|
29
|
+
__commit_id__: COMMIT_ID
|
|
30
|
+
|
|
31
|
+
__version__ = version = '2.0.0.post2'
|
|
32
|
+
__version_tuple__ = version_tuple = (2, 0, 0, 'post2')
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = None
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SQLAlchemy dialects for JDBC connections.
|
|
3
|
+
|
|
4
|
+
This package provides modern, type-safe dialects for various databases
|
|
5
|
+
using JDBC drivers through our native JPype-based implementation.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from .base import BaseJDBCDialect, JDBCDriverConfig
|
|
11
|
+
from .db2 import DB2Dialect
|
|
12
|
+
from .mssql import MSSQLDialect
|
|
13
|
+
from .mysql import MariaDBDialect, MySQLDialect
|
|
14
|
+
from .oceanbase import OceanBaseDialect
|
|
15
|
+
from .oracle import OracleDialect
|
|
16
|
+
from .postgresql import PostgreSQLDialect
|
|
17
|
+
from .sqlite import SQLiteDialect
|
|
18
|
+
|
|
19
|
+
__all__ = [
|
|
20
|
+
"BaseJDBCDialect",
|
|
21
|
+
"DB2Dialect",
|
|
22
|
+
"JDBCDriverConfig",
|
|
23
|
+
"MSSQLDialect",
|
|
24
|
+
"MariaDBDialect",
|
|
25
|
+
"MySQLDialect",
|
|
26
|
+
"OceanBaseDialect",
|
|
27
|
+
"OracleDialect",
|
|
28
|
+
"PostgreSQLDialect",
|
|
29
|
+
"SQLiteDialect",
|
|
30
|
+
]
|