Skip to content

refactor: Separate implementation from interface for nanoarrow_testing component #1541

refactor: Separate implementation from interface for nanoarrow_testing component

refactor: Separate implementation from interface for nanoarrow_testing component #1541

Workflow file for this run

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: test-python
on:
push:
branches:
- main
pull_request:
branches:
- main
paths:
- '.github/workflows/python.yaml'
- 'src/nanoarrow/**'
- 'python/**'
permissions:
contents: read
jobs:
test-python:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install nanoarrow
run: |
pushd python
pip install .[test]
popd
pip list
- name: Run tests
run: |
pytest python/tests -v -s
- name: Check type stubs
if: success() && matrix.python-version == '3.12'
run: |
pip install mypy "black==22.3.0"
python/generate_type_stubs.sh
if git diff --name-only | grep -e "\\.pxi$"; then
echo "Type stubs were changed. Update them with python/generate_type_stubs.sh."
fi
stubtest nanoarrow._lib
stubtest nanoarrow._ipc_lib
- name: Run doctests
if: success() && matrix.python-version == '3.12'
run: |
pytest --pyargs nanoarrow --doctest-modules
# Make sure we can build a source distribution and install from it
python-install:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Install packaging tools
run: |
pip install --upgrade pip
pip install build twine
- name: Build
run: |
cd python
python -m build --sdist --wheel
- name: Check install from sdist
run: |
pip install python/dist/nanoarrow-*.tar.gz
python -c "import nanoarrow; print(nanoarrow.__version__)"
pip uninstall --yes nanoarrow
- name: Check install from wheel
run: |
pip install python/dist/nanoarrow-*.whl
python -c "import nanoarrow; print(nanoarrow.__version__)"
pip uninstall --yes nanoarrow
- name: Run twine check
run: |
twine check --strict python/dist/*