This release is a pre-release and may not be stable for production use.
fourier-core
Introduction
Fourier Core is a framework for controlling robots. It is designed to be modular and extensible. The framework provides a set of common modules that are used in robot control systems. The framework is designed to be easy to use and flexible, allowing developers to quickly build and deploy robot control systems.
Conda
-
Install Miniconda:
- https://docs.anaconda.com/free/miniconda/index.html
- Download Miniconda installer, install Miniconda development environment.
-
Create development environment:
- Develop a virtual environment and install python 3.11.
conda create -n fourier-grx python=3.11
Notice: For better performance, we upgraded the python runtime environment from 3.8 to 3.11, and not compatible with the 3.8 version after the upgrade.
- Activate the venv:
conda activate fourier-grx
PDM
Installation
Outside Mainland China
sudo apt install curl
curl -sSL https://pdm-project.org/install-pdm.py | python3 -
Inside Mainland China
pip install pdm
# open .bashrc and add $PATH environment variable
export PATH=$PATH:~/.local/bin
# source .bashrc
source ~/.bashrc
Test Installation
pdm --version
Configuration
It is recommended to use pdm to create a venv in the local .venv folder.
# Create virtualenv with conda
pdm venv create --with conda 3.11
# OR with python virtualenv
pdm venv create 3.11
Activate the venv
# list all venvs
pdm list
# If prompt error: [ProjectError]: The pyproject.toml has not been initialized yet. You can do this by running `pdm
init`. You can run:
pdm use # to list all venvs
# Activate the venv, suggest using conda create venv
pdm use (venv_name)
Development
Manage dependencies
Add runtime dependencies
pdm add package_name
Add dev dependencies
pdm add -dG dev package_name
Install and Compile
Local editable installment
pdm install -G:all # install all dev and optional dependencies
pdm list # check what packages are installed
Install dev dependencies
pdm install -d
Lock the dependencies:
pdm lock -G:all
Build using nuitka:
pdm build -vv
After build,whl file will be generated in the dist folder:
Check the content of the whl file, including .so files and .pyi files:
whl file can be installed directly using pip:
python -m pip install -U /path/to/fourier_core-0.3.0rc10-cp311-cp311-macosx_11_0_arm64.whl
Linting and formatting
Lint and format using ruff
pdm run lint
pdm run fmt
Documentation
mkdocs serve
Then open http://127.0.0.1:8000
Support generating API reference from docstring:
Document layout and hierarchy can be configured in mkdocs.yml:
nav:
- Home: README.md
- 架构设计: 架构设计.md
- Legacy:
- 查看温度: 查看温度.md
- 配置打包与开发环境: 配置打包与开发环境.md
- Code Reference: reference/
- Changelog: CHANGELOG.md
Package and Release
python setup.py sdist bdist_wheel
Package to .so
python -m nuitka --module fourier_core --include-package=fourier_core --output-dir=./build/
TODO
- Rename the current
testsfolder as it is the standard folder forpytest. - Setup
pytestto do unittest on modules. This would help during refactoring - Add type hints to most of user facing functions.
- Group config files in a single directory.
- If
pyinstalleris no longer used, we should get rid of the scripts. - Flatten the file structure. For example, most of the files in
predefinedonly contain 1 class. It would make the file structure less complicated if we merge some of them into one file. But this could potentially change the interface.
Metadata
Release files for fourier-core 0.2.5a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fourier_core-0.2.5a1-cp311-cp311-manylinux_2_31_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.31+ x86-64 | Details for fourier_core-0.2.5a1-cp311-cp311-manylinux_2_31_x86_64.whl |
Release files / fourier_core-0.2.5a1-cp311-cp311-manylinux_2_31_x86_64.whl
| Download URL | fourier_core-0.2.5a1-cp311-cp311-manylinux_2_31_x86_64.whl |
|---|---|
| Size | 4.2 MB |
| Tags | CPython 3.11 Linux glibc 2.31+ x86-64 |
|
SHA-256 checksum How to use checksums |
07fa32d7338c32b0bdfa7dc95b4de4fc764e53347e034787a25e50c3e5e5c0dd
|
|
BLAKE2b-256 checksum How to use checksums |
e8443b1a9001c8dc457f9338385050a95d6bca242bc0c6d6227b8cec60615615
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
pdm/2.19.2 CPython/3.12.6 Linux/6.8.0-48-generic
|
Security for fourier-core 0.2.5a1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.