Skip to main content

lihzahrd Available on PyPI

A Terraria 1.4.4.9 world parser in Python.

You can use this package to get programmer-friendly data from a Terraria world!

Installation

Use your favourite Python package manager to install lihzahrd:

  • Venv + Pip

    $ source .venv/bin/activate
    $ pip install lihzahrd
    
  • Poetry

    $ poetry add lihzahrd
    
  • And more!

Usage

You can open a world file and get a World object by calling:

import lihzahrd
world = lihzahrd.World.create_from_file("filename.wld")

It will take a while to process: a small Terraria world contains more than 5 million tiles!

Once you have a World object, you can use all data present in the save file by accessing its attributes.

Warning

Loading maliciously designed Terraria worlds can drain system resources, crash the interpreter, or possibly do more evil things!

Make sure you trust the worlds you are parsing!

Documentation

The documentation is available here.

If you know something that is missing in the documentation, please let me know with an issue!

PyPy

lihzahrd is compatible with PyPy, an alternative implementation on Python!

If you think that parsing a world takes too much time, you can use PyPy to reduce the required time by a factor of ~3!

Benchmarks

Time to parse the same large world:

  • CPython took 11.45 s.
  • Pypy took 3.57 s!

Development

To contribute to lihzahrd, you need to have Poetry installed on your PC.

After you've installed Poetry, clone the git repo with the command:

$ git clone https://github.com/Steffo99/lihzahrd

Then enter the new directory:

$ cd lihzahrd

And finally install all dependencies and the package:

$ poetry install

This will create a new virtualenv for the development of the library; you can activate it by typing:

$ poetry shell

Please note that for compatibility with PyPy, the project needs to target Python 3.6.

Building docs

You can build the docs by entering the docs_source folder and running make html, then committing the whole docs folder.

References used

License

lihzahrd is licensed under the AGPL 3.0. That means you have to publish under the same license the source code of any program you create that uses lihzahrd.

See also

Metadata

Release files for lihzahrd 3.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lihzahrd 3.1.0
File Size Uploaded
lihzahrd-3.1.0.tar.gz 100.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lihzahrd 3.1.0
File Interpreter ABI Platform
lihzahrd-3.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 218.9 kB

Release files / lihzahrd-3.1.0.tar.gz

Download URL lihzahrd-3.1.0.tar.gz
Size 100.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2c45179c7d5d2f14836ded9edde7bc3a2b18c6069ae7cb596eb8a798b7591b57
BLAKE2b-256 checksum
How to use checksums
2391299ff776fbbeec4ca3885b760e72276edaf418adf8ce08b489c3d3945495
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.6.1 CPython/3.11.5 Linux/6.5.7-zen2-1-zen

Release files / lihzahrd-3.1.0-py3-none-any.whl

Download URL lihzahrd-3.1.0-py3-none-any.whl
Size 118.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a8c0c3ac482fb9a8a28eb733a72b584f63d709f1262f78a68761102c735f455d
BLAKE2b-256 checksum
How to use checksums
83601345f90f209dd815e30d0aff7f9a37a6dc4c58a9052a584cc974fd418198
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.6.1 CPython/3.11.5 Linux/6.5.7-zen2-1-zen
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page