Skip to content

JuliaAPlavin/PyFormattedStrings.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Julia implementation of Python-like formatted string literals or f-strings. See PEP 498 for the original motivation and background for f-strings in Python.

PyFormattedStrings.jl mirrors the corresponding Python behavior as closely as possible without reimplementing formatting from scratch. Actual formatting is performed by the Printf stdlib, this package just converts the formatted string syntax. There is no additional runtime overhead compared to a manually-written corresponding @printf call.

Supports all f-string features that are directly available in Printf. Compared to Python, these are not implemented: (1) postfix modifiers (!a, !s, !r), (2) = and ^ alignment options, (3) = sign to show expression.

Examples

julia> using PyFormattedStrings
julia> x = 5.123

julia> f"{x}"
"5.123"

julia> f"value is now {x:.1f}"
"value is now 5.1"

julia> f"fraction of {(x-5)*100:d}%"
"fraction of 12%"

With the ff"..." syntax, the formatting string can be created ahead of time and applied to values later:

julia> fmtfunc = ff"value a={a:.2f} and first b={first(b):d}"

julia> fmtfunc((a=1, b=[2, 3]))
"value a=1.00 and first b=2"

julia> fmtfunc = ff"{re:.2f} {im:d}"

julia> fmtfunc(1.234 + 5.678im)
"1.23 6"

Releases

No releases published

Packages

No packages published

Languages