ImperialCollegeLondon / ImperialCollegeLondon/ReCoDE-research-python-patterns
Program entry point and CLI
- Dominant language
- Python
- Stars
- 1
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
**Is your feature request related to a problem? Please describe.**
In order for a user to interact with the program and to configure it, it needs a command line interface. Without one, everything will be hard coded.
**Describe the solution you'd like**
The command line interface will be the entry point to the code. The CLI will control the following:
1. The view used to show Conway's game of life. There will be two options, one is to display it directly in the terminal, another will be to have a web app
2. Enable the user to configure the starting condition of the grid
As such, the solution for this will implement the `typer` app and the `pydantic` dependency injection classes to configure the game.
**Describe alternatives you've considered**
Instead of lumping all the configuration together, I'm considering introducing separate sub-commands for the CLI view and the web view. This would allow the configuration for the web and CLI be different. This is advantageous as it would allow the web version to be a lot more flexible. For instance, the user could click things on the grid to select which cells should be alive and change the grid size.
**Additional context**
Add any other context or screenshots about the feature request here.
Contributor guide
No contributing guide indexed for this repository
Research direction
No files, tests, or existing entry point are named. Start by surveying the current game and view modules, then determine how a Typer app and Pydantic configuration would connect them. Done means users can choose the terminal or web view and configure the starting grid, but the issue leaves the detailed design open.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100