Skip to main content

Lightweight analytics tool for Okapi-based services. Based on the original ldlite package from the Library Data Platform project: https://github.com/library-data-platform/ldlite

Project description

LDLite-RTR

Copyright (C) 2021-2024 The Open Library Foundation. This software is distributed under the terms of the Apache License, Version 2.0. See the file LICENSE for more information.

LDLite-RTR is a fork of the original LDLite tool from the Library Data Platform project that supports Refresh Token Rotation (RTR) in the Quesnelia release (and later) of FOLIO. It should function as a drop-in replacement for the original ldlite library.

LDLite-RTR is a lightweight, open source reporting tool for Okapi-based services. It is part of the Library Data Platform project and provides basic LDP functions without requiring the server to be installed.

To install LDLite or upgrade to the latest version:

$ python -m pip install --upgrade ldlite-rtr

(On some systems it might be python3 rather than python.)

To extract and transform data:

$ python
>> > import ldlite
>> > ld = ldlite.LDLite()
>> > ld.connect_okapi(url='https://folio-juniper-okapi.dev.folio.org/',
                      tenant='diku',
                      user='diku_admin',
                      password='admin')
>> > db = ld.connect_db()
>> > _ = ld.query(table='g', path='/groups', query='cql.allRecords=1 sortby id')
ldlite: querying: / groups
ldlite: created
tables: g, g__t, g__tcatalog
>> > ld.select(table='g__t')
 __id |                  id                  |         desc          | expiration_offset_in_days |   group   
------+--------------------------------------+-----------------------+---------------------------+-----------
    1 | 3684a786-6671-4268-8ed0-9db82ebca60b | Staff Member          |                       730 | staff     
    2 | 503a81cd-6c26-400f-b620-14c08943697c | Faculty Member        |                       365 | faculty   
    3 | ad0bc554-d5bc-463c-85d1-5562127ae91b | Graduate Student      |                           | graduate  
    4 | bdc2b6d4-5ceb-4a12-ab46-249b9a68473e | Undergraduate Student |                           | undergrad 
(4 rows)
>> > _ = ld.query(table='u', path='/users', query='cql.allRecords=1 sortby id')
ldlite: querying: / users
ldlite: created
tables: u, u__t, u__t__departments, u__t__personal__addresses, u__t__proxy_for, u__tcatalog
>> > cur = db.cursor()
>> > _ = cur.execute("""
        CREATE TABLE user_groups AS
        SELECT u__t.id, u__t.username, g__t.group
            FROM u__t
                JOIN g__t ON u__t.patron_group = g__t.id;
        """)
>> > ld.export_excel(table='user_groups', filename='groups.xlsx')

Features

  • Queries Okapi-based modules and transforms JSON data into tables for easier reporting
  • Full SQL query support and export to CSV or Excel
  • Compatible with DBeaver database tool
  • Compatible with DuckDB and PostgreSQL database systems
  • PostgreSQL support enables:
    • Sharing the data in a multiuser database
    • Access to the data using more database tools
    • Storing the data in an existing LDP database if available
  • Runs on Windows, macOS, and Linux.

More examples

LDLite resources

Note: the following resources are for the original ldlite project. There shouldn't be any significant differences right now, but that could change

  • LDLite API documentation

  • The LDP project runs a Slack workspace which is a good place to ask questions or to share your work. It also serves as a community space for working together on library data problems. To request an invitation, use the Contact page on the LDP website.

Other resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ldlite_rtr-0.1.0.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ldlite_rtr-0.1.0-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file ldlite_rtr-0.1.0.tar.gz.

File metadata

  • Download URL: ldlite_rtr-0.1.0.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for ldlite_rtr-0.1.0.tar.gz
Algorithm Hash digest
SHA256 948fa16e572cedaf7c5fa9b72fc754d782495f6bb26403e041d892c9793323ee
MD5 48855128a23cee3b52e156188b52c13c
BLAKE2b-256 20486ff0df18237da9e1539be14e02d7da7655740d76917c5aec0f55044513c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for ldlite_rtr-0.1.0.tar.gz:

Publisher: publish.yml on bltravis/ldlite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ldlite_rtr-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ldlite_rtr-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for ldlite_rtr-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1cc53633b91c7ab8afba8dbdc507d4f1ccf6a41644298033895b1d86dba5b91b
MD5 6ba7641bc33cb8b58783b62b8ed1ea06
BLAKE2b-256 5360fdb83585c94e982861c9baacea51bde818cb9d6e8df53454d409d33bbe33

See more details on using hashes here.

Provenance

The following attestation bundles were made for ldlite_rtr-0.1.0-py3-none-any.whl:

Publisher: publish.yml on bltravis/ldlite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page