Utilización de pyproject.toml

Nota

Proyectos de RobotPy no necesitan tener un pyproject.toml, pero cuando corres robotpy sync uno será creado automáticamente para usted.

pyproject.toml has become a standard way to store build and tooling configuration for Python projects. The [tool.XXX] section(s) of the TOML file is a place where tools can store their configuration information.

Actualmente RobotPy solo guarda información relacionada con la implementación en pyproject.toml, en la sección [tool.robotpy]. Los usuarios pueden personalizar las otras secciones como ellos quieran, y robotpy las ignoraran.

El archivo pyproject.toml debería de verse algo asi:

#
# Use this configuration file to control what RobotPy packages are installed
# on your RoboRIO
#
[tool.robotpy]
# Version of robotpy this project depends on
robotpy_version = "2024.2.1.0"
# Which extra RobotPy components should be installed
# -> equivalent to `pip install robotpy[extra1, ...]
robotpy_extras = [
    # "all"
    # "apriltag"
    # "commands2"
    # "cscore"
    # "navx"
    # "pathplannerlib"
    # "phoenix5"
    # "phoenix6"
    # "playingwithfusion"
    # "rev"
    # "romi"
    # "sim"
]
# Other pip packages to install
requires = []

Cada uno de los siguientes indicará el proceso de implementación para instalar paquetes en la roboRIO:

robotpy_version es la versión del paquete robotpy PyPI  el cual el código del robot depende de.

robotpy_extras define componentes extras de RobotPy que pueden ser instalados, ya que solo las librerías importantes de RobotPy son instaladas por default.

requires es una lista de strings, y cada objeto equivale a una lineal de archivos de requirements.txt. Tu puedes instalar cualquier paquete de python puro en la roboRIO y estos probablemente funcionaran, pero cualquier paquete que tenga dependencias binarias debe ser compilado cruzado para la roboRIO. Por ejemplo, si de ser necesario usar numpy en su código del robot:

[tool.robotpy]
...
requires = ["numpy"]

The packages that can be installed are stored on the WPILib Artifactory server. If you find that you need a package that isn’t available on artifactory, consult the roborio-wheels repository.