Skip to content

Extends StrLiterals.jl with formatting capabilities

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.md
Notifications You must be signed in to change notification settings

JuliaString/StrFormat.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StrFormat

contributions welcome

Julia Version Unit Tests Coverage
Julia Latest

The following extra format sequences (see StrLiterals for the full specification) are added:

C style formatting specification language

  • \%<ccc><formatcode>(arguments) is interpolated as a call to cfmt("%<ccc><formatcode>",arguments), where <ccc><formatcode> is a C-style format string.

  • and is [flags][width][.precision][length]

  • supported flags are: , -, +, 0, #, and ' (add comma thousand separators)

  • formatcode := d | D | u | U | o | O | x | X | e | E | f | F | g | G | a | A | c | C | s | S | i | p | n

  • length is ignored (it was only needed for C/C++ since argument values don't have types)

Type based formatting

  • \%(value, arguments...) is interpolated as a call to fmt(value, arguments...). This is especially useful when defaults have been set for the type of the first argument.

  • fmt_default!{T}(::Type{T}, syms::Symbol...; kwargs...) sets the defaults for a particular type.

  • fmt_default!(syms::Symbol...; kwargs...) sets the defaults for all types.

  • reset!{T}(::Type{T}) resets the defaults for a particular type.

  • defaultSpec(x) will return the defaults for the type of x, and

  • defaultSpec{T}(::Type{T}) will return the defaults for the given type.

Symbols that can currently be used are: :ljust or :left, :rjust or :right, :center, :commas, :zpad or :zeropad, and :ipre or :prefix. Several keyword arguments can also be used:

Keyword Type Meaning Default
fill Char Fill character ' '
align Char Alignment character '\0'
sign Char Sign character '-'
width Int Field width -1, i.e. ignored
prec Int Floating Precision -1, i.e. ignored
ipre Bool Use 0b, 0o, or 0x prefix? false
zpad Bool Pad with 0s on left false
tsep Bool Use thousands separator? false

Python style formatting specification language

(supports most all options except for '%' currently)

  • spec ::= [[fill]align][sign][#][0][width][,_][.prec][type]
  • fill ::=
  • align ::= '<' | '^' | '>'
  • sign ::= '+' | '-' | ' '
  • width ::=
  • prec ::=
  • type ::= 'b' | 'c' | 'd' | 'e' | 'E' | 'f' | 'F' | 'g' | 'G' | 'n' | 'o' | 'x' | 'X' | 's'

Please refer to http://docs.python.org/2/library/string.html#formatspec for more details

The syntax is slightly different, \{<formatspec>}(expression), instead of {variable:formatspec}, so as to fit better with Julia's string syntax.

About

Extends StrLiterals.jl with formatting capabilities

Topics

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.md

Stars

Watchers

Forks

Languages