panda-python 0.5.0__tar.gz → 0.5.2__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 (77) hide show
  1. panda-python-0.5.2/.github/workflows/docs.yml +32 -0
  2. panda-python-0.5.2/.github/workflows/release.yml +99 -0
  3. panda-python-0.5.2/.github/workflows/test.yml +15 -0
  4. panda-python-0.5.2/.github/workflows/test_all.yml +16 -0
  5. {panda-python-0.5.0 → panda-python-0.5.2}/CMakeLists.txt +3 -3
  6. {panda-python-0.5.0 → panda-python-0.5.2}/PKG-INFO +47 -6
  7. panda-python-0.5.2/README.md +52 -0
  8. panda-python-0.5.2/bin/before_install_ubuntu.sh +20 -0
  9. {panda-python-0.5.0 → panda-python-0.5.2}/bin/build_all.sh +5 -1
  10. {panda-python-0.5.0 → panda-python-0.5.2}/docs/conf.py +1 -1
  11. {panda-python-0.5.0 → panda-python-0.5.2}/pyproject.toml +9 -4
  12. {panda-python-0.5.0 → panda-python-0.5.2}/src/panda_py/__init__.py +1 -1
  13. {panda-python-0.5.0 → panda-python-0.5.2}/src/panda_py/_core/__init__.pyi +5 -0
  14. panda-python-0.5.0/.github/workflows/build.yml +0 -82
  15. panda-python-0.5.0/README.md +0 -15
  16. {panda-python-0.5.0 → panda-python-0.5.2}/.gitignore +0 -0
  17. {panda-python-0.5.0 → panda-python-0.5.2}/.pylintrc +0 -0
  18. {panda-python-0.5.0 → panda-python-0.5.2}/.vscode/c_cpp_properties.json +0 -0
  19. {panda-python-0.5.0 → panda-python-0.5.2}/.vscode/generate_docs_api.sh +0 -0
  20. {panda-python-0.5.0 → panda-python-0.5.2}/.vscode/settings.json +0 -0
  21. {panda-python-0.5.0 → panda-python-0.5.2}/.vscode/tasks.json +0 -0
  22. {panda-python-0.5.0 → panda-python-0.5.2}/LICENSE +0 -0
  23. /panda-python-0.5.0/bin/before_install.sh → /panda-python-0.5.2/bin/before_install_centos.sh +0 -0
  24. {panda-python-0.5.0 → panda-python-0.5.2}/docs/Makefile +0 -0
  25. {panda-python-0.5.0 → panda-python-0.5.2}/docs/index.rst +0 -0
  26. {panda-python-0.5.0 → panda-python-0.5.2}/docs/make.bat +0 -0
  27. {panda-python-0.5.0 → panda-python-0.5.2}/docs/panda_py.cli.rst +0 -0
  28. {panda-python-0.5.0 → panda-python-0.5.2}/docs/panda_py.constants.rst +0 -0
  29. {panda-python-0.5.0 → panda-python-0.5.2}/docs/panda_py.controllers.rst +0 -0
  30. {panda-python-0.5.0 → panda-python-0.5.2}/docs/panda_py.libfranka.rst +0 -0
  31. {panda-python-0.5.0 → panda-python-0.5.2}/docs/panda_py.motion.rst +0 -0
  32. {panda-python-0.5.0 → panda-python-0.5.2}/docs/panda_py.rst +0 -0
  33. {panda-python-0.5.0 → panda-python-0.5.2}/examples/cartesian_impedance.py +0 -0
  34. {panda-python-0.5.0 → panda-python-0.5.2}/examples/communication_test.py +0 -0
  35. {panda-python-0.5.0 → panda-python-0.5.2}/examples/mmc.py +0 -0
  36. {panda-python-0.5.0 → panda-python-0.5.2}/examples/notebooks/benchmark.ipynb +0 -0
  37. {panda-python-0.5.0 → panda-python-0.5.2}/examples/notebooks/motion.ipynb +0 -0
  38. {panda-python-0.5.0 → panda-python-0.5.2}/examples/notebooks/paper.ipynb +0 -0
  39. {panda-python-0.5.0 → panda-python-0.5.2}/include/constants.h +0 -0
  40. {panda-python-0.5.0 → panda-python-0.5.2}/include/controllers/applied_force.h +0 -0
  41. {panda-python-0.5.0 → panda-python-0.5.2}/include/controllers/applied_torque.h +0 -0
  42. {panda-python-0.5.0 → panda-python-0.5.2}/include/controllers/cartesian_impedance.h +0 -0
  43. {panda-python-0.5.0 → panda-python-0.5.2}/include/controllers/controller.h +0 -0
  44. {panda-python-0.5.0 → panda-python-0.5.2}/include/controllers/force.h +0 -0
  45. {panda-python-0.5.0 → panda-python-0.5.2}/include/controllers/integrated_velocity.h +0 -0
  46. {panda-python-0.5.0 → panda-python-0.5.2}/include/controllers/joint_limits/virtual_wall.h +0 -0
  47. {panda-python-0.5.0 → panda-python-0.5.2}/include/controllers/joint_limits/virtual_wall_controller.h +0 -0
  48. {panda-python-0.5.0 → panda-python-0.5.2}/include/controllers/joint_position.h +0 -0
  49. {panda-python-0.5.0 → panda-python-0.5.2}/include/controllers/trajectory.h +0 -0
  50. {panda-python-0.5.0 → panda-python-0.5.2}/include/kinematics/fk.h +0 -0
  51. {panda-python-0.5.0 → panda-python-0.5.2}/include/kinematics/ik.h +0 -0
  52. {panda-python-0.5.0 → panda-python-0.5.2}/include/motion/generators.h +0 -0
  53. {panda-python-0.5.0 → panda-python-0.5.2}/include/motion/time_optimal/path.h +0 -0
  54. {panda-python-0.5.0 → panda-python-0.5.2}/include/motion/time_optimal/trajectory.h +0 -0
  55. {panda-python-0.5.0 → panda-python-0.5.2}/include/panda.h +0 -0
  56. {panda-python-0.5.0 → panda-python-0.5.2}/include/utils.h +0 -0
  57. {panda-python-0.5.0 → panda-python-0.5.2}/logo.jpg +0 -0
  58. {panda-python-0.5.0 → panda-python-0.5.2}/src/_core.cpp +0 -0
  59. {panda-python-0.5.0 → panda-python-0.5.2}/src/controllers/applied_force.cpp +0 -0
  60. {panda-python-0.5.0 → panda-python-0.5.2}/src/controllers/applied_torque.cpp +0 -0
  61. {panda-python-0.5.0 → panda-python-0.5.2}/src/controllers/cartesian_impedance.cpp +0 -0
  62. {panda-python-0.5.0 → panda-python-0.5.2}/src/controllers/force.cpp +0 -0
  63. {panda-python-0.5.0 → panda-python-0.5.2}/src/controllers/integrated_velocity.cpp +0 -0
  64. {panda-python-0.5.0 → panda-python-0.5.2}/src/controllers/joint_limits/virtual_wall.cpp +0 -0
  65. {panda-python-0.5.0 → panda-python-0.5.2}/src/controllers/joint_position.cpp +0 -0
  66. {panda-python-0.5.0 → panda-python-0.5.2}/src/controllers/trajectory.cpp +0 -0
  67. {panda-python-0.5.0 → panda-python-0.5.2}/src/libfranka.cpp +0 -0
  68. {panda-python-0.5.0 → panda-python-0.5.2}/src/motion/generators.cpp +0 -0
  69. {panda-python-0.5.0 → panda-python-0.5.2}/src/motion/time_optimal/path.cpp +0 -0
  70. {panda-python-0.5.0 → panda-python-0.5.2}/src/motion/time_optimal/trajectory.cpp +0 -0
  71. {panda-python-0.5.0 → panda-python-0.5.2}/src/panda.cpp +0 -0
  72. {panda-python-0.5.0 → panda-python-0.5.2}/src/panda_py/__init__.pyi +0 -0
  73. {panda-python-0.5.0 → panda-python-0.5.2}/src/panda_py/cli.py +0 -0
  74. {panda-python-0.5.0 → panda-python-0.5.2}/src/panda_py/constants.py +0 -0
  75. {panda-python-0.5.0 → panda-python-0.5.2}/src/panda_py/controllers.py +0 -0
  76. {panda-python-0.5.0 → panda-python-0.5.2}/src/panda_py/libfranka/__init__.pyi +0 -0
  77. {panda-python-0.5.0 → panda-python-0.5.2}/src/panda_py/motion.py +0 -0
@@ -0,0 +1,32 @@
1
+ name: Build and deploy documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+
7
+ permissions:
8
+ contents: write
9
+ id-token: write
10
+ pages: write
11
+
12
+ jobs:
13
+ build:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v3
17
+ - uses: actions/setup-python@v3
18
+ - name: Install prerequisites
19
+ run: ./bin/before_install_ubuntu.sh
20
+ - name: Build wheel
21
+ run: pip install .[docs]
22
+ - name: Build documentation
23
+ run: cd docs && make html
24
+ - name: Setup Pages
25
+ uses: actions/configure-pages@v3
26
+ - name: Upload artifact
27
+ uses: actions/upload-pages-artifact@v2
28
+ with:
29
+ path: ./docs/_build/html
30
+ - name: Deploy to GitHub Pages
31
+ id: deployment
32
+ uses: actions/deploy-pages@v2
@@ -0,0 +1,99 @@
1
+ name: Build and deploy all variants
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ env:
8
+ VERSION: 0.5.2
9
+
10
+ permissions: write-all
11
+
12
+ jobs:
13
+ build_wheels:
14
+ name: Build all wheels with cibuildwheel
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v3
18
+ - uses: actions/setup-python@v3
19
+ - name: Install cibuildwheel
20
+ run: python -m pip install cibuildwheel==2.12.0
21
+ - name: Build all wheels
22
+ run: ./bin/build_all.sh
23
+ - uses: actions/upload-artifact@v3
24
+ with:
25
+ path: ./dist/*.whl
26
+ name: dist
27
+ - uses: actions/upload-artifact@v3
28
+ with:
29
+ path: ./archive/*.zip
30
+ name: archive
31
+
32
+ build_sdist:
33
+ name: Build source distribution
34
+ runs-on: ubuntu-latest
35
+ steps:
36
+ - uses: actions/checkout@v3
37
+ - uses: actions/setup-python@v3
38
+ - name: Build sdist
39
+ run: pipx run build --sdist
40
+ - uses: actions/upload-artifact@v3
41
+ with:
42
+ path: dist/*.tar.gz
43
+ name: dist
44
+
45
+ upload_pypi:
46
+ name: "Upload wheels to pypi"
47
+ needs: [build_wheels, build_sdist]
48
+ runs-on: ubuntu-latest
49
+ steps:
50
+ - uses: actions/download-artifact@v3
51
+ with:
52
+ name: dist
53
+ path: dist
54
+ - uses: pypa/gh-action-pypi-publish@v1.5.0
55
+ with:
56
+ user: __token__
57
+ password: ${{ secrets.PYPI_API_TOKEN }}
58
+
59
+ upload_assets:
60
+ name: "Upload release assets"
61
+ needs: [build_wheels, build_sdist]
62
+ runs-on: ubuntu-latest
63
+ steps:
64
+ - uses: actions/download-artifact@v3
65
+ with:
66
+ name: archive
67
+ path: archive
68
+ - uses: actions/upload-release-asset@v1
69
+ with:
70
+ upload_url: ${{ github.event.release.upload_url }}
71
+ asset_path: ./archive/panda_py_${{ env.VERSION }}_libfranka_0.7.1.zip
72
+ asset_name: panda_py_${{ env.VERSION }}_libfranka_0.7.1.zip
73
+ asset_content_type: application/zip
74
+ env:
75
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
76
+ - uses: actions/upload-release-asset@v1
77
+ with:
78
+ upload_url: ${{ github.event.release.upload_url }}
79
+ asset_path: ./archive/panda_py_${{ env.VERSION }}_libfranka_0.8.0.zip
80
+ asset_name: panda_py_${{ env.VERSION }}_libfranka_0.8.0.zip
81
+ asset_content_type: application/zip
82
+ env:
83
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
84
+ - uses: actions/upload-release-asset@v1
85
+ with:
86
+ upload_url: ${{ github.event.release.upload_url }}
87
+ asset_path: ./archive/panda_py_${{ env.VERSION }}_libfranka_0.9.2.zip
88
+ asset_name: panda_py_${{ env.VERSION }}_libfranka_0.9.2.zip
89
+ asset_content_type: application/zip
90
+ env:
91
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
92
+ - uses: actions/upload-release-asset@v1
93
+ with:
94
+ upload_url: ${{ github.event.release.upload_url }}
95
+ asset_path: ./archive/panda_py_${{ env.VERSION }}_libfranka_0.10.0.zip
96
+ asset_name: panda_py_${{ env.VERSION }}_libfranka_0.10.0.zip
97
+ asset_content_type: application/zip
98
+ env:
99
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,15 @@
1
+ name: Build and test
2
+
3
+ on:
4
+ push:
5
+
6
+ jobs:
7
+ build:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - uses: actions/checkout@v3
11
+ - uses: actions/setup-python@v3
12
+ - name: Install prerequisites
13
+ run: ./bin/before_install_ubuntu.sh
14
+ - name: Build wheel
15
+ run: pip install .
@@ -0,0 +1,16 @@
1
+ name: Build and test all variants
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ build_wheels:
8
+ name: Build all wheels with cibuildwheel
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v3
12
+ - uses: actions/setup-python@v3
13
+ - name: Install cibuildwheel
14
+ run: python -m pip install cibuildwheel==2.12.0
15
+ - name: Build all wheels
16
+ run: ./bin/build_all.sh
@@ -1,6 +1,6 @@
1
1
  cmake_minimum_required(VERSION 3.15...3.25)
2
2
  project(
3
- "${SKBUILD_PROJECT_NAME}"
3
+ "panda_py"
4
4
  LANGUAGES CXX)
5
5
  # VERSION "${SKBUILD_PROJECT_VERSION}")
6
6
 
@@ -48,7 +48,7 @@ target_include_directories(_core SYSTEM PUBLIC
48
48
  #target_compile_definitions(_core
49
49
  # PRIVATE VERSION_INFO=${PROJECT_VERSION})
50
50
 
51
- install(TARGETS _core LIBRARY DESTINATION ${SKBUILD_PROJECT_NAME})
51
+ install(TARGETS _core LIBRARY DESTINATION panda_py)
52
52
 
53
53
  ## libfranka module
54
54
  pybind11_add_module(libfranka
@@ -65,4 +65,4 @@ target_include_directories(libfranka SYSTEM PUBLIC
65
65
  #target_compile_definitions(libfranka
66
66
  # PRIVATE VERSION_INFO=${PROJECT_VERSION})
67
67
 
68
- install(TARGETS libfranka LIBRARY DESTINATION ${SKBUILD_PROJECT_NAME})
68
+ install(TARGETS libfranka LIBRARY DESTINATION panda_py)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: panda-python
3
- Version: 0.5.0
3
+ Version: 0.5.2
4
4
  Summary: Python bindings for the Panda
5
5
  Keywords: python real-time control robot franka emika
6
6
  Author-Email: Jean Elsner <jean.elsner@tum.de>
@@ -223,21 +223,62 @@ Requires-Dist: matplotlib; extra == "examples"
223
223
  Requires-Dist: spatialmath; extra == "examples"
224
224
  Requires-Dist: ansitable; extra == "examples"
225
225
  Requires-Dist: qpsolvers; extra == "examples"
226
+ Requires-Dist: furo; extra == "docs"
227
+ Requires-Dist: sphinx-reredirects; extra == "docs"
228
+ Requires-Dist: sphinx; extra == "docs"
226
229
  Provides-Extra: examples
230
+ Provides-Extra: docs
227
231
  Description-Content-Type: text/markdown
228
232
 
229
233
  # panda-py
230
- ![logo](logo.jpg)
234
+
235
+ > **Info**
236
+ >
237
+ > Please consider this a work in progress. Documentation, continuous integration pipeline and a companion paper are currently being prepared.
238
+
239
+ ![logo](https://github.com/JeanElsner/panda-py/blob/main/logo.jpg?raw=true)
231
240
 
232
241
  [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/JeanElsner/panda-py/build.yml)](https://github.com/JeanElsner/panda-py/actions/workflows/build.yml)
233
242
  [![GitHub](https://img.shields.io/github/license/JeanElsner/panda-py)](https://www.apache.org/licenses/LICENSE-2.0)
234
- [![PyPI](https://img.shields.io/pypi/v/panda-py)](https://pypi.org/project/panda-python/)
243
+ [![PyPI](https://img.shields.io/pypi/v/panda-python)](https://pypi.org/project/panda-python/)
235
244
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/panda-python)
245
+ [![Documentation](https://shields.io/badge/-Documentation-informational)](https://jeanelsner.github.io/panda-py/)
236
246
 
237
247
  Finally, Python bindings for the Panda. These will increase your productivity by 1000%, guaranteed[^1]!
238
248
 
239
- > **Info**
240
- >
241
- > Please consider this a work in progress. Documentation, continuous integration pipeline and a companion paper are currently being prepared.
249
+ ## Getting started
250
+
251
+
252
+
253
+ ## Install
254
+
255
+ ```
256
+ pip install panda-python
257
+ ```
258
+
259
+ This will install panda-py and all its requirements. The pip version ships with libfranka 0.9.2, the newest version for the Franka Emika Robot. Please refer to the section below if you use an older system version or the more recent Franka Research 3 robot.
260
+
261
+ ## libfranka Version
262
+
263
+ There are currently two robot models available from Franka Emika: the Franka Emika Robot (FER, formerly known as Panda) and the Franka Research 3 (FR3). Depending on the installed firmware, the FER supports version <=0.9 while the FR3 requires version >=0.10. For details, refer to [this](https://frankaemika.github.io/docs/compatibility.html) compatibility matrix. If you need a libfranka version different from the default 0.9.2, download the respective zip archive from the [release page](https://github.com/JeanElsner/panda-py/releases). Extract the archive and install the wheel for your Python version with pip, e.g., run
264
+ ```
265
+ pip install panda_python-*libfranka.0.7.1-cp310*.whl
266
+ ```
267
+ to install the binary wheel for libfranka 0.7.1 and Python 3.10.
268
+
269
+ # Citation
270
+
271
+ If you use panda-py in published research, please consider citing the [companion paper](https://arxiv.org/abs/2307.07633).
272
+
273
+ ```
274
+ @misc{elsner2023taming,
275
+ title={Taming the Panda with Python: A Powerful Duo for Seamless Robotics Programming and Integration},
276
+ author={Jean Elsner},
277
+ year={2023},
278
+ eprint={2307.07633},
279
+ archivePrefix={arXiv},
280
+ primaryClass={cs.RO}
281
+ }
282
+ ```
242
283
 
243
284
  [^1]: Not actually guaranteed. Based on a sample size of one.
@@ -0,0 +1,52 @@
1
+ # panda-py
2
+
3
+ > **Info**
4
+ >
5
+ > Please consider this a work in progress. Documentation, continuous integration pipeline and a companion paper are currently being prepared.
6
+
7
+ ![logo](https://github.com/JeanElsner/panda-py/blob/main/logo.jpg?raw=true)
8
+
9
+ [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/JeanElsner/panda-py/build.yml)](https://github.com/JeanElsner/panda-py/actions/workflows/build.yml)
10
+ [![GitHub](https://img.shields.io/github/license/JeanElsner/panda-py)](https://www.apache.org/licenses/LICENSE-2.0)
11
+ [![PyPI](https://img.shields.io/pypi/v/panda-python)](https://pypi.org/project/panda-python/)
12
+ ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/panda-python)
13
+ [![Documentation](https://shields.io/badge/-Documentation-informational)](https://jeanelsner.github.io/panda-py/)
14
+
15
+ Finally, Python bindings for the Panda. These will increase your productivity by 1000%, guaranteed[^1]!
16
+
17
+ ## Getting started
18
+
19
+
20
+
21
+ ## Install
22
+
23
+ ```
24
+ pip install panda-python
25
+ ```
26
+
27
+ This will install panda-py and all its requirements. The pip version ships with libfranka 0.9.2, the newest version for the Franka Emika Robot. Please refer to the section below if you use an older system version or the more recent Franka Research 3 robot.
28
+
29
+ ## libfranka Version
30
+
31
+ There are currently two robot models available from Franka Emika: the Franka Emika Robot (FER, formerly known as Panda) and the Franka Research 3 (FR3). Depending on the installed firmware, the FER supports version <=0.9 while the FR3 requires version >=0.10. For details, refer to [this](https://frankaemika.github.io/docs/compatibility.html) compatibility matrix. If you need a libfranka version different from the default 0.9.2, download the respective zip archive from the [release page](https://github.com/JeanElsner/panda-py/releases). Extract the archive and install the wheel for your Python version with pip, e.g., run
32
+ ```
33
+ pip install panda_python-*libfranka.0.7.1-cp310*.whl
34
+ ```
35
+ to install the binary wheel for libfranka 0.7.1 and Python 3.10.
36
+
37
+ # Citation
38
+
39
+ If you use panda-py in published research, please consider citing the [companion paper](https://arxiv.org/abs/2307.07633).
40
+
41
+ ```
42
+ @misc{elsner2023taming,
43
+ title={Taming the Panda with Python: A Powerful Duo for Seamless Robotics Programming and Integration},
44
+ author={Jean Elsner},
45
+ year={2023},
46
+ eprint={2307.07633},
47
+ archivePrefix={arXiv},
48
+ primaryClass={cs.RO}
49
+ }
50
+ ```
51
+
52
+ [^1]: Not actually guaranteed. Based on a sample size of one.
@@ -0,0 +1,20 @@
1
+ #!/bin/bash
2
+
3
+ sudo apt install build-essential cmake git libpoco-dev libeigen3-dev
4
+
5
+ # For legacy versions, use my patched repository
6
+ repo="https://github.com/frankaemika/libfranka.git"
7
+ if [[ "$LIBFRANKA_VER" == "0.7.1" || "$LIBFRANKA_VER" == "0.8.0" ]]; then
8
+ repo="https://github.com/JeanElsner/libfranka.git"
9
+ fi
10
+
11
+ sudo apt remove "*libfranka*"
12
+ git clone --recursive $repo
13
+ cd libfranka
14
+ git checkout $LIBFRANKA_VER
15
+ git submodule update
16
+ mkdir build && cd build
17
+ cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF ..
18
+ cmake --build .
19
+ cpack -G DEB
20
+ sudo dpkg -i libfranka*.deb
@@ -36,13 +36,17 @@ with open('$toml', 'w') as f:
36
36
  END
37
37
  }
38
38
 
39
+ mkdir $root/archive
40
+
39
41
  # Build wheels for common libfranka versions
40
42
  libfranka=("0.7.1" "0.8.0" "0.9.2" "0.10.0")
41
43
  for value in "${libfranka[@]}"; do
42
44
  echo "Changing libfranka version in pyproject.toml to: $value"
43
45
  change_version "$version+libfranka-$value" "LIBFRANKA_VER=$value"
44
46
  export LIBFRANKA_VER=$value
45
- python -m cibuildwheel --output-dir $root/wheelhouse $root
47
+ archive=panda_py_${version}_libfranka_${value}
48
+ python -m cibuildwheel --output-dir $root/$archive $root
49
+ zip -j $root/archive/$archive.zip $root/$archive/*.whl
46
50
  done
47
51
 
48
52
  # Change back to default version
@@ -9,7 +9,7 @@
9
9
  project = 'panda-py'
10
10
  copyright = '2023, Jean Elsner'
11
11
  author = 'Jean Elsner'
12
- release = '0.5.0'
12
+ release = '0.5.2'
13
13
 
14
14
  # -- General configuration ---------------------------------------------------
15
15
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@@ -7,7 +7,7 @@ name = "panda-python"
7
7
  description = "Python bindings for the Panda"
8
8
  requires-python = ">=3.7"
9
9
  dependencies = ["websockets>=11.0", "requests", "numpy"]
10
- version = "0.5.0"
10
+ version = "0.5.2"
11
11
  authors = [
12
12
  { name = "Jean Elsner", email = "jean.elsner@tum.de" },
13
13
  ]
@@ -34,6 +34,11 @@ examples = [
34
34
  "ansitable",
35
35
  "qpsolvers",
36
36
  ]
37
+ docs = [
38
+ "furo",
39
+ "sphinx-reredirects",
40
+ "sphinx",
41
+ ]
37
42
 
38
43
  [project.scripts]
39
44
  panda-lock = "panda_py.cli:lock"
@@ -47,11 +52,11 @@ skip = [ "pp*", "*musllinux*",]
47
52
  environment = "LIBFRANKA_VER=0.9.2"
48
53
 
49
54
  [tool.cibuildwheel.linux]
50
- before-all = [ "./bin/before_install.sh",]
55
+ before-all = [ "./bin/before_install_centos.sh",]
51
56
  archs = [ "x86_64",]
52
57
 
53
58
  [tool.scikit-build.cmake]
54
59
  build-type = "Release"
55
60
 
56
- [tool.scikit-build.sdist]
57
- include = [ "src/**/*.pyi",]
61
+ [tool.scikit-build.wheel]
62
+ packages = ["src/panda_py"]
@@ -3,7 +3,7 @@ Introduction
3
3
  ------------
4
4
 
5
5
  panda-py is a Python library for the Franka Emika Robot System
6
- that allows you to program and control the robot in Python.
6
+ that allows you to program and control the robot in real-time.
7
7
 
8
8
 
9
9
  """
@@ -193,6 +193,11 @@ class Panda():
193
193
  """
194
194
  :type: str
195
195
  """
196
+ @property
197
+ def q(self) -> numpy.ndarray[numpy.float64, _Shape[7, 1]]:
198
+ """
199
+ :type: numpy.ndarray[numpy.float64, _Shape[7, 1]]
200
+ """
196
201
  pass
197
202
  class PandaContext():
198
203
  def __enter__(self) -> PandaContext: ...
@@ -1,82 +0,0 @@
1
- name: build
2
-
3
- permissions:
4
- contents: read
5
-
6
- on:
7
- push:
8
- branches: [main]
9
- pull_request:
10
- branches: [main]
11
- release:
12
- types: [published]
13
-
14
- jobs:
15
- build_wheels:
16
- name: Build wheels on ubuntu-latest
17
- runs-on: ubuntu-latest
18
- steps:
19
- - uses: actions/checkout@v3
20
- - uses: actions/setup-python@v3
21
- - name: Install cibuildwheel
22
- run: python -m pip install cibuildwheel==2.12.0
23
- - name: Build wheels
24
- run: ./bin/build_all.sh
25
- - uses: actions/upload-artifact@v3
26
- with:
27
- path: ./wheelhouse/*.whl
28
- name: wheelhouse
29
- - uses: actions/upload-artifact@v3
30
- with:
31
- path: ./dist/*.whl
32
- name: dist
33
-
34
- build_sdist:
35
- name: Build source distribution
36
- runs-on: ubuntu-latest
37
- steps:
38
- - uses: actions/checkout@v3
39
- - uses: actions/setup-python@v3
40
- - name: Build sdist
41
- run: pipx run build --sdist
42
- - uses: actions/upload-artifact@v3
43
- with:
44
- path: dist/*.tar.gz
45
- name: dist
46
-
47
- upload_pypi:
48
- needs: [build_wheels, build_sdist]
49
- runs-on: ubuntu-latest
50
- if: github.event_name == 'release' && github.event.action == 'published'
51
- steps:
52
- - uses: actions/download-artifact@v3
53
- with:
54
- name: dist
55
- path: dist
56
- - uses: pypa/gh-action-pypi-publish@v1.5.0
57
- with:
58
- user: __token__
59
- password: ${{ secrets.PYPI_API_TOKEN }}
60
-
61
-
62
- - uses: actions/download-artifact@v3
63
- with:
64
- name: wheelhouse
65
- path: wheelhouse
66
-
67
- - name: Upload assets
68
- id: upload_assets
69
- uses: actions/upload-release-asset@v1
70
- with:
71
- upload_url: ${{ github.event.release.upload_url }}
72
- asset_path: ./wheelhouse/*.whl
73
- asset_name: ${{ env.UPLOAD_FILE_NAME }}
74
-
75
- - name: Set file name for each asset
76
- id: set_file_name
77
- run: |
78
- echo "::set-env name=UPLOAD_FILE_NAME::$(basename ${{ steps.upload_assets.outputs.asset_path }})"
79
-
80
- - name: List uploaded assets
81
- run: |
82
- echo "Uploaded assets: ${{ steps.upload_assets.outputs.asset_path }}"
@@ -1,15 +0,0 @@
1
- # panda-py
2
- ![logo](logo.jpg)
3
-
4
- [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/JeanElsner/panda-py/build.yml)](https://github.com/JeanElsner/panda-py/actions/workflows/build.yml)
5
- [![GitHub](https://img.shields.io/github/license/JeanElsner/panda-py)](https://www.apache.org/licenses/LICENSE-2.0)
6
- [![PyPI](https://img.shields.io/pypi/v/panda-py)](https://pypi.org/project/panda-python/)
7
- ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/panda-python)
8
-
9
- Finally, Python bindings for the Panda. These will increase your productivity by 1000%, guaranteed[^1]!
10
-
11
- > **Info**
12
- >
13
- > Please consider this a work in progress. Documentation, continuous integration pipeline and a companion paper are currently being prepared.
14
-
15
- [^1]: Not actually guaranteed. Based on a sample size of one.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes