TOML
TOML.jl은 TOML v1.0 파일을 파싱하고 쓰기 위한 Julia 표준 라이브러리입니다.
Parsing TOML data
julia> using TOML
julia> data = """
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
""";
julia> TOML.parse(data)
Dict{String, Any} with 1 entry:
"database" => Dict{String, Any}("server"=>"192.168.1.1", "ports"=>[8001, 8001…파일을 파싱하려면 TOML.parsefile를 사용하세요. 파일에 구문 오류가 있는 경우 예외가 발생합니다:
julia> using TOML
julia> TOML.parse("""
value = 0.0.0
""")
ERROR: TOML Parser error:
none:1:16 error: failed to parse value
value = 0.0.0
^
[...]다른 버전의 파서 함수(TOML.tryparse 및 TOML.tryparsefile)는 파서 오류가 발생할 때 예외를 던지는 대신 TOML.ParserError를 반환하여 정보를 제공합니다:
julia> using TOML
julia> err = TOML.tryparse("""
value = 0.0.0
""");
julia> err.type
ErrGenericValueError::ErrorType = 14
julia> err.line
1
julia> err.column
16Exporting data to TOML file
TOML.print 함수는 데이터를 TOML 형식으로 출력(또는 직렬화)하는 데 사용됩니다.
julia> using TOML
julia> data = Dict(
"names" => ["Julia", "Julio"],
"age" => [10, 20],
);
julia> TOML.print(data)
names = ["Julia", "Julio"]
age = [10, 20]
julia> fname = tempname();
julia> open(fname, "w") do io
TOML.print(io, data)
end
julia> TOML.parsefile(fname)
Dict{String, Any} with 2 entries:
"names" => ["Julia", "Julio"]
"age" => [10, 20]키는 특정 값에 따라 정렬될 수 있습니다.
julia> using TOML
julia> TOML.print(Dict(
"abc" => 1,
"ab" => 2,
"abcd" => 3,
); sorted=true, by=length)
ab = 2
abc = 1
abcd = 3사용자 정의 구조체의 경우, 구조체를 지원되는 유형으로 변환하는 함수를 전달하십시오.
julia> using TOML
julia> struct MyStruct
a::Int
b::String
end
julia> TOML.print(Dict("foo" => MyStruct(5, "bar"))) do x
x isa MyStruct && return [x.a, x.b]
error("unhandled type $(typeof(x))")
end
foo = [5, "bar"]References
TOML.parse — Functionparse(x::Union{AbstractString, IO})
parse(p::Parser, x::Union{AbstractString, IO})문자열 또는 스트림 x를 파싱하고 결과 테이블(사전)을 반환합니다. 실패 시 ParserError를 발생시킵니다.
또한 TOML.tryparse를 참조하세요.
TOML.parsefile — Functionparsefile(f::AbstractString)
parsefile(p::Parser, f::AbstractString)파일 f를 파싱하고 결과 테이블(사전)을 반환합니다. 실패 시 ParserError를 발생시킵니다.
또한 TOML.tryparsefile를 참조하세요.
TOML.tryparse — Functiontryparse(x::Union{AbstractString, IO})
tryparse(p::Parser, x::Union{AbstractString, IO})문자열 또는 스트림 x를 파싱하고 결과 테이블(사전)을 반환합니다. 실패할 경우 ParserError를 반환합니다.
또한 TOML.parse를 참조하십시오.
TOML.tryparsefile — Functiontryparsefile(f::AbstractString)
tryparsefile(p::Parser, f::AbstractString)파일 f를 파싱하고 결과 테이블(사전)을 반환합니다. 실패 시 ParserError를 반환합니다.
또한 TOML.parsefile를 참조하세요.
TOML.print — Functionprint([to_toml::Function], io::IO [=stdout], data::AbstractDict; sorted=false, by=identity, inline_tables::IdSet{<:AbstractDict})data를 스트림 io에 TOML 구문으로 작성합니다. 키워드 인수 sorted가 true로 설정되면, 키워드 인수 by에 의해 주어진 함수에 따라 테이블을 정렬합니다. 키워드 인수 inline_tables가 주어지면, "inline"으로 출력해야 하는 테이블의 집합이어야 합니다.
다음 데이터 유형이 지원됩니다: AbstractDict, AbstractVector, AbstractString, Integer, AbstractFloat, Bool, Dates.DateTime, Dates.Time, Dates.Date. 정수와 부동 소수점 수는 각각 Float64와 Int64로 변환 가능해야 합니다. 다른 데이터 유형의 경우, 데이터 유형을 받아 지원되는 유형의 값을 반환하는 to_toml 함수를 전달하십시오.
TOML.Parser — TypeParser()TOML Parser의 생성자입니다. 대부분의 경우 Parser를 명시적으로 생성할 필요는 없으며, 대신 TOML.parsefile 또는 TOML.parse를 직접 사용하면 됩니다. 그러나 명시적인 파서를 사용하면 내부 데이터 구조를 재사용하게 되어, 많은 수의 작은 파일을 파싱할 때 성능에 유리할 수 있습니다.
TOML.ParserError — TypeParserErrortryparse 및 tryparsefile에서 구문 분석이 실패할 때 반환되는 유형입니다. 다음과 같은 필드를 포함합니다(기타 포함):
pos, 오류가 발생한 문자열 내 위치table, 지금까지 성공적으로 구문 분석된 결과type, 서로 다른 유형의 오류에 대해 다른 오류 유형