Skip to main content

A python package to read and edit nbt data

Project description

Build Status PyPI Version Python Version

A python library to read and edit nbt data. Also provides an api to define compound tag schemas in order to save some typing with recurring tag hierarchies. Requires python 3.6.

Installation

The package can be installed with pip.

$ pip install nbtlib

Basic usage

The following examples will give you a very basic overview of what you can do. For more advanced examples, check out the “Usage” notebook in the docs folder.

Reading files

Reading files can be done directly with the load() function. The root property contains the root nbt tag. Every nbt tag inherits from its python counterpart so you can use all the usual builtin operations on nbt tags.

from nbtlib import nbt

nbt_file = nbt.load('bigtest.nbt')
assert nbt_file.root['intTest'] == 2147483647

Editing files

You can use nbt files as context managers in order to save modifications automatically at the end of the with block.

from nbtlib import nbt
from nbtlib.tag import *

with nbt.load('demo.nbt') as demo:
    demo.root['counter'] = Int(demo.root['counter'] + 1)

You can also use the save() method.

from nbtlib import nbt
from nbtlib.tag import *

demo = nbt.load('demo.nbt')
demo.root['counter'] = Int(demo.root['counter'] + 1)
demo.save()

For more details check out the “Usage” notebook.

Using schemas

A schema lets you create compound tags that enforce a specific tag type for any given key.

from nbtlib import schema
from nbtlib.tag import *

MySchema = schema('MySchema', {
    'foo': String,
    'bar': Short
})

my_object = MySchema({'foo': 'hello world', 'bar': 21})
assert isinstance(my_object['foo'], String)

Contributing

Contributions are welcome. Unit tests are built with pytest. You can run the test suite with:

$ python -m pytest tests

License: MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nbtlib-0.1.9-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file nbtlib-0.1.9-py3-none-any.whl.

File metadata

File hashes

Hashes for nbtlib-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 12d082a3b754bba90f7386c0d4fe8f4c1b12961ee0f9d66acb4dc9b0e2b8d319
MD5 d0d7d98b2086e9e356f216803182f1e0
BLAKE2b-256 85ba2a45b8c77a33572968d0c49e9e56bee7d408fbab5a24835abd5aa178f47a

See more details on using hashes here.

Supported by

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