Package: mazbot
mazbotIntroductionThis repository implements a robot that responds to commands once placed on a table of size 5x5. The robot will ignore all commands until it is placed on the table. It will also not execute a command that will make it fall off the table.The commands that can be provided to the robot are PLACE, MOVE, LEFT, RIGHT, and REPORT.The robot has both a position (x,y) coordinates, as well as an orientation (NORTH, EAST, SOUTH, WEST).The MOVE command will move the robot one step in the direction it is currently facing.The LEFT and RIGHT commands will rotate the robot 90 degrees in the respective direction.The REPORT command will print out the current location of the robot, along with its orientation to standard output.For example, a file with content:PLACE 0,0,NORTH
MOVE
REPORTwill output:0,1,NORTHto standard out.PrerequisitesThis repository requires Python v3.6 or higher to run, as well as its dependencies (defined inrequirements_dev.txt) installed (seeUsagesection).UsageFirst install dependencies defined in therequirements_dev.txtfile (ideally in a new virtual environment):pip install -r requirements_dev.txtThe input to mazbot should be provided in a text file (for sample files check the inside of the input_files directory). The path to the input file needs to be provided as a command line argument (see below).To run mazbot as a CLI tool:python -m mazbot --input-file <input_path_in_quotes>e.g.:python -m mazbot --input-file 'input_files/input_file_1.txt'Use:pytestfrom the root directory to run all tests on the packageChange:conf/logging_conf.pyto change the logging configuration for the packageFor DevelopersYou may run the tests for the package by runningpytestin the root. Runningtoxwill run tests for all python versions 3.8, 3,7 and 3.6You may also access useful commands through theMakefile. For example, runmake coverageto generate a coverage report, andmake docsto use Sphinx to generate documentation (including API documentation using in-built docstrings)The Travis CI pipeline will run all tests on pushes to all branches, and will build and push to  the PyPI repository on ataggedmerge to master.You can autogenerate version numbers and tags using thebump2versioncommand (e.g.bump2version patchwill increment a patch version and apply the incremented tag based on the current version)The repository is integrated withPyPIfor repository build indexing,readthedocsfor online documentation, andpyupfor keeping dependencies up to date automatically. These functionalities are either partially or not currently working ever since the repository was made private on GitHub.ChangesThe repository follows a Feature Branch workflow. Modifications to the repository should happen in a feature branch, with the branch name havingfeature/prepended (e.g.feature/refactoring). Merges to master should only occur on a Pull Request submitted with at least one approval.Known issues and limitationsThe 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 fashionIntegrations withPyPI,readthedocs,pyupare either partially or not currently working ever since the repository was made private on GitHub.OtherFree software: MIT licenseDocumentation:https://mazbot.readthedocs.io. (not updated ever since GitHub project moved to be private)CreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.History0.1.0 (2020-07-18)First release on PyPI.0.1.6 (2020-07-19)Robot functional end-to-end (reading from file path provided through CLI to output to stdout)readthedocs, pyup, pypi integrations working