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.10.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

tomlhold-0.1.10-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tomlhold-0.1.10.tar.gz
  • Upload date:
  • Size: 4.1 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.10.tar.gz
Algorithm Hash digest
SHA256 436c85a4554af1ba8a4c24c703277d3b2d248d43e4c61ca2b325a9ae0afc71ee
MD5 6117c97deb79a2f9aa1e326721992bd0
BLAKE2b-256 33a525b07cbc077336d74ed5ccc7ebcd620ac558bf1a9724e9b94b8ddec16286

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomlhold-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 4.7 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.10-py3-none-any.whl
Algorithm Hash digest
SHA256 be628dbdd4a75eb897fd0088dfc31dc0610353f619eeb991ea5325fa4843486f
MD5 1fa4de0dd3bc191a7cdad4651171cab9
BLAKE2b-256 be899bfe3592162edd286c6bc6aaf922710ba03df90bf80cd111b71638108c0c

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