Skip to main content

Port of golang's txtar, a trivial tar-like format for unit tests

Project description

txtar

txtar is a Python reimplementation of Go's txtar format, a tool for bundling and managing multiple text files in a single archive.

Features

  • Parse txtar formatted text into structured data.
  • Serialize structured data back into txtar format.
  • Unpack txtar archives into the file system.

Usage

In unit tests

from pathlib import Path
import os

def test_my_function():
    # Define the txtar structure for sysfs-like files
    txtar_content = """
-- sys/class/thermal/thermal_zone0/temp --
55000
-- sys/class/power_supply/BAT0/capacity --
45
-- sys/block/sda/size --
1024000
"""

    with MockFS.from_string(txtar_content):
        assert os.path.exists("/sys/class/thermal/thermal_zone0/temp")
        assert os.path.exists("/sys/class/power_supply/BAT0/capacity")
        assert os.path.exists("/sys/block/sda/size")

        assert Path("/sys/block/sda/size").exists()

Reading a file

from txtar import TxTar

content = "..."  # txtar formatted string
archive = TxTar.parse(content)

Serializing to txtar Format

from txtar import TxTar, File

archive = TxTar(
    comments=["Example txtar archive"],
    files=[File(name="example.txt", lines=["Hello", "World"])]
)
content = archive.serialize()

Unpacking an Archive

from pathlib import Path
from txtar import TxTar

archive = TxTar.parse("...")
archive.unpack_in(Path("/path/to/unpack"))

Development

  • Install dependencies: poetry install
  • Run tests with pytest.

Releasing

poetry publish --build --username __token__ --password $PYPI_PASSWORD

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

txtar-0.1.1.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

txtar-0.1.1-py3-none-any.whl (2.8 kB view details)

Uploaded Python 3

File details

Details for the file txtar-0.1.1.tar.gz.

File metadata

  • Download URL: txtar-0.1.1.tar.gz
  • Upload date:
  • Size: 2.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.11.4 Linux/6.2.0-32-generic

File hashes

Hashes for txtar-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d1c0065e8538cd891518fa3f703fdf8f6e2a1be59032ee8c9602118de0a73726
MD5 8c3f91770864e06ae2af9d2c269797d2
BLAKE2b-256 f25a74eeed94bc8babf0a2b472d6869e8b792e106cef1bbdce0187778d7196d0

See more details on using hashes here.

File details

Details for the file txtar-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: txtar-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 2.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.11.4 Linux/6.2.0-32-generic

File hashes

Hashes for txtar-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ed21701cd8418466cf60387c0eac4d300cfccf0de2aa7309850f0790946c3f6a
MD5 dae74b93fb0f4ff44d6e1ceb2fcc4efc
BLAKE2b-256 b4a203ac1dd484b8fab77fed0bf72fcf52768a987f101b828078a93cd237e872

See more details on using hashes here.

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