8000 Support setting a scheme · Issue #272 · uiri/toml · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Support setting a scheme #272
Open
Open
@muuvmuuv

Description

@muuvmuuv

Would be great if I could set a scheme for load(s) so if someone passes the one type it will throw an type error.

I expect something like:

import toml

from pathlib import Path


toml_data = """
[options]
enabled="true"
input="tests/struct2"
digit=12.5
"""

toml_scheme = {
    "options": {
        "enabled": {
            "type": bool,
            "default": True
        },
        "input": {
            "type": Path,
            "default": Path.cwd()
        },
        "digit": {
            "type": float,
            "default": 0.2,
            "validator": (lambda n: type(n) is float),
            "parser": (lambda n: n % 2)
        }
    }
}


def get_config(config_path):
    try:
      parsed_toml = toml.loads(toml_data, scheme=toml_scheme)
    except toml.TomlSchemeError as e:
      raise toml.TomlSchemeException(e)
    print(parsed_toml)
    return parsed_toml

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: featureA self-contained enhancement or new feature

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0