@@ -5,7 +5,7 @@ Always reference these instructions first and fallback to search or bash command
55
66## Working Effectively
77- Bootstrap and install development dependencies:
8- - ` pip install -r requirements-dev.txt ` -- installs all dev tools and the package in editable mode. Takes ~ 60 seconds with good network.
8+ - ` pip install -e .[dev] ` -- installs all dev tools and the package in editable mode. Takes ~ 60 seconds with good network.
99 - ** NOTE** : May fail in environments with restricted network access. If pip times out, dependencies may need manual installation.
1010- ** NEVER CANCEL** : Set timeout to 300+ seconds for dependency installation in case of slow network.
1111- ` invoke clean ` -- clean all generated artifacts. Takes ~ 1 second.
@@ -27,7 +27,7 @@ Always reference these instructions first and fallback to search or bash command
2727 - ** NEVER CANCEL** : Integration tests may take 5+ seconds to start broker and run tests.
2828
2929## Validation
30- - Always run ` invoke clean && invoke lint && invoke check ` before committing changes.
30+ - Always run ` invoke clean && invoke lint && invoke format && invoke check ` before committing changes.
3131- ** VALIDATION SCENARIOS** : Test basic functionality after changes:
3232 - ` python -m compas_eve ` -- should print "COMPAS EVE v1.0.0 is installed!"
3333 - ` python docs/examples/01_hello_world.py ` -- should print publisher/subscriber message exchange
@@ -38,7 +38,13 @@ Always reference these instructions first and fallback to search or bash command
3838- ** Python Requirements** : Python 3.8+ (supports CPython and IronPython)
3939- ** Core Dependencies** : compas>=1.17.6, paho-mqtt
4040- ** Development Tools** : invoke, pytest, black, flake8, sphinx
41- - ** Development Installation** : ` pip install -r requirements-dev.txt ` (installs package in editable mode)
41+ - ** Development Installation** : ` pip install -e .[dev] ` (installs package in editable mode)
42+
43+ ## Code Style & Documentation
44+ - ** Docstring Style** : Use numpy-style docstrings for all functions, classes, and methods
45+ - ** Code Formatting** : Use ` invoke format ` to automatically format code with black
46+ - ** Linting** : Use ` invoke lint ` to check code style with flake8 and black
47+ - ** Type Hints** : Include type hints where appropriate for better code clarity
4248
4349## Build System
4450- Uses ** setuptools** with ` setup.py ` and modern ` pyproject.toml `
@@ -57,9 +63,9 @@ The following are outputs from frequently run commands. Reference them instead o
5763├── src/compas_eve/ # Main package source
5864│ ├── core.py # Core messaging classes
5965│ ├── memory/ # In-memory transport
60- │ ├── mqtt/ # MQTT transport
61- │ ├── ghpython/ # Grasshopper components
62- │ └── rhino/ # Rhino integration
66+ │ ├── mqtt/ # MQTT transport
67+ │ ├── ghpython/ # Grasshopper components (not used in CI)
68+ │ └── rhino/ # Rhino integration (not used in CI)
6369├── tests/
6470│ ├── unit/ # Fast unit tests (no external deps)
6571│ └── integration/ # MQTT integration tests
@@ -74,7 +80,7 @@ The following are outputs from frequently run commands. Reference them instead o
7480- ` src/compas_eve/core.py ` -- Main Message, Publisher, Subscriber, Topic classes
7581- ` src/compas_eve/memory/ ` -- InMemoryTransport for single-process messaging
7682- ` src/compas_eve/mqtt/ ` -- MqttTransport for distributed messaging
77- - ` src/compas_eve/ghpython/ ` -- Grasshopper background task components
83+ - ` src/compas_eve/ghpython/ ` -- Grasshopper background task components (not used in CI)
7884- ` tests/unit/test_core.py ` -- Core functionality unit tests
7985- ` tests/integration/test_mqtt.py ` -- MQTT transport integration tests
8086
@@ -94,10 +100,8 @@ eve.set_default_transport(MqttTransport("broker.hivemq.com"))
94100```
95101
96102## Special Features
97- - ** Rhino/Grasshopper Integration** : Install with ` python -m compas_rhino.install -v 7.0 `
98- - ** Background Tasks** : Grasshopper components for long-running background operations
99103- ** Multiple Transports** : In-memory (default), MQTT for distributed systems
100- - ** IronPython Support** : Full compatibility with IronPython 2.7 for Rhino
104+ - ** IronPython Support** : Full compatibility with IronPython 2.7 for legacy environments
101105- ** Cross-platform** : Windows, macOS, Linux support
102106
103107## Timing Expectations
@@ -112,4 +116,4 @@ eve.set_default_transport(MqttTransport("broker.hivemq.com"))
112116- GitHub Actions workflows in ` .github/workflows/ `
113117- Tests run on multiple OS/Python combinations
114118- ** Always run** ` invoke lint ` before pushing - CI enforces code style
115- - Uses ` compas-dev/compas-actions.build@v3 ` for standard COMPAS project workflows
119+ - Uses ` compas-dev/compas-actions.build@v4 ` for standard COMPAS project workflows
0 commit comments