TOML
TOML.jl, bir Julia standart kütüphanesidir ve TOML v1.0 dosyalarını ayrıştırmak ve yazmak için kullanılır.
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…
Bir dosyayı ayrıştırmak için TOML.parsefile
kullanın. Dosyada bir sözdizimi hatası varsa, bir istisna fırlatılır:
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
^
[...]
Diğer parse fonksiyonlarının (TOML.tryparse
ve TOML.tryparsefile
) versiyonları, parser hatası durumunda istisna fırlatmak yerine TOML.ParserError
ile bilgi döndürmektedir:
julia> using TOML
julia> err = TOML.tryparse("""
value = 0.0.0
""");
julia> err.type
ErrGenericValueError::ErrorType = 14
julia> err.line
1
julia> err.column
16
Exporting data to TOML file
TOML.print
fonksiyonu verileri TOML formatında yazdırmak (veya serileştirmek) için kullanılır.
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]
Anahtarlar, bazı değerlere göre sıralanabilir.
julia> using TOML
julia> TOML.print(Dict(
"abc" => 1,
"ab" => 2,
"abcd" => 3,
); sorted=true, by=length)
ab = 2
abc = 1
abcd = 3
Özel yapılar için, yapıyı desteklenen bir türe dönüştüren bir fonksiyon geçirin.
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})
Dizeyi x
dize veya akışını ayrıştırın ve sonuçta oluşan tabloyu (sözlük) döndürün. Başarısızlık durumunda bir ParserError
fırlatın.
Ayrıca bkz. TOML.tryparse
.
TOML.parsefile
— Functionparsefile(f::AbstractString)
parsefile(p::Parser, f::AbstractString)
Dosya f
'yi ayrıştır ve sonuçta oluşan tabloyu (sözlük) döndür. Başarısızlık durumunda bir ParserError
fırlat.
Ayrıca bkz. TOML.tryparsefile
.
TOML.tryparse
— Functiontryparse(x::Union{AbstractString, IO})
tryparse(p::Parser, x::Union{AbstractString, IO})
Dizeyi veya akışı x
ayrıştırın ve sonuçta oluşan tabloyu (sözlük) döndürün. Başarısızlık durumunda bir ParserError
döndürün.
Ayrıca bkz. TOML.parse
.
TOML.tryparsefile
— Functiontryparsefile(f::AbstractString)
tryparsefile(p::Parser, f::AbstractString)
Dosya f
'yi ayrıştır ve sonuçta oluşan tabloyu (sözlük) döndür. Başarısızlık durumunda bir ParserError
döndür.
Ayrıca bkz. TOML.parsefile
.
TOML.print
— Functionprint([to_toml::Function], io::IO [=stdout], data::AbstractDict; sorted=false, by=identity, inline_tables::IdSet{<:AbstractDict})
data
'yı io
akışına TOML sözdizimi olarak yazın. Eğer sorted
anahtar argümanı true
olarak ayarlandıysa, tablolar by
anahtar argümanı ile verilen fonksiyona göre sıralanmalıdır. Eğer inline_tables
anahtar argümanı verilmişse, "inline" olarak yazdırılması gereken tabloların bir kümesi olmalıdır.
Aşağıdaki veri türleri desteklenmektedir: AbstractDict
, AbstractVector
, AbstractString
, Integer
, AbstractFloat
, Bool
, Dates.DateTime
, Dates.Time
, Dates.Date
. Tam sayılar ve ondalık sayılar sırasıyla Float64
ve Int64
'e dönüştürülebilir olmalıdır. Diğer veri türleri için, veri türlerini alıp desteklenen bir türde bir değer döndüren to_toml
fonksiyonunu geçirin.
TOML.Parser
— TypeParser()
TOML Parser
için yapıcı. Çoğu durumda, bir Parser
'ı açıkça oluşturmak gerekmez, bunun yerine doğrudan TOML.parsefile
veya TOML.parse
kullanılır. Ancak, açık bir ayrıştırıcı kullanmak, daha büyük sayıda küçük dosya ayrıştırıldığında performans açısından faydalı olabilecek bazı dahili veri yapılarını yeniden kullanacaktır.
TOML.ParserError
— TypeParserError
tryparse
ve tryparsefile
işleme başarısız olduğunda döndürülen tür. Aşağıdakiler de dahil olmak üzere bazı alanları içerir:
pos
, hatanın meydana geldiği sıradaki konumtable
, şu ana kadar başarıyla ayrıştırılan sonuçtype
, farklı hata türleri için farklı bir hata türü