Merge pull request 'build: Migrate to uv' (#17) from build/uv into main
Reviewed-on: #17
This commit is contained in:
commit
4f48955c81
58
README.md
58
README.md
|
@ -1,34 +1,74 @@
|
||||||
# Cosplay
|
# Cosplay
|
||||||
|
|
||||||
This is the design repository for NorCal Hakkero Factory No. 1, where we use
|
This is the design repository for NorCal Hakkero Factory No. 1, where we use
|
||||||
parametric CAD to make cosplay props.
|
parametric CAD to make cosplay props. We design cosplay props based on an
|
||||||
|
engineering point of view.
|
||||||
|
|
||||||
> NorCal Hakkero Factory № 1
|
> NorCal Hakkero Factory № 1
|
||||||
|
>
|
||||||
> 北加国営八卦炉第一工場
|
> 北加国営八卦炉第一工場
|
||||||
|
|
||||||
|
Most cosplay schematics are created with Blender, CadQuery, and Inkscape.
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
Most cosplay schematics are created with Blender, CadQuery, and Inkscape. To
|
Install `uv`, and then execute
|
||||||
enter into a CadQuery environment, install `poetry` and use
|
|
||||||
``` sh
|
``` sh
|
||||||
poetry install
|
uv sync
|
||||||
poetry shell
|
|
||||||
```
|
```
|
||||||
and this should succeed
|
|
||||||
|
To get a development environment, run
|
||||||
``` sh
|
``` sh
|
||||||
python3 -c "import nhf"
|
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`:
|
To visualize an object, create a file `visualize.py`, and run `cq-editor`:
|
||||||
|
|
||||||
``` sh
|
``` sh
|
||||||
python3 -m cq_editor visualize.py
|
python3 -m cq_editor visualize.py
|
||||||
```
|
```
|
||||||
|
|
||||||
## Testing
|
### Folder Structure
|
||||||
|
|
||||||
|
- `nhf/parts/`: Ready-made parts
|
||||||
|
- `nhf/$WORK/$CHARACTER`: Design for an individual character
|
||||||
|
|
||||||
|
For each individual character, the `__init__.py` script stores the overall build
|
||||||
|
entry point and the entry point for all unit tests.
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
|
||||||
Run all tests with
|
Run all tests with
|
||||||
``` sh
|
``` sh
|
||||||
python3 -m unittest
|
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
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,28 +1,34 @@
|
||||||
[tool.poetry]
|
[project]
|
||||||
name = "nhf"
|
name = "nhf"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "NorCal Hakkero Factory No. 1 Cosplay Designs"
|
description = "NorCal Hakkero Factory No. 1 Cosplay Designs"
|
||||||
authors = ["Leni Aniva <v@leni.sh>"]
|
authors = [{ name = "Leni Aniva", email = "aniva@stanford.edu" }]
|
||||||
|
requires-python = ">=3.10,<3.13"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
dependencies = [
|
||||||
|
"cadquery==2.5.2",
|
||||||
|
"numpy>=2,<3",
|
||||||
|
"colorama>=0.4.6,<0.5",
|
||||||
|
"multimethod~=1.12",
|
||||||
|
"scipy>=1.14.0,<2",
|
||||||
|
"typish>=1.9.3,<2",
|
||||||
|
]
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[dependency-groups]
|
||||||
python = ">=3.10,<3.13"
|
dev = [
|
||||||
cadquery = "2.5.2"
|
"cq-editor",
|
||||||
numpy = ">=2,<3"
|
"pyqt5>=5.15.11,<6",
|
||||||
colorama = "^0.4.6"
|
"logbook>=1.8.0,<2",
|
||||||
|
"spyder>=5,<6",
|
||||||
|
"pyqtgraph>=0.13.7,<0.14",
|
||||||
|
"unittest-parallel>=1.7.4",
|
||||||
|
]
|
||||||
|
|
||||||
# cadquery dependency
|
[tool.uv]
|
||||||
multimethod = "^1.12"
|
|
||||||
scipy = "^1.14.0"
|
|
||||||
typish = "^1.9.3"
|
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.uv.sources]
|
||||||
cq-editor = { git = "https://github.com/CadQuery/CQ-editor.git" }
|
cq-editor = { git = "https://github.com/CadQuery/CQ-editor.git" }
|
||||||
pyqt5 = "^5.15.11"
|
|
||||||
logbook = "^1.8.0"
|
|
||||||
spyder = "^5"
|
|
||||||
pyqtgraph = "^0.13.7"
|
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["poetry-core"]
|
requires = ["hatchling"]
|
||||||
build-backend = "poetry.core.masonry.api"
|
build-backend = "hatchling.build"
|
||||||
|
|
Loading…
Reference in New Issue