touchlab-comm-py 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- touchlab_comm_py-0.1.1/.github/workflows/release.yml +87 -0
- touchlab_comm_py-0.1.1/.gitignore +11 -0
- touchlab_comm_py-0.1.1/.gitmodules +3 -0
- touchlab_comm_py-0.1.1/CMakeLists.txt +48 -0
- touchlab_comm_py-0.1.1/LICENSE.txt +76 -0
- touchlab_comm_py-0.1.1/PKG-INFO +73 -0
- touchlab_comm_py-0.1.1/README.md +54 -0
- touchlab_comm_py-0.1.1/examples/example.py +47 -0
- touchlab_comm_py-0.1.1/include/touchlab_comm/touchlab_comm.hpp +98 -0
- touchlab_comm_py-0.1.1/lib/libtouchlab_comm_static.a +0 -0
- touchlab_comm_py-0.1.1/lib/touchlab_comm_static.lib +0 -0
- touchlab_comm_py-0.1.1/pybind11/.appveyor.yml +35 -0
- touchlab_comm_py-0.1.1/pybind11/.clang-format +38 -0
- touchlab_comm_py-0.1.1/pybind11/.clang-tidy +79 -0
- touchlab_comm_py-0.1.1/pybind11/.cmake-format.yaml +73 -0
- touchlab_comm_py-0.1.1/pybind11/.codespell-ignore-lines +35 -0
- touchlab_comm_py-0.1.1/pybind11/.gitattributes +1 -0
- touchlab_comm_py-0.1.1/pybind11/.github/CODEOWNERS +9 -0
- touchlab_comm_py-0.1.1/pybind11/.github/CONTRIBUTING.md +388 -0
- touchlab_comm_py-0.1.1/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +61 -0
- touchlab_comm_py-0.1.1/pybind11/.github/ISSUE_TEMPLATE/config.yml +8 -0
- touchlab_comm_py-0.1.1/pybind11/.github/dependabot.yml +15 -0
- touchlab_comm_py-0.1.1/pybind11/.github/labeler.yml +13 -0
- touchlab_comm_py-0.1.1/pybind11/.github/labeler_merged.yml +8 -0
- touchlab_comm_py-0.1.1/pybind11/.github/matchers/pylint.json +32 -0
- touchlab_comm_py-0.1.1/pybind11/.github/pull_request_template.md +19 -0
- touchlab_comm_py-0.1.1/pybind11/.github/workflows/ci.yml +1209 -0
- touchlab_comm_py-0.1.1/pybind11/.github/workflows/configure.yml +92 -0
- touchlab_comm_py-0.1.1/pybind11/.github/workflows/emscripten.yaml +30 -0
- touchlab_comm_py-0.1.1/pybind11/.github/workflows/format.yml +60 -0
- touchlab_comm_py-0.1.1/pybind11/.github/workflows/labeler.yml +25 -0
- touchlab_comm_py-0.1.1/pybind11/.github/workflows/pip.yml +120 -0
- touchlab_comm_py-0.1.1/pybind11/.github/workflows/upstream.yml +116 -0
- touchlab_comm_py-0.1.1/pybind11/.gitignore +47 -0
- touchlab_comm_py-0.1.1/pybind11/.pre-commit-config.yaml +158 -0
- touchlab_comm_py-0.1.1/pybind11/.readthedocs.yml +20 -0
- touchlab_comm_py-0.1.1/pybind11/CMakeLists.txt +351 -0
- touchlab_comm_py-0.1.1/pybind11/LICENSE +29 -0
- touchlab_comm_py-0.1.1/pybind11/MANIFEST.in +6 -0
- touchlab_comm_py-0.1.1/pybind11/README.rst +205 -0
- touchlab_comm_py-0.1.1/pybind11/SECURITY.md +13 -0
- touchlab_comm_py-0.1.1/pybind11/docs/Doxyfile +21 -0
- touchlab_comm_py-0.1.1/pybind11/docs/_static/css/custom.css +3 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/chrono.rst +81 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/custom.rst +137 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/eigen.rst +310 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/functional.rst +109 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/index.rst +43 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/overview.rst +170 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/stl.rst +249 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/strings.rst +296 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/classes.rst +1349 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/deadlock.md +391 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/deprecated.rst +113 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/embedding.rst +262 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/exceptions.rst +400 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/functions.rst +616 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/misc.rst +436 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/pycpp/index.rst +13 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/pycpp/numpy.rst +453 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/pycpp/object.rst +286 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/pycpp/utilities.rst +155 -0
- touchlab_comm_py-0.1.1/pybind11/docs/advanced/smart_ptrs.rst +179 -0
- touchlab_comm_py-0.1.1/pybind11/docs/basics.rst +314 -0
- touchlab_comm_py-0.1.1/pybind11/docs/benchmark.py +89 -0
- touchlab_comm_py-0.1.1/pybind11/docs/benchmark.rst +95 -0
- touchlab_comm_py-0.1.1/pybind11/docs/changelog.rst +3285 -0
- touchlab_comm_py-0.1.1/pybind11/docs/classes.rst +648 -0
- touchlab_comm_py-0.1.1/pybind11/docs/cmake/index.rst +8 -0
- touchlab_comm_py-0.1.1/pybind11/docs/compiling.rst +728 -0
- touchlab_comm_py-0.1.1/pybind11/docs/conf.py +369 -0
- touchlab_comm_py-0.1.1/pybind11/docs/faq.rst +352 -0
- touchlab_comm_py-0.1.1/pybind11/docs/index.rst +49 -0
- touchlab_comm_py-0.1.1/pybind11/docs/installing.rst +105 -0
- touchlab_comm_py-0.1.1/pybind11/docs/limitations.rst +68 -0
- touchlab_comm_py-0.1.1/pybind11/docs/pybind11-logo.png +0 -0
- touchlab_comm_py-0.1.1/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
- touchlab_comm_py-0.1.1/pybind11/docs/pybind11_vs_boost_python1.svg +427 -0
- touchlab_comm_py-0.1.1/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
- touchlab_comm_py-0.1.1/pybind11/docs/pybind11_vs_boost_python2.svg +427 -0
- touchlab_comm_py-0.1.1/pybind11/docs/reference.rst +130 -0
- touchlab_comm_py-0.1.1/pybind11/docs/release.rst +143 -0
- touchlab_comm_py-0.1.1/pybind11/docs/requirements.in +6 -0
- touchlab_comm_py-0.1.1/pybind11/docs/requirements.txt +275 -0
- touchlab_comm_py-0.1.1/pybind11/docs/upgrade.rst +595 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/attr.h +715 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/buffer_info.h +208 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/cast.h +2293 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/chrono.h +225 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/common.h +2 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/complex.h +74 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/conduit/README.txt +15 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/conduit/pybind11_conduit_v1.h +111 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/conduit/pybind11_platform_abi_id.h +87 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/conduit/wrap_include_python_h.h +72 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/class.h +818 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/common.h +1207 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/cpp_conduit.h +77 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/descr.h +201 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +39 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/exception_translation.h +71 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/function_record_pyobject.h +208 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/init.h +505 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/internals.h +632 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/native_enum_data.h +201 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/pybind11_namespace_macros.h +82 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/struct_smart_holder.h +358 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/type_caster_base.h +1597 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/typeid.h +65 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/using_smart_holder.h +22 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/value_and_holder.h +78 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/eigen/common.h +9 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/eigen/matrix.h +723 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/eigen/tensor.h +521 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/eigen.h +12 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/embed.h +304 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/eval.h +156 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/functional.h +149 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/gil.h +196 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/gil_safe_call_once.h +102 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/gil_simple.h +37 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/iostream.h +265 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/native_enum.h +66 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/numpy.h +2187 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/operators.h +202 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/options.h +92 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/pybind11.h +3534 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/pytypes.h +2676 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/stl/filesystem.h +124 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/stl.h +669 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/stl_bind.h +858 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/trampoline_self_life_support.h +60 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/type_caster_pyobject_ptr.h +61 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/typing.h +295 -0
- touchlab_comm_py-0.1.1/pybind11/include/pybind11/warnings.h +75 -0
- touchlab_comm_py-0.1.1/pybind11/noxfile.py +111 -0
- touchlab_comm_py-0.1.1/pybind11/pybind11/__init__.py +19 -0
- touchlab_comm_py-0.1.1/pybind11/pybind11/__main__.py +93 -0
- touchlab_comm_py-0.1.1/pybind11/pybind11/_version.py +12 -0
- touchlab_comm_py-0.1.1/pybind11/pybind11/commands.py +39 -0
- touchlab_comm_py-0.1.1/pybind11/pybind11/py.typed +0 -0
- touchlab_comm_py-0.1.1/pybind11/pybind11/setup_helpers.py +500 -0
- touchlab_comm_py-0.1.1/pybind11/pyproject.toml +85 -0
- touchlab_comm_py-0.1.1/pybind11/setup.cfg +42 -0
- touchlab_comm_py-0.1.1/pybind11/setup.py +153 -0
- touchlab_comm_py-0.1.1/pybind11/tests/CMakeLists.txt +622 -0
- touchlab_comm_py-0.1.1/pybind11/tests/conftest.py +244 -0
- touchlab_comm_py-0.1.1/pybind11/tests/constructor_stats.h +330 -0
- touchlab_comm_py-0.1.1/pybind11/tests/cross_module_gil_utils.cpp +111 -0
- touchlab_comm_py-0.1.1/pybind11/tests/cross_module_interleaved_error_already_set.cpp +54 -0
- touchlab_comm_py-0.1.1/pybind11/tests/custom_exceptions.py +10 -0
- touchlab_comm_py-0.1.1/pybind11/tests/eigen_tensor_avoid_stl_array.cpp +16 -0
- touchlab_comm_py-0.1.1/pybind11/tests/env.py +36 -0
- touchlab_comm_py-0.1.1/pybind11/tests/exo_planet_c_api.cpp +76 -0
- touchlab_comm_py-0.1.1/pybind11/tests/exo_planet_pybind11.cpp +19 -0
- touchlab_comm_py-0.1.1/pybind11/tests/extra_python_package/pytest.ini +0 -0
- touchlab_comm_py-0.1.1/pybind11/tests/extra_python_package/test_files.py +318 -0
- touchlab_comm_py-0.1.1/pybind11/tests/extra_setuptools/pytest.ini +0 -0
- touchlab_comm_py-0.1.1/pybind11/tests/extra_setuptools/test_setuphelper.py +153 -0
- touchlab_comm_py-0.1.1/pybind11/tests/home_planet_very_lonely_traveler.cpp +13 -0
- touchlab_comm_py-0.1.1/pybind11/tests/local_bindings.h +92 -0
- touchlab_comm_py-0.1.1/pybind11/tests/object.h +205 -0
- touchlab_comm_py-0.1.1/pybind11/tests/pure_cpp/CMakeLists.txt +20 -0
- touchlab_comm_py-0.1.1/pybind11/tests/pure_cpp/smart_holder_poc.h +55 -0
- touchlab_comm_py-0.1.1/pybind11/tests/pure_cpp/smart_holder_poc_test.cpp +415 -0
- touchlab_comm_py-0.1.1/pybind11/tests/pybind11_cross_module_tests.cpp +149 -0
- touchlab_comm_py-0.1.1/pybind11/tests/pybind11_tests.cpp +130 -0
- touchlab_comm_py-0.1.1/pybind11/tests/pybind11_tests.h +119 -0
- touchlab_comm_py-0.1.1/pybind11/tests/pyproject.toml +17 -0
- touchlab_comm_py-0.1.1/pybind11/tests/pytest.ini +23 -0
- touchlab_comm_py-0.1.1/pybind11/tests/requirements.txt +16 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_async.cpp +25 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_async.py +31 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_buffers.cpp +442 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_buffers.py +401 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_builtin_casters.cpp +391 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_builtin_casters.py +551 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_call_policies.cpp +113 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_call_policies.py +256 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_callbacks.cpp +308 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_callbacks.py +247 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_chrono.cpp +81 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_chrono.py +207 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class.cpp +681 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class.py +549 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_release_gil_before_calling_cpp_dtor.cpp +53 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_release_gil_before_calling_cpp_dtor.py +21 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_basic.cpp +247 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_basic.py +246 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_disowning.cpp +41 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_disowning.py +78 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_disowning_mi.cpp +85 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_disowning_mi.py +246 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_factory_constructors.cpp +164 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_factory_constructors.py +53 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_inheritance.cpp +90 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_inheritance.py +63 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_mi_thunks.cpp +93 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_mi_thunks.py +53 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_property.cpp +94 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_property.py +166 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_property_non_owning.cpp +63 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_property_non_owning.py +30 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_shared_ptr_copy_move.cpp +103 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_shared_ptr_copy_move.py +41 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_basic.cpp +82 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_basic.py +59 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_self_life_support.cpp +86 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_self_life_support.py +38 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_shared_from_this.cpp +137 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_shared_from_this.py +247 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.cpp +92 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.py +154 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_unique_ptr.cpp +63 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_unique_ptr.py +31 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_unique_ptr_custom_deleter.cpp +30 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_unique_ptr_custom_deleter.py +8 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_unique_ptr_member.cpp +50 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_unique_ptr_member.py +26 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_virtual_py_cpp_mix.cpp +58 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_virtual_py_cpp_mix.py +66 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/CMakeLists.txt +86 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/embed.cpp +23 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +19 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +29 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +37 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/main.cpp +6 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +38 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +32 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +38 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/test.py +10 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_const_name.cpp +55 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_const_name.py +31 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_constants_and_functions.cpp +158 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_constants_and_functions.py +58 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_copy_move.cpp +544 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_copy_move.py +144 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cpp_conduit.cpp +22 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cpp_conduit.py +166 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cpp_conduit_traveler_bindings.h +47 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_cpp_conduit_traveler_types.h +25 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_custom_type_casters.cpp +217 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_custom_type_casters.py +126 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_custom_type_setup.cpp +41 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_custom_type_setup.py +50 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_docs_advanced_cast_custom.cpp +68 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_docs_advanced_cast_custom.py +37 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_docstring_options.cpp +129 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_docstring_options.py +72 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_eigen_matrix.cpp +447 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_eigen_matrix.py +839 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_eigen_tensor.cpp +18 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_eigen_tensor.inl +338 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_eigen_tensor.py +316 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_embed/CMakeLists.txt +56 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_embed/catch.cpp +43 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_embed/external_module.cpp +20 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_embed/test_interpreter.cpp +488 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_embed/test_interpreter.py +16 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_embed/test_trampoline.py +18 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_enum.cpp +149 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_enum.py +344 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_eval.cpp +118 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_eval.py +52 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_eval_call.py +5 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_exceptions.cpp +427 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_exceptions.h +13 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_exceptions.py +439 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_factory_constructors.cpp +430 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_factory_constructors.py +531 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_gil_scoped.cpp +144 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_gil_scoped.py +269 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_iostream.cpp +126 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_iostream.py +297 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_kwargs_and_defaults.cpp +331 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_kwargs_and_defaults.py +471 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_local_bindings.cpp +106 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_local_bindings.py +257 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_methods_and_attributes.cpp +492 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_methods_and_attributes.py +556 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_modules.cpp +125 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_modules.py +129 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_multiple_inheritance.cpp +341 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_multiple_inheritance.py +500 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_native_enum.cpp +236 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_native_enum.py +297 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_array.cpp +598 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_array.py +710 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_dtypes.cpp +745 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_dtypes.py +464 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_vectorize.cpp +107 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_vectorize.py +268 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_opaque_types.cpp +77 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_opaque_types.py +63 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_operator_overloading.cpp +281 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_operator_overloading.py +161 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_pickling.cpp +194 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_pickling.py +136 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_python_multiple_inheritance.cpp +45 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_python_multiple_inheritance.py +36 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_pytypes.cpp +1209 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_pytypes.py +1340 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_sequences_and_iterators.cpp +600 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_sequences_and_iterators.py +296 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_smart_ptr.cpp +553 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_smart_ptr.py +352 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_stl.cpp +666 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_stl.py +720 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_stl_binders.cpp +275 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_stl_binders.py +414 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_tagbased_polymorphic.cpp +148 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_tagbased_polymorphic.py +30 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_thread.cpp +72 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_thread.py +68 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_type_caster_pyobject_ptr.cpp +168 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_type_caster_pyobject_ptr.py +124 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_type_caster_std_function_specializations.cpp +46 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_type_caster_std_function_specializations.py +15 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_union.cpp +22 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_union.py +10 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_unnamed_namespace_a.cpp +37 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_unnamed_namespace_a.py +30 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_unnamed_namespace_b.cpp +13 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_unnamed_namespace_b.py +7 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_vector_unique_ptr_member.cpp +54 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_vector_unique_ptr_member.py +16 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_virtual_functions.cpp +592 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_virtual_functions.py +468 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_warnings.cpp +46 -0
- touchlab_comm_py-0.1.1/pybind11/tests/test_warnings.py +68 -0
- touchlab_comm_py-0.1.1/pybind11/tests/valgrind-numpy-scipy.supp +140 -0
- touchlab_comm_py-0.1.1/pybind11/tests/valgrind-python.supp +117 -0
- touchlab_comm_py-0.1.1/pybind11/tools/FindCatch.cmake +76 -0
- touchlab_comm_py-0.1.1/pybind11/tools/FindEigen3.cmake +86 -0
- touchlab_comm_py-0.1.1/pybind11/tools/FindPythonLibsNew.cmake +320 -0
- touchlab_comm_py-0.1.1/pybind11/tools/JoinPaths.cmake +23 -0
- touchlab_comm_py-0.1.1/pybind11/tools/check-style.sh +44 -0
- touchlab_comm_py-0.1.1/pybind11/tools/cmake_uninstall.cmake.in +23 -0
- touchlab_comm_py-0.1.1/pybind11/tools/codespell_ignore_lines_from_errors.py +40 -0
- touchlab_comm_py-0.1.1/pybind11/tools/libsize.py +38 -0
- touchlab_comm_py-0.1.1/pybind11/tools/make_changelog.py +97 -0
- touchlab_comm_py-0.1.1/pybind11/tools/pybind11.pc.in +7 -0
- touchlab_comm_py-0.1.1/pybind11/tools/pybind11Common.cmake +437 -0
- touchlab_comm_py-0.1.1/pybind11/tools/pybind11Config.cmake.in +240 -0
- touchlab_comm_py-0.1.1/pybind11/tools/pybind11GuessPythonExtSuffix.cmake +86 -0
- touchlab_comm_py-0.1.1/pybind11/tools/pybind11NewTools.cmake +342 -0
- touchlab_comm_py-0.1.1/pybind11/tools/pybind11Tools.cmake +216 -0
- touchlab_comm_py-0.1.1/pybind11/tools/pyproject.toml +3 -0
- touchlab_comm_py-0.1.1/pybind11/tools/setup_global.py.in +66 -0
- touchlab_comm_py-0.1.1/pybind11/tools/setup_main.py.in +50 -0
- touchlab_comm_py-0.1.1/pybind11/tools/test-pybind11GuessPythonExtSuffix.cmake +161 -0
- touchlab_comm_py-0.1.1/pyproject.toml +33 -0
- touchlab_comm_py-0.1.1/src/comm.cpp +40 -0
- touchlab_comm_py-0.1.1/update_libs +61 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
name: Build and Release tag Linux
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
# push:
|
|
6
|
+
# tags:
|
|
7
|
+
# - '*'
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build_sdist:
|
|
11
|
+
name: Build SDist
|
|
12
|
+
runs-on: [self-hosted, linux, x64]
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
- name: Checkout submodules
|
|
16
|
+
run: |
|
|
17
|
+
git submodule update --init --recursive
|
|
18
|
+
|
|
19
|
+
- name: Build SDist
|
|
20
|
+
run: python -m build --sdist
|
|
21
|
+
|
|
22
|
+
- name: Check metadata
|
|
23
|
+
run: pipx run twine check dist/*
|
|
24
|
+
|
|
25
|
+
- uses: actions/upload-artifact@v4
|
|
26
|
+
with:
|
|
27
|
+
name: cibw-sdist
|
|
28
|
+
path: dist/*.tar.gz
|
|
29
|
+
build_wheels:
|
|
30
|
+
runs-on: [self-hosted, linux, x64]
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
- name: Checkout submodules
|
|
34
|
+
run: |
|
|
35
|
+
git submodule update --init --recursive
|
|
36
|
+
# Used to host cibuildwheel
|
|
37
|
+
- uses: astral-sh/setup-uv@v4
|
|
38
|
+
- uses: actions/setup-python@v5
|
|
39
|
+
with:
|
|
40
|
+
python-version: '3.11'
|
|
41
|
+
- name: Install cibuildwheel
|
|
42
|
+
run: python -m pip install cibuildwheel==2.23.2
|
|
43
|
+
|
|
44
|
+
- name: Build wheels
|
|
45
|
+
run: python -m cibuildwheel --output-dir wheelhouse
|
|
46
|
+
env:
|
|
47
|
+
CIBW_SKIP: pp* *-musllinux*
|
|
48
|
+
CIBW_ARCHS: x86_64
|
|
49
|
+
- uses: actions/upload-artifact@v4
|
|
50
|
+
with:
|
|
51
|
+
name: cibw-wheels-ubuntu-latest
|
|
52
|
+
path: wheelhouse/*.whl
|
|
53
|
+
upload_all:
|
|
54
|
+
name: Upload if release
|
|
55
|
+
needs: [build_wheels, build_sdist]
|
|
56
|
+
runs-on: [self-hosted, linux, x64]
|
|
57
|
+
# if: github.event_name == 'release' && github.event.action == 'published'
|
|
58
|
+
environment:
|
|
59
|
+
name: pypi
|
|
60
|
+
url: https://pypi.org/p/touchlab_comm_py
|
|
61
|
+
permissions:
|
|
62
|
+
id-token: write
|
|
63
|
+
attestations: write
|
|
64
|
+
|
|
65
|
+
steps:
|
|
66
|
+
- uses: actions/setup-python@v5
|
|
67
|
+
with:
|
|
68
|
+
python-version: "3.x"
|
|
69
|
+
|
|
70
|
+
- uses: actions/download-artifact@v4
|
|
71
|
+
with:
|
|
72
|
+
pattern: cibw-*
|
|
73
|
+
merge-multiple: true
|
|
74
|
+
path: dist
|
|
75
|
+
|
|
76
|
+
# - name: Generate artifact attestation for sdist and wheels
|
|
77
|
+
# uses: actions/attest-build-provenance@v1
|
|
78
|
+
# with:
|
|
79
|
+
# subject-path: "dist/*"
|
|
80
|
+
- name: Publish package distributions to PyPI
|
|
81
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
82
|
+
# - name: Create a GitHub release
|
|
83
|
+
# uses: ncipollo/release-action@v1
|
|
84
|
+
# with:
|
|
85
|
+
# artifacts: ${{ github.workspace }}/touchlab_comm_py.zip
|
|
86
|
+
# allowUpdates: true
|
|
87
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.15.0)
|
|
2
|
+
project(touchlab_comm_py)
|
|
3
|
+
|
|
4
|
+
set(TOUCHLAB_COMM_VERSION 0.1.1)
|
|
5
|
+
|
|
6
|
+
find_package(Python COMPONENTS Interpreter Development)
|
|
7
|
+
add_subdirectory(pybind11)
|
|
8
|
+
|
|
9
|
+
include_directories(
|
|
10
|
+
include
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
pybind11_add_module(touchlab_comm_py src/comm.cpp)
|
|
14
|
+
if(APPLE)
|
|
15
|
+
# OSX not supported
|
|
16
|
+
message(FATAL_ERROR "Mac is not supported")
|
|
17
|
+
elseif(UNIX)
|
|
18
|
+
# If unix
|
|
19
|
+
target_link_libraries(touchlab_comm_py PRIVATE ${CMAKE_CURRENT_LIST_DIR}/lib/libtouchlab_comm_static.a)
|
|
20
|
+
else()
|
|
21
|
+
# If windows
|
|
22
|
+
target_link_libraries(touchlab_comm_py PRIVATE ${CMAKE_CURRENT_LIST_DIR}/lib/touchlab_comm_static.lib)
|
|
23
|
+
endif()
|
|
24
|
+
set_property(TARGET touchlab_comm_py PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|
25
|
+
target_compile_definitions(touchlab_comm_py PRIVATE VERSION_INFO=${VERSION_INFO})
|
|
26
|
+
|
|
27
|
+
install(TARGETS touchlab_comm_py
|
|
28
|
+
COMPONENT python
|
|
29
|
+
LIBRARY DESTINATION "lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages"
|
|
30
|
+
ARCHIVE DESTINATION "lib"
|
|
31
|
+
RUNTIME DESTINATION "bin")
|
|
32
|
+
install(DIRECTORY examples/
|
|
33
|
+
DESTINATION share/${PROJECT_NAME}/examples/
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
if (MSVC)
|
|
38
|
+
macro(append_cxx_flag text)
|
|
39
|
+
foreach (flag
|
|
40
|
+
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
|
|
41
|
+
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
|
|
42
|
+
|
|
43
|
+
string(APPEND ${flag} " ${text}")
|
|
44
|
+
|
|
45
|
+
endforeach()
|
|
46
|
+
endmacro()
|
|
47
|
+
append_cxx_flag("/Zc:preprocessor")
|
|
48
|
+
endif()
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
PROPRIETARY SOFTWARE LICENSE AGREEMENT: IMPORTANT : READ CAREFULLY
|
|
2
|
+
By downloading, installing or using Touchlab Limited software products
|
|
3
|
+
contained herein, you indicate your acceptance of and agree to be bound by the terms
|
|
4
|
+
|
|
5
|
+
and conditions of this Proprietary Software License Agreement. These terms and
|
|
6
|
+
conditions are a legal agreement between the Licensee (you) and Licensor (Touchlab Limited).
|
|
7
|
+
|
|
8
|
+
IF YOU DO NOT AGREE TO THESE TERMS AND CONDITIONS, DO NOT
|
|
9
|
+
INSTALL, COPY OR USE THE SOFTWARE.
|
|
10
|
+
|
|
11
|
+
LICENSE. Subject to the provisions contained herein, Touchlab Limited grants to you a non-
|
|
12
|
+
|
|
13
|
+
exclusive, non-transferable license to use the Software contained herein. You are
|
|
14
|
+
authorized to use the SOFTWARE only for your own use.
|
|
15
|
+
|
|
16
|
+
DISCLAIMER OF WARRANTIES: YOU AGREE THAT TOUCHLAB LIMITED HAS MADE NO
|
|
17
|
+
EXPRESS WARRANTIES TO YOU REGARDING THE SOFTWARE AND THAT
|
|
18
|
+
THE SOFTWARE IS BEING PROVIDED TO YOU "AS IS" WITHOUT WARRANTY
|
|
19
|
+
OF ANY KIND. TOUCHLAB LIMITED DISCLAIMS ALL WARRANTIES WITH REGARD TO
|
|
20
|
+
THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
|
21
|
+
ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE,
|
|
22
|
+
MERCHANTABILITY, MERCHANTABLE QUALITY OR NONINFRINGEMENT OF
|
|
23
|
+
THIRD PARTY RIGHTS. In the case where a state or jurisdiction does not allow the
|
|
24
|
+
exclusion of implied warranties, the above limitations may not apply.
|
|
25
|
+
|
|
26
|
+
LIMIT OF LIABILITY: IN NO EVENT WILL TOUCHLAB LIMITED BE LIABLE TO YOU FOR
|
|
27
|
+
ANY LOSS OF USE, INTERRUPTION OF BUSINESS, OR ANY DIRECT,
|
|
28
|
+
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
|
|
29
|
+
KIND (INCLUDING LOST PROFITS) REGARDLESS OF THE FORM OF ACTION
|
|
30
|
+
WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT
|
|
31
|
+
PRODUCT LIABILITY OR OTHERWISE, EVEN IF TOUCHLAB LIMITED HAS BEEN ADVISED
|
|
32
|
+
OF THE POSSIBILITY OF SUCH DAMAGES. In the case where a state or jurisdiction
|
|
33
|
+
does not allow the exclusion of incidental or consequential damages, the above
|
|
34
|
+
limitations may not apply.
|
|
35
|
+
|
|
36
|
+
PROTECTION. NOTWITHSTANDING ANY COPYRIGHT NOTICES, THE
|
|
37
|
+
SOFTWARE CONTAINS TRADE SECRETS AND CONFIDENTIAL INFORMATION
|
|
38
|
+
OF TOUCHLAB LIMITED AND ITS SUPPLIERS. THE LICENSEE AGREES NOT TO REVERSE
|
|
39
|
+
COMPILE, REVERSE ENGINEER, DISASSEMBLE, OR MODIFY THE SOFTWARE.
|
|
40
|
+
THE SOFTWARE MAY NOT BE RENTED OR LEASED. THE SOFTWARE MAY
|
|
41
|
+
NOT BE INCORPORATED INTO OR BUNDLED WITH ANY OTHER PRODUCT
|
|
42
|
+
SUCH THAT THE SOFTWARE CEASES TO BE A STAND-ALONE PRODUCT.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
EXPORT PROVISION. Licensee acknowledges that the export of the Software is
|
|
46
|
+
subject to Licensor receiving the necessary licenses or approvals for export from the
|
|
47
|
+
United Kingdom. Licensee agrees that regardless of any disclosure made by Licensee to
|
|
48
|
+
Licensor of an ultimate destination of the SOFTWARE, Licensee will not re-export
|
|
49
|
+
directly or indirectly the SOFTWARE, without first obtaining a license from the United
|
|
50
|
+
Kingdom Government, as required. Licensee shall provide Touchlab Limited with any information,
|
|
51
|
+
certifications or other documents which Licensor may require in connection with the
|
|
52
|
+
export of the SOFTWARE, or any portions or parts thereof, as amended, and the rules and regulations promulgated
|
|
53
|
+
thereunder.
|
|
54
|
+
|
|
55
|
+
SUCCESSORS AND ASSIGNS. The Agreement shall be binding on and inure to the
|
|
56
|
+
benefit of the parties, their successors, permitted assigns and legal representatives.
|
|
57
|
+
Licensee may not assign this Agreement without Licensors prior written consent.
|
|
58
|
+
|
|
59
|
+
TITLE. This Agreement grants Licensee no title or rights of or to ownership in the
|
|
60
|
+
SOFTWARE or documentation or any corrections, improvements or revisions furnished.
|
|
61
|
+
THIS AGREEMENT DOES NOT INCLUDE THE RIGHT TO SUBLICENSE.
|
|
62
|
+
|
|
63
|
+
RELIEF. Licensee acknowledges that any violation of this Agreement by Licensee will
|
|
64
|
+
cause irreparable injury to Licensor, and Licensor shall be entitled to injunctive relief.
|
|
65
|
+
|
|
66
|
+
GENERAL. This Agreement merges all prior written and oral communications and
|
|
67
|
+
defines the entire Agreement of the parties concerning the SOFTWARE. All notices
|
|
68
|
+
required under this Agreement or pertaining to modifications to this Agreement shall be
|
|
69
|
+
in writing, including facsimile copies, however, excluding all variations of Electronic
|
|
70
|
+
Mail, and shall be considered given upon personal delivery of the written notice or within
|
|
71
|
+
five (5) days of mailing, postage prepaid and appropriately addressed. This Agreement
|
|
72
|
+
shall be construed in accordance with laws of the Scotland, United Kingdom
|
|
73
|
+
without regard to its conflicts of laws provisions. The failure by either party
|
|
74
|
+
at any time to enforce its rights under this Agreement will not be construed as a waiver of
|
|
75
|
+
such rights, nor will it in any way affect the validity of this Agreement. No waiver by
|
|
76
|
+
either party will be valid unless given in an appropriate writing signed by both parties.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: touchlab_comm_py
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Touchlab communication library python wrapper
|
|
5
|
+
Author-Email: Vladimir Ivan <vlad@touchlab.com>
|
|
6
|
+
Classifier: Development Status :: 4 - Beta
|
|
7
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
8
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Requires-Python: >=3.8
|
|
16
|
+
Provides-Extra: test
|
|
17
|
+
Requires-Dist: pytest>=6.0; extra == "test"
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
# TouchLab Comm Python - README
|
|
21
|
+
|
|
22
|
+
The **TouchLab Comm Python** repository provides a communication layer that includes both Python and C++ components, allowing for seamless integration of C++ backend code with Python interfaces. This setup is useful for handling communication protocols in robotics or similar applications, particularly with ROS integration in mind.
|
|
23
|
+
|
|
24
|
+
## Overview
|
|
25
|
+
|
|
26
|
+
This repository is a hybrid C++ and Python package used for communication handling. The core logic is implemented in C++ (`comm.cpp`), while the Python layer interacts with it for high-level scripting purposes.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Nodes/Scripts
|
|
31
|
+
|
|
32
|
+
### Python Scripts
|
|
33
|
+
- **examples/example.py**: This script showcases a basic example of how to interact with the communication layer in Python.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Library/Module Overview
|
|
38
|
+
|
|
39
|
+
### C++ Library
|
|
40
|
+
- **src/comm.cpp**: This is the core implementation of the communication module in C++. The C++ layer handles the low-level communication and integrates seamlessly with the Python interface.
|
|
41
|
+
|
|
42
|
+
### Python Setup
|
|
43
|
+
- **setup.py**: This file configures the installation process for the Python component of the repository. It bridges the communication layer, enabling Python to interface with the underlying C++ logic.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Example Usage
|
|
48
|
+
|
|
49
|
+
Here’s an example of how to use the repository:
|
|
50
|
+
|
|
51
|
+
1. Compile the C++ code using `CMakeLists.txt`.
|
|
52
|
+
2. Install the Python package using `setup.py` (instructions below).
|
|
53
|
+
3. Run the example Python script located in `examples/example.py` to see a demo of the communication system in action.
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
python3 examples/example.py
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
This script will demonstrate how to interface with the communication layer using Python.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Dependencies
|
|
64
|
+
|
|
65
|
+
1. **C++ Compiler**: To compile the C++ library.
|
|
66
|
+
2. **Python**: Required for the Python scripts and package installation.
|
|
67
|
+
3. **CMake**: Used for compiling the C++ components.
|
|
68
|
+
|
|
69
|
+
More details regarding dependencies and configurations can be found on the repository's Wiki (to be added in future versions).
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
This repository will continue to be developed, adding more examples and expanding the communication capabilities.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# TouchLab Comm Python - README
|
|
2
|
+
|
|
3
|
+
The **TouchLab Comm Python** repository provides a communication layer that includes both Python and C++ components, allowing for seamless integration of C++ backend code with Python interfaces. This setup is useful for handling communication protocols in robotics or similar applications, particularly with ROS integration in mind.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This repository is a hybrid C++ and Python package used for communication handling. The core logic is implemented in C++ (`comm.cpp`), while the Python layer interacts with it for high-level scripting purposes.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Nodes/Scripts
|
|
12
|
+
|
|
13
|
+
### Python Scripts
|
|
14
|
+
- **examples/example.py**: This script showcases a basic example of how to interact with the communication layer in Python.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Library/Module Overview
|
|
19
|
+
|
|
20
|
+
### C++ Library
|
|
21
|
+
- **src/comm.cpp**: This is the core implementation of the communication module in C++. The C++ layer handles the low-level communication and integrates seamlessly with the Python interface.
|
|
22
|
+
|
|
23
|
+
### Python Setup
|
|
24
|
+
- **setup.py**: This file configures the installation process for the Python component of the repository. It bridges the communication layer, enabling Python to interface with the underlying C++ logic.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Example Usage
|
|
29
|
+
|
|
30
|
+
Here’s an example of how to use the repository:
|
|
31
|
+
|
|
32
|
+
1. Compile the C++ code using `CMakeLists.txt`.
|
|
33
|
+
2. Install the Python package using `setup.py` (instructions below).
|
|
34
|
+
3. Run the example Python script located in `examples/example.py` to see a demo of the communication system in action.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
python3 examples/example.py
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
This script will demonstrate how to interface with the communication layer using Python.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Dependencies
|
|
45
|
+
|
|
46
|
+
1. **C++ Compiler**: To compile the C++ library.
|
|
47
|
+
2. **Python**: Required for the Python scripts and package installation.
|
|
48
|
+
3. **CMake**: Used for compiling the C++ components.
|
|
49
|
+
|
|
50
|
+
More details regarding dependencies and configurations can be found on the repository's Wiki (to be added in future versions).
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
This repository will continue to be developed, adding more examples and expanding the communication capabilities.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
# Copyright (c) 2025 Touchlab Limited. All Rights Reserved
|
|
4
|
+
# Unauthorized copying or modifications of this file, via any medium is strictly prohibited.
|
|
5
|
+
|
|
6
|
+
import touchlab_comm_py as tl
|
|
7
|
+
import time
|
|
8
|
+
import argparse
|
|
9
|
+
|
|
10
|
+
def main():
|
|
11
|
+
try:
|
|
12
|
+
# Set up argument parser
|
|
13
|
+
parser = argparse.ArgumentParser(description="Touchlab Sensor Example")
|
|
14
|
+
parser.add_argument("port", type=str, help="Serial port to connect to")
|
|
15
|
+
parser.add_argument("parameter_file", type=str, help="Parameter file to load")
|
|
16
|
+
args = parser.parse_args()
|
|
17
|
+
|
|
18
|
+
# Connect to the sensor
|
|
19
|
+
com=tl.TouchlabComms()
|
|
20
|
+
com.init(args.parameter_file)
|
|
21
|
+
com.connect(args.port)
|
|
22
|
+
|
|
23
|
+
# Set up frequency counting
|
|
24
|
+
start = time.time()
|
|
25
|
+
hz = 0.0
|
|
26
|
+
count = 0
|
|
27
|
+
while True:
|
|
28
|
+
# Read data and print
|
|
29
|
+
data = com.read()
|
|
30
|
+
print(f"Rate: {hz:.1f}Hz, Triaxial Data: {data}")
|
|
31
|
+
|
|
32
|
+
# Read raw data and print
|
|
33
|
+
data_raw = com.read_raw(0)
|
|
34
|
+
print(f"Rate: {hz:.1f}Hz, Raw Data: {data_raw}")
|
|
35
|
+
|
|
36
|
+
# Calculate sensor update rate
|
|
37
|
+
diff = float(time.time() - start)
|
|
38
|
+
if diff > 0.5:
|
|
39
|
+
hz = float(count) / diff
|
|
40
|
+
count = 0
|
|
41
|
+
start = time.time()
|
|
42
|
+
count += 1
|
|
43
|
+
except KeyboardInterrupt:
|
|
44
|
+
pass
|
|
45
|
+
|
|
46
|
+
if __name__ == "__main__":
|
|
47
|
+
main()
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// Copyright (c) 2022 Touchlab Limited. All Rights Reserved
|
|
2
|
+
// Unauthorized copying or modifications of this file, via any medium is strictly prohibited.
|
|
3
|
+
|
|
4
|
+
#ifndef TOUCHLAB_COMM__TOUCHLAB_COMM_HPP_
|
|
5
|
+
#define TOUCHLAB_COMM__TOUCHLAB_COMM_HPP_
|
|
6
|
+
|
|
7
|
+
#include <map>
|
|
8
|
+
#include <memory>
|
|
9
|
+
#include <string>
|
|
10
|
+
#include <vector>
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* \mainpage Touchlab Communication Library
|
|
14
|
+
* \section core Main classes
|
|
15
|
+
* * \link touchlab_comm::TouchlabComms main class \endlink.
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
namespace touchlab_comm
|
|
20
|
+
{
|
|
21
|
+
/**
|
|
22
|
+
* @class TouchlabComms touchlab_comm.h touchlab_comm/touchlab_comm.h
|
|
23
|
+
* @brief Touchlab communication main class.
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
class TouchlabComms
|
|
27
|
+
{
|
|
28
|
+
public:
|
|
29
|
+
/**
|
|
30
|
+
* @brief Construct a new Touchlab Comms object
|
|
31
|
+
*
|
|
32
|
+
*/
|
|
33
|
+
TouchlabComms();
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @brief Destroy the Touchlab Comms object
|
|
37
|
+
*
|
|
38
|
+
*/
|
|
39
|
+
virtual ~TouchlabComms();
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @brief Init comm
|
|
43
|
+
*
|
|
44
|
+
* @param filename path to the sensor param binary file
|
|
45
|
+
*/
|
|
46
|
+
void init(const std::string & filename);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @brief Connect to the sensor
|
|
50
|
+
*
|
|
51
|
+
* @param port Serial port name, e.g. `COM1`, or `/dev/ttyACM0`.
|
|
52
|
+
*
|
|
53
|
+
*/
|
|
54
|
+
void connect(const std::string & port);
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @brief Read raw signal
|
|
58
|
+
*
|
|
59
|
+
* @param data Returned raw data vector from the latest data packet
|
|
60
|
+
* @param timeout Timeout in ms
|
|
61
|
+
*/
|
|
62
|
+
void read_raw(std::vector<double> & data, int64_t timeout = 500.0);
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @brief Read calibrated data
|
|
66
|
+
*
|
|
67
|
+
* @param data Return data calibrated by the model defined by the SensorParameters class
|
|
68
|
+
* @param timeout Timeout in ms
|
|
69
|
+
*/
|
|
70
|
+
void read(std::vector<double> & data, int64_t timeout = 500.0);
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @brief Get the version of the API
|
|
74
|
+
*
|
|
75
|
+
* @return std::string Version string
|
|
76
|
+
*/
|
|
77
|
+
static std::string get_version();
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @brief Returns if the sensor is connected and communicating
|
|
81
|
+
*
|
|
82
|
+
* @return std::string True if connected
|
|
83
|
+
*/
|
|
84
|
+
bool is_connected();
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @brief Zero out sensor offset
|
|
88
|
+
*/
|
|
89
|
+
void zero(const std::vector<int> ind = {});
|
|
90
|
+
|
|
91
|
+
private:
|
|
92
|
+
class Implementation;
|
|
93
|
+
std::unique_ptr<Implementation> impl_;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
} // namespace touchlab_comm
|
|
97
|
+
|
|
98
|
+
#endif // TOUCHLAB_COMM__TOUCHLAB_COMM_HPP_
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
version: 1.0.{build}
|
|
2
|
+
image:
|
|
3
|
+
- Visual Studio 2017
|
|
4
|
+
test: off
|
|
5
|
+
skip_branch_with_pr: true
|
|
6
|
+
build:
|
|
7
|
+
parallel: true
|
|
8
|
+
platform:
|
|
9
|
+
- x86
|
|
10
|
+
environment:
|
|
11
|
+
matrix:
|
|
12
|
+
- PYTHON: 38
|
|
13
|
+
CONFIG: Debug
|
|
14
|
+
install:
|
|
15
|
+
- ps: |
|
|
16
|
+
$env:CMAKE_GENERATOR = "Visual Studio 15 2017"
|
|
17
|
+
if ($env:PLATFORM -eq "x64") { $env:PYTHON = "$env:PYTHON-x64" }
|
|
18
|
+
$env:PATH = "C:\Python$env:PYTHON\;C:\Python$env:PYTHON\Scripts\;$env:PATH"
|
|
19
|
+
python -W ignore -m pip install --upgrade pip wheel
|
|
20
|
+
python -W ignore -m pip install pytest numpy --no-warn-script-location pytest-timeout
|
|
21
|
+
- ps: |
|
|
22
|
+
Start-FileDownload 'https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip'
|
|
23
|
+
7z x eigen-3.3.7.zip -y > $null
|
|
24
|
+
$env:CMAKE_INCLUDE_PATH = "eigen-3.3.7;$env:CMAKE_INCLUDE_PATH"
|
|
25
|
+
build_script:
|
|
26
|
+
- cmake -G "%CMAKE_GENERATOR%" -A "%CMAKE_ARCH%"
|
|
27
|
+
-DCMAKE_CXX_STANDARD=14
|
|
28
|
+
-DPYBIND11_WERROR=ON
|
|
29
|
+
-DDOWNLOAD_CATCH=ON
|
|
30
|
+
-DCMAKE_SUPPRESS_REGENERATION=1
|
|
31
|
+
.
|
|
32
|
+
- set MSBuildLogger="C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
|
33
|
+
- cmake --build . --config %CONFIG% --target pytest -- /m /v:m /logger:%MSBuildLogger%
|
|
34
|
+
- cmake --build . --config %CONFIG% --target cpptest -- /m /v:m /logger:%MSBuildLogger%
|
|
35
|
+
on_failure: if exist "tests\test_cmake_build" type tests\test_cmake_build\*.log*
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
# See all possible options and defaults with:
|
|
3
|
+
# clang-format --style=llvm --dump-config
|
|
4
|
+
BasedOnStyle: LLVM
|
|
5
|
+
AccessModifierOffset: -4
|
|
6
|
+
AllowShortLambdasOnASingleLine: true
|
|
7
|
+
AlwaysBreakTemplateDeclarations: Yes
|
|
8
|
+
BinPackArguments: false
|
|
9
|
+
BinPackParameters: false
|
|
10
|
+
BreakBeforeBinaryOperators: All
|
|
11
|
+
BreakConstructorInitializers: BeforeColon
|
|
12
|
+
ColumnLimit: 99
|
|
13
|
+
CommentPragmas: 'NOLINT:.*|^ IWYU pragma:'
|
|
14
|
+
IncludeBlocks: Regroup
|
|
15
|
+
IndentCaseLabels: true
|
|
16
|
+
IndentPPDirectives: AfterHash
|
|
17
|
+
IndentWidth: 4
|
|
18
|
+
Language: Cpp
|
|
19
|
+
SpaceAfterCStyleCast: true
|
|
20
|
+
Standard: Cpp11
|
|
21
|
+
StatementMacros: ['PyObject_HEAD']
|
|
22
|
+
TabWidth: 4
|
|
23
|
+
IncludeCategories:
|
|
24
|
+
- Regex: '<pybind11/.*'
|
|
25
|
+
Priority: -1
|
|
26
|
+
- Regex: 'pybind11.h"$'
|
|
27
|
+
Priority: 1
|
|
28
|
+
- Regex: '^".*/?detail/'
|
|
29
|
+
Priority: 1
|
|
30
|
+
SortPriority: 2
|
|
31
|
+
- Regex: '^"'
|
|
32
|
+
Priority: 1
|
|
33
|
+
SortPriority: 3
|
|
34
|
+
- Regex: '<[[:alnum:]._]+>'
|
|
35
|
+
Priority: 4
|
|
36
|
+
- Regex: '.*'
|
|
37
|
+
Priority: 5
|
|
38
|
+
...
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
FormatStyle: file
|
|
2
|
+
|
|
3
|
+
Checks: |
|
|
4
|
+
*bugprone*,
|
|
5
|
+
*performance*,
|
|
6
|
+
clang-analyzer-optin.cplusplus.VirtualCall,
|
|
7
|
+
clang-analyzer-optin.performance.Padding,
|
|
8
|
+
cppcoreguidelines-init-variables,
|
|
9
|
+
cppcoreguidelines-prefer-member-initializer,
|
|
10
|
+
cppcoreguidelines-pro-type-static-cast-downcast,
|
|
11
|
+
cppcoreguidelines-slicing,
|
|
12
|
+
google-explicit-constructor,
|
|
13
|
+
llvm-namespace-comment,
|
|
14
|
+
misc-definitions-in-headers,
|
|
15
|
+
misc-misplaced-const,
|
|
16
|
+
misc-non-copyable-objects,
|
|
17
|
+
misc-static-assert,
|
|
18
|
+
misc-throw-by-value-catch-by-reference,
|
|
19
|
+
misc-uniqueptr-reset-release,
|
|
20
|
+
misc-unused-parameters,
|
|
21
|
+
modernize-avoid-bind,
|
|
22
|
+
modernize-loop-convert,
|
|
23
|
+
modernize-make-shared,
|
|
24
|
+
modernize-redundant-void-arg,
|
|
25
|
+
modernize-replace-auto-ptr,
|
|
26
|
+
modernize-replace-disallow-copy-and-assign-macro,
|
|
27
|
+
modernize-replace-random-shuffle,
|
|
28
|
+
modernize-shrink-to-fit,
|
|
29
|
+
modernize-use-auto,
|
|
30
|
+
modernize-use-bool-literals,
|
|
31
|
+
modernize-use-default-member-init,
|
|
32
|
+
modernize-use-emplace,
|
|
33
|
+
modernize-use-equals-default,
|
|
34
|
+
modernize-use-equals-delete,
|
|
35
|
+
modernize-use-noexcept,
|
|
36
|
+
modernize-use-nullptr,
|
|
37
|
+
modernize-use-override,
|
|
38
|
+
modernize-use-using,
|
|
39
|
+
readability-avoid-const-params-in-decls,
|
|
40
|
+
readability-braces-around-statements,
|
|
41
|
+
readability-const-return-type,
|
|
42
|
+
readability-container-size-empty,
|
|
43
|
+
readability-delete-null-pointer,
|
|
44
|
+
readability-else-after-return,
|
|
45
|
+
readability-implicit-bool-conversion,
|
|
46
|
+
readability-inconsistent-declaration-parameter-name,
|
|
47
|
+
readability-make-member-function-const,
|
|
48
|
+
readability-misplaced-array-index,
|
|
49
|
+
readability-non-const-parameter,
|
|
50
|
+
readability-qualified-auto,
|
|
51
|
+
readability-redundant-function-ptr-dereference,
|
|
52
|
+
readability-redundant-smartptr-get,
|
|
53
|
+
readability-redundant-string-cstr,
|
|
54
|
+
readability-simplify-subscript-expr,
|
|
55
|
+
readability-static-accessed-through-instance,
|
|
56
|
+
readability-static-definition-in-anonymous-namespace,
|
|
57
|
+
readability-string-compare,
|
|
58
|
+
readability-suspicious-call-argument,
|
|
59
|
+
readability-uniqueptr-delete-release,
|
|
60
|
+
-bugprone-chained-comparison,
|
|
61
|
+
-bugprone-easily-swappable-parameters,
|
|
62
|
+
-bugprone-exception-escape,
|
|
63
|
+
-bugprone-reserved-identifier,
|
|
64
|
+
-bugprone-unused-raii,
|
|
65
|
+
-performance-enum-size,
|
|
66
|
+
|
|
67
|
+
CheckOptions:
|
|
68
|
+
- key: modernize-use-equals-default.IgnoreMacros
|
|
69
|
+
value: false
|
|
70
|
+
- key: performance-for-range-copy.WarnOnAllAutoCopies
|
|
71
|
+
value: true
|
|
72
|
+
- key: performance-inefficient-string-concatenation.StrictMode
|
|
73
|
+
value: true
|
|
74
|
+
- key: performance-unnecessary-value-param.AllowedTypes
|
|
75
|
+
value: 'exception_ptr$;'
|
|
76
|
+
- key: readability-implicit-bool-conversion.AllowPointerConditions
|
|
77
|
+
value: true
|
|
78
|
+
|
|
79
|
+
HeaderFilterRegex: 'pybind11/.*h'
|