diff --git a/.github/actions/setup-poetry/action.yml b/.github/actions/setup-poetry/action.yml index aae7453f..77a1324e 100644 --- a/.github/actions/setup-poetry/action.yml +++ b/.github/actions/setup-poetry/action.yml @@ -10,10 +10,17 @@ runs: - name: Install poetry run: pipx install poetry==1.8.3 shell: bash - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 + id: py with: python-version: ${{ inputs.python-version }} + update-environment: false cache: 'poetry' + - name: Setup poetry env with correct python + run: | + poetry env use ${{ steps.py.outputs.python-path }} + poetry run python --version + shell: bash - name: Install only dependencies and not the package itself run: poetry install --all-extras --no-root shell: bash diff --git a/.github/scripts/build_rhel.sh b/.github/scripts/build_rhel.sh new file mode 100755 index 00000000..3fa47c04 --- /dev/null +++ b/.github/scripts/build_rhel.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +set -e # trigger failure on error - do not remove! +set -x # display command on output + +# Build the sdist +poetry build -f sdist + +# Compile the wheel from sdist in centos stream + +docker build -f - . < mingw-w64-x86_64-toolchain - mingw-w64-i686-toolchain + mingw-w64-x86_64-gcc-libs - - name: Set up QPDF external-libs [windows] + - name: Set up external-libs [windows] if: ${{matrix.os.platform_id == 'win_amd64'}} shell: pwsh run: | + Copy-Item -Path "C:/mingw64/bin/libgcc_s_seh-1.dll" -Destination ".\docling_parse" + Copy-Item -Path "C:/mingw64/bin/libstdc++-6.dll" -Destination ".\docling_parse" + Copy-Item -Path "C:/mingw64/bin/libwinpthread-1.dll" -Destination ".\docling_parse" New-Item -Path 'C:\windows-libs' -ItemType Directory -Force Invoke-WebRequest -Uri 'https://github.com/qpdf/external-libs/releases/download/release-2024-06-07/qpdf-external-libs-bin.zip' -OutFile 'C:\windows-libs\qpdf-external-libs-bin.zip' Expand-Archive -Path 'C:\windows-libs\qpdf-external-libs-bin.zip' -DestinationPath 'C:\windows-libs' -Force @@ -222,11 +271,11 @@ jobs: CIBW_BUILD_VERBOSITY: 3 CIBW_ARCHS: AMD64 CIBW_PROJECT_REQUIRES_PYTHON: "~=${{ matrix.python-version }}.0" - PKG_CONFIG_PATH: "C:/msys64/mingw64/lib/pkgconfig" - PKG_CONFIG_EXECUTABLE: "C:/msys64/usr/bin/pkg-config.exe" - CMAKE_PREFIX_PATH: "C:/msys64/mingw64;C:/windows-libs/external-libs" - CMAKE_LIBRARY_PATH: "C:/msys64/mingw64/lib;C:/windows-libs/external-libs/lib-mingw64" - CMAKE_INCLUDE_PATH: "C:/msys64/mingw64/include;C:/windows-libs/external-libs/include" + PKG_CONFIG_PATH: "C:/msys64/usr/lib/pkgconfig" + PKG_CONFIG_EXECUTABLE: "C:/mingw64/bin/pkg-config.exe" + CMAKE_PREFIX_PATH: "C:/msys64/mingw64;C:/mingw64;C:/windows-libs/external-libs" + CMAKE_LIBRARY_PATH: "C:/msys64/mingw64/lib;C:/mingw64/lib;C:/windows-libs/external-libs/lib-mingw64" + CMAKE_INCLUDE_PATH: "C:/msys64/mingw64/include;C:/mingw64/include;C:/windows-libs/external-libs/include" CMAKE_GENERATOR: "MSYS Makefiles" BUILD_THREADS: 1 ASM_NASM: "C:/nasm/nasm.exe" @@ -249,9 +298,9 @@ jobs: - name: publish wheels (dry run) run: | - poetry publish --dry-run --no-interaction -vvv + poetry publish --skip-existing --dry-run --no-interaction -vvv - name: publish wheels (on publishing) [for releases only] if: ${{ startsWith(github.ref, 'refs/tags/') }} run: | - poetry publish --no-interaction -vvv + poetry publish --skip-existing --no-interaction -vvv diff --git a/.gitignore b/.gitignore index a7d41afc..3c884691 100644 --- a/.gitignore +++ b/.gitignore @@ -287,7 +287,6 @@ pyrightconfig.json [Ll]ib [Ll]ib64 [Ll]ocal -[Ss]cripts pyvenv.cfg pip-selfcheck.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 1161bb26..89f6ad79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,25 @@ +## [v1.4.1](https://github.com/DS4SD/docling-parse/releases/tag/v1.4.1) - 2024-10-02 + +### Fix + +* Windows build properly linking to system libraries ([#36](https://github.com/DS4SD/docling-parse/issues/36)) ([`e26ed05`](https://github.com/DS4SD/docling-parse/commit/e26ed056c22400552918c3a97dfb13614c9a03f5)) + +## [v1.4.0](https://github.com/DS4SD/docling-parse/releases/tag/v1.4.0) - 2024-10-02 + +### Feature + +* Build using system deps ([#33](https://github.com/DS4SD/docling-parse/issues/33)) ([`e1c8e49`](https://github.com/DS4SD/docling-parse/commit/e1c8e4980faab35bfdf6d1a78d8749745c560889)) + +### Fix + +* Python version in wheels ([#31](https://github.com/DS4SD/docling-parse/issues/31)) ([`8d903ba`](https://github.com/DS4SD/docling-parse/commit/8d903baf61a7706066374c23265e115a9513c3ba)) + +## [v1.3.1](https://github.com/DS4SD/docling-parse/releases/tag/v1.3.1) - 2024-09-30 + +### Fix + +* Sdist and wheels content ([#28](https://github.com/DS4SD/docling-parse/issues/28)) ([`f3febc5`](https://github.com/DS4SD/docling-parse/commit/f3febc53a2a6565b16847113633f92d1a2dab48a)) + ## [v1.3.0](https://github.com/DS4SD/docling-parse/releases/tag/v1.3.0) - 2024-09-20 ### Feature diff --git a/CMakeLists.txt b/CMakeLists.txt index 4074f29b..e6018697 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.12) +cmake_minimum_required(VERSION 3.12..3.26) project(docling_parse VERSION 1.0.0 LANGUAGES CXX C) #set(CMAKE_VERBOSE_MAKEFILE off) @@ -84,41 +84,49 @@ message(STATUS "cxx-flags : " ${CMAKE_CXX_FLAGS}) message(STATUS "cxx-standard: " ${CMAKE_CXX_STANDARD}) # ************************ -# *** libraries *** +# *** dependencies *** # ************************ -if(NOT EXISTS ${EXTERNALS_PREFIX_PATH}) - execute_process(COMMAND mkdir ${EXTERNALS_PREFIX_PATH}) - execute_process(COMMAND mkdir ${EXTERNALS_PREFIX_PATH}/bin) - execute_process(COMMAND mkdir ${EXTERNALS_PREFIX_PATH}/lib) - execute_process(COMMAND mkdir ${EXTERNALS_PREFIX_PATH}/include) - execute_process(COMMAND mkdir ${EXTERNALS_PREFIX_PATH}/resources) -endif() +option(USE_SYSTEM_DEPS OFF "If enabled, the build will find and link to system dependencies, otherwise they are sourced from the original repos and compiled on the fly.") -include(cmake/subdirlist.cmake) +# prepare setup for building external packages +if(NOT USE_SYSTEM_DEPS) + if(NOT EXISTS ${EXTERNALS_PREFIX_PATH}) + file(MAKE_DIRECTORY ${EXTERNALS_PREFIX_PATH}) + file(MAKE_DIRECTORY ${EXTERNALS_PREFIX_PATH}/bin) + file(MAKE_DIRECTORY ${EXTERNALS_PREFIX_PATH}/lib) + file(MAKE_DIRECTORY ${EXTERNALS_PREFIX_PATH}/include) + file(MAKE_DIRECTORY ${EXTERNALS_PREFIX_PATH}/resources) + endif() +endif() +# include dependencies include(cmake/extlib_cxxopts.cmake) include(cmake/extlib_loguru.cmake) include(cmake/extlib_json.cmake) include(cmake/extlib_utf8.git.cmake) include(cmake/extlib_jpeg.cmake) -# include(cmake/extlib_qpdf_v10.cmake) include(cmake/extlib_qpdf_v11.cmake) -include(cmake/extlib_pybind11.cmake) +# aggregate the targets created by the dependencies +set(DEPENDENCIES qpdf jpeg utf8 json loguru cxxopts) + +# ************************ +# *** libraries *** +# ************************ + +# define LIB_LINK and OS_DEPENDENCIES include(cmake/os_opts.cmake) +list(APPEND DEPENDENCIES ${OS_DEPENDENCIES}) # *********************** # *** includes *** # *********************** -include_directories(${EXTERNALS_PREFIX_PATH}/include) - -subdirlist(EXTERNALS_INCLUDES ${EXTERNALS_PREFIX_PATH}/include) -include_directories(${EXTERNALS_INCLUDES}) - -message(STATUS "subdirs: " ${SUBDIRS}) +# define subdirlist utility +include(cmake/subdirlist.cmake) +include_directories(${EXTERNALS_PREFIX_PATH}/include) include_directories(${TOPLEVEL_PREFIX_PATH}/src) subdirlist(SUBDIRS ${TOPLEVEL_PREFIX_PATH}/src) @@ -128,70 +136,89 @@ include_directories(${SUBDIRS}) # *** Executables *** # ********************** +string(REPLACE ";" ";" SUBDIRS_SEMICOLON "${SUBDIRS}") +message(STATUS "subdirs: ${SUBDIRS_SEMICOLON}") + +string(REPLACE ";" ";" DEPENDENCIES_SEMICOLON "${DEPENDENCIES}") +message(STATUS "cmake dependencies: ${DEPENDENCIES_SEMICOLON}") + +string(REPLACE ";" ";" LIBLINK_SEMICOLON "${LIB_LINK}") +message(STATUS "cmake lib-link: ${LIBLINK_SEMICOLON}") + +# add_executable(parse.exe "${TOPLEVEL_PREFIX_PATH}/app/parse.cpp") add_executable(parse_v1.exe "${TOPLEVEL_PREFIX_PATH}/app/parse_v1.cpp") add_executable(parse_v2.exe "${TOPLEVEL_PREFIX_PATH}/app/parse_v2.cpp") add_executable(parse_v2_fonts.exe "${TOPLEVEL_PREFIX_PATH}/app/parse_v2_fonts.cpp") +# set_property(TARGET parse.exe PROPERTY CXX_STANDARD 20) set_property(TARGET parse_v1.exe PROPERTY CXX_STANDARD 20) set_property(TARGET parse_v2.exe PROPERTY CXX_STANDARD 20) set_property(TARGET parse_v2_fonts.exe PROPERTY CXX_STANDARD 20) -target_link_libraries(parse_v1.exe ${LIB_LINK}) -target_link_libraries(parse_v2.exe ${LIB_LINK}) -target_link_libraries(parse_v2_fonts.exe ${LIB_LINK}) +# add_dependencies(parse.exe ${DEPENDENCIES}) +add_dependencies(parse_v1.exe ${DEPENDENCIES}) +add_dependencies(parse_v2.exe ${DEPENDENCIES}) +add_dependencies(parse_v2_fonts.exe ${DEPENDENCIES}) + +# target_include_directories(parse.exe INTERFACE ${DEPENDENCIES}) +target_include_directories(parse_v1.exe INTERFACE ${DEPENDENCIES}) +target_include_directories(parse_v2.exe INTERFACE ${DEPENDENCIES}) +target_include_directories(parse_v2_fonts.exe INTERFACE ${DEPENDENCIES}) + +# target_link_libraries(parse.exe ${DEPENDENCIES} ${LIB_LINK}) +target_link_libraries(parse_v1.exe ${DEPENDENCIES} ${LIB_LINK}) +target_link_libraries(parse_v2.exe ${DEPENDENCIES} ${LIB_LINK}) +target_link_libraries(parse_v2_fonts.exe ${DEPENDENCIES} ${LIB_LINK}) # ********************** # *** Libraries *** # ********************** -add_library(parse_v1 STATIC "${TOPLEVEL_PREFIX_PATH}/app/parse_v1.cpp") -add_library(parse_v2 STATIC "${TOPLEVEL_PREFIX_PATH}/app/parse_v1.cpp") +# add_library(libparse STATIC "${TOPLEVEL_PREFIX_PATH}/app/parse.cpp") +add_library(libparse_v1 STATIC "${TOPLEVEL_PREFIX_PATH}/app/parse_v1.cpp") +add_library(libparse_v2 STATIC "${TOPLEVEL_PREFIX_PATH}/app/parse_v1.cpp") + +# add_dependencies(libparse ${DEPENDENCIES}) +add_dependencies(libparse_v1 ${DEPENDENCIES}) +add_dependencies(libparse_v2 ${DEPENDENCIES}) -set_target_properties(parse_v1 PROPERTIES POSITION_INDEPENDENT_CODE ON) -set_target_properties(parse_v2 PROPERTIES POSITION_INDEPENDENT_CODE ON) +# target_include_directories(libparse INTERFACE ${DEPENDENCIES}) +target_include_directories(libparse_v1 INTERFACE ${DEPENDENCIES}) +target_include_directories(libparse_v2 INTERFACE ${DEPENDENCIES}) -target_link_libraries(parse_v1 ${LIB_LINK}) -target_link_libraries(parse_v2 ${LIB_LINK}) +# set_target_properties(libparse PROPERTIES POSITION_INDEPENDENT_CODE ON) +set_target_properties(libparse_v1 PROPERTIES POSITION_INDEPENDENT_CODE ON) +set_target_properties(libparse_v2 PROPERTIES POSITION_INDEPENDENT_CODE ON) + +# target_link_libraries(libparse ${DEPENDENCIES} ${LIB_LINK}) +target_link_libraries(libparse_v1 ${DEPENDENCIES} ${LIB_LINK}) +target_link_libraries(libparse_v2 ${DEPENDENCIES} ${LIB_LINK}) # *************************** # *** Python-binding *** # *************************** -# inspiration from -# 1. https://github.com/pybind/cmake_example/blob/master/CMakeLists.txt` -# 2. https://blog.devgenius.io/calling-python-and-c-code-using-pybind-99ab7fefa685 -# 3. https://github.com/pybind/cmake_example/issues/11 - -include(FetchContent) -FetchContent_Declare(pybind11 - FETCHCONTENT_BASE_DIR extlib_pybind11 - GIT_REPOSITORY https://github.com/pybind/pybind11.git - GIT_TAG v2.13.5 - GIT_SHALLOW TRUE -) -FetchContent_MakeAvailable(pybind11) +# https://pybind11.readthedocs.io/en/stable/compiling.html +# https://pybind11.readthedocs.io/en/stable/compiling.html#configuration-variables +find_package(pybind11 CONFIG REQUIRED) pybind11_add_module(docling_parse "${TOPLEVEL_PREFIX_PATH}/app/pybind_parse.cpp") -add_dependencies(docling_parse json utf8) # we have to list the headers-only deps here -target_compile_definitions(docling_parse PRIVATE VERSION_INFO=${EXAMPLE_VERSION_INFO}) +# add_dependencies(docling_parse json utf8) # we have to list the headers-only deps here +# add_dependencies(docling_parse libparse) +add_dependencies(docling_parse libparse_v1 libparse_v2) -target_link_libraries(docling_parse PRIVATE parse_v1) +# target_include_directories(docling_parse INTERFACE ${DEPENDENCIES}) +target_include_directories(docling_parse INTERFACE ${DEPENDENCIES}) -# ***************** -# *** Install *** -# ***************** +# target_compile_definitions(docling_parse PRIVATE VERSION_INFO=${EXAMPLE_VERSION_INFO}) +target_compile_definitions(docling_parse PRIVATE VERSION_INFO=${CMAKE_PROJECT_VERSION}) -install(TARGETS docling_parse DESTINATION "${TOPLEVEL_PREFIX_PATH}/docling_parse") +# target_link_libraries(docling_parse PRIVATE libparse) +target_link_libraries(docling_parse PRIVATE libparse_v1 libparse_v2) # ***************** -# *** Testing *** +# *** Install *** # ***************** -#function(do_test target arg result) -# add_test(NAME Comp${arg} COMMAND ${target} ${arg}) -# set_tests_properties(Comp${arg} PROPERTIES PASS_REGULAR_EXPRESSION ${result}) -# endfunction() - -# do a bunch of result based tests -# do_test(Tutorial 4 "4 is 2") +install(TARGETS docling_parse DESTINATION "${TOPLEVEL_PREFIX_PATH}/docling_parse") diff --git a/app/parse.cpp b/app/parse.cpp new file mode 100644 index 00000000..b3eb8d87 --- /dev/null +++ b/app/parse.cpp @@ -0,0 +1,158 @@ +//-*-C++-*- + +/*********************************************************** +IBM Confidential +OCO Source Materials +IBM Research Zurich Smart Annotator Licensed Internal Code +(C) Copyright IBM Corp. 2017 + +Authors: Peter W. J. Staar, Michele Dolfi, Christoph Auer, +Matthieu Mottet +Email: {taa, dol, cau, ttt}@zurich.ibm.com +Date: 18/08/2017 +**********************************************************/ + +#include + +#include "include_libs.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "pdf_library.h" +#include "pdf_parser.h" + +#include "pdf_interface.h" +#include "pdf_interface/parser.h" + +void print_input_file_format(); + +int main(int argc, char *argv[]) +{ + //typedef prof_lib::profiler profiler_type; + +#ifdef VERBOSE + bool verbose=true; +#else + bool verbose=false; +#endif + + if(verbose) + { + logging_lib::set_level("pdf-parser", + logging_lib::ERROR | + logging_lib::WARNING | + logging_lib::INFO | + logging_lib::SUCCESS); + } + else + { + logging_lib::set_level("pdf-parser", + logging_lib::ERROR); + + /* + logging_lib::set_level("pdf-parser", + logging_lib::ERROR | + logging_lib::WARNING | + logging_lib::INFO | + logging_lib::SUCCESS); + */ + } + + int result=-1; + + switch(argc) + { + case 1: + { + print_input_file_format(); + } + break; + + case 2: + { + std::string filename = argv[1]; + + pdf_lib::interface my_interface; + + result = my_interface.query(filename); + } + break; + + case 3: + { + std::string filename = argv[1]; + std::string verbose_ = argv[2]; + + if(verbose_=="true") + { + logging_lib::set_level("pdf-parser", + logging_lib::ERROR | + logging_lib::WARNING | + logging_lib::INFO | + logging_lib::SUCCESS); + } + + pdf_lib::interface my_interface; + + result = my_interface.query(filename); + } + break; + + default: + { + logging_lib::error("pdf-parser") << __FILE__ << ":" << __LINE__ << "\t" + << "no input-file!"; + } + } + + return result; +} + +void print_input_file_format() +{ + logging_lib::error("pdf-parser") << __FILE__ << ":" << __LINE__ << "\t" + << "no input-file"; + + container_lib::container input_file; + + std::vector key = {"source", "pdf_documents"}; + input_file[key].resize(1); + { + input_file[key][0]["pdf"] <= "pdf-filename"; + input_file[key][0]["raw"] <= "raw-filename"; + input_file[key][0]["pdf-meta"] <= "pdf-meta-filename"; + input_file[key][0]["raw-mets"] <= "raw-meta-filename"; + } + + /* + auto& see = input_file["SEE"]; + { + see["parse"].set_object(); + { + see["parse"]["proj_key"] <= "xxx"; + see["parse"]["auth_token"] <= "xxx"; + see["parse"]["callback"] <= "xxx"; + see["parse"]["status"] <= "xxx"; + } + + see["retrieve"].set_object(); + { + see["parse"]["proj_key"] <= "xxx"; + see["parse"]["auth_token"] <= "xxx"; + see["parse"]["callback"] <= "xxx"; + see["parse"]["status"] <= "xxx"; + } + } + */ + + IO::writer writer; + logging_lib::error("pdf-parser") << "input-file schema: \n" + << writer.to_string(input_file); +} diff --git a/app/parse_v1.cpp b/app/parse_v1.cpp index 3cd81f6e..c4a562ef 100644 --- a/app/parse_v1.cpp +++ b/app/parse_v1.cpp @@ -1,108 +1,10 @@ //-*-C++-*- -#include +#include +#include #include -/* -void print_input_file_format(); - -int main(int argc, char *argv[]) -{ -#ifdef VERBOSE - bool verbose=true; -#else - bool verbose=false; -#endif - - if(verbose) - { - logging_lib::set_level("pdf-parser", - logging_lib::ERROR | - logging_lib::WARNING | - logging_lib::INFO | - logging_lib::SUCCESS); - } - else - { - logging_lib::set_level("pdf-parser", - logging_lib::ERROR); - } - - int result=-1; - - switch(argc) - { - case 1: - { - print_input_file_format(); - } - break; - - case 2: - { - std::string filename = argv[1]; - - pdf_lib::interface my_interface; - - result = my_interface.query(filename); - } - break; - - case 3: - { - std::string filename = argv[1]; - std::string verbose_ = argv[2]; - - if(verbose_=="true") - { - logging_lib::set_level("pdf-parser", - logging_lib::ERROR | - logging_lib::WARNING | - logging_lib::INFO | - logging_lib::SUCCESS); - } - - pdf_lib::interface my_interface; - - result = my_interface.query(filename); - } - break; - - default: - { - logging_lib::error("pdf-parser") << __FILE__ << ":" << __LINE__ << "\t" - << "no input-file!"; - } - } - - return result; -} - -void print_input_file_format() -{ - logging_lib::error("pdf-parser") << __FILE__ << ":" << __LINE__ << "\t" - << "no input-file"; - - container_lib::container input_file; - - std::vector key = {"source", "pdf_documents"}; - input_file[key].resize(1); - { - input_file[key][0]["pdf"] <= "pdf-filename"; - input_file[key][0]["raw"] <= "raw-filename"; - input_file[key][0]["pdf-meta"] <= "pdf-meta-filename"; - input_file[key][0]["raw-mets"] <= "raw-meta-filename"; - } - - IO::writer writer; - logging_lib::error("pdf-parser") << "input-file schema: \n" - << writer.to_string(input_file); -} -*/ - -#include - void set_loglevel(std::string level) { if(level=="error") @@ -148,6 +50,7 @@ void set_loglevel(std::string level) void create_config(std::string ifile, std::string ofile, + //int page, container_lib::container& config) { config.clear(); @@ -177,6 +80,7 @@ int main(int argc, char* argv[]) { ("i,input", "Input PDF file", cxxopts::value()) ("c,config", "Config file", cxxopts::value()) ("create-config", "Create config file", cxxopts::value()) + //("p,page", "Pages to process (default: -1 for all)", cxxopts::value()->default_value("-1")) ("o,output", "Output file", cxxopts::value()) ("l,loglevel", "loglevel [error;warning;success;info]", cxxopts::value()) ("h,help", "Print usage"); @@ -272,7 +176,7 @@ int main(int argc, char* argv[]) { return 0; } - } catch (const cxxopts::OptionException& e) { + } catch (const cxxopts::exceptions::exception& e) { std::cout << "Error parsing options: " << e.what(); //LOG_F(ERROR, "Error parsing options: %s", e.what()); return 1; diff --git a/app/parse_v2.cpp b/app/parse_v2.cpp index 4dcdbf2e..7692cb7c 100644 --- a/app/parse_v2.cpp +++ b/app/parse_v2.cpp @@ -95,8 +95,9 @@ int main(int argc, char* argv[]) { return 1; } + std::string level = "warning"; if (result.count("loglevel")){ - std::string level = result["loglevel"].as(); + level = result["loglevel"].as(); // Convert the string to lowercase std::transform(level.begin(), level.end(), level.begin(), [](unsigned char c) { @@ -158,7 +159,7 @@ int main(int argc, char* argv[]) { utils::timer timer; - plib::parser parser; + plib::parser parser(level); parser.parse(config); LOG_S(INFO) << "total-time [sec]: " << timer.get_time(); @@ -171,7 +172,8 @@ int main(int argc, char* argv[]) { return 0; } - } catch (const cxxopts::OptionException& e) { + //} catch (const cxxopts::OptionException& e) { + } catch (const cxxopts::exceptions::exception& e) { LOG_F(ERROR, "Error parsing options: %s", e.what()); return 1; } diff --git a/build.py b/build.py index e5bc6c66..35153f14 100644 --- a/build.py +++ b/build.py @@ -5,17 +5,30 @@ import sys import subprocess +from typing import List +import pybind11 ROOT_DIR = os.path.abspath("./") BUILD_DIR = os.path.join(ROOT_DIR, "build") +def get_pybind11_cmake_args(): + pybind11_sys_path = os.getenv("PYBIND11_SYSPATH") + if pybind11_sys_path: + # pybind11_include_dir = os.path.join(pybind11_sys_path, "include") + pybind11_cmake_dir = os.path.join(pybind11_sys_path, "share", "cmake", "pybind11") + else: + # pybind11_include_dir = pybind11.get_include() + pybind11_cmake_dir = pybind11.get_cmake_dir() + # print(f"{pybind11_include_dir=}") + print(f"{pybind11_cmake_dir=}") + return [f"-Dpybind11_DIR={pybind11_cmake_dir}"] -def run(cmd, cwd="./"): +def run(cmd: List[str], cwd: str="./"): - print(f"\nlaunch: {cmd}") + print_cmd = " ".join(cmd) + print(f"\nlaunch: {print_cmd}") - parts = cmd.split(" ") - message = subprocess.run(parts, cwd=cwd) + message = subprocess.run(cmd, cwd=cwd) if "returncode=0" in str(message): print(f" -> SUCCESS") @@ -27,20 +40,30 @@ def run(cmd, cwd="./"): def build_local(num_threads: int): - if not os.path.exists(BUILD_DIR): - print("python executable: ", sys.executable) + USE_SYSTEM_DEPS = os.getenv("USE_SYSTEM_DEPS", "OFF") - cmd = f"cmake -B {BUILD_DIR} -DPYTHON_EXECUTABLE={sys.executable}" - success = run(cmd, cwd=ROOT_DIR) - if not success: - raise RuntimeError("Error building.") - else: - print(f"build directory detected: {BUILD_DIR}") - cmd = f"cmake --build {BUILD_DIR} --target install" + print("python prefix: ", sys.exec_prefix) + print("python executable: ", sys.executable) + config_cmd = [ + "cmake", + "-B", f"{BUILD_DIR}", + f"-DUSE_SYSTEM_DEPS={USE_SYSTEM_DEPS}", + f"-DPYTHON_EXECUTABLE={sys.executable}", + ] + config_cmd.extend(get_pybind11_cmake_args()) + success = run(config_cmd, cwd=ROOT_DIR) + if not success: + raise RuntimeError("Error building.") + + build_cmd = [ + "cmake", + "--build", f"{BUILD_DIR}", + "--target=install", + ] if num_threads > 1: - cmd += f" -j {num_threads}" - success = run(cmd, cwd=ROOT_DIR) + build_cmd.extend(["-j", f"{num_threads}"]) + success = run(build_cmd, cwd=ROOT_DIR) if not success: raise RuntimeError("Error building.") diff --git a/cmake/extlib_cxxopts.cmake b/cmake/extlib_cxxopts.cmake index 1f625b6d..737e14aa 100644 --- a/cmake/extlib_cxxopts.cmake +++ b/cmake/extlib_cxxopts.cmake @@ -1,33 +1,49 @@ -cmake_minimum_required (VERSION 3.5) message(STATUS "entering in extlib_cxxopts.cmake") -include(ExternalProject) -include(CMakeParseArguments) +set(ext_name_cxxopts "cxxopts") -set(CXXOPTS_TAG v2.2.0) -set(CXXOPTS_URL https://github.com/jarro2783/cxxopts.git) +if(USE_SYSTEM_DEPS) + message(STATUS "using system-deps in extlib_cxxopts.cmake") -ExternalProject_Add(extlib_cxxopts - PREFIX extlib_cxxopts + # this will define the cxxopts target + find_package(cxxopts REQUIRED) - GIT_TAG ${CXXOPTS_TAG} - GIT_REPOSITORY ${CXXOPTS_URL} + add_library(${ext_name_cxxopts} INTERFACE IMPORTED) + add_dependencies(${ext_name_cxxopts} cxxopts) - INSTALL_DIR ${CXXOPTS_PREFIX_INSTALL_DIR} +else() + message(STATUS "ignoring system-deps extlib_cxxopts.cmake") - UPDATE_COMMAND "" - CONFIGURE_COMMAND "" + include(ExternalProject) + include(CMakeParseArguments) - BUILD_COMMAND "" - BUILD_ALWAYS OFF + set(CXXOPTS_URL https://github.com/jarro2783/cxxopts.git) + #set(CXXOPTS_TAG v2.2.0) + set(CXXOPTS_TAG v3.2.0) - INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory /include/ ${EXTERNALS_PREFIX_PATH}/include/ + ExternalProject_Add(extlib_cxxopts + PREFIX extlib_cxxopts - LOG_DOWNLOAD ON - LOG_BUILD ON + GIT_REPOSITORY ${CXXOPTS_URL} + GIT_TAG ${CXXOPTS_TAG} + + UPDATE_COMMAND "" + CONFIGURE_COMMAND "" + + BUILD_COMMAND "" + BUILD_ALWAYS OFF + + INSTALL_DIR ${EXTERNALS_PREFIX_PATH} + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory /include/ ${EXTERNALS_PREFIX_PATH}/include/ + + LOG_DOWNLOAD ON + LOG_BUILD ON ) -add_library(cxxopts INTERFACE) -add_custom_target(install_extlib_cxxopts DEPENDS extlib_cxxopts) -add_dependencies(cxxopts install_extlib_cxxopts) \ No newline at end of file + add_library(${ext_name_cxxopts} INTERFACE IMPORTED) + add_dependencies(${ext_name_cxxopts} extlib_cxxopts) + set_target_properties(${ext_name_cxxopts} PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES ${EXTERNALS_PREFIX_PATH}/include) + +endif() \ No newline at end of file diff --git a/cmake/extlib_jpeg.cmake b/cmake/extlib_jpeg.cmake index f77660ff..0f1ca3a1 100644 --- a/cmake/extlib_jpeg.cmake +++ b/cmake/extlib_jpeg.cmake @@ -1,36 +1,54 @@ message(STATUS "entering in extlib_jpeg.cmake") -include(ExternalProject) -include(CMakeParseArguments) +set(ext_name "jpeg") -set(JPEG_URL https://github.com/libjpeg-turbo/libjpeg-turbo.git) -set(JPEG_TAG 3.0.3) +if(USE_SYSTEM_DEPS) + find_package(PkgConfig) + pkg_check_modules(libjpeg REQUIRED IMPORTED_TARGET libjpeg) -ExternalProject_Add(extlib_jpeg - PREFIX extlib_jpeg + add_library(${ext_name} ALIAS PkgConfig::libjpeg) + #set_target_properties(${ext_name} PROPERTIES INTERFACE_LINK_LIBRARIES "${libjpeg_LIBRARIES}") + #set_target_properties(${ext_name} PROPERTIES INTERFACE_LINK_DIRECTORIES "${libjpeg_LIBRARY_DIRS}") + #set_target_properties(${ext_name} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${libjpeg_INCLUDEDIR}") - UPDATE_COMMAND "" - GIT_REPOSITORY ${JPEG_URL} - GIT_TAG ${JPEG_TAG} +else() + include(ExternalProject) + include(CMakeParseArguments) - BUILD_ALWAYS OFF + set(JPEG_URL https://github.com/libjpeg-turbo/libjpeg-turbo.git) + set(JPEG_TAG 3.0.3) - INSTALL_DIR ${EXTERNALS_PREFIX_PATH} + ExternalProject_Add(extlib_jpeg - CMAKE_ARGS \\ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON \\ - -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \\ - -DCMAKE_C_FLAGS=${ENV_ARCHFLAGS} \\ - -DARMV8_BUILD=ON \\ - -DCMAKE_INSTALL_LIBDIR=${EXTERNALS_PREFIX_PATH}/lib \\ - -DCMAKE_INSTALL_PREFIX=${EXTERNALS_PREFIX_PATH} + PREFIX extlib_jpeg - BUILD_IN_SOURCE ON - LOG_DOWNLOAD ON - # LOG_BUILD ON -) + UPDATE_COMMAND "" + GIT_REPOSITORY ${JPEG_URL} + GIT_TAG ${JPEG_TAG} -add_library(jpeg STATIC IMPORTED) -set_target_properties(jpeg PROPERTIES IMPORTED_LOCATION ${EXTERNALS_PREFIX_PATH}/lib/libjpeg.a) -add_dependencies(jpeg extlib_jpeg) + BUILD_ALWAYS OFF + + INSTALL_DIR ${EXTERNALS_PREFIX_PATH} + + CMAKE_ARGS \\ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \\ + -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \\ + -DCMAKE_C_FLAGS=${ENV_ARCHFLAGS} \\ + -DARMV8_BUILD=ON \\ + -DCMAKE_INSTALL_LIBDIR=${EXTERNALS_PREFIX_PATH}/lib \\ + -DCMAKE_INSTALL_PREFIX=${EXTERNALS_PREFIX_PATH} + + BUILD_IN_SOURCE ON + LOG_DOWNLOAD ON + # LOG_BUILD ON + ) + + add_library(${ext_name} STATIC IMPORTED) + add_dependencies(${ext_name} extlib_jpeg) + set_target_properties(${ext_name} PROPERTIES + IMPORTED_LOCATION ${EXTERNALS_PREFIX_PATH}/lib/libjpeg.a + INTERFACE_INCLUDE_DIRECTORIES ${EXTERNALS_PREFIX_PATH}/include + ) + +endif() diff --git a/cmake/extlib_json.cmake b/cmake/extlib_json.cmake index 769b7a22..25d557a3 100644 --- a/cmake/extlib_json.cmake +++ b/cmake/extlib_json.cmake @@ -1,28 +1,44 @@ message(STATUS "entering in extlib_json.cmake") -include(ExternalProject) -include(CMakeParseArguments) +set(ext_name "json") -set(JSON_URL https://github.com/nlohmann/json.git) -set(JSON_TAG v3.11.3) +if(USE_SYSTEM_DEPS) + # this will define the nlohmann_json::nlohmann_json target + find_package(nlohmann_json REQUIRED) -ExternalProject_Add(extlib_json - PREFIX extlib_json + add_library(${ext_name} INTERFACE IMPORTED) + add_dependencies(${ext_name} nlohmann_json::nlohmann_json) - GIT_REPOSITORY ${JSON_URL} - GIT_TAG ${JSON_TAG} +else() - UPDATE_COMMAND "" - CONFIGURE_COMMAND "" + include(ExternalProject) + include(CMakeParseArguments) - BUILD_COMMAND "" - BUILD_ALWAYS OFF + set(JSON_URL https://github.com/nlohmann/json.git) + set(JSON_TAG v3.11.3) - INSTALL_DIR ${EXTERNALS_PREFIX_PATH} - INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory /include/ ${EXTERNALS_PREFIX_PATH}/include/ + ExternalProject_Add(extlib_json + + PREFIX extlib_json + + GIT_REPOSITORY ${JSON_URL} + GIT_TAG ${JSON_TAG} + + UPDATE_COMMAND "" + CONFIGURE_COMMAND "" + + BUILD_COMMAND "" + BUILD_ALWAYS OFF + + INSTALL_DIR ${EXTERNALS_PREFIX_PATH} + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory /include/ ${EXTERNALS_PREFIX_PATH}/include/ ) -add_library(json INTERFACE) -add_custom_target(install_extlib_json DEPENDS extlib_json) -add_dependencies(json install_extlib_json) \ No newline at end of file + add_library(${ext_name} INTERFACE IMPORTED) + add_dependencies(${ext_name} extlib_json) + set_target_properties(${ext_name} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${EXTERNALS_PREFIX_PATH}/include) + +endif() + + diff --git a/cmake/extlib_loguru.cmake b/cmake/extlib_loguru.cmake index 6ed74169..b4a452f5 100644 --- a/cmake/extlib_loguru.cmake +++ b/cmake/extlib_loguru.cmake @@ -1,32 +1,54 @@ -cmake_minimum_required(VERSION 3.5) message(STATUS "entering in extlib_loguru.cmake") -include(ExternalProject) -include(CMakeParseArguments) +set(ext_name_loguru "loguru") -set(LOGURU_INCLUDE_DIR ${EXTERNALS_PREFIX_PATH}/include/loguru) -execute_process(COMMAND mkdir -p ${LOGURU_INCLUDE_DIR}) +if(USE_SYSTEM_DEPS) + message(STATUS "using system-deps in extlib_loguru.cmake") -set(LOGURU_URL https://github.com/emilk/loguru) -#set(LOGURU_TAG ) + # this will define the loguru target + find_package(loguru REQUIRED) -ExternalProject_Add(extlib_loguru - PREFIX extlib_loguru + add_library(${ext_name_loguru} INTERFACE IMPORTED) + add_dependencies(${ext_name_loguru} loguru) - GIT_REPOSITORY ${LOGURU_URL} - #GIT_TAG ${LOGURU_TAG} +else() + message(STATUS "ignoring system-deps extlib_loguru.cmake") - UPDATE_COMMAND "" - CONFIGURE_COMMAND "" + include(ExternalProject) + include(CMakeParseArguments) - BUILD_COMMAND "" - BUILD_ALWAYS OFF + set(LOGURU_INCLUDE_DIR ${EXTERNALS_PREFIX_PATH}/include/loguru) + execute_process(COMMAND mkdir -p ${LOGURU_INCLUDE_DIR}) - INSTALL_DIR ${EXTERNALS_PREFIX_PATH} - INSTALL_COMMAND ${CMAKE_COMMAND} -E copy /loguru.hpp ${LOGURU_INCLUDE_DIR} /loguru.cpp ${LOGURU_INCLUDE_DIR} + set(LOGURU_URL https://github.com/emilk/loguru) + set(LOGURU_TAG v2.1.0) + + ExternalProject_Add(extlib_loguru + PREFIX extlib_loguru + + GIT_REPOSITORY ${LOGURU_URL} + GIT_TAG ${LOGURU_TAG} + + UPDATE_COMMAND "" + CONFIGURE_COMMAND "" + + BUILD_COMMAND "" + BUILD_ALWAYS OFF + + INSTALL_DIR ${EXTERNALS_PREFIX_PATH} + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy /loguru.hpp ${LOGURU_INCLUDE_DIR} /loguru.cpp ${LOGURU_INCLUDE_DIR} + + LOG_DOWNLOAD ON + LOG_BUILD ON ) -add_library(loguru INTERFACE) -add_custom_target(install_extlib_loguru DEPENDS extlib_loguru) -add_dependencies(loguru install_extlib_loguru) \ No newline at end of file + # add_library(loguru INTERFACE) + # add_custom_target(install_extlib_loguru DEPENDS extlib_loguru) + # add_dependencies(loguru install_extlib_loguru) + + add_library(${ext_name_loguru} INTERFACE IMPORTED) + add_dependencies(${ext_name_loguru} extlib_loguru) + set_target_properties(${ext_name_loguru} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${EXTERNALS_PREFIX_PATH}/include) + +endif() \ No newline at end of file diff --git a/cmake/extlib_qpdf_v11.cmake b/cmake/extlib_qpdf_v11.cmake index 9bf76b64..cc464c26 100644 --- a/cmake/extlib_qpdf_v11.cmake +++ b/cmake/extlib_qpdf_v11.cmake @@ -1,65 +1,97 @@ message(STATUS "entering in extlib_qpdf.cmake") -include(ExternalProject) -include(CMakeParseArguments) +set(ext_name "qpdf") -set(QPDF_URL https://github.com/qpdf/qpdf.git) -set(QPDF_TAG v11.9.1 ) +if(USE_SYSTEM_DEPS) + find_package(PkgConfig) + pkg_check_modules(libqpdf REQUIRED IMPORTED_TARGET libqpdf) + + add_library(${ext_name} ALIAS PkgConfig::libqpdf) + #set_target_properties(${ext_name} PROPERTIES INTERFACE_LINK_LIBRARIES "${libqpdf_LIBRARIES}") + #set_target_properties(${ext_name} PROPERTIES INTERFACE_LINK_DIRECTORIES "${libqpdf_LIBRARY_DIRS}") + #set_target_properties(${ext_name} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${libqpdf_INCLUDEDIR}") -if(UNIX) - set(QPDF_EXTRA_CXX_FLAGS "-fPIC ") - set(QPDF_EXTRA_C_FLAGS "-fPIC ") else() - set(QPDF_EXTRA_CXX_FLAGS " ") - set(QPDF_EXTRA_C_FLAGS " ") -endif() -ExternalProject_Add(extlib_qpdf - PREFIX extlib_qpdf - - DEPENDS extlib_jpeg - - UPDATE_COMMAND "" - - GIT_REPOSITORY ${QPDF_URL} - GIT_TAG ${QPDF_TAG} - - BUILD_ALWAYS OFF - - INSTALL_DIR ${EXTERNALS_PREFIX_PATH} - - - CMAKE_ARGS \\ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON \\ - -DBUILD_SHARED_LIBS=ON \\ - -DUSE_IMPLICIT_CRYPTO=OFF \\ - -DREQUIRE_CRYPTO_NATIVE=ON \\ - -DCMAKE_CXX_FLAGS=${QPDF_EXTRA_CXX_FLAGS} \\ - -DCMAKE_C_FLAGS=${QPDF_EXTRA_C_FLAGS} \\ - -DLIBJPEG_LIBRARY=${EXTERNALS_PREFIX_PATH}/lib/libjpeg.a \\ - -DLIBJPEG_LIBRARIES=${EXTERNALS_PREFIX_PATH}/lib/libjpeg.a \\ - -DLIBJPEG_LIB_PATH=${EXTERNALS_PREFIX_PATH}/lib/libjpeg.a \\ - -DLIBJPEG_LIBDIR=${EXTERNALS_PREFIX_PATH}/lib \\ - -DLIBJPEG_H_PATH=${EXTERNALS_PREFIX_PATH}/include \\ - -DLIBJPEG_INCLUDEDIR=${EXTERNALS_PREFIX_PATH}/include \\ - -Dpc_libjpeg_LIBRARY=${EXTERNALS_PREFIX_PATH}/lib/libjpeg.a \\ - -Dpc_libjpeg_LIBRARIES=${EXTERNALS_PREFIX_PATH}/lib/libjpeg.a \\ - -Dpc_libjpeg_LIB_PATH=${EXTERNALS_PREFIX_PATH}/lib/libjpeg.a \\ - -Dpc_libjpeg_LIBDIR=${EXTERNALS_PREFIX_PATH}/lib \\ - -Dpc_libjpeg_H_PATH=${EXTERNALS_PREFIX_PATH}/include \\ - -Dpc_libjpeg_INCLUDEDIR=${EXTERNALS_PREFIX_PATH}/include \\ - -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \\ - -DINSTALL_EXAMPLES=OFF \\ - -DBUILD_DOC_DIST=OFF \\ - -DCMAKE_INSTALL_LIBDIR=${EXTERNALS_PREFIX_PATH}/lib \\ - -DCMAKE_INSTALL_PREFIX=${EXTERNALS_PREFIX_PATH} - - LOG_DOWNLOAD ON - # LOG_CONFIGURE ON - # LOG_BUILD ON + include(ExternalProject) + include(CMakeParseArguments) + + set(QPDF_URL https://github.com/qpdf/qpdf.git) + set(QPDF_TAG v11.9.1 ) + + set(QPDF_LIB ${EXTERNALS_PREFIX_PATH}/lib/libqpdf.a) + set(JPEG_LIB ${EXTERNALS_PREFIX_PATH}/lib/libjpeg.a) + + if(UNIX) + set(QPDF_EXTRA_CXX_FLAGS "-fPIC ") + set(QPDF_EXTRA_C_FLAGS "-fPIC ") + set(BUILD_SHARED_LIBS ON) + elseif(WIN32) + set(QPDF_EXTRA_CXX_FLAGS "") + set(QPDF_EXTRA_C_FLAGS "") + set(BUILD_SHARED_LIBS OFF) + else() + set(QPDF_EXTRA_CXX_FLAGS " ") + set(QPDF_EXTRA_C_FLAGS " ") + set(BUILD_SHARED_LIBS ON) + endif() + + ExternalProject_Add(extlib_qpdf + + PREFIX extlib_qpdf + + DEPENDS extlib_jpeg + + UPDATE_COMMAND "" + + GIT_REPOSITORY ${QPDF_URL} + GIT_TAG ${QPDF_TAG} + + BUILD_ALWAYS OFF + + INSTALL_DIR ${EXTERNALS_PREFIX_PATH} + + CMAKE_ARGS \\ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \\ + -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} \\ + -DUSE_IMPLICIT_CRYPTO=OFF \\ + -DREQUIRE_CRYPTO_NATIVE=ON \\ + -DCMAKE_CXX_FLAGS=${QPDF_EXTRA_CXX_FLAGS} \\ + -DCMAKE_C_FLAGS=${QPDF_EXTRA_C_FLAGS} \\ + -DLIBJPEG_LIBRARY=${JPEG_LIB} \\ + -DLIBJPEG_LIBRARIES=${JPEG_LIB} \\ + -DLIBJPEG_LIB_PATH=${JPEG_LIB} \\ + -DLIBJPEG_LIBDIR=${EXTERNALS_PREFIX_PATH}/lib \\ + -DLIBJPEG_H_PATH=${EXTERNALS_PREFIX_PATH}/include \\ + -DLIBJPEG_INCLUDEDIR=${EXTERNALS_PREFIX_PATH}/include \\ + -Dpc_libjpeg_LIBRARY=${JPEG_LIB} \\ + -Dpc_libjpeg_LIBRARIES=${JPEG_LIB} \\ + -Dpc_libjpeg_LIB_PATH=${JPEG_LIB} \\ + -Dpc_libjpeg_LIBDIR=${EXTERNALS_PREFIX_PATH}/lib \\ + -Dpc_libjpeg_H_PATH=${EXTERNALS_PREFIX_PATH}/include \\ + -Dpc_libjpeg_INCLUDEDIR=${EXTERNALS_PREFIX_PATH}/include \\ + -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} \\ + -DINSTALL_EXAMPLES=OFF \\ + -DBUILD_DOC_DIST=OFF \\ + -DCMAKE_INSTALL_LIBDIR=${EXTERNALS_PREFIX_PATH}/lib \\ + -DCMAKE_INSTALL_PREFIX=${EXTERNALS_PREFIX_PATH} + + LOG_DOWNLOAD ON ) -add_library(qpdf STATIC IMPORTED) -set_target_properties(qpdf PROPERTIES IMPORTED_LOCATION ${EXTERNALS_PREFIX_PATH}/lib/libqpdf.a) -add_dependencies(qpdf extlib_qpdf) + add_library(${ext_name} STATIC IMPORTED) + add_dependencies(${ext_name} extlib_qpdf) + set(EXT_INCLUDE_DIRS ${EXTERNALS_PREFIX_PATH}/include/qpdf) + # This is a workaround for the fact that included directories of an imported + # target should exist in the filesystem already at the configuration time. + # ref: https://gitlab.kitware.com/cmake/cmake/-/issues/15052 + file(MAKE_DIRECTORY ${EXT_INCLUDE_DIRS}) + set_target_properties(${ext_name} PROPERTIES + IMPORTED_LOCATION ${QPDF_LIB} + INTERFACE_LINK_LIBRARIES ${JPEG_LIB} + INTERFACE_LINK_DIRECTORIES ${EXTERNALS_PREFIX_PATH}/lib + INTERFACE_INCLUDE_DIRECTORIES ${EXT_INCLUDE_DIRS} + ) + +endif() diff --git a/cmake/extlib_utf8.git.cmake b/cmake/extlib_utf8.git.cmake index 201ccf50..daf3588d 100644 --- a/cmake/extlib_utf8.git.cmake +++ b/cmake/extlib_utf8.git.cmake @@ -1,28 +1,47 @@ message(STATUS "entering in extlib_utf8.cmake") -include(ExternalProject) -include(CMakeParseArguments) +set(ext_name "utf8") -set(UTF8_URL https://github.com/nemtrif/utfcpp.git) -set(UTF8_TAG v4.0.5) +if(USE_SYSTEM_DEPS) + message(STATUS "using system-deps in extlib_utf8.cmake") -ExternalProject_Add(extlib_utf8 - PREFIX extlib_utf8 + # this will define the utf8cpp target + find_package(utf8cpp REQUIRED) - GIT_REPOSITORY ${UTF8_URL} - GIT_TAG ${UTF8_TAG} + add_library(${ext_name} INTERFACE IMPORTED) + add_dependencies(${ext_name} utf8cpp) - UPDATE_COMMAND "" - CONFIGURE_COMMAND "" +else() + message(STATUS "ignoring system-deps extlib_utf8.cmake") - BUILD_COMMAND "" - BUILD_ALWAYS OFF + include(ExternalProject) + include(CMakeParseArguments) - INSTALL_DIR ${EXTERNALS_PREFIX_PATH} - INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory /source ${EXTERNALS_PREFIX_PATH}/include/utf8 + set(UTF8_URL https://github.com/nemtrif/utfcpp.git) + set(UTF8_TAG v4.0.5) + + ExternalProject_Add(extlib_utf8 + PREFIX extlib_utf8 + + GIT_REPOSITORY ${UTF8_URL} + GIT_TAG ${UTF8_TAG} + + UPDATE_COMMAND "" + CONFIGURE_COMMAND "" + + BUILD_COMMAND "" + BUILD_ALWAYS OFF + + INSTALL_DIR ${EXTERNALS_PREFIX_PATH} + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory /source ${EXTERNALS_PREFIX_PATH}/include + + LOG_DOWNLOAD ON + LOG_BUILD ON ) -add_library(utf8 INTERFACE) -add_custom_target(install_extlib_utf8 DEPENDS extlib_utf8) -add_dependencies(utf8 install_extlib_utf8) \ No newline at end of file + add_library(${ext_name} INTERFACE IMPORTED) + add_dependencies(${ext_name} extlib_utf8) + set_target_properties(${ext_name} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${EXTERNALS_PREFIX_PATH}/include) + +endif() diff --git a/cmake/os_opts.cmake b/cmake/os_opts.cmake index 34be7f9e..f4dc9a52 100644 --- a/cmake/os_opts.cmake +++ b/cmake/os_opts.cmake @@ -4,7 +4,11 @@ message(STATUS "entering in 'os_opts.cmake'") if(WIN32) message(STATUS "compiling on windows") - set(LIB_LINK qpdf jpeg utf8 z) + # set(LIB_LINK qpdf jpeg utf8 z) + find_package(ZLIB) + + set(LIB_LINK) + set(OS_DEPENDENCIES ZLIB::ZLIB) elseif(APPLE) message(STATUS "compiling on mac-osx") @@ -12,20 +16,24 @@ elseif(APPLE) #set(CMAKE_MACOSX_RPATH 1) find_library(FoundationLib Foundation) + find_package(ZLIB) #message("LIB: ${FoundationLib}") find_library(SystemConfigurationLib SystemConfiguration) #message("LIB: ${SystemConfigurationLib}") - set(LIB_LINK qpdf jpeg utf8 z) + # set(LIB_LINK qpdf jpeg utf8 z) + set(OS_DEPENDENCIES ZLIB::ZLIB) + - list(APPEND LIB_LINK ${FoundationLib} ${SystemConfigurationLib}) + set(LIB_LINK ${FoundationLib} ${SystemConfigurationLib}) elseif(UNIX) message(STATUS "compiling on linux") - set(LIB_LINK qpdf jpeg utf8 z) - - list(APPEND LIB_LINK dl m pthread rt resolv) + # set(LIB_LINK qpdf jpeg utf8 z) + find_package(ZLIB) + set(LIB_LINK dl m pthread rt resolv) + set(OS_DEPENDENCIES ZLIB::ZLIB) endif() diff --git a/poetry.lock b/poetry.lock index 5486a287..7cb512ca 100644 --- a/poetry.lock +++ b/poetry.lock @@ -31,13 +31,13 @@ test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] [[package]] name = "attrs" -version = "24.1.0" +version = "24.2.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.7" files = [ - {file = "attrs-24.1.0-py3-none-any.whl", hash = "sha256:377b47448cb61fea38533f671fba0d0f8a96fd58facd4dc518e3dac9dbea0905"}, - {file = "attrs-24.1.0.tar.gz", hash = "sha256:adbdec84af72d38be7628e353a09b6a6790d15cd71819f6e9d7b0faa8a125745"}, + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, ] [package.extras] @@ -138,85 +138,100 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "bracex" -version = "2.5" +version = "2.5.post1" description = "Bash style brace expander." optional = false python-versions = ">=3.8" files = [ - {file = "bracex-2.5-py3-none-any.whl", hash = "sha256:d2fcf4b606a82ac325471affe1706dd9bbaa3536c91ef86a31f6b766f3dad1d0"}, - {file = "bracex-2.5.tar.gz", hash = "sha256:0725da5045e8d37ea9592ab3614d8b561e22c3c5fde3964699be672e072ab611"}, + {file = "bracex-2.5.post1-py3-none-any.whl", hash = "sha256:13e5732fec27828d6af308628285ad358047cec36801598368cb28bc631dbaf6"}, + {file = "bracex-2.5.post1.tar.gz", hash = "sha256:12c50952415bfa773d2d9ccb8e79651b8cdb1f31a42f6091b804f6ba2b4a66b6"}, ] [[package]] name = "certifi" -version = "2024.7.4" +version = "2024.8.30" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, - {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, ] [[package]] name = "cffi" -version = "1.16.0" +version = "1.17.1" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" files = [ - {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, - {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, - {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, - {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, - {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, - {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, - {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, - {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, - {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, - {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, - {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, - {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, - {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, - {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, - {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] [package.dependencies] @@ -334,13 +349,13 @@ files = [ [[package]] name = "cibuildwheel" -version = "2.20.0" +version = "2.21.2" description = "Build Python wheels on CI with minimal configuration." optional = false python-versions = ">=3.8" files = [ - {file = "cibuildwheel-2.20.0-py3-none-any.whl", hash = "sha256:d90719cc386af540b52f3cd8c733972c1fe222bbb2a941e5f5cd87215a0c82a3"}, - {file = "cibuildwheel-2.20.0.tar.gz", hash = "sha256:5c3fd67e4417fe37021b595bedcaf0c87e5800ecf9d6096229967858a20cc6c8"}, + {file = "cibuildwheel-2.21.2-py3-none-any.whl", hash = "sha256:60c3bd4e374c459dda09c4be5da5084e86e19310dbd9052f630b76bf3942aabb"}, + {file = "cibuildwheel-2.21.2.tar.gz", hash = "sha256:57b04c8afe1db6e03e78f9a4af8525410344a65a585a3369755433ce5fbc7754"}, ] [package.dependencies] @@ -356,7 +371,7 @@ typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} [package.extras] bin = ["click", "packaging (>=21.0)", "pip-tools", "pygithub", "pyyaml", "requests", "rich (>=9.6)"] dev = ["build", "click", "jinja2", "packaging (>=21.0)", "pip-tools", "pygithub", "pytest (>=6)", "pytest-timeout", "pytest-xdist", "pyyaml", "requests", "rich (>=9.6)", "setuptools", "tomli-w", "validate-pyproject"] -docs = ["jinja2 (>=3.1.2)", "mkdocs (==1.3.1)", "mkdocs-include-markdown-plugin (==2.8.0)", "mkdocs-macros-plugin", "pymdown-extensions"] +docs = ["jinja2 (>=3.1.2)", "mkdocs (==1.6.1)", "mkdocs-include-markdown-plugin (==6.2.2)", "mkdocs-macros-plugin", "pymdown-extensions"] test = ["build", "jinja2", "pytest (>=6)", "pytest-timeout", "pytest-xdist", "setuptools", "tomli-w", "validate-pyproject"] uv = ["uv"] @@ -401,38 +416,38 @@ files = [ [[package]] name = "cryptography" -version = "43.0.0" +version = "43.0.1" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, - {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, - {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, - {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, - {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, - {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, - {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, - {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, - {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, - {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, - {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, + {file = "cryptography-43.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a"}, + {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042"}, + {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494"}, + {file = "cryptography-43.0.1-cp37-abi3-win32.whl", hash = "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2"}, + {file = "cryptography-43.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d"}, + {file = "cryptography-43.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1"}, + {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa"}, + {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4"}, + {file = "cryptography-43.0.1-cp39-abi3-win32.whl", hash = "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47"}, + {file = "cryptography-43.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2"}, + {file = "cryptography-43.0.1.tar.gz", hash = "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d"}, ] [package.dependencies] @@ -445,7 +460,7 @@ nox = ["nox"] pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "cryptography-vectors (==43.0.1)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] @@ -526,13 +541,13 @@ test = ["pytest (>=6)"] [[package]] name = "executing" -version = "2.0.1" +version = "2.1.0" description = "Get the currently executing AST node of a frame, and other information" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, - {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, + {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, + {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, ] [package.extras] @@ -540,19 +555,19 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "filelock" -version = "3.15.4" +version = "3.16.1" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, - {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] -typing = ["typing-extensions (>=4.8)"] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] [[package]] name = "gitdb" @@ -588,13 +603,13 @@ test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", [[package]] name = "identify" -version = "2.6.0" +version = "2.6.1" description = "File identification library for Python" optional = false python-versions = ">=3.8" files = [ - {file = "identify-2.6.0-py2.py3-none-any.whl", hash = "sha256:e79ae4406387a9d300332b5fd366d8994f1525e8414984e1a59e058b2eda2dd0"}, - {file = "identify-2.6.0.tar.gz", hash = "sha256:cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf"}, + {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, + {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, ] [package.extras] @@ -602,33 +617,40 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.7" +version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, ] +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + [[package]] name = "importlib-metadata" -version = "8.2.0" +version = "8.5.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-8.2.0-py3-none-any.whl", hash = "sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369"}, - {file = "importlib_metadata-8.2.0.tar.gz", hash = "sha256:72e8d4399996132204f9a16dcc751af254a48f8d1b20b9ff0f98d4a8f901e73d"}, + {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, + {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, ] [package.dependencies] -zipp = ">=0.5" +zipp = ">=3.20" [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] perf = ["ipython"] -test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy"] [[package]] name = "iniconfig" @@ -723,39 +745,43 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-ena [[package]] name = "jaraco-context" -version = "5.3.0" +version = "6.0.1" description = "Useful decorators and context managers" optional = false python-versions = ">=3.8" files = [ - {file = "jaraco.context-5.3.0-py3-none-any.whl", hash = "sha256:3e16388f7da43d384a1a7cd3452e72e14732ac9fe459678773a3608a812bf266"}, - {file = "jaraco.context-5.3.0.tar.gz", hash = "sha256:c2f67165ce1f9be20f32f650f25d8edfc1646a8aeee48ae06fb35f90763576d2"}, + {file = "jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4"}, + {file = "jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3"}, ] [package.dependencies] "backports.tarfile" = {version = "*", markers = "python_version < \"3.12\""} [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["portend", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["portend", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [[package]] name = "jaraco-functools" -version = "4.0.2" +version = "4.1.0" description = "Functools like those found in stdlib" optional = false python-versions = ">=3.8" files = [ - {file = "jaraco.functools-4.0.2-py3-none-any.whl", hash = "sha256:c9d16a3ed4ccb5a889ad8e0b7a343401ee5b2a71cee6ed192d3f68bc351e94e3"}, - {file = "jaraco_functools-4.0.2.tar.gz", hash = "sha256:3460c74cd0d32bf82b9576bbb3527c4364d5b27a21f5158a62aed6c4b42e23f5"}, + {file = "jaraco.functools-4.1.0-py3-none-any.whl", hash = "sha256:ad159f13428bc4acbf5541ad6dec511f91573b90fba04df61dafa2a1231cf649"}, + {file = "jaraco_functools-4.1.0.tar.gz", hash = "sha256:70f7e0e2ae076498e212562325e805204fc092d7b4c17e0e86c959e249701a9d"}, ] [package.dependencies] more-itertools = "*" [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["jaraco.classes", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.classes", "pytest (>=6,!=8.1.*)"] +type = ["pytest-mypy"] [[package]] name = "jedi" @@ -793,13 +819,13 @@ trio = ["async_generator", "trio"] [[package]] name = "keyring" -version = "25.3.0" +version = "25.4.1" description = "Store and access your passwords safely." optional = false python-versions = ">=3.8" files = [ - {file = "keyring-25.3.0-py3-none-any.whl", hash = "sha256:8d963da00ccdf06e356acd9bf3b743208878751032d8599c6cc89eb51310ffae"}, - {file = "keyring-25.3.0.tar.gz", hash = "sha256:8d85a1ea5d6db8515b59e1c5d1d1678b03cf7fc8b8dcfb1651e8c4a524eb42ef"}, + {file = "keyring-25.4.1-py3-none-any.whl", hash = "sha256:5426f817cf7f6f007ba5ec722b1bcad95a75b27d780343772ad76b17cb47b0bf"}, + {file = "keyring-25.4.1.tar.gz", hash = "sha256:b07ebc55f3e8ed86ac81dd31ef14e81ace9dd9c3d4b5d77a6e9a2016d0d71a1b"}, ] [package.dependencies] @@ -812,9 +838,13 @@ pywin32-ctypes = {version = ">=0.2.0", markers = "sys_platform == \"win32\""} SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] completion = ["shtab (>=1.1.0)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["pyfakefs", "pytest (>=6,!=8.1.*)"] +type = ["pygobject-stubs", "pytest-mypy", "shtab", "types-pywin32"] [[package]] name = "macholib" @@ -860,13 +890,13 @@ traitlets = "*" [[package]] name = "more-itertools" -version = "10.3.0" +version = "10.5.0" description = "More routines for operating on iterables, beyond itertools" optional = false python-versions = ">=3.8" files = [ - {file = "more-itertools-10.3.0.tar.gz", hash = "sha256:e5d93ef411224fbcef366a6e8ddc4c5781bc6359d43412a65dd5964e46111463"}, - {file = "more_itertools-10.3.0-py3-none-any.whl", hash = "sha256:ea6a02e24a9161e51faad17a8782b92a0df82c12c1c8886fec7f0c3fa1a1b320"}, + {file = "more-itertools-10.5.0.tar.gz", hash = "sha256:5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6"}, + {file = "more_itertools-10.5.0-py3-none-any.whl", hash = "sha256:037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef"}, ] [[package]] @@ -955,13 +985,13 @@ files = [ [[package]] name = "pefile" -version = "2023.2.7" +version = "2024.8.26" description = "Python PE parsing module" optional = false python-versions = ">=3.6.0" files = [ - {file = "pefile-2023.2.7-py3-none-any.whl", hash = "sha256:da185cd2af68c08a6cd4481f7325ed600a88f6a813bad9dea07ab3ef73d8d8d6"}, - {file = "pefile-2023.2.7.tar.gz", hash = "sha256:82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc"}, + {file = "pefile-2024.8.26-py3-none-any.whl", hash = "sha256:76f8b485dcd3b1bb8166f1128d395fa3d87af26360c2358fb75b80019b957c6f"}, + {file = "pefile-2024.8.26.tar.gz", hash = "sha256:3ff6c5d8b43e8c37bb6e6dd5085658d658a7a0bdcd20b6a07b1fcfc1c4e9d632"}, ] [[package]] @@ -1091,19 +1121,19 @@ testing = ["pytest", "pytest-cov", "wheel"] [[package]] name = "platformdirs" -version = "4.2.2" +version = "4.3.6" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, - {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] -type = ["mypy (>=1.8)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] [[package]] name = "pluggy" @@ -1140,13 +1170,13 @@ virtualenv = ">=20.10.0" [[package]] name = "prompt-toolkit" -version = "3.0.47" +version = "3.0.48" description = "Library for building powerful interactive command lines in Python" optional = false python-versions = ">=3.7.0" files = [ - {file = "prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10"}, - {file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"}, + {file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"}, + {file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"}, ] [package.dependencies] @@ -1274,75 +1304,100 @@ docs = ["Jinja2 (==3.0.3)", "Sphinx (==1.8.6)"] mypy = ["mypy", "types-requests"] test = ["coverage (>=5,<6)", "mock (==1.3.0)", "pytest (>=7,<8)", "pytest-mock (>=2,<3)", "pytest-xdist (>=1,<2)", "responses (==0.13.3)"] +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] + [[package]] name = "pywin32-ctypes" -version = "0.2.2" +version = "0.2.3" description = "A (partial) reimplementation of pywin32 using ctypes/cffi" optional = false python-versions = ">=3.6" files = [ - {file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60"}, - {file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"}, + {file = "pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755"}, + {file = "pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8"}, ] [[package]] name = "pyyaml" -version = "6.0.1" +version = "6.0.2" description = "YAML parser and emitter for Python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] [[package]] @@ -1507,24 +1562,24 @@ files = [ [[package]] name = "tomli" -version = "2.0.1" +version = "2.0.2" description = "A lil' TOML parser" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, + {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, + {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, ] [[package]] name = "tomlkit" -version = "0.13.0" +version = "0.13.2" description = "Style preserving TOML library" optional = false python-versions = ">=3.8" files = [ - {file = "tomlkit-0.13.0-py3-none-any.whl", hash = "sha256:7075d3042d03b80f603482d69bf0c8f345c2b30e41699fd8883227f89972b264"}, - {file = "tomlkit-0.13.0.tar.gz", hash = "sha256:08ad192699734149f5b97b45f1f18dad7eb1b6d16bc72ad0c2335772650d7b72"}, + {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, + {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, ] [[package]] @@ -1598,13 +1653,13 @@ files = [ [[package]] name = "urllib3" -version = "2.2.2" +version = "2.2.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, - {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, ] [package.extras] @@ -1615,13 +1670,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.26.3" +version = "20.26.6" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589"}, - {file = "virtualenv-20.26.3.tar.gz", hash = "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a"}, + {file = "virtualenv-20.26.6-py3-none-any.whl", hash = "sha256:7345cc5b25405607a624d8418154577459c3e0277f5466dd79c49d5e492995f2"}, + {file = "virtualenv-20.26.6.tar.gz", hash = "sha256:280aede09a2a5c317e409a00102e7077c6432c5a38f0ef938e643805a7ad2c48"}, ] [package.dependencies] @@ -1660,20 +1715,24 @@ test = ["pytest (>=6.0.0)", "setuptools (>=65)"] [[package]] name = "zipp" -version = "3.19.2" +version = "3.20.2" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, - {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, + {file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"}, + {file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"}, ] [package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "89d04defd474e4828ae97a60c75121205a7b4dd19b8c7a78fd704c85c40fb620" +content-hash = "9775a94fd7aa0bd336229f0b66976cad280a16d13e05a284175b3756f0d3c693" diff --git a/pyproject.toml b/pyproject.toml index 2fd3bac6..f684d9b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "docling-parse" -version = "1.3.0" +version = "1.4.1" description = "Simple package to extract text with coordinates from programmatic PDFs" authors = ["Peter Staar "] maintainers = [ @@ -29,13 +29,26 @@ readme = "README.md" packages = [{include = "docling_parse"}] include = [ {path = "docling_parse/*.so", format = "wheel"}, - {path = "docling_parse/pdf_resources", format = "wheel"} + {path = "docling_parse/*.pyd", format = "wheel"}, + {path = "docling_parse/*.dll", format = "wheel"}, + {path = "docling_parse/pdf_resources", format = ["sdist", "wheel"]}, + {path = "docling_parse/pdf_resources", format = ["sdist", "wheel"]}, + {path = "CMakeLists.txt", format = "sdist"}, + {path = "build.py", format = "sdist"}, + {path = "*.md", format = "sdist"}, + {path = "poetry.lock", format = "sdist"}, + {path = "app/*.cpp", format = "sdist"}, + {path = "cmake/", format = "sdist"}, + {path = "app/", format = "sdist"}, + {path = "src/", format = "sdist"}, + {path = "tests/", format = "sdist"}, ] build = "build.py" [tool.poetry.dependencies] python = "^3.9" tabulate = ">=0.9.0,<1.0.0" +pywin32 = { version = "^306", markers = "sys_platform == 'win32'" } [tool.poetry.group.dev.dependencies] pytest = "^7.4.2" @@ -60,7 +73,7 @@ pillow = "^10.4.0" docling-parse = "docling_parse.run:main" [build-system] -requires = ["poetry-core"] +requires = ["poetry-core", "pybind11>=2.13.1"] build-backend = "poetry.core.masonry.api" [tool.black] diff --git a/src/pybind/docling_parser_v1.h b/src/pybind/docling_parser_v1.h index 3c02a9fa..0b573dfc 100644 --- a/src/pybind/docling_parser_v1.h +++ b/src/pybind/docling_parser_v1.h @@ -3,7 +3,7 @@ #ifndef PYBIND_PDF_PARSER_H #define PYBIND_PDF_PARSER_H -#include +#include #include diff --git a/src/v2.h b/src/v2.h index ad830f4d..8cb60b82 100644 --- a/src/v2.h +++ b/src/v2.h @@ -23,7 +23,8 @@ #define LOGURU_WITH_STREAMS 1 #include -#include +//#include +#include #include #define POINTERHOLDER_TRANSITION 0 // eliminate warnings from QPDF diff --git a/src/v2/parser.h b/src/v2/parser.h index e7ba2336..11185ec5 100644 --- a/src/v2/parser.h +++ b/src/v2/parser.h @@ -12,8 +12,12 @@ namespace plib public: parser(); + parser(std::string loglevel); + ~parser(); + void set_loglevel_with_label(std::string level); + void parse(std::string filename); void parse(nlohmann::json config); @@ -21,6 +25,8 @@ namespace plib private: + + void execute_parse(); bool parse_input(std::string filename); @@ -42,8 +48,38 @@ namespace plib //LOG_S(INFO) << "QPDF-version: " << QPDF::QPDFVersion(); } + parser::parser(std::string loglevel) + { + set_loglevel_with_label(loglevel); + LOG_S(INFO) << "QPDF-version: " << QPDF::QPDFVersion(); + } + parser::~parser() {} + + void parser::set_loglevel_with_label(std::string level) + { + if(level=="info") + { + loguru::g_stderr_verbosity = loguru::Verbosity_INFO; + } + else if(level=="warning") + { + loguru::g_stderr_verbosity = loguru::Verbosity_WARNING; + } + else if(level=="error") + { + loguru::g_stderr_verbosity = loguru::Verbosity_ERROR; + } + else if(level=="fatal") + { + loguru::g_stderr_verbosity = loguru::Verbosity_FATAL; + } + else + { + loguru::g_stderr_verbosity = loguru::Verbosity_ERROR; + } + } void parser::parse(std::string filename) {