Skip to main content

Read/write LSF plain-text container format files

Project description

lsf

LSF (Lion's Sectioned Format) is a plain-text container format.

It features:

  • header & content sections
  • titles for all sections (except the header)
  • key-value pairs for all sections (optionally)
  • body text for each section (optionally)

LSF files are always UTF-8 encoded.

Installing

pip install lsf-lions-sectioned-format

An example LSF File

title: My Blog
tags: blog

This is my blog.

== 2021-01-20 ==
tags: blogpost datepage github
date: 2021-01-20

Today I uploaded my lsf module to PyPI.

== 2021-01-18 ==
tags: blogpost datepage holiday
date: 2021-02-10

Today was Martin Luther King Day.

This file has a header section, and two content sections (2021-01-20, 2021-01-18). All sections have keys and body text content.

Example of Use

Here's reading an LSF file:

import lsf

L = lsf.loadfile("basic_blog.lsf")

for section in L:
    print(section[lsf.TITLE])
    print("  " + section[lsf.KEYS].get("tags"))
    print("  " + str(len(section[lsf.BODY])) + " characters in body")

And adding a section:

lsf.append(L, "A Title", {"date": "2021-01-19", "tags": "test"}, "This is a new entry.")

And saving to the file:

lsf.savefile(L, "basic_blog.lsf")

Section Dictionaries

Each section has a dictionary of the form:

{TITLE: "...a title...",
 TITLELN: 10,
 KEYS: {"key1": "value 1", "key2": "value 2", ...},
 BODY: "Central\nBody\nText\n",
 BODYLN: 16}

...which corresponds to section:

10. == ...a title... ==
11. key1: value 1
12. key2: value 2
    ...
15. 
16. Central
17. Body
18. Text

(The line numbers are not part of the source; They are supplied only so that you can see how TITLELN and BODYLN function.)

It's safe to manipulate data in place.

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

lsf-lions-sectioned-format-2021.6.29.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file lsf-lions-sectioned-format-2021.6.29.tar.gz.

File metadata

  • Download URL: lsf-lions-sectioned-format-2021.6.29.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.0

File hashes

Hashes for lsf-lions-sectioned-format-2021.6.29.tar.gz
Algorithm Hash digest
SHA256 9e9c3982621ac10538a14e55fbae7d9f4a593257e76c970e9d0a350b343f7d2f
MD5 0b7e4701d3469b3fc3054d6d35d50d9a
BLAKE2b-256 fb28cdd8986e11afdc30040cd4aa46f7ff7843a86ab4545f4223e4e0645a3d7f

See more details on using hashes here.

File details

Details for the file lsf_lions_sectioned_format-2021.6.29-py3-none-any.whl.

File metadata

  • Download URL: lsf_lions_sectioned_format-2021.6.29-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.0

File hashes

Hashes for lsf_lions_sectioned_format-2021.6.29-py3-none-any.whl
Algorithm Hash digest
SHA256 81ff790fa75493dd669fff0ca7a8369e69ed199bb60ede6fdeafa77e922a906f
MD5 761c0d013ae8139ab63b513f8834922b
BLAKE2b-256 a294cdf1ef77f53a0cf6a99de26df6dc4a9741b62518a6c616c69d2ef79bdeed

See more details on using hashes here.

Supported by

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