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.
Files changed (354) hide show
  1. touchlab_comm_py-0.1.1/.github/workflows/release.yml +87 -0
  2. touchlab_comm_py-0.1.1/.gitignore +11 -0
  3. touchlab_comm_py-0.1.1/.gitmodules +3 -0
  4. touchlab_comm_py-0.1.1/CMakeLists.txt +48 -0
  5. touchlab_comm_py-0.1.1/LICENSE.txt +76 -0
  6. touchlab_comm_py-0.1.1/PKG-INFO +73 -0
  7. touchlab_comm_py-0.1.1/README.md +54 -0
  8. touchlab_comm_py-0.1.1/examples/example.py +47 -0
  9. touchlab_comm_py-0.1.1/include/touchlab_comm/touchlab_comm.hpp +98 -0
  10. touchlab_comm_py-0.1.1/lib/libtouchlab_comm_static.a +0 -0
  11. touchlab_comm_py-0.1.1/lib/touchlab_comm_static.lib +0 -0
  12. touchlab_comm_py-0.1.1/pybind11/.appveyor.yml +35 -0
  13. touchlab_comm_py-0.1.1/pybind11/.clang-format +38 -0
  14. touchlab_comm_py-0.1.1/pybind11/.clang-tidy +79 -0
  15. touchlab_comm_py-0.1.1/pybind11/.cmake-format.yaml +73 -0
  16. touchlab_comm_py-0.1.1/pybind11/.codespell-ignore-lines +35 -0
  17. touchlab_comm_py-0.1.1/pybind11/.gitattributes +1 -0
  18. touchlab_comm_py-0.1.1/pybind11/.github/CODEOWNERS +9 -0
  19. touchlab_comm_py-0.1.1/pybind11/.github/CONTRIBUTING.md +388 -0
  20. touchlab_comm_py-0.1.1/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +61 -0
  21. touchlab_comm_py-0.1.1/pybind11/.github/ISSUE_TEMPLATE/config.yml +8 -0
  22. touchlab_comm_py-0.1.1/pybind11/.github/dependabot.yml +15 -0
  23. touchlab_comm_py-0.1.1/pybind11/.github/labeler.yml +13 -0
  24. touchlab_comm_py-0.1.1/pybind11/.github/labeler_merged.yml +8 -0
  25. touchlab_comm_py-0.1.1/pybind11/.github/matchers/pylint.json +32 -0
  26. touchlab_comm_py-0.1.1/pybind11/.github/pull_request_template.md +19 -0
  27. touchlab_comm_py-0.1.1/pybind11/.github/workflows/ci.yml +1209 -0
  28. touchlab_comm_py-0.1.1/pybind11/.github/workflows/configure.yml +92 -0
  29. touchlab_comm_py-0.1.1/pybind11/.github/workflows/emscripten.yaml +30 -0
  30. touchlab_comm_py-0.1.1/pybind11/.github/workflows/format.yml +60 -0
  31. touchlab_comm_py-0.1.1/pybind11/.github/workflows/labeler.yml +25 -0
  32. touchlab_comm_py-0.1.1/pybind11/.github/workflows/pip.yml +120 -0
  33. touchlab_comm_py-0.1.1/pybind11/.github/workflows/upstream.yml +116 -0
  34. touchlab_comm_py-0.1.1/pybind11/.gitignore +47 -0
  35. touchlab_comm_py-0.1.1/pybind11/.pre-commit-config.yaml +158 -0
  36. touchlab_comm_py-0.1.1/pybind11/.readthedocs.yml +20 -0
  37. touchlab_comm_py-0.1.1/pybind11/CMakeLists.txt +351 -0
  38. touchlab_comm_py-0.1.1/pybind11/LICENSE +29 -0
  39. touchlab_comm_py-0.1.1/pybind11/MANIFEST.in +6 -0
  40. touchlab_comm_py-0.1.1/pybind11/README.rst +205 -0
  41. touchlab_comm_py-0.1.1/pybind11/SECURITY.md +13 -0
  42. touchlab_comm_py-0.1.1/pybind11/docs/Doxyfile +21 -0
  43. touchlab_comm_py-0.1.1/pybind11/docs/_static/css/custom.css +3 -0
  44. touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/chrono.rst +81 -0
  45. touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/custom.rst +137 -0
  46. touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/eigen.rst +310 -0
  47. touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/functional.rst +109 -0
  48. touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/index.rst +43 -0
  49. touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/overview.rst +170 -0
  50. touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/stl.rst +249 -0
  51. touchlab_comm_py-0.1.1/pybind11/docs/advanced/cast/strings.rst +296 -0
  52. touchlab_comm_py-0.1.1/pybind11/docs/advanced/classes.rst +1349 -0
  53. touchlab_comm_py-0.1.1/pybind11/docs/advanced/deadlock.md +391 -0
  54. touchlab_comm_py-0.1.1/pybind11/docs/advanced/deprecated.rst +113 -0
  55. touchlab_comm_py-0.1.1/pybind11/docs/advanced/embedding.rst +262 -0
  56. touchlab_comm_py-0.1.1/pybind11/docs/advanced/exceptions.rst +400 -0
  57. touchlab_comm_py-0.1.1/pybind11/docs/advanced/functions.rst +616 -0
  58. touchlab_comm_py-0.1.1/pybind11/docs/advanced/misc.rst +436 -0
  59. touchlab_comm_py-0.1.1/pybind11/docs/advanced/pycpp/index.rst +13 -0
  60. touchlab_comm_py-0.1.1/pybind11/docs/advanced/pycpp/numpy.rst +453 -0
  61. touchlab_comm_py-0.1.1/pybind11/docs/advanced/pycpp/object.rst +286 -0
  62. touchlab_comm_py-0.1.1/pybind11/docs/advanced/pycpp/utilities.rst +155 -0
  63. touchlab_comm_py-0.1.1/pybind11/docs/advanced/smart_ptrs.rst +179 -0
  64. touchlab_comm_py-0.1.1/pybind11/docs/basics.rst +314 -0
  65. touchlab_comm_py-0.1.1/pybind11/docs/benchmark.py +89 -0
  66. touchlab_comm_py-0.1.1/pybind11/docs/benchmark.rst +95 -0
  67. touchlab_comm_py-0.1.1/pybind11/docs/changelog.rst +3285 -0
  68. touchlab_comm_py-0.1.1/pybind11/docs/classes.rst +648 -0
  69. touchlab_comm_py-0.1.1/pybind11/docs/cmake/index.rst +8 -0
  70. touchlab_comm_py-0.1.1/pybind11/docs/compiling.rst +728 -0
  71. touchlab_comm_py-0.1.1/pybind11/docs/conf.py +369 -0
  72. touchlab_comm_py-0.1.1/pybind11/docs/faq.rst +352 -0
  73. touchlab_comm_py-0.1.1/pybind11/docs/index.rst +49 -0
  74. touchlab_comm_py-0.1.1/pybind11/docs/installing.rst +105 -0
  75. touchlab_comm_py-0.1.1/pybind11/docs/limitations.rst +68 -0
  76. touchlab_comm_py-0.1.1/pybind11/docs/pybind11-logo.png +0 -0
  77. touchlab_comm_py-0.1.1/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  78. touchlab_comm_py-0.1.1/pybind11/docs/pybind11_vs_boost_python1.svg +427 -0
  79. touchlab_comm_py-0.1.1/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  80. touchlab_comm_py-0.1.1/pybind11/docs/pybind11_vs_boost_python2.svg +427 -0
  81. touchlab_comm_py-0.1.1/pybind11/docs/reference.rst +130 -0
  82. touchlab_comm_py-0.1.1/pybind11/docs/release.rst +143 -0
  83. touchlab_comm_py-0.1.1/pybind11/docs/requirements.in +6 -0
  84. touchlab_comm_py-0.1.1/pybind11/docs/requirements.txt +275 -0
  85. touchlab_comm_py-0.1.1/pybind11/docs/upgrade.rst +595 -0
  86. touchlab_comm_py-0.1.1/pybind11/include/pybind11/attr.h +715 -0
  87. touchlab_comm_py-0.1.1/pybind11/include/pybind11/buffer_info.h +208 -0
  88. touchlab_comm_py-0.1.1/pybind11/include/pybind11/cast.h +2293 -0
  89. touchlab_comm_py-0.1.1/pybind11/include/pybind11/chrono.h +225 -0
  90. touchlab_comm_py-0.1.1/pybind11/include/pybind11/common.h +2 -0
  91. touchlab_comm_py-0.1.1/pybind11/include/pybind11/complex.h +74 -0
  92. touchlab_comm_py-0.1.1/pybind11/include/pybind11/conduit/README.txt +15 -0
  93. touchlab_comm_py-0.1.1/pybind11/include/pybind11/conduit/pybind11_conduit_v1.h +111 -0
  94. touchlab_comm_py-0.1.1/pybind11/include/pybind11/conduit/pybind11_platform_abi_id.h +87 -0
  95. touchlab_comm_py-0.1.1/pybind11/include/pybind11/conduit/wrap_include_python_h.h +72 -0
  96. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/class.h +818 -0
  97. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/common.h +1207 -0
  98. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/cpp_conduit.h +77 -0
  99. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/descr.h +201 -0
  100. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +39 -0
  101. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/exception_translation.h +71 -0
  102. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/function_record_pyobject.h +208 -0
  103. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/init.h +505 -0
  104. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/internals.h +632 -0
  105. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/native_enum_data.h +201 -0
  106. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/pybind11_namespace_macros.h +82 -0
  107. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/struct_smart_holder.h +358 -0
  108. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/type_caster_base.h +1597 -0
  109. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/typeid.h +65 -0
  110. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/using_smart_holder.h +22 -0
  111. touchlab_comm_py-0.1.1/pybind11/include/pybind11/detail/value_and_holder.h +78 -0
  112. touchlab_comm_py-0.1.1/pybind11/include/pybind11/eigen/common.h +9 -0
  113. touchlab_comm_py-0.1.1/pybind11/include/pybind11/eigen/matrix.h +723 -0
  114. touchlab_comm_py-0.1.1/pybind11/include/pybind11/eigen/tensor.h +521 -0
  115. touchlab_comm_py-0.1.1/pybind11/include/pybind11/eigen.h +12 -0
  116. touchlab_comm_py-0.1.1/pybind11/include/pybind11/embed.h +304 -0
  117. touchlab_comm_py-0.1.1/pybind11/include/pybind11/eval.h +156 -0
  118. touchlab_comm_py-0.1.1/pybind11/include/pybind11/functional.h +149 -0
  119. touchlab_comm_py-0.1.1/pybind11/include/pybind11/gil.h +196 -0
  120. touchlab_comm_py-0.1.1/pybind11/include/pybind11/gil_safe_call_once.h +102 -0
  121. touchlab_comm_py-0.1.1/pybind11/include/pybind11/gil_simple.h +37 -0
  122. touchlab_comm_py-0.1.1/pybind11/include/pybind11/iostream.h +265 -0
  123. touchlab_comm_py-0.1.1/pybind11/include/pybind11/native_enum.h +66 -0
  124. touchlab_comm_py-0.1.1/pybind11/include/pybind11/numpy.h +2187 -0
  125. touchlab_comm_py-0.1.1/pybind11/include/pybind11/operators.h +202 -0
  126. touchlab_comm_py-0.1.1/pybind11/include/pybind11/options.h +92 -0
  127. touchlab_comm_py-0.1.1/pybind11/include/pybind11/pybind11.h +3534 -0
  128. touchlab_comm_py-0.1.1/pybind11/include/pybind11/pytypes.h +2676 -0
  129. touchlab_comm_py-0.1.1/pybind11/include/pybind11/stl/filesystem.h +124 -0
  130. touchlab_comm_py-0.1.1/pybind11/include/pybind11/stl.h +669 -0
  131. touchlab_comm_py-0.1.1/pybind11/include/pybind11/stl_bind.h +858 -0
  132. touchlab_comm_py-0.1.1/pybind11/include/pybind11/trampoline_self_life_support.h +60 -0
  133. touchlab_comm_py-0.1.1/pybind11/include/pybind11/type_caster_pyobject_ptr.h +61 -0
  134. touchlab_comm_py-0.1.1/pybind11/include/pybind11/typing.h +295 -0
  135. touchlab_comm_py-0.1.1/pybind11/include/pybind11/warnings.h +75 -0
  136. touchlab_comm_py-0.1.1/pybind11/noxfile.py +111 -0
  137. touchlab_comm_py-0.1.1/pybind11/pybind11/__init__.py +19 -0
  138. touchlab_comm_py-0.1.1/pybind11/pybind11/__main__.py +93 -0
  139. touchlab_comm_py-0.1.1/pybind11/pybind11/_version.py +12 -0
  140. touchlab_comm_py-0.1.1/pybind11/pybind11/commands.py +39 -0
  141. touchlab_comm_py-0.1.1/pybind11/pybind11/py.typed +0 -0
  142. touchlab_comm_py-0.1.1/pybind11/pybind11/setup_helpers.py +500 -0
  143. touchlab_comm_py-0.1.1/pybind11/pyproject.toml +85 -0
  144. touchlab_comm_py-0.1.1/pybind11/setup.cfg +42 -0
  145. touchlab_comm_py-0.1.1/pybind11/setup.py +153 -0
  146. touchlab_comm_py-0.1.1/pybind11/tests/CMakeLists.txt +622 -0
  147. touchlab_comm_py-0.1.1/pybind11/tests/conftest.py +244 -0
  148. touchlab_comm_py-0.1.1/pybind11/tests/constructor_stats.h +330 -0
  149. touchlab_comm_py-0.1.1/pybind11/tests/cross_module_gil_utils.cpp +111 -0
  150. touchlab_comm_py-0.1.1/pybind11/tests/cross_module_interleaved_error_already_set.cpp +54 -0
  151. touchlab_comm_py-0.1.1/pybind11/tests/custom_exceptions.py +10 -0
  152. touchlab_comm_py-0.1.1/pybind11/tests/eigen_tensor_avoid_stl_array.cpp +16 -0
  153. touchlab_comm_py-0.1.1/pybind11/tests/env.py +36 -0
  154. touchlab_comm_py-0.1.1/pybind11/tests/exo_planet_c_api.cpp +76 -0
  155. touchlab_comm_py-0.1.1/pybind11/tests/exo_planet_pybind11.cpp +19 -0
  156. touchlab_comm_py-0.1.1/pybind11/tests/extra_python_package/pytest.ini +0 -0
  157. touchlab_comm_py-0.1.1/pybind11/tests/extra_python_package/test_files.py +318 -0
  158. touchlab_comm_py-0.1.1/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  159. touchlab_comm_py-0.1.1/pybind11/tests/extra_setuptools/test_setuphelper.py +153 -0
  160. touchlab_comm_py-0.1.1/pybind11/tests/home_planet_very_lonely_traveler.cpp +13 -0
  161. touchlab_comm_py-0.1.1/pybind11/tests/local_bindings.h +92 -0
  162. touchlab_comm_py-0.1.1/pybind11/tests/object.h +205 -0
  163. touchlab_comm_py-0.1.1/pybind11/tests/pure_cpp/CMakeLists.txt +20 -0
  164. touchlab_comm_py-0.1.1/pybind11/tests/pure_cpp/smart_holder_poc.h +55 -0
  165. touchlab_comm_py-0.1.1/pybind11/tests/pure_cpp/smart_holder_poc_test.cpp +415 -0
  166. touchlab_comm_py-0.1.1/pybind11/tests/pybind11_cross_module_tests.cpp +149 -0
  167. touchlab_comm_py-0.1.1/pybind11/tests/pybind11_tests.cpp +130 -0
  168. touchlab_comm_py-0.1.1/pybind11/tests/pybind11_tests.h +119 -0
  169. touchlab_comm_py-0.1.1/pybind11/tests/pyproject.toml +17 -0
  170. touchlab_comm_py-0.1.1/pybind11/tests/pytest.ini +23 -0
  171. touchlab_comm_py-0.1.1/pybind11/tests/requirements.txt +16 -0
  172. touchlab_comm_py-0.1.1/pybind11/tests/test_async.cpp +25 -0
  173. touchlab_comm_py-0.1.1/pybind11/tests/test_async.py +31 -0
  174. touchlab_comm_py-0.1.1/pybind11/tests/test_buffers.cpp +442 -0
  175. touchlab_comm_py-0.1.1/pybind11/tests/test_buffers.py +401 -0
  176. touchlab_comm_py-0.1.1/pybind11/tests/test_builtin_casters.cpp +391 -0
  177. touchlab_comm_py-0.1.1/pybind11/tests/test_builtin_casters.py +551 -0
  178. touchlab_comm_py-0.1.1/pybind11/tests/test_call_policies.cpp +113 -0
  179. touchlab_comm_py-0.1.1/pybind11/tests/test_call_policies.py +256 -0
  180. touchlab_comm_py-0.1.1/pybind11/tests/test_callbacks.cpp +308 -0
  181. touchlab_comm_py-0.1.1/pybind11/tests/test_callbacks.py +247 -0
  182. touchlab_comm_py-0.1.1/pybind11/tests/test_chrono.cpp +81 -0
  183. touchlab_comm_py-0.1.1/pybind11/tests/test_chrono.py +207 -0
  184. touchlab_comm_py-0.1.1/pybind11/tests/test_class.cpp +681 -0
  185. touchlab_comm_py-0.1.1/pybind11/tests/test_class.py +549 -0
  186. touchlab_comm_py-0.1.1/pybind11/tests/test_class_release_gil_before_calling_cpp_dtor.cpp +53 -0
  187. touchlab_comm_py-0.1.1/pybind11/tests/test_class_release_gil_before_calling_cpp_dtor.py +21 -0
  188. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_basic.cpp +247 -0
  189. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_basic.py +246 -0
  190. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_disowning.cpp +41 -0
  191. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_disowning.py +78 -0
  192. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_disowning_mi.cpp +85 -0
  193. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_disowning_mi.py +246 -0
  194. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_factory_constructors.cpp +164 -0
  195. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_factory_constructors.py +53 -0
  196. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_inheritance.cpp +90 -0
  197. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_inheritance.py +63 -0
  198. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_mi_thunks.cpp +93 -0
  199. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_mi_thunks.py +53 -0
  200. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_property.cpp +94 -0
  201. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_property.py +166 -0
  202. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_property_non_owning.cpp +63 -0
  203. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_property_non_owning.py +30 -0
  204. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_shared_ptr_copy_move.cpp +103 -0
  205. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_shared_ptr_copy_move.py +41 -0
  206. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_basic.cpp +82 -0
  207. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_basic.py +59 -0
  208. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_self_life_support.cpp +86 -0
  209. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_self_life_support.py +38 -0
  210. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_shared_from_this.cpp +137 -0
  211. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_shared_from_this.py +247 -0
  212. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.cpp +92 -0
  213. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.py +154 -0
  214. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_unique_ptr.cpp +63 -0
  215. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_trampoline_unique_ptr.py +31 -0
  216. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_unique_ptr_custom_deleter.cpp +30 -0
  217. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_unique_ptr_custom_deleter.py +8 -0
  218. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_unique_ptr_member.cpp +50 -0
  219. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_unique_ptr_member.py +26 -0
  220. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_virtual_py_cpp_mix.cpp +58 -0
  221. touchlab_comm_py-0.1.1/pybind11/tests/test_class_sh_virtual_py_cpp_mix.py +66 -0
  222. touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/CMakeLists.txt +86 -0
  223. touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/embed.cpp +23 -0
  224. touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +19 -0
  225. touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +29 -0
  226. touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +37 -0
  227. touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/main.cpp +6 -0
  228. touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +38 -0
  229. touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +32 -0
  230. touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +38 -0
  231. touchlab_comm_py-0.1.1/pybind11/tests/test_cmake_build/test.py +10 -0
  232. touchlab_comm_py-0.1.1/pybind11/tests/test_const_name.cpp +55 -0
  233. touchlab_comm_py-0.1.1/pybind11/tests/test_const_name.py +31 -0
  234. touchlab_comm_py-0.1.1/pybind11/tests/test_constants_and_functions.cpp +158 -0
  235. touchlab_comm_py-0.1.1/pybind11/tests/test_constants_and_functions.py +58 -0
  236. touchlab_comm_py-0.1.1/pybind11/tests/test_copy_move.cpp +544 -0
  237. touchlab_comm_py-0.1.1/pybind11/tests/test_copy_move.py +144 -0
  238. touchlab_comm_py-0.1.1/pybind11/tests/test_cpp_conduit.cpp +22 -0
  239. touchlab_comm_py-0.1.1/pybind11/tests/test_cpp_conduit.py +166 -0
  240. touchlab_comm_py-0.1.1/pybind11/tests/test_cpp_conduit_traveler_bindings.h +47 -0
  241. touchlab_comm_py-0.1.1/pybind11/tests/test_cpp_conduit_traveler_types.h +25 -0
  242. touchlab_comm_py-0.1.1/pybind11/tests/test_custom_type_casters.cpp +217 -0
  243. touchlab_comm_py-0.1.1/pybind11/tests/test_custom_type_casters.py +126 -0
  244. touchlab_comm_py-0.1.1/pybind11/tests/test_custom_type_setup.cpp +41 -0
  245. touchlab_comm_py-0.1.1/pybind11/tests/test_custom_type_setup.py +50 -0
  246. touchlab_comm_py-0.1.1/pybind11/tests/test_docs_advanced_cast_custom.cpp +68 -0
  247. touchlab_comm_py-0.1.1/pybind11/tests/test_docs_advanced_cast_custom.py +37 -0
  248. touchlab_comm_py-0.1.1/pybind11/tests/test_docstring_options.cpp +129 -0
  249. touchlab_comm_py-0.1.1/pybind11/tests/test_docstring_options.py +72 -0
  250. touchlab_comm_py-0.1.1/pybind11/tests/test_eigen_matrix.cpp +447 -0
  251. touchlab_comm_py-0.1.1/pybind11/tests/test_eigen_matrix.py +839 -0
  252. touchlab_comm_py-0.1.1/pybind11/tests/test_eigen_tensor.cpp +18 -0
  253. touchlab_comm_py-0.1.1/pybind11/tests/test_eigen_tensor.inl +338 -0
  254. touchlab_comm_py-0.1.1/pybind11/tests/test_eigen_tensor.py +316 -0
  255. touchlab_comm_py-0.1.1/pybind11/tests/test_embed/CMakeLists.txt +56 -0
  256. touchlab_comm_py-0.1.1/pybind11/tests/test_embed/catch.cpp +43 -0
  257. touchlab_comm_py-0.1.1/pybind11/tests/test_embed/external_module.cpp +20 -0
  258. touchlab_comm_py-0.1.1/pybind11/tests/test_embed/test_interpreter.cpp +488 -0
  259. touchlab_comm_py-0.1.1/pybind11/tests/test_embed/test_interpreter.py +16 -0
  260. touchlab_comm_py-0.1.1/pybind11/tests/test_embed/test_trampoline.py +18 -0
  261. touchlab_comm_py-0.1.1/pybind11/tests/test_enum.cpp +149 -0
  262. touchlab_comm_py-0.1.1/pybind11/tests/test_enum.py +344 -0
  263. touchlab_comm_py-0.1.1/pybind11/tests/test_eval.cpp +118 -0
  264. touchlab_comm_py-0.1.1/pybind11/tests/test_eval.py +52 -0
  265. touchlab_comm_py-0.1.1/pybind11/tests/test_eval_call.py +5 -0
  266. touchlab_comm_py-0.1.1/pybind11/tests/test_exceptions.cpp +427 -0
  267. touchlab_comm_py-0.1.1/pybind11/tests/test_exceptions.h +13 -0
  268. touchlab_comm_py-0.1.1/pybind11/tests/test_exceptions.py +439 -0
  269. touchlab_comm_py-0.1.1/pybind11/tests/test_factory_constructors.cpp +430 -0
  270. touchlab_comm_py-0.1.1/pybind11/tests/test_factory_constructors.py +531 -0
  271. touchlab_comm_py-0.1.1/pybind11/tests/test_gil_scoped.cpp +144 -0
  272. touchlab_comm_py-0.1.1/pybind11/tests/test_gil_scoped.py +269 -0
  273. touchlab_comm_py-0.1.1/pybind11/tests/test_iostream.cpp +126 -0
  274. touchlab_comm_py-0.1.1/pybind11/tests/test_iostream.py +297 -0
  275. touchlab_comm_py-0.1.1/pybind11/tests/test_kwargs_and_defaults.cpp +331 -0
  276. touchlab_comm_py-0.1.1/pybind11/tests/test_kwargs_and_defaults.py +471 -0
  277. touchlab_comm_py-0.1.1/pybind11/tests/test_local_bindings.cpp +106 -0
  278. touchlab_comm_py-0.1.1/pybind11/tests/test_local_bindings.py +257 -0
  279. touchlab_comm_py-0.1.1/pybind11/tests/test_methods_and_attributes.cpp +492 -0
  280. touchlab_comm_py-0.1.1/pybind11/tests/test_methods_and_attributes.py +556 -0
  281. touchlab_comm_py-0.1.1/pybind11/tests/test_modules.cpp +125 -0
  282. touchlab_comm_py-0.1.1/pybind11/tests/test_modules.py +129 -0
  283. touchlab_comm_py-0.1.1/pybind11/tests/test_multiple_inheritance.cpp +341 -0
  284. touchlab_comm_py-0.1.1/pybind11/tests/test_multiple_inheritance.py +500 -0
  285. touchlab_comm_py-0.1.1/pybind11/tests/test_native_enum.cpp +236 -0
  286. touchlab_comm_py-0.1.1/pybind11/tests/test_native_enum.py +297 -0
  287. touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_array.cpp +598 -0
  288. touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_array.py +710 -0
  289. touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_dtypes.cpp +745 -0
  290. touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_dtypes.py +464 -0
  291. touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_vectorize.cpp +107 -0
  292. touchlab_comm_py-0.1.1/pybind11/tests/test_numpy_vectorize.py +268 -0
  293. touchlab_comm_py-0.1.1/pybind11/tests/test_opaque_types.cpp +77 -0
  294. touchlab_comm_py-0.1.1/pybind11/tests/test_opaque_types.py +63 -0
  295. touchlab_comm_py-0.1.1/pybind11/tests/test_operator_overloading.cpp +281 -0
  296. touchlab_comm_py-0.1.1/pybind11/tests/test_operator_overloading.py +161 -0
  297. touchlab_comm_py-0.1.1/pybind11/tests/test_pickling.cpp +194 -0
  298. touchlab_comm_py-0.1.1/pybind11/tests/test_pickling.py +136 -0
  299. touchlab_comm_py-0.1.1/pybind11/tests/test_python_multiple_inheritance.cpp +45 -0
  300. touchlab_comm_py-0.1.1/pybind11/tests/test_python_multiple_inheritance.py +36 -0
  301. touchlab_comm_py-0.1.1/pybind11/tests/test_pytypes.cpp +1209 -0
  302. touchlab_comm_py-0.1.1/pybind11/tests/test_pytypes.py +1340 -0
  303. touchlab_comm_py-0.1.1/pybind11/tests/test_sequences_and_iterators.cpp +600 -0
  304. touchlab_comm_py-0.1.1/pybind11/tests/test_sequences_and_iterators.py +296 -0
  305. touchlab_comm_py-0.1.1/pybind11/tests/test_smart_ptr.cpp +553 -0
  306. touchlab_comm_py-0.1.1/pybind11/tests/test_smart_ptr.py +352 -0
  307. touchlab_comm_py-0.1.1/pybind11/tests/test_stl.cpp +666 -0
  308. touchlab_comm_py-0.1.1/pybind11/tests/test_stl.py +720 -0
  309. touchlab_comm_py-0.1.1/pybind11/tests/test_stl_binders.cpp +275 -0
  310. touchlab_comm_py-0.1.1/pybind11/tests/test_stl_binders.py +414 -0
  311. touchlab_comm_py-0.1.1/pybind11/tests/test_tagbased_polymorphic.cpp +148 -0
  312. touchlab_comm_py-0.1.1/pybind11/tests/test_tagbased_polymorphic.py +30 -0
  313. touchlab_comm_py-0.1.1/pybind11/tests/test_thread.cpp +72 -0
  314. touchlab_comm_py-0.1.1/pybind11/tests/test_thread.py +68 -0
  315. touchlab_comm_py-0.1.1/pybind11/tests/test_type_caster_pyobject_ptr.cpp +168 -0
  316. touchlab_comm_py-0.1.1/pybind11/tests/test_type_caster_pyobject_ptr.py +124 -0
  317. touchlab_comm_py-0.1.1/pybind11/tests/test_type_caster_std_function_specializations.cpp +46 -0
  318. touchlab_comm_py-0.1.1/pybind11/tests/test_type_caster_std_function_specializations.py +15 -0
  319. touchlab_comm_py-0.1.1/pybind11/tests/test_union.cpp +22 -0
  320. touchlab_comm_py-0.1.1/pybind11/tests/test_union.py +10 -0
  321. touchlab_comm_py-0.1.1/pybind11/tests/test_unnamed_namespace_a.cpp +37 -0
  322. touchlab_comm_py-0.1.1/pybind11/tests/test_unnamed_namespace_a.py +30 -0
  323. touchlab_comm_py-0.1.1/pybind11/tests/test_unnamed_namespace_b.cpp +13 -0
  324. touchlab_comm_py-0.1.1/pybind11/tests/test_unnamed_namespace_b.py +7 -0
  325. touchlab_comm_py-0.1.1/pybind11/tests/test_vector_unique_ptr_member.cpp +54 -0
  326. touchlab_comm_py-0.1.1/pybind11/tests/test_vector_unique_ptr_member.py +16 -0
  327. touchlab_comm_py-0.1.1/pybind11/tests/test_virtual_functions.cpp +592 -0
  328. touchlab_comm_py-0.1.1/pybind11/tests/test_virtual_functions.py +468 -0
  329. touchlab_comm_py-0.1.1/pybind11/tests/test_warnings.cpp +46 -0
  330. touchlab_comm_py-0.1.1/pybind11/tests/test_warnings.py +68 -0
  331. touchlab_comm_py-0.1.1/pybind11/tests/valgrind-numpy-scipy.supp +140 -0
  332. touchlab_comm_py-0.1.1/pybind11/tests/valgrind-python.supp +117 -0
  333. touchlab_comm_py-0.1.1/pybind11/tools/FindCatch.cmake +76 -0
  334. touchlab_comm_py-0.1.1/pybind11/tools/FindEigen3.cmake +86 -0
  335. touchlab_comm_py-0.1.1/pybind11/tools/FindPythonLibsNew.cmake +320 -0
  336. touchlab_comm_py-0.1.1/pybind11/tools/JoinPaths.cmake +23 -0
  337. touchlab_comm_py-0.1.1/pybind11/tools/check-style.sh +44 -0
  338. touchlab_comm_py-0.1.1/pybind11/tools/cmake_uninstall.cmake.in +23 -0
  339. touchlab_comm_py-0.1.1/pybind11/tools/codespell_ignore_lines_from_errors.py +40 -0
  340. touchlab_comm_py-0.1.1/pybind11/tools/libsize.py +38 -0
  341. touchlab_comm_py-0.1.1/pybind11/tools/make_changelog.py +97 -0
  342. touchlab_comm_py-0.1.1/pybind11/tools/pybind11.pc.in +7 -0
  343. touchlab_comm_py-0.1.1/pybind11/tools/pybind11Common.cmake +437 -0
  344. touchlab_comm_py-0.1.1/pybind11/tools/pybind11Config.cmake.in +240 -0
  345. touchlab_comm_py-0.1.1/pybind11/tools/pybind11GuessPythonExtSuffix.cmake +86 -0
  346. touchlab_comm_py-0.1.1/pybind11/tools/pybind11NewTools.cmake +342 -0
  347. touchlab_comm_py-0.1.1/pybind11/tools/pybind11Tools.cmake +216 -0
  348. touchlab_comm_py-0.1.1/pybind11/tools/pyproject.toml +3 -0
  349. touchlab_comm_py-0.1.1/pybind11/tools/setup_global.py.in +66 -0
  350. touchlab_comm_py-0.1.1/pybind11/tools/setup_main.py.in +50 -0
  351. touchlab_comm_py-0.1.1/pybind11/tools/test-pybind11GuessPythonExtSuffix.cmake +161 -0
  352. touchlab_comm_py-0.1.1/pyproject.toml +33 -0
  353. touchlab_comm_py-0.1.1/src/comm.cpp +40 -0
  354. 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,11 @@
1
+ .vscode/
2
+ build/
3
+ *.log
4
+
5
+ latest
6
+ latest_list
7
+ COLCON_IGNORE
8
+ CATKIN_IGNORE
9
+ dist
10
+ *.egg-info
11
+ tmp/
@@ -0,0 +1,3 @@
1
+ [submodule "pybind11"]
2
+ path = pybind11
3
+ url = https://github.com/pybind/pybind11.git
@@ -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_
@@ -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'