Encode/decode Java's META-INF/MANIFEST.MF in Python
Project description
java-manifest-py
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.load
s that.
>>> import java_manifest
>>> manifest = java_manifest.from_jar("/path/to/jarfile.jar")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for java_manifest-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a24a597d4eeab504fcbc29dcb474af9490466e29f6048915d9dd782815017d38 |
|
MD5 | dff33cfb735fe8aa64cda590b828e631 |
|
BLAKE2b-256 | 8cae566453c1f12671e57b194367f6e0d7d5e66ec2466163763aba87cf8a65a8 |