Skip to main content

A holder for TOML data.

Project description

Overview

A dict-like holder for TOML data.

Installation

To install tomlhold, you can use pip. Open your terminal and run:

pip install tomlhold

Example

Here’s a simple example.

import tomlhold

# Example 1: Create Holder from a TOML string
toml_data = """
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
"""
h = tomlhold.Holder(toml_data)

# Access a single value
print(h["database", "server"])

# Example 2: Access nested values using multiple indices
print(h["database", "ports", 2])

# Example 3: Update a value
h["database", "connection_max"] = 10000
print(h["database", "connection_max"])

# Example 4: Add a new section and key-value pair
h["new_section"] = dict(new_key = "New Value")
print(h["new_section", "new_key"])

# Example 5: TOML compatibility enforcement (invalid TOML raises an error)
try:
    h["new_section", "invalid_key"] = {"invalid": object()}
except Exception as e:
    print(f"Error: {e}")  # Ensures only TOML-compatible data is allowed

# Example 6: Create Holder from a dictionary and convert it to TOML format
data_dict = {
    "title": "Example",
    "owner": {
        "name": "John Doe",
        "dob": "1979-05-27T07:32:00Z"
    }
}
h = tomlhold.Holder.fromdict(data_dict)
print(h)

# Example 7: Iterate through Holder object like a regular dictionary
for section, values in h.items():
    print(section, values)

# Output:
    # 192.168.1.1
    # 8002
    # 10000
    # New Value
    # Error: type <class 'object'> is not allowed
    # title = "Example"
    #
    # [owner]
    # name = "John Doe"
    # dob = "1979-05-27T07:32:00Z"
    #
    # title Example
    # owner {'name': 'John Doe', 'dob': '1979-05-27T07:32:00Z'}

License

This project is licensed under the MIT License.

Credits

Thank you for using tomlhold!

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

tomlhold-0.1.11.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

tomlhold-0.1.11-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file tomlhold-0.1.11.tar.gz.

File metadata

  • Download URL: tomlhold-0.1.11.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for tomlhold-0.1.11.tar.gz
Algorithm Hash digest
SHA256 441b88b9e830f1804644d1accd2e918eba26b0e9499869289b83a7f03f7eca9a
MD5 52d2707e419c54df6d64c0df6b4ac5dd
BLAKE2b-256 f7248cb1ec369fb76bad0d48549866d196889a042481ca26c57935a7cf9bcee9

See more details on using hashes here.

File details

Details for the file tomlhold-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: tomlhold-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for tomlhold-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 dd8a10c3393ff4e57facbb3c702ff92bf1267a4f054421dad332d92e5aa0d624
MD5 e9a2c6c91b1b143d138d5afe3c350030
BLAKE2b-256 795c0d8c1f52f5850f7a62ea13a5c252f7fe846bbe7baaf7e6d32bba2111d4ba

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