A command-line typing tool made for programmers. Inspired by wpm.
Requires python>=3.6
:
pip install lpm
Start the program with:
lpm
Use lpm -h
for additional options.
Install dev dependencies:
pip install -r requirements-dev.txt
Run tests:
pytest tests
Code formatting:
black setup.py lpm/*.py tests/*.py
Code linting:
pylint setup.py lpm/*.py tests/*.py
Create documentation:
cd docs
make clean && make html && make latexpdf
Code coverage:
# automated testing coverage
coverage run -m pytest tests
# manual testing coverage
coverage run -m lpm
# create report
cd coverage_data
coverage combine
coverage html
open htmlcov/index.html
Upload to PyPI:
- Update version in
lpm/__init__.py
- Run code linting and formatting
- Update
requirements-dev.txt
if needed - Update
setup.py
if needed - Run tests to assure everything is working
- Run
lpm --reset
so the data folder is cleared python -m build
python -m twine upload dist/*
The folders and files for this project are as follows:
-
Doc/
: Project documentation and deliverables (ie SRS, TestPlan, TestReport, etc ...) -
docs/
: Sphinx auto-generated source code. -
lpm/
: Contains source code for project.lpm/__main__.py
: Entry point for lpm.lpm/commandline.py
: CLI code.lpm/config.py
: Configuration.lpm/game.py
: Typing interface game controller.lpm/screen.py
: Commandline IO via curses.lpm/snippets.py
: Data classes for code snippets.lpm/stats.py
: Statistics calculations and classes.
-
ProjectSchedule/
: Gantt Chart. -
tests/
: Automated unit tests. -
setup.py
: Python package setup.