Skip to main content

Python 3 library to import from and export to SongBeamer format.

Project description

icemac.songbeamer

Library to read and write SongBeamer files.

Supported SongBeamer versions

Currently only version Songbeamer version 2 is supported. (Internal version number in .sng files: #Version=3.)

I do not have access to other SongBeamer versions so I do not know the file structure there.

Supported Python version

At least Python 3.2 is required.

Running Tests

To run the tests call:

$ python3.2 setup.py test -q

or (with coverage analysis):

$ python3.2 setup.py nosetests

Hacking

Fork me on: https://bitbucket.org/icemac/icemac.songbeamer

https://secure.travis-ci.org/icemac/icemac.songbeamer.png

Changes

0.2.0 (2012-10-31)

  • Added ability to parse bytes objects.

  • Sorting keys in export file to be compatible accross Python 3.2 and 3.3.

0.1.0 (2012-05-05)

  • Initial public release.

To do

Implementations

  • import/export of .col files (schedules)

Open Questions

  • Are Transpose and Speed actually int values?

Usage

Importing a .sng file

To import a .sng file use the parse class method. It expects a byte stream (io.BytesIO or open file) or a bytes object as argument to read from:

>>> from icemac.songbeamer import SNG
>>> with open('example.sng', 'rb') as file:
...     sng = SNG.parse(file)
>>> with open('example.sng', 'rb') as file:
...     sng = SNG.parse(file.read())

Accessing a file’s data

The parsed data is stored in the data attribute of the object:

>>> from pprint import pprint
>>> pprint(sng.data)
{'Author': 'me',
 'Text': ['La la la', '---', 'Lei lei lei'],
 'Version': 3}

To access the raw values imported from the .sng file get them using getattr:

>>> sng.Version
b'3'

Exporting a .sng file

>>> from tempfile import TemporaryFile

To export to a .sng file use the export method. It expects a byte stream (io.BytesIO or open file) as argument to write into:

>>> with TemporaryFile() as file:
...     sng.export(file)
...     _ = file.seek(0)
...     pprint(file.readlines())
[b'#Author=me\r\n',
 b'#Version=3\r\n',
 b'---\r\n',
 b'La la la\r\n',
 b'---\r\n',
 b'Lei lei lei']

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

icemac.songbeamer-0.2.0.zip (15.2 kB view hashes)

Uploaded Source

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