在网格中控制机器人而不自毁
mazbot的Python项目详细描述
马兹伯特
简介
这个存储库实现了一个robot,它对放置在5x5大小的表上的命令做出响应。机器人将忽略所有命令,直到它被放在桌子上。它也不会执行会使它从表中掉下来的命令。在
- 可以提供给robot的命令有PLACE、MOVE、LEFT、RIGHT和REPORT。在
- 机器人既有位置(x,y)坐标,也有方位(北、东、南、西)。在
- “移动”命令将机器人朝当前所面对的方向移动一步。在
- 向左和向右指令将使机器人在各自的方向旋转90度。在
- REPORT命令将打印出robot的当前位置,以及它的标准输出方向。在
例如,包含以下内容的文件:
PLACE 0,0,NORTH MOVE REPORT
将输出:
^{pr2}$标准化。在
先决条件
这个存储库需要PythonV3.6或更高版本才能运行,以及它的依赖项(在requirements中定义)_开发.txt)已安装(请参见用法部分)。在
用法
在要求中定义的首次安装依赖项_开发.txt文件(最好是在新的虚拟环境中):
pip install -r requirements_dev.txt
mazbot的输入应该在一个文本文件中提供(对于示例文件,请检查input_files目录的内部)。输入文件的路径需要作为命令行参数提供(见下文)。在
要将mazbot作为CLI工具运行,请执行以下操作:
python -m mazbot --input-file <input_path_in_quotes>
例如:
python -m mazbot --input-file 'input_files/input_file_1.txt'
使用:
pytest
从根目录运行包上的所有测试
更改:
conf/logging_conf.py
更改包的日志记录配置
对于开发者
- 您可以通过在根目录下运行pytest来运行包的测试。运行tox将对所有python版本3.8、3、7和3.6运行测试
- 您也可以通过Makefile访问有用的命令。例如,运行makecoverage生成覆盖率报告,运行makedocs使用Sphinx生成文档(包括使用内置docstring的API文档)
- Travis CI管道将在push-to-all分支上运行所有测试,并在标记为的上构建并推送到PyPI存储库。在
- 您可以使用bump2version命令自动生成版本号和标记(例如bump2version patch将增加一个补丁版本,并根据当前版本应用递增的标记)
- 存储库与PyPI集成用于存储库构建索引,readthedocs用于联机文档,以及pyup用于自动更新依赖项。自从存储库在GitHub上变为私有后,这些功能要么部分起作用,要么当前不起作用。在
变化
存储库遵循功能分支工作流。对存储库的修改应该发生在一个功能分支中,分支名称预先加上feature/(例如feature/refactoring)。只有在提交了至少一个批准的请求时,才应合并到主节点。在
已知问题和限制
- The robot only supports a 5x5 grid at present. Support for other sizes (e.g. through command line arguments) was deprioritized since the problem statement specifically asks for those dimensions, though the implementation code has been written in an agnostic fashion
- Integrations with PyPI, readthedocs, pyup are either partially or not currently working ever since the repository was made private on GitHub.
其他
- 免费软件:麻省理工学院许可证
- 文档:https://mazbot.readthedocs.io。(自从GitHub项目被移为私有项目后就没有更新过)
学分
此包是用Cookiecutter和audreyr/cookiecutter-pypackage项目模板创建的。在
历史
0.1.0(2020-07-18)
- PyPI的第一个版本。在
0.1.6(2020-07-19)
- 机器人功能端到end(从通过CLI提供的文件路径读取到输出到stdout)
- 读取Docs、pyup、pypi集成工作
- 项目
标签: