This repository has been archived on 2025-09-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Alicja Cięciwa cb8886666c login page
2020-10-27 12:57:58 +01:00

141 lines
3.0 KiB
Python

import datetime as _datetime
from ._utils import parse_rfc3339
from .container import Container
from .items import AoT
from .items import Comment
from .items import InlineTable
from .items import Item as _Item
from .items import Array
from .items import Bool
from .items import Key
from .items import Date
from .items import DateTime
from .items import Float
from .items import Table
from .items import Integer
from .items import Trivia
from .items import Whitespace
from .items import String
from .items import item
from .parser import Parser
from .toml_document import TOMLDocument as _TOMLDocument
from .items import Time
def loads(string): # type: (str) -> _TOMLDocument
"""
Parses a string into a TOMLDocument.
Alias for parse().
"""
return parse(string)
def dumps(data): # type: (_TOMLDocument) -> str
"""
Dumps a TOMLDocument into a string.
"""
if not isinstance(data, _TOMLDocument) and isinstance(data, dict):
data = item(data)
return data.as_string()
def parse(string): # type: (str) -> _TOMLDocument
"""
Parses a string into a TOMLDocument.
"""
return Parser(string).parse()
def document(): # type: () -> _TOMLDocument
"""
Returns a new TOMLDocument instance.
"""
return _TOMLDocument()
# Items
def integer(raw): # type: (str) -> Integer
return item(int(raw))
def float_(raw): # type: (str) -> Float
return item(float(raw))
def boolean(raw): # type: (str) -> Bool
return item(raw == "true")
def string(raw): # type: (str) -> String
return item(raw)
def date(raw): # type: (str) -> Date
value = parse_rfc3339(raw)
if not isinstance(value, _datetime.date):
raise ValueError("date() only accepts date strings.")
return item(value)
def time(raw): # type: (str) -> Time
value = parse_rfc3339(raw)
if not isinstance(value, _datetime.time):
raise ValueError("time() only accepts time strings.")
return item(value)
def datetime(raw): # type: (str) -> DateTime
value = parse_rfc3339(raw)
if not isinstance(value, _datetime.datetime):
raise ValueError("datetime() only accepts datetime strings.")
return item(value)
def array(raw=None): # type: (str) -> Array
if raw is None:
raw = "[]"
return value(raw)
def table(): # type: () -> Table
return Table(Container(), Trivia(), False)
def inline_table(): # type: () -> InlineTable
return InlineTable(Container(), Trivia(), new=True)
def aot(): # type: () -> AoT
return AoT([])
def key(k): # type: (str) -> Key
return Key(k)
def value(raw): # type: (str) -> _Item
return Parser(raw)._parse_value()
def key_value(src): # type: (str) -> Tuple[Key, _Item]
return Parser(src)._parse_key_value()
def ws(src): # type: (str) -> Whitespace
return Whitespace(src, fixed=True)
def nl(): # type: () -> Whitespace
return ws("\n")
def comment(string): # type: (str) -> Comment
return Comment(Trivia(comment_ws=" ", comment="# " + string))