Skip to main content

Encode/decode Java's META-INF/MANIFEST.MF in Python

Project description

java-manifest-py

Build Status

Encode/decode Java's META-INF/MANIFEST.MF in Python.

Installation

To install the latest release on PyPI, run:

$ pip install java-manifest

Usage

A MANIFEST is represented by a list of dictionaries, where each dictionary corresponds to an empty-line delimited section of the MANIFEST and each dictionary has str keys and either str or bool values.

java_manifest.loads takes a string containing MANIFEST-formatted data and returns a list of dictionaries, where each dictionary is a section in the MANIFEST. java_manifest.load does the same, using any typing.TextIO readable object.

>>> import java_manifest
>>> manifest_str = """
... Name: README-Example-1
... Boolean: true
... Long-Line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
...  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
...
... Name: README-Example-2
... Boolean: false
... Not-Boolean: False
... """
>>> manifest = java_manifest.loads(manifest_str)
>>> print(parsed_manifest)
[{'Name': 'README-Example-1', 'Boolean': True, 'Long-Line': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}, {'Name': 'README-Example-2', 'Boolean': False, 'Not-Boolean': 'False'}]

Similarly, java_manifest.dumps returns a string of MANIFEST-formatted data from a list of dictionaries, where each dictionary is a section in the MANIFEST. java_manifest.dump does the same, writing into any typing.TextIO writable object.

>>> import java_manifest
>>> manifest = [
...     {
...         "Name": "README-Example",
...         "Some-Str": "Some random string",
...         "Some-Bool": True,
...     },
... ]
>>> manifest_str = java_manifest.dumps(manifest)
>>> print(manifest_str)
Name: README-Example
Some-Str: Some random string
Some-Bool: true

There is also a from_jar function that finds the META-INF/MANIFEST.MF file within the jar and java_manifest.loads that.

>>> import java_manifest
>>> manifest = java_manifest.from_jar("/path/to/jarfile.jar")

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

java-manifest-0.1.0.tar.gz (3.5 kB view hashes)

Uploaded Source

Built Distribution

java_manifest-0.1.0-py3-none-any.whl (3.3 kB view hashes)

Uploaded Python 3

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