You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by pa...@apache.org on 2023/06/16 01:47:41 UTC
[arrow-nanoarrow] branch main updated: chore(python): Use src/ layout for python package (#234)
This is an automated email from the ASF dual-hosted git repository.
paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git
The following commit(s) were added to refs/heads/main by this push:
new f92eb6a chore(python): Use src/ layout for python package (#234)
f92eb6a is described below
commit f92eb6a153c16845b57dd4c3e105f22a52450f0c
Author: Joris Van den Bossche <jo...@gmail.com>
AuthorDate: Fri Jun 16 03:47:37 2023 +0200
chore(python): Use src/ layout for python package (#234)
Follow-up on https://github.com/apache/arrow-nanoarrow/pull/117, moving
back to a src layout
(https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/)
---
.github/workflows/python.yaml | 3 ++-
python/.gitignore | 8 ++++----
python/MANIFEST.in | 6 +++---
python/bootstrap.py | 14 +++++++-------
python/setup.py | 6 +++---
python/{ => src}/nanoarrow/__init__.py | 0
python/{ => src}/nanoarrow/_lib.pyx | 0
python/{ => src}/nanoarrow/lib.py | 0
8 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/.github/workflows/python.yaml b/.github/workflows/python.yaml
index 4b599f7..156b499 100644
--- a/.github/workflows/python.yaml
+++ b/.github/workflows/python.yaml
@@ -74,10 +74,11 @@ jobs:
pushd python
# Build with Cython + gcc coverage options
+ pip install -e .
NANOARROW_PYTHON_COVERAGE=1 python setup.py build_ext --inplace
# Run tests + coverage.py (generates .coverage + coverage.xml files)
- python -m pytest --cov ./nanoarrow
+ python -m pytest --cov ./src/nanoarrow
python -m coverage xml
- name: Upload coverage to codecov
diff --git a/python/.gitignore b/python/.gitignore
index b372452..8abd5d0 100644
--- a/python/.gitignore
+++ b/python/.gitignore
@@ -16,10 +16,10 @@
# specific language governing permissions and limitations
# under the License.
-nanoarrow/nanoarrow.c
-nanoarrow/nanoarrow.h
-nanoarrow/nanoarrow_c.pxd
-nanoarrow/*.c
+src/nanoarrow/nanoarrow.c
+src/nanoarrow/nanoarrow.h
+src/nanoarrow/nanoarrow_c.pxd
+src/nanoarrow/*.c
# Byte-compiled / optimized / DLL files
__pycache__/
diff --git a/python/MANIFEST.in b/python/MANIFEST.in
index 93ed2fd..9fc2937 100644
--- a/python/MANIFEST.in
+++ b/python/MANIFEST.in
@@ -16,6 +16,6 @@
# under the License.
exclude bootstrap.py
-include nanoarrow/nanoarrow.c
-include nanoarrow/nanoarrow.h
-include nanoarrow/nanoarrow_c.pxd
+include src/nanoarrow/nanoarrow.c
+include src/nanoarrow/nanoarrow.h
+include src/nanoarrow/nanoarrow_c.pxd
diff --git a/python/bootstrap.py b/python/bootstrap.py
index 39b4fd9..cf149ef 100644
--- a/python/bootstrap.py
+++ b/python/bootstrap.py
@@ -145,8 +145,8 @@ def copy_or_generate_nanoarrow_c():
this_dir = os.path.abspath(os.path.dirname(__file__))
source_dir = os.path.dirname(this_dir)
- maybe_nanoarrow_h = os.path.join(this_dir, 'nanoarrow/nanoarrow.h')
- maybe_nanoarrow_c = os.path.join(this_dir, 'nanoarrow/nanoarrow.c')
+ maybe_nanoarrow_h = os.path.join(this_dir, 'src/nanoarrow/nanoarrow.h')
+ maybe_nanoarrow_c = os.path.join(this_dir, 'src/nanoarrow/nanoarrow.c')
for f in (maybe_nanoarrow_c, maybe_nanoarrow_h):
if os.path.exists(f):
os.unlink(f)
@@ -161,7 +161,7 @@ def copy_or_generate_nanoarrow_c():
os.mkdir(build_dir)
os.chdir(build_dir)
os.system(f'cmake ../.. -DNANOARROW_BUNDLE=ON -DNANOARROW_NAMESPACE=PythonPkg')
- os.system(f'cmake --install . --prefix=../nanoarrow')
+ os.system(f'cmake --install . --prefix=../src/nanoarrow')
finally:
if os.path.exists(build_dir):
# Can fail on Windows with permission issues
@@ -176,18 +176,18 @@ def copy_or_generate_nanoarrow_c():
else:
raise ValueError('Attempt to build source distribution outside the nanoarrow repo')
- if not os.path.exists(os.path.join(this_dir, 'nanoarrow/nanoarrow.h')):
+ if not os.path.exists(os.path.join(this_dir, 'src/nanoarrow/nanoarrow.h')):
raise ValueError('Attempt to vendor nanoarrow.c/h failed')
- maybe_nanoarrow_hpp = os.path.join(this_dir, 'nanoarrow/nanoarrow.hpp')
+ maybe_nanoarrow_hpp = os.path.join(this_dir, 'src/nanoarrow/nanoarrow.hpp')
if os.path.exists(maybe_nanoarrow_hpp):
os.unlink(maybe_nanoarrow_hpp)
# Runs the pxd generator with some information about the file name
def generate_nanoarrow_pxd():
this_dir = os.path.abspath(os.path.dirname(__file__))
- maybe_nanoarrow_h = os.path.join(this_dir, 'nanoarrow/nanoarrow.h')
- maybe_nanoarrow_pxd = os.path.join(this_dir, 'nanoarrow/nanoarrow_c.pxd')
+ maybe_nanoarrow_h = os.path.join(this_dir, 'src/nanoarrow/nanoarrow.h')
+ maybe_nanoarrow_pxd = os.path.join(this_dir, 'src/nanoarrow/nanoarrow_c.pxd')
NanoarrowPxdGenerator().generate_nanoarrow_pxd(
maybe_nanoarrow_h,
diff --git a/python/setup.py b/python/setup.py
index 4222cd8..031b6b3 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -45,11 +45,11 @@ setup(
ext_modules=[
Extension(
name="nanoarrow._lib",
- include_dirs=["nanoarrow"],
+ include_dirs=["src/nanoarrow"],
language="c",
sources=[
- "nanoarrow/_lib.pyx",
- "nanoarrow/nanoarrow.c",
+ "src/nanoarrow/_lib.pyx",
+ "src/nanoarrow/nanoarrow.c",
],
extra_compile_args=coverage_compile_args,
extra_link_args=coverage_link_args,
diff --git a/python/nanoarrow/__init__.py b/python/src/nanoarrow/__init__.py
similarity index 100%
rename from python/nanoarrow/__init__.py
rename to python/src/nanoarrow/__init__.py
diff --git a/python/nanoarrow/_lib.pyx b/python/src/nanoarrow/_lib.pyx
similarity index 100%
rename from python/nanoarrow/_lib.pyx
rename to python/src/nanoarrow/_lib.pyx
diff --git a/python/nanoarrow/lib.py b/python/src/nanoarrow/lib.py
similarity index 100%
rename from python/nanoarrow/lib.py
rename to python/src/nanoarrow/lib.py