{"id":21130623,"url":"https://github.com/choate-robotics/7407-drivecode-chargedup","last_synced_at":"2025-07-09T01:33:33.712Z","repository":{"id":65469644,"uuid":"586309938","full_name":"Choate-Robotics/7407-DriveCode-ChargedUp","owner":"Choate-Robotics","description":"7407 DriveCode for the 2023 FRC Game (ChargedUp)","archived":false,"fork":false,"pushed_at":"2023-11-03T14:21:44.000Z","size":808,"stargazers_count":9,"open_issues_count":8,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-04T14:37:43.211Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Choate-Robotics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-01-07T17:23:23.000Z","updated_at":"2024-08-21T11:13:15.000Z","dependencies_parsed_at":"2023-02-14T02:15:58.791Z","dependency_job_id":"e117eb8a-9049-4356-bbd7-106ef3a4f3fc","html_url":"https://github.com/Choate-Robotics/7407-DriveCode-ChargedUp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"Choate-Robotics/7407-DriveCode-Template","purl":"pkg:github/Choate-Robotics/7407-DriveCode-ChargedUp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Choate-Robotics%2F7407-DriveCode-ChargedUp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Choate-Robotics%2F7407-DriveCode-ChargedUp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Choate-Robotics%2F7407-DriveCode-ChargedUp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Choate-Robotics%2F7407-DriveCode-ChargedUp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Choate-Robotics","download_url":"https://codeload.github.com/Choate-Robotics/7407-DriveCode-ChargedUp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Choate-Robotics%2F7407-DriveCode-ChargedUp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264375582,"owners_count":23598407,"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","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-20T05:35:46.325Z","updated_at":"2025-07-09T01:33:33.163Z","avatar_url":"https://github.com/Choate-Robotics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# 7407-DriveCode-ChargedUp\n\nTeam 7407 Wired Boars ChargedUp Robot Code\n\n## File Tree:\n```\n7407-DriveCode-ChargedUp\n├── autonomous (Contains autonomous routines for robot)\n├── command (Contains commands for command scheduling)\n│   └── __init__.py\n├── oi (Operator Interface)\n│   ├── OI.py (Contains keymappings to commands)\n│   └── keymap.py (Contains controller keymaps for each subsystem and controller)\n├── sensors (Contains sensor classes)\n│   └── __init__.py (Contains sensor classes)\n├── subsystem (Contains subsystem classes)\n│   └── __init__.py\n├── utils (Contains utilities like optimizations, conversions)\n│   └── __init__.py\n├── .gitignore (Filters out unnecessary files, for example *.pyc)\n├── README.md (This file)\n├── constants.py (Variables held constant throughout code.)\n├── config.py (Easy configurations for entire robot.)\n├── poetry.lock (DO NOT EDIT. Use \"poetry add {package}\" to add packages.\n├── pyproject.toml (DO NOT EDIT.)\n├── robot.py (Central program, controls everything.)\n└── robot_systems.py (Contains initialized sensors and subsystems)\n```\n\n\n## Getting Started:\n\n### Clone the repository code onto your computer:\n\n```\n\ngit clone https://github.com/Choate-Robotics/7407-DriveCode-Template.git\n\n```\nIf you prefer ssh:\n\n```\n\ngit clone git@github.com:Choate-Robotics/7407-DriveCode-Template.git\n\n```\n\n### If you don't have Poetry installed already:\n\n#### Linux and Mac\n\n```\n\ncurl -k https://install.python-poetry.org/ | python3 - \n\n```\nYou might have to replace \"python\" at the end with \"python3\" depending on how python is configured in your system.\n\n#### Windows Powershell\n\n```\n\n(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -\n\n```\n\nFurther information can be found here: https://python-poetry.org/docs/\n\n\n\nMake sure to add Poetry to your path.\n\n\n\n### With Poetry Installed:\n\n```\n\npoetry shell\n\npoetry install\n\n```\n\n### Deploying Code:\nConnect to the robot's wifi.\n``python robot.py deploy``\nIf absolutely necessary, use ``python robot.py deploy --no-version-check`` to avoid WPILib version issues on the robot.\n\n\n## Best Practices\n\n### Pre-Commit, Formatting\n\nMake sure to run ```pre-commit install``` before your first commit. When you commit, pre-commit will automatically check all files you have staged using Flake8, Black, ISort, and other formatters.\n\n- If the response contains an ERROR:\n\n\t- If the error response contains \"Files were modified by this hook\":\n\t\t- ``git add .``\n\t\t- ``git commit -m \"Message\"``\n\t- Otherwise, manually fix the issues outlined, re-stage your files ( ``git add.``) and recommit.\n\nDo not forget to ``git add .`` before committing.\n\n### Commenting\nComment, comment, comment!\n - Use block quotes to start any function with parameters, and every class's \"\\_\\_init\\_\\_\" function. Block quotes should contain:\n\t - Summary\n\t - Arguments, with types and descriptions\n\t - Return description\n\t There are many extensions to help with docstrings. Examples include:\n\t\t - autoDocstring on VsCode\n\t\t - On PyCharm\n\t\t\t - Place your cursor over a function or class name.\n\t\t\t - Alt-Enter\n\t\t\t - Generate documentation string stub\n - Use single line comments for any function without parameters with a description of the function.\n - Use single line comments before any complex function to describe how it works, and to the right of any line or variable that is very complicated.\n - Use TODO comments freely.\n\n### Adding libraries\nAlways use ``poetry add {library}`` to add libraries. This ensures that libraries are compatible and allows everyone to work easier.\nNever, ever, edit poetry.lock or pyproject.toml manually.\n\n### Committing, Pushing, and Pulling\nTo commit:\n```\ngit add .\ngit commit -m \"Message\"\n```\nTo push:\n```\ngit push\n```\nTo pull:\n```\ngit fetch\ngit pull\n```\n\n### Branching\nTo branch, first make sure that all your local changes are committed. If you would like to abandon the changes, run ``git reset --hard``. Be very careful with resetting.\nTo branch: ``git branch {branch name}\n\nBranch names are as follows:\n - Subsystem Initialization branch format: init/{subsystem}\n\t - Example: init/shooter\n\t - Example: init/drivetrain\n - Feature branch format: feat/{subsystems}/{feature}\n\t - Example: feat/shooter/optimized_shooting\n\t - Example: feat/intake-index/ejection\n - Fix branch format: fix/{subsystems}/issue\n\t - Example: fix/camera_server/wrong_ports\n\t - Example: fix/robot/network_loop_time\n\t - Example: fix/sensors/clean_up\n - Competition branch format: comp/{competition}/day/{day}\n\t - Example: comp/battlecry/day/0 (load_in, initial setup, configurations)\n\t - Example: comp/hartford/day/1\n\n### Pull Requests\nTo integrate a branch with branch **Main**,  create a pull-request with the same title as your branch. Make sure pre-commits pass before pushing to ensure clean code.\n\n### Competition Exceptions\n#### Pre-commits\n - To avoid frustration, please use ``git commit -m \"{Message}\" --no-verify``\n### Debugging:\n#### Logger\n - USE LOGGER! It makes it easier on everyone to debug.\n#### Smart Dashboard/Shuffleboard\n - Shuffleboard is preferred over the Smart Dashboard and console for debugging. To use shuffleboard, just push a string, number, boolean, or similar value to the SmartDashboard using \"wpilib.SmartDashboard.pushNumber ...\" etc. The value is then accessible through ShuffleBoard.\n\n## Resources\n - [RobotPy Documentation](https://robotpy.readthedocs.io/en/stable/) We love RobotPy!\n - [WPILib Documentation](https://docs.wpilib.org/en/stable/index.html) RobotPy is just a wrapper for the WPILib C++ Code. Most of the structure remains the same.\n - [Chief Delphi](https://www.chiefdelphi.com/) Many a sensor problem have been fixed by looking here.\n - [7407 DriveCode-2021-Python](https://github.com/Choate-Robotics/7407-DriveCode-2021-Python) Worlds level code!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchoate-robotics%2F7407-drivecode-chargedup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchoate-robotics%2F7407-drivecode-chargedup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchoate-robotics%2F7407-drivecode-chargedup/lists"}