PyLom
This is a Python library for reading and writing IMS-LOM files. Almost all fields are supported, but only one language will be supported for language-specific langstring elements. The reader supports common vCard field extraction with vobject.
Reader Usage
Basically, import the class and tell it to parse a lom file. The parsed data will be available in the lom attribute dict. By default, it reads the en language, but another can be set on init. To start parsing, initialize the class and use one of two public methods, parsePath or parseString.
basic example
from pylom.reader import LomReader
lomreader = LomReader()
lomreader.parsePath("test/records/ims-complete.xml")
print(lomreader.lom["title"])
# Bloodbath of B-R5RB
fieldset example
from pylom.reader import LomReader
lomreader = LomReader()
lomreader.parsePath("test/records/ims-complete.xml", ["title","location"])
# Only the title and location field results are available in the lom dict
Writer Usage
The writer class is used by providing it with a dictionary with all the values you want in your record. Like the reader class the instance can be called with a language argument for all the langstring elements. After parsing, the lom record is available in the lom attribute.
basic example
from pylom.writer import LomWriter
lomwriter = LomWriter()
lomwriter.parseDict({"title": "Bloodbath of B-R5RB"})
print(lomwriter.lom)
custom vocabularies
By default, all vocabulary sources are set to LOMv1.0, but they can be changed by setting the vocabulary_sources after creating the instance.
from pylom.writer import LomWriter
lomwriter = LomWriter()
lomwriter.vocabulary_sources.update( { "aggregationlevel": "my-source" } )
lomwriter.parseDict({"aggregationlevel": "2"})
print(lomwriter.lom)
input values
For easy implementation, many of the values can be provided as needed. For instance, any basic element or langstring element can be provided as string or as a list of strings.
Vocabulary elements can be provided as a single string or a list of strings, using the class default vocabulary source, or as a single dictionary, with separate source and value values.
More detailed examples can be inferred from the test_writer_elements test cases.
from pylom.writer import LomWriter
lomwriter = LomWriter()
lomdict = {
"title": "Bloodbath of B-R5RB",
"keyword": ["Eve Online", "Halloween War"],
"aggregationlevel": {"source": "my-source", "value": "2" },
"context": ["school", "higher education"] }
lomwriter.parseDict(lomdict)
print(lomwriter.lom)
Dependencies
To Do
Reader
- implement all LOM fields
- support IEEE binding
- cleanup options, trim, unique, etc
- application profile validation
- value validation
Writer
- vocabulary, provide list of source/value dicts
- more LOM-spec aware validation, for instance, prevent multiple title fields
Metadata
Release files for pylom 1.6.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pylom-1.6.3.tar.gz | 16.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pylom-1.6.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.2 kB
Release files / pylom-1.6.3.tar.gz
| Download URL | pylom-1.6.3.tar.gz |
|---|---|
| Size | 16.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f6724b2b4a6dfd28479e5038865824536af779fb66c071b14ba029b5ea45a8de
|
|
BLAKE2b-256 checksum How to use checksums |
121537a73c6ff9bd6a772cdd997cd839e525451dca0d214b34a116f734ccfe2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.8
|
Release files / pylom-1.6.3-py3-none-any.whl
| Download URL | pylom-1.6.3-py3-none-any.whl |
|---|---|
| Size | 16.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7cb623960623ff3af215bdb4efe3b3941c55028a4e857120b1b563eb6965dd8e
|
|
BLAKE2b-256 checksum How to use checksums |
f44d9c89bfce1d7f3c1424df89497ce170f6b39e7cf4e7c54c3bac543a8bc95c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.8
|