Giter VIP home page Giter VIP logo

lira's Introduction

Lira

Documentation Status codecov.io tests PyPI version

Python interactive tutorial in your terminal.

Learn, Imagine, Repeat, Analyze

This project is still under development, many things may and will change!

Check the docs at https://lira.python.ec.

lira's People

Contributors

dependabot[bot] avatar gabygm avatar josealb94 avatar josselineperdomo avatar rpalaciosg avatar santinosuntaxi avatar seburath avatar stsewd avatar sumitgupta7132 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

lira's Issues

Fix codecov.io

The coverage is low, so codecov is failling, we need to set in the config file the new limit.

Definir formato de los tutoriales

Necesitamos un formato flexible para que contenga el tutorial en si y metadatos (como pistas, puntos?). También metadatos del tuto en si (como TOC, secciones, etc). Estamos considerando rst (doctutils para parsearlo)

improve welcome screen

Right now this is welcome screen:

image

I think we could have a cooler welcome, this label is located on the class ContentArea on ui.py

Logo

We need a cool logo for the project!

Versiones de python soportadas

Creo que estamos apuntando a python 3.6 pa arriba. Pero debemos verificar que las dependencias que usemos soporten esas versiones.

Create custom list/tree widget

In #61 I realized we are implementing a list with buttons, but buttons have some behavior that can't be changed, like the style of the text, the representation, etc.

Validate/pre-process data from nodes

Some nodes require some type of data that we need to validate, like TestBlock.validator (this should be an importable module).
Or CodeBlock where the content should be a list of lines. Or Admonition.type where it should be one of the three types. Maybe we can do the validation like django rest framework does, or something more simple like the rst directive does

lira/lira/parsers/rst.py

Lines 73 to 76 in 298679e

option_spec = {
"help": str,
"validator": importable,
}

Raise a warning when finding invalid nodes

We only support a subset of nodes from rst. We should raise a warning if we find nodes that aren't recognized.

lira/lira/parsers/rst.py

Lines 126 to 142 in 7eccc4b

def _parse_content(self, node, start=0):
nodes = []
for child in node.children[start:]:
tag = child.tagname
if tag == "section":
nodes.append(self._parse_section(child))
if tag == "directive":
directive_name = child.attributes.get("name")
if directive_name == "test-block":
nodes.append(self._parse_test(child))
elif directive_name == "code-block":
nodes.append(self._parse_code(child))
if tag in self.terminal_nodes:
nodes.append(self.terminal_nodes[tag](child.astext()))
elif tag in self.container_nodes:
nodes.append(self.container_nodes[tag](*self._parse_content(child)))
return nodes

Refactor TUI into a module

The app is small for now, but looks like is going to grow quickly. We should refactor it into something like this:

  • tui/widgets.py
  • tui/windows.py
  • tui/__init__.py

Add docs about installation

We need some more detailed steps on how to install the project (from pypi and from source). docs/install.rst

Translate readme

We decided to keep this repo in english and make a separate repo with the books in spanish

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.