Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More

API

We are migrating documentation of the core Lino modules from docstrings (in lino.core) to prosa format (in this section).

The lino.api package contains a series of modules that encapsulate Lino’s core functionalities. They don’t define anything on their own but just import things that are commonly used in different contexts. One module for each of the three startup phases used when writing application code:

Recommended usage is to import these modules as follows:

from lino.api import ad, dd, rt, _

The lino.api.core is a pseudo module used to simplify things for application developers.

The remaining part of this document has been automatically generated from the source code.

The lino package

The lino package is the main plugin used by all Lino applications, and the root for the subpackages that define core functionalites.

As a plugin it is added automatically to your INSTALLED_APPS. It defines no models, some template files, a series of django-admin commands, the core translation messages and the core help_texts.py file.

core

Contains Lino's core functionalities.

hello

If you want to see which version of Lino you have, you can say "hello" to Lino:

api

Documentation is being migrated to prosa style in API.

utils

lino.utils (the top-level module) contains a few often-used function for general use.

mixins

This package contains model mixins, some of which are heavily used by applications and the Lino Extensions Library.

projects

Most of this package has been moved to lino_book.

modlib

The standard model library included with Lino.

sphinxcontrib

Some extensions for Sphinx.

management.commands

See The django-admin commands added by the lino plugin.

lino.startup(settings_module=None)

Start up Django and Lino.

TODO: move this to doctest (and adapt all tested docs).

Optional settings_module is the name of a Django settings module. If this is specified, set the DJANGO_SETTINGS_MODULE environment variable.

This is called automatically when a process is invoked by a django-admin command.

This is usually called in the initialization code snippet of a tested document.

If your doctest reports a failure of the following type:

Failed example:
    startup('lino_amici.projects.amici1.settings')
Expected nothing
Got:
    Started /usr/lib/python3.10/doctest.py ... docs/specs/overview.rst (using lino_amici.projects.amici1.settings.demo) --> PID 217238

then it’s because your project directory contains a log directory.

class lino.AppConfig(app_name, app_module)

Bases: AppConfig

This is the only django.apps.AppConfig object used by Lino. Lino applications instead use the lino.core.plugins.Plugin class to define plugins. See More about plugins.

The lino_xl package

This package contains the code of the Lino Extensions Library.

See Plugins API for the list of plugins.

lib

These are the plugins included with Lino XL.

The lino_react package

react

A user interface for Lino applications that uses FaceBooks React JS framework.

The lino_book package

This is the code repository that contains (1) the Sphinx source files of the Lino Developer Guide, (2) the lino_book Python package and (3) a test suite with doctest-based tests for the Lino framework.

The Lino Developer Guide is the technical documentation tree of the Lino framework. It is visible on https://dev.lino-framework.org.

The lino_book Python package is a collection of small example Lino applications used for educational and testing purposes.

The code repositories for the lino and lino_xl Python packages have no documentation tree on their own and almost no unit tests, they are tested and documented here.

The lino_book package contains a set of example projects used both for testing and explaining Lino framework.

It is not published on PyPI because that would make no sense. You use it by cloning the repository from GitLab (which is done automatically by getlino configure with –devtools).

projects

This package contains example applications included with the Lino book.

lino_book.DEMO_DATA = PosixPath('/home/luc/work/book/demo_data')

The root directory for our demo data collection, which is used by other projects as well.

This is a Path instance.

Lino applications covered by the book

The following Lino applications have their developer specs and API in the Lino book and form an integral part of the Lino core because they also serve for testing purposes.

Lino Noi

This is the main module of Lino Noi.

lib

Extended and specific plugins for Lino Noi.

Lino Così

lib

Plugins

migrate

This is a real-world example of how the application developer can provide automatic data migrations for Python dumps.

Lino Avanti

This is the main module of Lino Avanti.

lib

Plugins for Lino Avanti.

Lino Vilma

This is the main module of Lino Vilma.

lib

Extended and specific plugins for Lino Noi.

Lino Care

This is the main module of Lino Care.

lib

Extended and specific plugins for Lino Care.

Lino Tera

This is the main module of Lino Tera.

lib

Plugins specific to Lino Psico.

Lino Voga

The main module of Lino Voga.

lib

This package contains apps which are specific to Lino Voga.

Lino CMS

This is the main module of Lino Cms.

lib

Plugins for Lino Cms.