openGauss-sqlalchemy/0000755000000000000000000000000014775433166013700 5ustar  rootrootopenGauss-sqlalchemy/setup.cfg0000644000000000000000000000114114775433166015516 0ustar  rootroot[bdist_wheel]
universal=1

[tool:pytest]
addopts= --tb native -v -r fxX --maxfail=25 -p no:warnings
python_files=test/*test_*.py

[sqla_testing]
requirement_cls=opengauss_sqlalchemy.requirements:Requirements
profile_file=test/profiles.txt

[db]
default = opengauss://scott:Tiger123@127.0.0.1:37200/test
opengauss = opengauss+psycopg2://scott:Tiger123@127.0.0.1:37200/test
opengauss_psycopg2 = opengauss+psycopg2://scott:Tiger123@127.0.0.1:37200/test
opengauss_dc_psycopg2 = opengauss+dc_psycopg2://scott:Tiger123@127.0.0.1:37500/test
opengauss_asyncpg = opengauss+asyncpg://scott:Tiger123@127.0.0.1:37500/testopenGauss-sqlalchemy/tox.ini0000644000000000000000000000157714775433144015221 0ustar  rootroot[tox]
envlist = py27, py37, py38, py38_dc

[testenv]
install_command=python -m pip install {env:TOX_PIP_OPTS:} {opts} {packages}
deps =
    pytest>=4.6.11,<5.0; python_version < '3'
    pytest>=6.2,<8; python_version >= '3'
    mock; python_version < '3.3'
    psycopg2>=2.8.6,<2.9; python_version < '3'
    alembic>=0.9.7
    sqlalchemy-migrate==0.13.0

base_command=python -m pytest --rootdir {toxinidir} --maxfail 1

passenv = LD_LIBRARY_PATH PYTHONPATH

[testenv:py27]
basepython = python2.7
commands = {[testenv]base_command} --db opengauss_psycopg2 {posargs}

[testenv:py37]
basepython = python3.7
commands = {[testenv]base_command} --db opengauss_psycopg2 {posargs}

[testenv:py38]
basepython = python3.8
commands = {[testenv]base_command} --db opengauss_psycopg2 {posargs}

[testenv:py38_dc]
basepython = python3.8
commands = {[testenv]base_command} --db opengauss_dc_psycopg2 {posargs}
openGauss-sqlalchemy/setup.py0000644000000000000000000000346614775433166015423 0ustar  rootrootimport os
from pathlib import Path
import re

from setuptools import find_namespace_packages
from setuptools import setup


with open(os.path.join(os.path.dirname(__file__), "opengauss_sqlalchemy", "__init__.py")) as fd:
    VERSION = re.compile(r'.*__version__ = "(.*?)"', re.S).match(fd.read()).group(1)

long_description = (Path(__file__).parent / "README.md").read_text()


setup(
    name="opengauss-sqlalchemy",
    version=VERSION,
    description="OpenGauss Dialect for SQLAlchemy",
    long_description=long_description,
    long_description_content_type="text/markdown",
    author="Jia Junsu",
    author_email="jiajunsu@huawei.com",
    url="https://gitee.com/opengauss/openGauss-sqlalchemy",
    license="MIT",
    classifiers=[
        "Development Status :: 5 - Production/Stable",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
        "Programming Language :: Python",
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Topic :: Database :: Front-Ends",
    ],
    packages=find_namespace_packages(exclude=["test", "build"]),
    include_package_data=True,
    install_requires=["sqlalchemy<=2.0.23"],
    entry_points={
        "sqlalchemy.dialects": [
            "opengauss = opengauss_sqlalchemy.psycopg2:OpenGaussDialect_psycopg2",
            "opengauss.psycopg2 = opengauss_sqlalchemy.psycopg2:OpenGaussDialect_psycopg2",
            "opengauss.dc_psycopg2 = opengauss_sqlalchemy.dc_psycopg2:OpenGaussDialect_dc_psycopg2",
            "opengauss.asyncpg = opengauss_sqlalchemy.asyncpg:OpenGaussDialect_asyncpg",
        ]
    },
)
openGauss-sqlalchemy/LICENSE.md0000644000000000000000000000220114775433144015273 0ustar  rootrootCopyright 2005-2022 SQLAlchemy authors and contributors <see AUTHORS file>.
Copyright (C) 2021-2022 Huawei Technologies Co.,Ltd.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.