{"id":20502180,"url":"https://github.com/robotpy/robotpy-cli","last_synced_at":"2026-02-07T14:02:51.886Z","repository":{"id":215397669,"uuid":"738819863","full_name":"robotpy/robotpy-cli","owner":"robotpy","description":"Provides the `robotpy` and `python -m robotpy` commands for launching RobotPy projects","archived":false,"fork":false,"pushed_at":"2024-01-06T11:11:44.000Z","size":9,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-07T05:33:09.918Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robotpy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-04T05:51:30.000Z","updated_at":"2024-01-04T07:10:45.000Z","dependencies_parsed_at":"2024-11-16T00:00:18.015Z","dependency_job_id":null,"html_url":"https://github.com/robotpy/robotpy-cli","commit_stats":null,"previous_names":["robotpy/robotpy-cli"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/robotpy/robotpy-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotpy%2Frobotpy-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotpy%2Frobotpy-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotpy%2Frobotpy-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotpy%2Frobotpy-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robotpy","download_url":"https://codeload.github.com/robotpy/robotpy-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robotpy%2Frobotpy-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276881827,"owners_count":25721413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T19:20:13.710Z","updated_at":"2026-02-07T14:02:51.872Z","avatar_url":"https://github.com/robotpy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"robotpy-cli\n===========\n\nNew for 2024, this package is used to execute subcommands on a RobotPy project.\nThis does not actually implement any subcommands itself, but provides a mechanism\nto execute those subcommands.\n\nUsage\n-----\n\nOn Windows:\n\n    py -m robotpy\n\nOn Linux/macOS:\n\n    python -m robotpy\n\nSee the RobotPy documentation for more information.\n\nHow RobotPy subcommands are implemented\n---------------------------------------\n\nWhen a user runs `robotpy` or `python -m robotpy`, they are presented with\nseveral subcommands. Each of these subcommands is implemented as a class\nthat is registered using python's entry point mechanism in the \"robotpy_cli.YEAR\"\ngroup. The registered class must meet the following requirements:\n\n* The docstring of the class is used when the user does --help. The first\n  line is treated as the summary, and all other lines are displayed when\n  the subcommand specific help is queried.\n\nIf the subcommand is a group of commands:\n\n* The class must have a `subcommands` attribute, which is a list of\n  (name, subcommand_class) tuples. The subcommand_class must meet the requirements\n  for a subcommand.\n\nIf it is a subcommand that is executed:\n\n* The constructor must take a single argument, an argparse.ArgumentParser.\n  The object may register any arguments or subparsers that it needs.\n* The `run` function is called when the subcommand is used by the user.\n  The arguments to this function are passed in by name, and the names can\n  be any of the options that the subcommand registered. There are two other\n  special argument names:\n  * `options` - if specified, this is the Namespace returned by parse_args\n  * `robot_class` - if specified, the user's robot.py will be loaded and\n    it will be inspected for their robot class, which will be passed in\n    as this option\n  * `load_robot_class` - if specified, this is a function that will return\n    the same object that `robot_class` would have returned. The robot class\n    will *not* be loaded until the function is called. You may not specify\n    `robot_class` and `load_robot_class`, and you should not call the function\n    more than once.\n  * `main_file` - if specified, the name of the user's robot.py file. This\n    is not guaranteed to exist unless robot_class is also an option.\n  * `project_path` - if specified, the name of the directory that contains \n    the user's robot.py file. This is not guaranteed to exist unless robot_class\n    is also an option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotpy%2Frobotpy-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobotpy%2Frobotpy-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotpy%2Frobotpy-cli/lists"}