Skip to content

Repository files navigation

StrFormat

contributions welcome

Julia VersionUnit TestsCoverage
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:

KeywordTypeMeaningDefault
fillCharFill character' '
alignCharAlignment character'\0'
signCharSign character'-'
widthIntField width-1, i.e. ignored
precIntFloating Precision-1, i.e. ignored
ipreBoolUse 0b, 0o, or 0x prefix?false
zpadBoolPad with 0s on leftfalse
tsepBoolUse 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

Stars

7 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages