From e20c65d938842f82ce63983150b286956081cb27 Mon Sep 17 00:00:00 2001 From: Matt Davis <6775756+nitzmahone@users.noreply.github.com> Date: Mon, 25 Sep 2023 22:25:53 -0700 Subject: [PATCH] Release 1.16.0rc2 (#13) * move project sources to `src/` subdir (#12) * move the distutils shim module back to a plain module * MANIFEST.in, the source layout, and pytest's default sys.path behavior conspired to mask a busted package, even though we were testing against the built package. `pytest` adds cwd to the path first, and since the `cffi` is in the root (grr), even though we're testing against the installed wheel, pytest loaded the subpackage from the source, masking that it was missing from the actual package (due to flat inclusions in MANIFEST.in). This is a longer-term problem that should be addressed by moving to a standard `src/` layout, and possibly also by bringing `_cffi_backend` in as a subpackage, but there are likely many dragons there with wheels that assume the presence of the top-level package. * move project sources under src/ (cherry picked from commit 932eba278e6af2e63c0105436d845d18ddb49205) * release 1.16.0rc2 --- .github/workflows/ci.yaml | 34 +++++++++--------- MANIFEST.in | 4 +-- doc/source/conf.py | 2 +- doc/source/whatsnew.rst | 6 ++++ setup.py | 11 +++--- {c => src/c}/_cffi_backend.c | 2 +- {c => src/c}/call_python.c | 0 {c => src/c}/cdlopen.c | 0 {c => src/c}/cffi1_module.c | 0 {c => src/c}/cglob.c | 0 {c => src/c}/commontypes.c | 0 {c => src/c}/ffi_obj.c | 0 {c => src/c}/file_emulator.h | 0 {c => src/c}/lib_obj.c | 0 {c => src/c}/libffi_arm64/README | 0 {c => src/c}/libffi_arm64/build_libffi.bat | 0 {c => src/c}/libffi_arm64/ffi.lib | Bin {c => src/c}/libffi_arm64/include/ffi.h | 0 {c => src/c}/libffi_arm64/include/fficonfig.h | 0 {c => src/c}/libffi_arm64/include/ffitarget.h | 0 {c => src/c}/libffi_x86_x64/LICENSE | 0 {c => src/c}/libffi_x86_x64/README | 0 {c => src/c}/libffi_x86_x64/README.ctypes | 0 {c => src/c}/libffi_x86_x64/ffi.c | 0 {c => src/c}/libffi_x86_x64/ffi.h | 0 {c => src/c}/libffi_x86_x64/ffi_common.h | 0 {c => src/c}/libffi_x86_x64/fficonfig.h | 0 {c => src/c}/libffi_x86_x64/ffitarget.h | 0 {c => src/c}/libffi_x86_x64/prep_cif.c | 0 {c => src/c}/libffi_x86_x64/types.c | 0 {c => src/c}/libffi_x86_x64/win32.c | 0 {c => src/c}/libffi_x86_x64/win64.asm | 0 {c => src/c}/libffi_x86_x64/win64.obj | Bin {c => src/c}/malloc_closure.h | 0 {c => src/c}/minibuffer.h | 0 {c => src/c}/misc_thread_common.h | 0 {c => src/c}/misc_thread_posix.h | 0 {c => src/c}/misc_win32.h | 0 {c => src/c}/parse_c_type.c | 0 {c => src/c}/realize_c_type.c | 0 {c => src/c}/test_c.py | 2 +- {c => src/c}/wchar_helper.h | 0 {c => src/c}/wchar_helper_3.h | 0 {cffi => src/cffi}/__init__.py | 4 +-- {cffi => src/cffi}/_cffi_errors.h | 0 {cffi => src/cffi}/_cffi_include.h | 0 {cffi => src/cffi}/_embedding.h | 2 +- {cffi => src/cffi}/_imp_emulation.py | 0 .../cffi/_shimmed_dist_utils.py | 0 {cffi => src/cffi}/api.py | 0 {cffi => src/cffi}/backend_ctypes.py | 0 {cffi => src/cffi}/cffi_opcode.py | 0 {cffi => src/cffi}/commontypes.py | 0 {cffi => src/cffi}/cparser.py | 0 {cffi => src/cffi}/error.py | 0 {cffi => src/cffi}/ffiplatform.py | 0 {cffi => src/cffi}/lock.py | 0 {cffi => src/cffi}/model.py | 0 {cffi => src/cffi}/parse_c_type.h | 0 {cffi => src/cffi}/pkgconfig.py | 0 {cffi => src/cffi}/recompiler.py | 0 {cffi => src/cffi}/setuptools_ext.py | 0 {cffi => src/cffi}/vengine_cpy.py | 0 {cffi => src/cffi}/vengine_gen.py | 0 {cffi => src/cffi}/verifier.py | 0 testing/cffi0/test_version.py | 17 ++++----- testing/cffi1/test_parse_c_type.py | 3 +- 67 files changed, 48 insertions(+), 39 deletions(-) rename {c => src/c}/_cffi_backend.c (99%) rename {c => src/c}/call_python.c (100%) rename {c => src/c}/cdlopen.c (100%) rename {c => src/c}/cffi1_module.c (100%) rename {c => src/c}/cglob.c (100%) rename {c => src/c}/commontypes.c (100%) rename {c => src/c}/ffi_obj.c (100%) rename {c => src/c}/file_emulator.h (100%) rename {c => src/c}/lib_obj.c (100%) rename {c => src/c}/libffi_arm64/README (100%) rename {c => src/c}/libffi_arm64/build_libffi.bat (100%) rename {c => src/c}/libffi_arm64/ffi.lib (100%) rename {c => src/c}/libffi_arm64/include/ffi.h (100%) rename {c => src/c}/libffi_arm64/include/fficonfig.h (100%) rename {c => src/c}/libffi_arm64/include/ffitarget.h (100%) rename {c => src/c}/libffi_x86_x64/LICENSE (100%) rename {c => src/c}/libffi_x86_x64/README (100%) rename {c => src/c}/libffi_x86_x64/README.ctypes (100%) rename {c => src/c}/libffi_x86_x64/ffi.c (100%) rename {c => src/c}/libffi_x86_x64/ffi.h (100%) rename {c => src/c}/libffi_x86_x64/ffi_common.h (100%) rename {c => src/c}/libffi_x86_x64/fficonfig.h (100%) rename {c => src/c}/libffi_x86_x64/ffitarget.h (100%) rename {c => src/c}/libffi_x86_x64/prep_cif.c (100%) rename {c => src/c}/libffi_x86_x64/types.c (100%) rename {c => src/c}/libffi_x86_x64/win32.c (100%) rename {c => src/c}/libffi_x86_x64/win64.asm (100%) rename {c => src/c}/libffi_x86_x64/win64.obj (100%) rename {c => src/c}/malloc_closure.h (100%) rename {c => src/c}/minibuffer.h (100%) rename {c => src/c}/misc_thread_common.h (100%) rename {c => src/c}/misc_thread_posix.h (100%) rename {c => src/c}/misc_win32.h (100%) rename {c => src/c}/parse_c_type.c (100%) rename {c => src/c}/realize_c_type.c (100%) rename {c => src/c}/test_c.py (99%) rename {c => src/c}/wchar_helper.h (100%) rename {c => src/c}/wchar_helper_3.h (100%) rename {cffi => src/cffi}/__init__.py (87%) rename {cffi => src/cffi}/_cffi_errors.h (100%) rename {cffi => src/cffi}/_cffi_include.h (100%) rename {cffi => src/cffi}/_embedding.h (99%) rename {cffi => src/cffi}/_imp_emulation.py (100%) rename cffi/_shimmed_dist_utils/__init__.py => src/cffi/_shimmed_dist_utils.py (100%) rename {cffi => src/cffi}/api.py (100%) rename {cffi => src/cffi}/backend_ctypes.py (100%) rename {cffi => src/cffi}/cffi_opcode.py (100%) rename {cffi => src/cffi}/commontypes.py (100%) rename {cffi => src/cffi}/cparser.py (100%) rename {cffi => src/cffi}/error.py (100%) rename {cffi => src/cffi}/ffiplatform.py (100%) rename {cffi => src/cffi}/lock.py (100%) rename {cffi => src/cffi}/model.py (100%) rename {cffi => src/cffi}/parse_c_type.h (100%) rename {cffi => src/cffi}/pkgconfig.py (100%) rename {cffi => src/cffi}/recompiler.py (100%) rename {cffi => src/cffi}/setuptools_ext.py (100%) rename {cffi => src/cffi}/vengine_cpy.py (100%) rename {cffi => src/cffi}/vengine_gen.py (100%) rename {cffi => src/cffi}/verifier.py (100%) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0c6e1c9a..f8dbe90c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -54,51 +54,51 @@ jobs: - spec: cp38-manylinux_aarch64 foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp39-manylinux_aarch64 foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp310-manylinux_aarch64 foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp311-manylinux_aarch64 foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp312-manylinux_aarch64 foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp38-manylinux_ppc64le foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp39-manylinux_ppc64le foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp310-manylinux_ppc64le foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp311-manylinux_ppc64le foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp312-manylinux_ppc64le foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp38-manylinux_s390x foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp39-manylinux_s390x foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp310-manylinux_s390x foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp311-manylinux_s390x foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' - spec: cp312-manylinux_s390x foreign_arch: true - test_args: '{project}/c' + test_args: '{project}/src/c' steps: - name: clone repo @@ -261,9 +261,9 @@ jobs: CIBW_BUILD: ${{ matrix.spec }} CIBW_PRERELEASE_PYTHONS: 'True' CIBW_TEST_REQUIRES: pytest setuptools - CIBW_TEST_COMMAND: 'python -m pytest {project}/c' + CIBW_TEST_COMMAND: 'python -m pytest {project}/src/c' # FIXME: /testing takes ~45min on Windows and has some failures... - # CIBW_TEST_COMMAND='python -m pytest {project}/c {project}/testing' + # CIBW_TEST_COMMAND='python -m pytest {project}/src/c {project}/testing' run: | python -m pip install --upgrade pip pip install "${{ matrix.cibw_version || 'cibuildwheel'}}" diff --git a/MANIFEST.in b/MANIFEST.in index b8ca2e08..a7616ffe 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,5 @@ -recursive-include cffi *.py *.h -recursive-include c *.c *.h *.asm *.py win64.obj ffi.lib +recursive-include src/cffi *.py *.h +recursive-include src/c *.c *.h *.asm *.py win64.obj ffi.lib recursive-include testing *.py *.c *.h recursive-include doc *.py *.rst Makefile *.bat recursive-include demo py.cleanup *.py embedding_test.c manual.c diff --git a/doc/source/conf.py b/doc/source/conf.py index dc343e3a..49e138a8 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -47,7 +47,7 @@ # The short X.Y version. version = '1.16' # The full version, including alpha/beta/rc tags. -release = '1.16.0rc1' +release = '1.16.0rc2' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/source/whatsnew.rst b/doc/source/whatsnew.rst index cb180099..e4b63bfd 100644 --- a/doc/source/whatsnew.rst +++ b/doc/source/whatsnew.rst @@ -2,6 +2,12 @@ What's New ====================== +v1.16.0rc2 +========== + +* Fix module packaging issue; move project source under ``src/`` so packaging tests can catch + similar failures in the future. + v1.16.0rc1 ========== diff --git a/setup.py b/setup.py index e9391764..d68268ab 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ import setuptools -sources = ['c/_cffi_backend.c'] +sources = ['src/c/_cffi_backend.c'] libraries = ['ffi'] include_dirs = ['/usr/include/ffi', '/usr/include/libffi'] # may be changed by pkg-config @@ -125,10 +125,10 @@ def use_homebrew_for_libffi(): if sys.platform == "win32" and uses_msvc(): if platform.machine() == "ARM64": - include_dirs.append(os.path.join("c/libffi_arm64/include")) - library_dirs.append(os.path.join("c/libffi_arm64")) + include_dirs.append(os.path.join("src/c/libffi_arm64/include")) + library_dirs.append(os.path.join("src/c/libffi_arm64")) else: - COMPILE_LIBFFI = 'c/libffi_x86_x64' # from the CPython distribution + COMPILE_LIBFFI = 'src/c/libffi_x86_x64' # from the CPython distribution assert os.path.isdir(COMPILE_LIBFFI), "directory not found!" include_dirs[:] = [COMPILE_LIBFFI] libraries[:] = [] @@ -195,9 +195,10 @@ def has_ext_modules(self): `Mailing list `_ """, - version='1.16.0rc1', + version='1.16.0rc2', python_requires='>=3.8', packages=['cffi'] if cpython else [], + package_dir={"": "src"}, package_data={'cffi': ['_cffi_include.h', 'parse_c_type.h', '_embedding.h', '_cffi_errors.h']} if cpython else {}, diff --git a/c/_cffi_backend.c b/src/c/_cffi_backend.c similarity index 99% rename from c/_cffi_backend.c rename to src/c/_cffi_backend.c index f2044638..ef423bbf 100644 --- a/c/_cffi_backend.c +++ b/src/c/_cffi_backend.c @@ -2,7 +2,7 @@ #include #include "structmember.h" -#define CFFI_VERSION "1.16.0rc1" +#define CFFI_VERSION "1.16.0rc2" #ifdef MS_WIN32 #include diff --git a/c/call_python.c b/src/c/call_python.c similarity index 100% rename from c/call_python.c rename to src/c/call_python.c diff --git a/c/cdlopen.c b/src/c/cdlopen.c similarity index 100% rename from c/cdlopen.c rename to src/c/cdlopen.c diff --git a/c/cffi1_module.c b/src/c/cffi1_module.c similarity index 100% rename from c/cffi1_module.c rename to src/c/cffi1_module.c diff --git a/c/cglob.c b/src/c/cglob.c similarity index 100% rename from c/cglob.c rename to src/c/cglob.c diff --git a/c/commontypes.c b/src/c/commontypes.c similarity index 100% rename from c/commontypes.c rename to src/c/commontypes.c diff --git a/c/ffi_obj.c b/src/c/ffi_obj.c similarity index 100% rename from c/ffi_obj.c rename to src/c/ffi_obj.c diff --git a/c/file_emulator.h b/src/c/file_emulator.h similarity index 100% rename from c/file_emulator.h rename to src/c/file_emulator.h diff --git a/c/lib_obj.c b/src/c/lib_obj.c similarity index 100% rename from c/lib_obj.c rename to src/c/lib_obj.c diff --git a/c/libffi_arm64/README b/src/c/libffi_arm64/README similarity index 100% rename from c/libffi_arm64/README rename to src/c/libffi_arm64/README diff --git a/c/libffi_arm64/build_libffi.bat b/src/c/libffi_arm64/build_libffi.bat similarity index 100% rename from c/libffi_arm64/build_libffi.bat rename to src/c/libffi_arm64/build_libffi.bat diff --git a/c/libffi_arm64/ffi.lib b/src/c/libffi_arm64/ffi.lib similarity index 100% rename from c/libffi_arm64/ffi.lib rename to src/c/libffi_arm64/ffi.lib diff --git a/c/libffi_arm64/include/ffi.h b/src/c/libffi_arm64/include/ffi.h similarity index 100% rename from c/libffi_arm64/include/ffi.h rename to src/c/libffi_arm64/include/ffi.h diff --git a/c/libffi_arm64/include/fficonfig.h b/src/c/libffi_arm64/include/fficonfig.h similarity index 100% rename from c/libffi_arm64/include/fficonfig.h rename to src/c/libffi_arm64/include/fficonfig.h diff --git a/c/libffi_arm64/include/ffitarget.h b/src/c/libffi_arm64/include/ffitarget.h similarity index 100% rename from c/libffi_arm64/include/ffitarget.h rename to src/c/libffi_arm64/include/ffitarget.h diff --git a/c/libffi_x86_x64/LICENSE b/src/c/libffi_x86_x64/LICENSE similarity index 100% rename from c/libffi_x86_x64/LICENSE rename to src/c/libffi_x86_x64/LICENSE diff --git a/c/libffi_x86_x64/README b/src/c/libffi_x86_x64/README similarity index 100% rename from c/libffi_x86_x64/README rename to src/c/libffi_x86_x64/README diff --git a/c/libffi_x86_x64/README.ctypes b/src/c/libffi_x86_x64/README.ctypes similarity index 100% rename from c/libffi_x86_x64/README.ctypes rename to src/c/libffi_x86_x64/README.ctypes diff --git a/c/libffi_x86_x64/ffi.c b/src/c/libffi_x86_x64/ffi.c similarity index 100% rename from c/libffi_x86_x64/ffi.c rename to src/c/libffi_x86_x64/ffi.c diff --git a/c/libffi_x86_x64/ffi.h b/src/c/libffi_x86_x64/ffi.h similarity index 100% rename from c/libffi_x86_x64/ffi.h rename to src/c/libffi_x86_x64/ffi.h diff --git a/c/libffi_x86_x64/ffi_common.h b/src/c/libffi_x86_x64/ffi_common.h similarity index 100% rename from c/libffi_x86_x64/ffi_common.h rename to src/c/libffi_x86_x64/ffi_common.h diff --git a/c/libffi_x86_x64/fficonfig.h b/src/c/libffi_x86_x64/fficonfig.h similarity index 100% rename from c/libffi_x86_x64/fficonfig.h rename to src/c/libffi_x86_x64/fficonfig.h diff --git a/c/libffi_x86_x64/ffitarget.h b/src/c/libffi_x86_x64/ffitarget.h similarity index 100% rename from c/libffi_x86_x64/ffitarget.h rename to src/c/libffi_x86_x64/ffitarget.h diff --git a/c/libffi_x86_x64/prep_cif.c b/src/c/libffi_x86_x64/prep_cif.c similarity index 100% rename from c/libffi_x86_x64/prep_cif.c rename to src/c/libffi_x86_x64/prep_cif.c diff --git a/c/libffi_x86_x64/types.c b/src/c/libffi_x86_x64/types.c similarity index 100% rename from c/libffi_x86_x64/types.c rename to src/c/libffi_x86_x64/types.c diff --git a/c/libffi_x86_x64/win32.c b/src/c/libffi_x86_x64/win32.c similarity index 100% rename from c/libffi_x86_x64/win32.c rename to src/c/libffi_x86_x64/win32.c diff --git a/c/libffi_x86_x64/win64.asm b/src/c/libffi_x86_x64/win64.asm similarity index 100% rename from c/libffi_x86_x64/win64.asm rename to src/c/libffi_x86_x64/win64.asm diff --git a/c/libffi_x86_x64/win64.obj b/src/c/libffi_x86_x64/win64.obj similarity index 100% rename from c/libffi_x86_x64/win64.obj rename to src/c/libffi_x86_x64/win64.obj diff --git a/c/malloc_closure.h b/src/c/malloc_closure.h similarity index 100% rename from c/malloc_closure.h rename to src/c/malloc_closure.h diff --git a/c/minibuffer.h b/src/c/minibuffer.h similarity index 100% rename from c/minibuffer.h rename to src/c/minibuffer.h diff --git a/c/misc_thread_common.h b/src/c/misc_thread_common.h similarity index 100% rename from c/misc_thread_common.h rename to src/c/misc_thread_common.h diff --git a/c/misc_thread_posix.h b/src/c/misc_thread_posix.h similarity index 100% rename from c/misc_thread_posix.h rename to src/c/misc_thread_posix.h diff --git a/c/misc_win32.h b/src/c/misc_win32.h similarity index 100% rename from c/misc_win32.h rename to src/c/misc_win32.h diff --git a/c/parse_c_type.c b/src/c/parse_c_type.c similarity index 100% rename from c/parse_c_type.c rename to src/c/parse_c_type.c diff --git a/c/realize_c_type.c b/src/c/realize_c_type.c similarity index 100% rename from c/realize_c_type.c rename to src/c/realize_c_type.c diff --git a/c/test_c.py b/src/c/test_c.py similarity index 99% rename from c/test_c.py rename to src/c/test_c.py index 59681742..b9ccc83a 100644 --- a/c/test_c.py +++ b/src/c/test_c.py @@ -26,7 +26,7 @@ def _testfunc(num): # ____________________________________________________________ import sys -assert __version__ == "1.16.0rc1", ("This test_c.py file is for testing a version" +assert __version__ == "1.16.0rc2", ("This test_c.py file is for testing a version" " of cffi that differs from the one that we" " get from 'import _cffi_backend'") if sys.version_info < (3,): diff --git a/c/wchar_helper.h b/src/c/wchar_helper.h similarity index 100% rename from c/wchar_helper.h rename to src/c/wchar_helper.h diff --git a/c/wchar_helper_3.h b/src/c/wchar_helper_3.h similarity index 100% rename from c/wchar_helper_3.h rename to src/c/wchar_helper_3.h diff --git a/cffi/__init__.py b/src/cffi/__init__.py similarity index 87% rename from cffi/__init__.py rename to src/cffi/__init__.py index bcbaa1d3..3e0e17e7 100644 --- a/cffi/__init__.py +++ b/src/cffi/__init__.py @@ -5,8 +5,8 @@ from .error import CDefError, FFIError, VerificationError, VerificationMissing from .error import PkgConfigError -__version__ = "1.16.0rc1" -__version_info__ = (1, 16, 0, 'rc1') +__version__ = "1.16.0rc2" +__version_info__ = (1, 16, 0, 'rc2') # The verifier module file names are based on the CRC32 of a string that # contains the following version number. It may be older than __version__ diff --git a/cffi/_cffi_errors.h b/src/cffi/_cffi_errors.h similarity index 100% rename from cffi/_cffi_errors.h rename to src/cffi/_cffi_errors.h diff --git a/cffi/_cffi_include.h b/src/cffi/_cffi_include.h similarity index 100% rename from cffi/_cffi_include.h rename to src/cffi/_cffi_include.h diff --git a/cffi/_embedding.h b/src/cffi/_embedding.h similarity index 99% rename from cffi/_embedding.h rename to src/cffi/_embedding.h index 8af266e4..34ec0a17 100644 --- a/cffi/_embedding.h +++ b/src/cffi/_embedding.h @@ -225,7 +225,7 @@ static int _cffi_initialize_python(void) if (f != NULL && f != Py_None) { PyFile_WriteString("\nFrom: " _CFFI_MODULE_NAME - "\ncompiled with cffi version: 1.16.0rc1" + "\ncompiled with cffi version: 1.16.0rc2" "\n_cffi_backend module: ", f); modules = PyImport_GetModuleDict(); mod = PyDict_GetItemString(modules, "_cffi_backend"); diff --git a/cffi/_imp_emulation.py b/src/cffi/_imp_emulation.py similarity index 100% rename from cffi/_imp_emulation.py rename to src/cffi/_imp_emulation.py diff --git a/cffi/_shimmed_dist_utils/__init__.py b/src/cffi/_shimmed_dist_utils.py similarity index 100% rename from cffi/_shimmed_dist_utils/__init__.py rename to src/cffi/_shimmed_dist_utils.py diff --git a/cffi/api.py b/src/cffi/api.py similarity index 100% rename from cffi/api.py rename to src/cffi/api.py diff --git a/cffi/backend_ctypes.py b/src/cffi/backend_ctypes.py similarity index 100% rename from cffi/backend_ctypes.py rename to src/cffi/backend_ctypes.py diff --git a/cffi/cffi_opcode.py b/src/cffi/cffi_opcode.py similarity index 100% rename from cffi/cffi_opcode.py rename to src/cffi/cffi_opcode.py diff --git a/cffi/commontypes.py b/src/cffi/commontypes.py similarity index 100% rename from cffi/commontypes.py rename to src/cffi/commontypes.py diff --git a/cffi/cparser.py b/src/cffi/cparser.py similarity index 100% rename from cffi/cparser.py rename to src/cffi/cparser.py diff --git a/cffi/error.py b/src/cffi/error.py similarity index 100% rename from cffi/error.py rename to src/cffi/error.py diff --git a/cffi/ffiplatform.py b/src/cffi/ffiplatform.py similarity index 100% rename from cffi/ffiplatform.py rename to src/cffi/ffiplatform.py diff --git a/cffi/lock.py b/src/cffi/lock.py similarity index 100% rename from cffi/lock.py rename to src/cffi/lock.py diff --git a/cffi/model.py b/src/cffi/model.py similarity index 100% rename from cffi/model.py rename to src/cffi/model.py diff --git a/cffi/parse_c_type.h b/src/cffi/parse_c_type.h similarity index 100% rename from cffi/parse_c_type.h rename to src/cffi/parse_c_type.h diff --git a/cffi/pkgconfig.py b/src/cffi/pkgconfig.py similarity index 100% rename from cffi/pkgconfig.py rename to src/cffi/pkgconfig.py diff --git a/cffi/recompiler.py b/src/cffi/recompiler.py similarity index 100% rename from cffi/recompiler.py rename to src/cffi/recompiler.py diff --git a/cffi/setuptools_ext.py b/src/cffi/setuptools_ext.py similarity index 100% rename from cffi/setuptools_ext.py rename to src/cffi/setuptools_ext.py diff --git a/cffi/vengine_cpy.py b/src/cffi/vengine_cpy.py similarity index 100% rename from cffi/vengine_cpy.py rename to src/cffi/vengine_cpy.py diff --git a/cffi/vengine_gen.py b/src/cffi/vengine_gen.py similarity index 100% rename from cffi/vengine_gen.py rename to src/cffi/vengine_gen.py diff --git a/cffi/verifier.py b/src/cffi/verifier.py similarity index 100% rename from cffi/verifier.py rename to src/cffi/verifier.py diff --git a/testing/cffi0/test_version.py b/testing/cffi0/test_version.py index e975d24d..41cca932 100644 --- a/testing/cffi0/test_version.py +++ b/testing/cffi0/test_version.py @@ -1,6 +1,7 @@ import os, sys import pytest import cffi, _cffi_backend +from pathlib import Path def setup_module(mod): if '_cffi_backend' in sys.builtin_module_names: @@ -25,8 +26,8 @@ def test_version(): assert v == _cffi_backend.__version__ def test_doc_version(): - parent = os.path.dirname(os.path.dirname(cffi.__file__)) - p = os.path.join(parent, 'doc', 'source', 'conf.py') + cffi_root = Path(os.path.dirname(__file__)).parent.parent + p = cffi_root / 'doc/source/conf.py' content = open(p).read() # v = cffi.__version__ @@ -34,24 +35,24 @@ def test_doc_version(): assert ("release = '%s'\n" % v) in content def test_setup_version(): - parent = os.path.dirname(os.path.dirname(cffi.__file__)) - p = os.path.join(parent, 'setup.py') + cffi_root = Path(os.path.dirname(__file__)).parent.parent + p = cffi_root / 'setup.py' content = open(p).read() # v = cffi.__version__.replace('+', '') assert ("version='%s'" % v) in content def test_c_version(): - parent = os.path.dirname(os.path.dirname(cffi.__file__)) + cffi_root = Path(os.path.dirname(__file__)).parent.parent v = cffi.__version__ - p = os.path.join(parent, 'c', 'test_c.py') + p = cffi_root / 'src/c/test_c.py' content = open(p).read() #v = BACKEND_VERSIONS.get(v, v) assert (('assert __version__ == "%s"' % v) in content) def test_embedding_h(): - parent = os.path.dirname(os.path.dirname(cffi.__file__)) + cffi_root = Path(os.path.dirname(__file__)).parent.parent v = cffi.__version__ - p = os.path.join(parent, 'cffi', '_embedding.h') + p = cffi_root / 'src/cffi/_embedding.h' content = open(p).read() assert ('cffi version: %s"' % (v,)) in content diff --git a/testing/cffi1/test_parse_c_type.py b/testing/cffi1/test_parse_c_type.py index fa1f36c8..d203ba83 100644 --- a/testing/cffi1/test_parse_c_type.py +++ b/testing/cffi1/test_parse_c_type.py @@ -2,6 +2,7 @@ import pytest import cffi from cffi import cffi_opcode +from pathlib import Path if '__pypy__' in sys.builtin_module_names: try: @@ -11,7 +12,7 @@ # older pytest pytest.skip("not available on pypy") -cffi_dir = os.path.dirname(cffi_opcode.__file__) +cffi_dir = str(Path(os.path.dirname(__file__)).parent.parent / "src/cffi") r_macro = re.compile(r"#define \w+[(][^\n]*|#include [^\n]*") r_define = re.compile(r"(#define \w+) [^\n]*")