mirror of
https://github.com/boostorg/python.git
synced 2026-01-20 16:52:15 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
00ce4bdc65 | ||
|
|
22347f26de | ||
|
|
b15950a0b3 | ||
|
|
b4fb28e99a | ||
|
|
867f0dddfe | ||
|
|
a40bb656ee | ||
|
|
f604eb8d0f |
37
.github/workflows/deploy-documentation.yml
vendored
37
.github/workflows/deploy-documentation.yml
vendored
@@ -1,37 +0,0 @@
|
|||||||
name: deploy documentation
|
|
||||||
|
|
||||||
on: [push]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy:
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: setup
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install \
|
|
||||||
libboost1.71-tools-dev \
|
|
||||||
python3 \
|
|
||||||
python3-numpy \
|
|
||||||
python3-sphinx \
|
|
||||||
xsltproc \
|
|
||||||
docbook-xsl
|
|
||||||
sudo python3 -m pip install --upgrade pip
|
|
||||||
sudo python3 -m pip install faber
|
|
||||||
- name: build
|
|
||||||
run: |
|
|
||||||
sed -e "s/\$PYTHON/python3/g" .ci/faber > ~/.faber
|
|
||||||
faber --builddir=build doc.html
|
|
||||||
if [ "${GITHUB_REF##*/}" == master ]; then
|
|
||||||
echo "destination_dir=doc/html" >> $GITHUB_ENV
|
|
||||||
else
|
|
||||||
echo "destination_dir=doc/develop/html" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: deploy
|
|
||||||
uses: peaceiris/actions-gh-pages@v3
|
|
||||||
with:
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
publish_dir: build/doc/html
|
|
||||||
destination_dir: ${{ env.destination_dir }}
|
|
||||||
keep_files: true
|
|
||||||
50
.github/workflows/test-osx.yml
vendored
50
.github/workflows/test-osx.yml
vendored
@@ -1,50 +0,0 @@
|
|||||||
name: Test OSX
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: macOS-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
python-version: [3.8.10]
|
|
||||||
cxx: [clang++]
|
|
||||||
std: [c++11, c++14] # TODO: c++17 is failing !
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- name: setup python
|
|
||||||
uses: actions/setup-python@v5
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
- name: setup prerequisites
|
|
||||||
run: |
|
|
||||||
brew install boost
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
python -m pip install setuptools faber
|
|
||||||
- name: build
|
|
||||||
run: |
|
|
||||||
python --version
|
|
||||||
${{ matrix.cxx }} --version
|
|
||||||
brew info boost
|
|
||||||
faber -v
|
|
||||||
sed -e "s/\$PYTHON/python/g" .ci/faber > ~/.faber
|
|
||||||
faber \
|
|
||||||
--with-boost-include=$(brew --prefix boost)/include \
|
|
||||||
--builddir=build \
|
|
||||||
cxx.name=${{ matrix.cxx }} \
|
|
||||||
cxxflags=-std=${{ matrix.std }} \
|
|
||||||
cppflags=-std=${{ matrix.std }} \
|
|
||||||
-j`sysctl -n hw.ncpu`
|
|
||||||
- name: test
|
|
||||||
run: |
|
|
||||||
faber \
|
|
||||||
--with-boost-include=$(brew --prefix boost)/include \
|
|
||||||
--builddir=build\
|
|
||||||
cxx.name=${{ matrix.cxx }} \
|
|
||||||
cxxflags=-std=${{ matrix.std }} \
|
|
||||||
cppflags=-std=${{ matrix.std }} \
|
|
||||||
-j`sysctl -n hw.ncpu` \
|
|
||||||
test.report
|
|
||||||
45
.github/workflows/test-ubuntu.yml
vendored
45
.github/workflows/test-ubuntu.yml
vendored
@@ -9,9 +9,11 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
python: [python, python3]
|
python-version: [2.7, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.14t]
|
||||||
cxx: [g++, clang++]
|
cxx: [g++, clang++]
|
||||||
std: [c++98, c++11, c++14, c++17]
|
#cxx: [g++]
|
||||||
|
#std: [c++98, c++11, c++14, c++17]
|
||||||
|
#std: [c++17]
|
||||||
include:
|
include:
|
||||||
# Add the appropriate docker image for each compiler.
|
# Add the appropriate docker image for each compiler.
|
||||||
# The images from teeks99/boost-python-test already have boost::python
|
# The images from teeks99/boost-python-test already have boost::python
|
||||||
@@ -21,33 +23,28 @@ jobs:
|
|||||||
docker-img: teeks99/boost-python-test:clang-12_1.76.0
|
docker-img: teeks99/boost-python-test:clang-12_1.76.0
|
||||||
- cxx: g++
|
- cxx: g++
|
||||||
docker-img: teeks99/boost-python-test:gcc-10_1.76.0
|
docker-img: teeks99/boost-python-test:gcc-10_1.76.0
|
||||||
|
# by default, all builds use -std=c++17
|
||||||
|
- std: c++17
|
||||||
|
# expand test coverage for python 2.7
|
||||||
|
- python-version: 2.7
|
||||||
|
std: c++98
|
||||||
|
- python-version: 2.7
|
||||||
|
std: c++11
|
||||||
|
- python-version: 2.7
|
||||||
|
std: c++14
|
||||||
|
|
||||||
container:
|
container:
|
||||||
image: ${{ matrix.docker-img }}
|
image: ${{ matrix.docker-img }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
|
- name: setup python
|
||||||
|
if: "${{ matrix.python-version != '2.7' }}"
|
||||||
|
uses: actions/setup-python@v6
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
- name: build
|
- name: build
|
||||||
run: |
|
run: |
|
||||||
${{ matrix.python }} --version
|
echo ${{ matrix.python-version }} ${{ matrix.cxx }} ${{ matrix.std }}
|
||||||
|
python --version
|
||||||
${{ matrix.cxx }} --version
|
${{ matrix.cxx }} --version
|
||||||
faber -v
|
|
||||||
sed -e "s/\$PYTHON/${{ matrix.python }}/g" .ci/faber > ~/.faber
|
|
||||||
faber \
|
|
||||||
--with-boost-include=${BOOST_PY_DEPS} \
|
|
||||||
--builddir=build \
|
|
||||||
cxx.name=${{ matrix.cxx }} \
|
|
||||||
cxxflags=-std=${{ matrix.std }} \
|
|
||||||
cppflags=-std=${{ matrix.std }} \
|
|
||||||
-j`nproc`
|
|
||||||
- name: test
|
|
||||||
run: |
|
|
||||||
faber \
|
|
||||||
--with-boost-include=${BOOST_PY_DEPS} \
|
|
||||||
--builddir=build \
|
|
||||||
cxx.name=${{ matrix.cxx }} \
|
|
||||||
cxxflags=-std=${{ matrix.std }} \
|
|
||||||
cppflags=-std=${{ matrix.std }} \
|
|
||||||
-j`nproc` \
|
|
||||||
test.report
|
|
||||||
|
|||||||
49
.github/workflows/test-windows.yml
vendored
49
.github/workflows/test-windows.yml
vendored
@@ -1,49 +0,0 @@
|
|||||||
name: Test Windows
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: windows-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
python-version: [3.7]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-python@v5
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
- uses: microsoft/setup-msbuild@v1.1
|
|
||||||
- name: setup boost prerequisites
|
|
||||||
uses: lukka/run-vcpkg@v6
|
|
||||||
with:
|
|
||||||
vcpkgGitCommitId: '88b1071e39f13b632644d9d953738d345a4ac055'
|
|
||||||
vcpkgDirectory: '${{ runner.workspace }}/vcpkg'
|
|
||||||
vcpkgTriplet: x64-windows
|
|
||||||
vcpkgArguments: >
|
|
||||||
boost-config
|
|
||||||
boost-core
|
|
||||||
boost-function
|
|
||||||
boost-graph
|
|
||||||
boost-iterator
|
|
||||||
boost-lexical-cast
|
|
||||||
boost-mpl
|
|
||||||
boost-preprocessor
|
|
||||||
boost-smart-ptr
|
|
||||||
boost-static-assert
|
|
||||||
boost-align
|
|
||||||
- name: setup faber
|
|
||||||
run: |
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
python -m pip install setuptools faber numpy
|
|
||||||
faber --info=tools cxx
|
|
||||||
- name: build
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
faber --builddir=build cxx.name=msvc --with-boost-include=${{ runner.workspace }}/vcpkg/installed/x64-windows/include -j4
|
|
||||||
- name: test
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
faber --builddir=build cxx.name=msvc --with-boost-include=${{ runner.workspace }}/vcpkg/installed/x64-windows/include -j4 test.report
|
|
||||||
@@ -216,7 +216,13 @@ namespace boost { namespace python { namespace detail {
|
|||||||
{
|
{
|
||||||
for (const_iterator i = proxies.begin(); i != proxies.end(); ++i)
|
for (const_iterator i = proxies.begin(); i != proxies.end(); ++i)
|
||||||
{
|
{
|
||||||
if ((*i)->ob_refcnt <= 0)
|
if (
|
||||||
|
#if PY_VERSION_HEX < 0x03090000
|
||||||
|
(*i)->ob_refcnt
|
||||||
|
#else
|
||||||
|
Py_REFCNT(*i)
|
||||||
|
#endif
|
||||||
|
<= 0)
|
||||||
{
|
{
|
||||||
PyErr_SetString(PyExc_RuntimeError,
|
PyErr_SetString(PyExc_RuntimeError,
|
||||||
"Invariant: Proxy vector in an inconsistent state");
|
"Invariant: Proxy vector in an inconsistent state");
|
||||||
|
|||||||
@@ -8,7 +8,10 @@
|
|||||||
import ufunc_ext
|
import ufunc_ext
|
||||||
import unittest
|
import unittest
|
||||||
import numpy
|
import numpy
|
||||||
from numpy.testing.utils import assert_array_almost_equal
|
try:
|
||||||
|
from numpy.testing import assert_array_almost_equal
|
||||||
|
except ImportError:
|
||||||
|
from numpy.testing.utils import assert_array_almost_equal
|
||||||
|
|
||||||
class TestUnary(unittest.TestCase):
|
class TestUnary(unittest.TestCase):
|
||||||
|
|
||||||
@@ -24,7 +27,7 @@ class TestUnary(unittest.TestCase):
|
|||||||
assert_array_almost_equal(b, a*2.0)
|
assert_array_almost_equal(b, a*2.0)
|
||||||
c = numpy.zeros(5, dtype=float)
|
c = numpy.zeros(5, dtype=float)
|
||||||
d = f(a,output=c)
|
d = f(a,output=c)
|
||||||
self.assertTrue(c is d)
|
self.assertTrue((c == d).all())
|
||||||
assert_array_almost_equal(d, a*2.0)
|
assert_array_almost_equal(d, a*2.0)
|
||||||
|
|
||||||
def testList(self):
|
def testList(self):
|
||||||
@@ -47,7 +50,7 @@ class TestBinary(unittest.TestCase):
|
|||||||
assert_array_almost_equal(f(a,b), (a*2+b*3))
|
assert_array_almost_equal(f(a,b), (a*2+b*3))
|
||||||
c = numpy.zeros(5, dtype=float)
|
c = numpy.zeros(5, dtype=float)
|
||||||
d = f(a,b,output=c)
|
d = f(a,b,output=c)
|
||||||
self.assertTrue(c is d)
|
self.assertTrue((c == d).all())
|
||||||
assert_array_almost_equal(d, a*2 + b*3)
|
assert_array_almost_equal(d, a*2 + b*3)
|
||||||
assert_array_almost_equal(f(a, 2.0), a*2 + 6.0)
|
assert_array_almost_equal(f(a, 2.0), a*2 + 6.0)
|
||||||
assert_array_almost_equal(f(1.0, b), 2.0 + b*3)
|
assert_array_almost_equal(f(1.0, b), 2.0 + b*3)
|
||||||
|
|||||||
Reference in New Issue
Block a user