Timelink Python package
v1.0.5

Contents:

  • The Timelink python package
  • Installation
  • Usage
  • Documentation
    • Online documentation
      • An Introduction to Timelink
      • Timelink Python Package
        • Installation
        • Interfacing with a Kleio Server
      • Timelink data concepts and models
    • Source code docs
  • Timelink source documentation
  • Contributing
  • Credits
  • History
Timelink Python package
  • Documentation
  • Timelink Python Package
  • Edit on GitHub

Timelink Python Package

The Timelink Python package provides a Python interface to the Timelink system. It is intended to be used by clients such as Jupyter notebooks to access the Timelink database and process Kleio source files.

Installation

The Timelink Python package is available on PyPI and can be installed using pip:

pip install timelink

Interfacing with a Kleio Server

A Kleio server is a separate application that processes source files in the Kleio notation and produces data that can be imported into the Timelink database.

The Timelink Python package provides a timelink.kleio.kleio_server.KleioServer class that can be used to interface with a Kleio server.

For more information on the Kleio notation, and how it is used to produce data for the Timelink database, see Timelink data concepts and models

Starting a Kleio Server

To start a Kleio server, in the local machine, ensure that you have Docker installed in the local machine.

from timelink.kleio import KleioServer

# Start a Kleio server using Docker
# in the current directory

kleio_home="."
kserver: KleioServer = KleioServer.start(kleio_home=kleio_home)

The latest image from the Kleio Docker repository will be used to start the server. If the image is not available locally, it will be downloaded from the Docker repository. So the first run may take some time.

It is possible to specify other Docker related parameters, see timelink.kleio.kleio_server.start_kleio_server()

Getting status of Kleio files

The Kleio server can be queried for the status of Kleio files using the timelink.kleio.kleio_server.KleioServer.translation_status() method.

   from typing import List
   from timelink.kleio import KleioServer
   from timelink.kleio.schemas import KleioFile

   kfiles: List[KleioFile] = kserver.translation_status(path='',recurse='yes',status=None)

   for kfile in kfiles:
       print(kfile.status.value,kfile.path,kfile.modified_string, kfile.translated_string)

>>>

   E reference_sources/varia/nommiz.cli 2023-10-17 12:22:49 2023-10-21T05:35:00+00:00
   T reference_sources/linked_data/dehergne-locations-1644.cli 2023-11-03 11:51:18 2023-11-03T04:30:00+00:00
   V reference_sources/linked_data/dehergne-a.cli 2023-10-24 12:56:44 2023-10-24T12:56:00+00:00
   W reference_sources/varia/EmpFAfonso.cli 2023-10-21 05:34:30 2023-10-21T05:34:00+00:00

The status of a Kleio file are defined in an enumeration: :class: timelink.kleio.schemas.KleioFileStatus

  • T - Translation needed

  • E - Translated with errors

  • W - Translated with warnings

  • V - Valid translation (can be imported)

Previous Next

© Copyright 2024, Joaquim Ramos de Carvalho. Revision 4cbf6bd0.

Built with Sphinx using a theme provided by Read the Docs.