Development

Contributing

Thanks for the interest in contributing to Lira!

Requirements:

  • Git

  • Python greater or equal than 3.7

Get the project:

git clone https://github.com/pythonecuador/lira
cd lira

Create a virtual environment:

python -m venv venv
source venv/bin/activate

Install the project locally with:

pip install -e .

Run python -m lira, or check the docs about the modules to become familiar with the project.

Note

Try to write tests for each new feature or bug fixed. See tests/ for inspiration.

Install nox to run the tasks:

python -m pip install nox

Check the available tasks with python -m nox -l, and execute the task with python -m nox -s <task>.

Before sending a pull request, make sure to run the formatter, and see if the linter, tests, and coverage are passing.

make format
make lint
make tests
make coverage

If you want help or have any questions, please join our telegram group Python Ecuador.

Documentation

If you are contributing to the documentation, try make serve-docs to see it locally and with hot-reloading.

Debugging

If you are having problems, you can check the logs at ~/.local/share/lira/log/lira.log, or at ~/AppData/Local/lira-data/log/lira.log if you are using Windows.

To debug with the lira’s terminal interface running you may need python-remote-pdb, install it with:

pip install remote-pdb

It works just as pdb, import it with:

from remote_pdb import set_trace
set_trace()

And to connect to it from another terminal:

telnet 127.0.0.1 4444

For more insights about it, please read the python-remote-pdb documentation.

Roadmap

Goals

  • Command line tutorial (100% text)

  • Multi platform

  • Easy to install

  • Content for all levels

  • Autocomplete (program arguments)

  • Easy to add new tutorials

  • Multi-languages (i18n)

  • Edit the code with your favorite editor

  • Save your advance

Non-Goals

  • It is not a web tutorial

  • No mobile support

  • It does not have multi-user support

  • It is not an editor or IDE for Python

  • Does not support other languages

  • Not a replacement for Jupyter Notebook

  • It is not a reference document or book

Random ideas for the future

  • Multiple themes support

  • Plugins

  • Share your score

  • Expand to other types of tutorials (physics, math, statistics)

  • Against the clock mode

  • Quiz mode