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", "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-1.0.1.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

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

tomlhold-1.0.1-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tomlhold-1.0.1.tar.gz
Algorithm Hash digest
SHA256 64bee482fa8e65b989b65d3983f49f8c5f4d4313141e53c0356eb50f3843c482
MD5 945d855f411d3223cb938b8cc5c735a5
BLAKE2b-256 c720b64396675144e7a24df628d5247f6fdac7f0927867e7ff1e4ce2a08533e7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tomlhold-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bd3e26b32143666db774791f932d527e440ea6db85ea457185dbeda6155537e9
MD5 08abf25015b25025b8a2a76e857c4482
BLAKE2b-256 9f2694ad0acb46784f70169c09d83af96739b0316ff2c98d97f1c60e530f083f

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