Skip to content

Commit 0f1e692

Browse files
authored
Merge pull request #446 from compas-dev/lts-1.x/pybullet-extra
2 parents f406865 + aa4dbf1 commit 0f1e692

File tree

5 files changed

+11
-10
lines changed

5 files changed

+11
-10
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
### Changed
1313

14+
* Made `pybullet` entirely optional. To install `pybullet`, use `pip install compas_fab.[pybullet]` or install `pybullet` manually.
15+
1416
### Removed
1517

1618

docs/backends/pybullet.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ planning functionality. PyBullet is also not compatible with IronPython. Hence
1818
it with Rhinoceros and Grasshopper it must be invoked through the
1919
:mod:`compas.rpc` module.
2020

21+
Pybullet itself is no longer a dependency of ``compas_fab``, instead it is an
22+
optional requirement.
23+
24+
To install it, using ``pip install compas_fab.[pybullet]`` or install using the
25+
package manager of your choice.
26+
2127
Next Steps
2228
==========
2329

requirements-dev.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
pybullet
12
attrs >=19.3.0
23
black
34
bump2version >=1.0.1

requirements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
compas >= 2.0.4, < 3
22
compas_robots >= 0.3, < 1
33
roslibpy >= 1.1.0
4-
pybullet
54
pyserial

setup.py

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from __future__ import print_function
55

66
import io
7-
import sys
87
from glob import glob
98
from os import path
109

@@ -23,13 +22,7 @@ def read(*names, **kwargs):
2322

2423
long_description = read("README.md")
2524
requirements = read("requirements.txt").split("\n")
26-
27-
# Conditionally exclude pybullet if we're installing inside Rhino
28-
# because it fails to compile
29-
if "rhino" in sys.executable.lower():
30-
requirements = [r for r in requirements if "pybullet" not in r]
31-
32-
optional_requirements = {}
25+
optional_requirements = {"pybullet": ["pybullet"]}
3326

3427
setup(
3528
name=about["__title__"],
@@ -64,6 +57,6 @@ def read(*names, **kwargs):
6457
],
6558
keywords=["robotic fabrication", "digital fabrication", "architecture", "robotics", "ros"],
6659
install_requires=requirements,
67-
extras_require={},
60+
extras_require=optional_requirements,
6861
entry_points={},
6962
)

0 commit comments

Comments
 (0)