# Development Install `uv`, and then execute ``` sh uv sync ``` ## Environment To get a development environment, run ``` sh uv venv ``` Then, either follow the instruction to activate this venv, or install `direnv` and create the file ``` sh # .envrc source .venv/bin/activate ``` Test the environment with `python3 -c "import nhf"` To visualize an object, create a file `visualize.py`, and run `cq-editor`: ``` sh CQ-editor visualize.py ``` ## Folder Structure - `nhf/parts/`: Ready-made parts - `nhf/$WORK/$CHARACTER`: Design for an individual character For each individual character, the `__main__.py` script stores the overall build entry point and the entry point for all unit tests. Do not put build scripts in `__init__.py` ### Testing Run all tests with ``` sh unittest-parallel ``` ## Troubleshooting ### Wayland If there is the error ``` X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 3 (X_GetWindowAttributes) Resource id in failed request: 0x3 Serial number of failed request: 28 Current serial number in output stream: 29 ``` Export the environment variable ``` sh export QT_QPA_PLATFORM=xcb ```