diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6164df..9084dbc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,17 +23,6 @@ jobs: - name: Typecheck package run: mypy src - - name: Set up Python 3.7 - uses: actions/setup-python@v5 - with: - python-version: 3.7 - - - name: Build package 3.7 - run: | - pip install build wheel - python -m build - shell: bash - - name: Set up Python 3.8 uses: actions/setup-python@v5 with: @@ -93,7 +82,6 @@ jobs: uses: actions/setup-python@v5 with: python-version: "3.13" - allow-prereleases: true - name: Build package 3.13 run: | @@ -114,7 +102,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12", "3.13"] + python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 @@ -159,14 +147,14 @@ jobs: cc: gcc-10 cxx: g++-10 platform: ubuntu-22.04 - python: 3.7 + python: 3.8 deps: release flavour: linux - compiler: clang-old cc: clang-13 cxx: clang++-13 platform: ubuntu-22.04 - python: 3.7 + python: 3.8 deps: release flavour: linux - compiler: gcc @@ -268,19 +256,6 @@ jobs: run: vcpkg install bzip2:x64-windows expat:x64-windows zlib:x64-windows boost-variant:x64-windows boost-iterator:x64-windows lz4:x86-windows shell: bash - - name: Set up Python 3.7 - uses: actions/setup-python@v5 - with: - python-version: 3.7 - - - name: Build package 3.7 - run: | - pip install build wheel - python -m build - shell: bash - env: - CMAKE_TOOLCHAIN_FILE: C:/vcpkg/scripts/buildsystems/vcpkg.cmake - - name: Set up Python 3.8 uses: actions/setup-python@v5 with: @@ -350,7 +325,6 @@ jobs: uses: actions/setup-python@v5 with: python-version: "3.13" - allow-prereleases: true - name: Build package 3.13 run: | @@ -373,7 +347,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] env: PYTEST_ADDOPTS: ${{ matrix.test-args }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 27d4400..1ff278c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ -cmake_minimum_required(VERSION 3.8.0) -project(pyosmium VERSION 3.6.0) +cmake_minimum_required(VERSION 3.15.0) +project(pyosmium VERSION 4.0.2) option(WITH_LZ4 "Build with lz4 support for PBF files" ON) @@ -29,22 +29,19 @@ if(NOT "${CMAKE_CXX_STANDARD}") set(CMAKE_CXX_STANDARD 17) endif() -# required for pybind11 < 2.6 -if(MSVC) - set(PYBIND11_CPP_STANDARD /std=c++${CMAKE_CXX_STANDARD}) -else() - set(PYBIND11_CPP_STANDARD -std=c++${CMAKE_CXX_STANDARD}) -endif() +set(PYBIND11_CPP_STANDARD -std=c++${CMAKE_CXX_STANDARD}) message(STATUS "Building in C++${CMAKE_CXX_STANDARD} mode") +find_package(Python COMPONENTS Interpreter Development) + if(PYBIND11_PREFIX) add_subdirectory(${PYBIND11_PREFIX} contrib/pybind11) else() - find_package(pybind11 2.7 REQUIRED) + find_package(pybind11 2.9 REQUIRED) endif() -find_package(Boost 1.41 REQUIRED COMPONENTS) +find_package(Boost 1.70 REQUIRED COMPONENTS) include_directories(SYSTEM ${Boost_INCLUDE_DIRS}) function(set_module_output module outdir) diff --git a/README.md b/README.md index 5e25273..f5ec8e3 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ manner. ## Installation -Pyosmium works with Python >= 3.7. Pypy is known to not work. +Pyosmium works with Python >= 3.8. Pypy is known to not work. ### Using Pip @@ -40,7 +40,7 @@ pyosmium has the following dependencies: * [expat](https://libexpat.github.io/) * [libz](https://www.zlib.net/) * [libbz2](https://www.sourceware.org/bzip2/) - * [Boost](https://www.boost.org/) variant and iterator >= 1.41 + * [Boost](https://www.boost.org/) variant and iterator >= 1.70 * [Python Requests](https://docs.python-requests.org/) * Python setuptools * a C++17-compatible compiler (Clang 13+, GCC 10+ are supported) diff --git a/pyproject.toml b/pyproject.toml index 88b7ac2..d2fe957 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta" name = "osmium" description = "Python bindings for libosmium, the data processing library for OSM data" readme = "README.rst" -requires-python = ">=3.7" +requires-python = ">=3.8" license = {text = 'BSD-2-Clause'} authors = [ {name = "Sarah Hoffmann", email = "lonvia@denofr.de"} @@ -19,7 +19,6 @@ classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", diff --git a/src/osmium/version.py b/src/osmium/version.py index 7aec9dc..b42e7d5 100644 --- a/src/osmium/version.py +++ b/src/osmium/version.py @@ -2,7 +2,7 @@ # # This file is part of pyosmium. (https://osmcode.org/pyosmium/) # -# Copyright (C) 2024 Sarah Hoffmann and others. +# Copyright (C) 2025 Sarah Hoffmann and others. # For a full list of authors see the git log. """ Version information. @@ -16,6 +16,6 @@ # libosmium version shipped with the Pip release libosmium_version = '2.20.0' # protozero version shipped with the Pip release -protozero_version = '1.7.1' +protozero_version = '1.8.1' # pybind11 version shipped with the Pip release -pybind11_version = '2.13.6' +pybind11_version = '3.0.0'