Skip to content
FairportRoboticsPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

54 Commits

Folders and files

Repository files navigation

pybot-sdk

pybot-sdk provides development-time tools for RobotPy projects. It does not replace RobotPy's project, test, simulation, or deployment commands.

Install the SDK

To install the wheel attached to the latest GitHub Release (requires the GitHub CLI):

gh release download --repo FairportRobotics/pybot-sdk --pattern '*.whl'
python -m pip install ./pybot_sdk-*.whl

After installing, update the SDK to the latest GitHub Release with:

pybot update

Create a starter project

There are four templates that are supported by the SDK.

# Show the installed SDK version
pybot version

# List available project templates and addable components
pybot list templates
pybot list components

# Change to the directory where you want the project
mkdir robot
cd robot

# Create a project in the current directory
pybot new magicbot
# or
pybot new command
# or
pybot new xrp
# or
pybot new sysid

# Add components to an existing MagicBot project
pybot add component gyro
pybot add component limelight
pybot add component logger
pybot add component tankdrive

Running pybot new without a template creates a MagicBot project in the current directory.

The MagicBot starter template targets Python 3.14 and RobotPy 2026. Its RobotPy simulation test is the MVP compatibility proxy for roboRIO operation; physical deployment remains unverified until a roboRIO is available.

The SysId template creates a single-file TimedRobot project for characterizing one configured mechanism with WPILib SysId. Choose "Run SysId" in the autonomous chooser to run quasistatic forward and backward, followed by dynamic forward and backward. The chooser defaults to "Do Nothing".

Run pybot add component <name> from a project directory to copy a component template from src/pybot_sdk/components/ into its components/ directory. The command reports an error if the requested component template is not available.

Set self.logger_enabled = True in the robot's createObjects method to enable the logger component. It writes messages to WPILib's managed data log and standard output. To add named values to the data log, call self.logger.log("Drive/Speed", 2.5); strings, booleans, integers, and floats are supported. A named entry must keep the same value type for the lifetime of the logger. See the component documentation for a usage example.

Development

Install the test and lint tools, then run the SDK tests and Ruff checks:

python -m pip install -e ".[test]"
python -m pytest
ruff check .
ruff format --check .
python -m build --sdist --wheel

The GitHub Actions workflow updates pyproject.toml's project version to YYYY.MM.DD each day (UTC), commits the change when needed, and dispatches the release build for the new version. It can also be run manually from the Actions tab.

Ruff formatting can be applied with ruff format .. The generated-project simulation tests use RobotPy's --no-isolation mode because pyfrc's isolated worker mode stalls intermittently in the current macOS environment. Its native fixtures still reset HAL and NetworkTables between tests. CI also installs the built wheel in a clean environment and exercises the packaged CLI and template.

The project is licensed under GPL-3.0-or-later. See LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages