• 大小: 5.41M
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2023-09-25
  • 语言: 数据库
  • 标签: 其他  

资源简介

SQLAlchemy-1.2.18.tar.gz

资源截图

代码片段和文件信息

from distutils.command.build_ext import build_ext
from distutils.errors import CCompilerError
from distutils.errors import DistutilsExecError
from distutils.errors import DistutilsPlatformError
import os
import platform
import re
import sys

from setuptools import Distribution as _Distribution
from setuptools import Extension
from setuptools import find_packages
from setuptools import setup
from setuptools.command.test import test as TestCommand


cmdclass = {}
if sys.version_info < (2 7):
    raise Exception(“SQLAlchemy requires Python 2.7 or higher.“)

cpython = platform.python_implementation() == “CPython“

ext_modules = [
    Extension(
        “sqlalchemy.cprocessors“
        sources=[“lib/sqlalchemy/cextension/processors.c“]
    )
    Extension(
        “sqlalchemy.cresultproxy“
        sources=[“lib/sqlalchemy/cextension/resultproxy.c“]
    )
    Extension(
        “sqlalchemy.cutils“ sources=[“lib/sqlalchemy/cextension/utils.c“]
    )
]

ext_errors = (CCompilerError DistutilsExecError DistutilsPlatformError)
if sys.platform == “win32“:
    # 2.6‘s distutils.msvc9compiler can raise an IOError when failing to
    # find the compiler
    ext_errors += (IOError)


class BuildFailed(Exception):
    def __init__(self):
        self.cause = sys.exc_info()[1]  # work around py 2/3 different syntax


class ve_build_ext(build_ext):
    # This class allows C extension building to fail.

    def run(self):
        try:
            build_ext.run(self)
        except DistutilsPlatformError:
            raise BuildFailed()

    def build_extension(self ext):
        try:
            build_ext.build_extension(self ext)
        except ext_errors:
            raise BuildFailed()
        except ValueError:
            # this can happen on Windows 64 bit see Python issue 7511
            if “‘path‘“ in str(sys.exc_info()[1]):  # works with both py 2/3
                raise BuildFailed()
            raise


cmdclass[“build_ext“] = ve_build_ext


class Distribution(_Distribution):
    def has_ext_modules(self):
        # We want to always claim that we have ext_modules. This will be fine
        # if we don‘t actually have them (such as on PyPy) because nothing
        # will get built however we don‘t want to provide an overally broad
        # Wheel package when building a wheel without C support. This will
        # ensure that Wheel knows to treat us as if the build output is
        # platform specific.
        return True


class PyTest(TestCommand):
    # from http://pytest.org/latest/goodpractices.html\
    # #integrating-with-setuptools-python-setup-py-test-pytest-runner
    # TODO: prefer pytest-runner package at some point however it was
    # not working at the time of this comment.
    user_options = [(“pytest-args=“ “a“ “Arguments to pass to py.test“)]

    default_options = [“-n“ “4“ “-q“ “--nomemory“]

    def initialize_options(self):
        TestCommand.initialize_options(self)
        self.pytest_args = ““

    def fina

评论

共有 条评论