{ "info": { "author": "Noskcaj19", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Mars Utlities\n\nUtilties for building better robot code\n\n\nView the docs online at [Read the Docs](https://mars-utils.readthedocs.io/en/latest/)\n\n## ControlManager\n\n`ControlManager` provides a wrapper that makes making alternate control modes (alternate drivers, different controlers) incredibly simple. It is designed primarially for MagicRobot components, however, it should work with any type.\n\nSee `example/` for an example robot.\n\n### Usage\n\nFirst, all of the controls must be implemented as classes that subclass `marsutils.ControlInterface`. The primary control code defined in the `teleopPeriodic` method.\nThen, you must define the `_DISPLAY_NAME` field which will be displayed on the dashboard autochooser.\nYou can set `_SORT` to prioritize certain interfaces, the higher the number, the higher on the chooser list.\n\nBecause it is a magic bot component, you can access injected components.\n\nBut you must make an empty `execute` function to be a valid magicbot function.\n\nAfter you have the control components there are two ways to create the manager.\n\n### MagicBot magic\n\nIf you are using the MagicRobot framework you can use the `@with_ctrl_manager` decorator to automagically set everything up. Just annotate your robot class with `@with_ctrl_manager` and you are done. It will magically detect any `ControlInterfaces`, construct the `ControlManager` and automatically call the periodic functions.\n\nUsing the decorator also means you don't need to define an `execute` function.\n\n### Manually\n\nOtherwize, you must must set up manager by initializing `ControlManager` with all of your components _after_ `createObjects` has been called. This is [not technically possible with the MagicBot framework](https://github.com/robotpy/robotpy-wpilib-utilities/issues/21) _yet_.\n\n```python\nself.control_manager = marsutils.ControlManager(self.xbox_ctrl, self.joystick_ctrl)\n```\n\nAfter you have created the control manager, you must call its periodic functions. This means adding `self.control_manager.teleopPeriodic()` to your `teleopPeriodic` function and so on for each function you use.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Mars1523/Mars-Utils", "keywords": "", "license": "License :: OSI Approved :: MIT License", "maintainer": "", "maintainer_email": "", "name": "marsutils", "package_url": "https://pypi.org/project/marsutils/", "platform": "", "project_url": "https://pypi.org/project/marsutils/", "project_urls": { "Homepage": "https://github.com/Mars1523/Mars-Utils" }, "release_url": "https://pypi.org/project/marsutils/0.4.0/", "requires_dist": null, "requires_python": "", "summary": "Utilities for building frc robots", "version": "0.4.0" }, "last_serial": 4761251, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c946a6c798d4e1ce8bc6282d823eb220", "sha256": "225a7f91159e2e78d900956900ca670a5832d2beda246087b37a597e8a119a49" }, "downloads": -1, "filename": "marsutils-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c946a6c798d4e1ce8bc6282d823eb220", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3872, "upload_time": "2018-12-08T20:55:59", "url": "https://files.pythonhosted.org/packages/7a/b7/a7dedd6122bb8c6ae2293a13330b09cc81146afbcf2ff6c18999babf5acf/marsutils-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e8efbe0f60dbf23075688bb58fa8785b", "sha256": "427647ef6548be95e214b6ad2b32e15cecf1c17784d0e3450354264f41b4d118" }, "downloads": -1, "filename": "marsutils-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e8efbe0f60dbf23075688bb58fa8785b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3505, "upload_time": "2018-12-08T20:56:01", "url": "https://files.pythonhosted.org/packages/e5/23/a9233e221a8846fcc4406a1b3d7997a730e33cb02959be4967ed67ba5cc4/marsutils-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "865b0a7d054bbbe44ed2fd5e43e518e7", "sha256": "00b27bfa91879179801f41d674d668ad0c5ad5107fdaf11a94dfa907277ee625" }, "downloads": -1, "filename": "marsutils-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "865b0a7d054bbbe44ed2fd5e43e518e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4967, "upload_time": "2018-12-10T01:00:52", "url": "https://files.pythonhosted.org/packages/99/b1/a305bbebe4323e0396bc8d97e1c4948558bd0678cf8fd84217034c8ed26e/marsutils-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7810d95c08dcab5ab1839911ba5e434f", "sha256": "db3b91500f7956aa71bcbe39bdf572830692c36dca664baf464da43e06647966" }, "downloads": -1, "filename": "marsutils-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7810d95c08dcab5ab1839911ba5e434f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4153, "upload_time": "2018-12-10T01:00:53", "url": "https://files.pythonhosted.org/packages/5e/ee/e6273c3097854ca8cd868ae34731f256b0c93076048489d939d3804ff030/marsutils-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "921212bbb2308ff98bb50df6235fb996", "sha256": "f5329b71c81c5e2276d6bd36fc657a15c7fb2d12083ee9fbf66531116dbe79e7" }, "downloads": -1, "filename": "marsutils-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "921212bbb2308ff98bb50df6235fb996", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5340, "upload_time": "2019-01-08T03:16:43", "url": "https://files.pythonhosted.org/packages/09/38/d4ec8b4849fcc521fa82a99f0ce8c2cec3c35c184f487226755ca6335b95/marsutils-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "013cf3dff7ede0673440d526beba8748", "sha256": "1ebb46d23dc12986ce16c9753189c7b3725eb59c15535177f4c8e3c7e4be72af" }, "downloads": -1, "filename": "marsutils-0.3.0.tar.gz", "has_sig": false, "md5_digest": "013cf3dff7ede0673440d526beba8748", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4364, "upload_time": "2019-01-08T03:16:46", "url": "https://files.pythonhosted.org/packages/c5/96/ef813f5b91ca03373734b1e541a3a8e7914c148d5cbda1565e4b60637850/marsutils-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "751abe1c29cecf76cb4eaf27c9db6729", "sha256": "1cae4ac3adb92cc19c50d9a4fad46957907d8405246903fdf485238e8f7511d5" }, "downloads": -1, "filename": "marsutils-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "751abe1c29cecf76cb4eaf27c9db6729", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5335, "upload_time": "2019-01-16T23:10:47", "url": "https://files.pythonhosted.org/packages/ff/39/dd7aebfdf32626eed29ed98da1c797ae14502b60b5fcdf697f2447db1abc/marsutils-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a771cd962e0d3fd7800c34751d13a5f8", "sha256": "da140b2b387042d6c1d152689011c8c039ebfad4908b42766a1b0a11f5723217" }, "downloads": -1, "filename": "marsutils-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a771cd962e0d3fd7800c34751d13a5f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4355, "upload_time": "2019-01-16T23:10:48", "url": "https://files.pythonhosted.org/packages/b6/ea/5ac0db54f085e55bede12b55f6ff1f1740220f39541cd1cab714e8a57fad/marsutils-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "1e78a5d0ba14055a3a3979806bb77ab3", "sha256": "8f6f08d4d2cd48240233a89444a7a45864e883e9c59de9e2fac4eefebcb8d76b" }, "downloads": -1, "filename": "marsutils-0.4.0.tar.gz", "has_sig": false, "md5_digest": "1e78a5d0ba14055a3a3979806bb77ab3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4738, "upload_time": "2019-01-30T20:13:56", "url": "https://files.pythonhosted.org/packages/39/41/e0fe18fa461f15c7b6314ffeb5105a5b2a332063da6675367707b3ecd1e0/marsutils-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1e78a5d0ba14055a3a3979806bb77ab3", "sha256": "8f6f08d4d2cd48240233a89444a7a45864e883e9c59de9e2fac4eefebcb8d76b" }, "downloads": -1, "filename": "marsutils-0.4.0.tar.gz", "has_sig": false, "md5_digest": "1e78a5d0ba14055a3a3979806bb77ab3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4738, "upload_time": "2019-01-30T20:13:56", "url": "https://files.pythonhosted.org/packages/39/41/e0fe18fa461f15c7b6314ffeb5105a5b2a332063da6675367707b3ecd1e0/marsutils-0.4.0.tar.gz" } ] }