Functions
ll.ul4c
supports a number of functions.
today()
today()
returns the current date as a date object.
now()
now()
returns the current date and time as a datetime object.
utcnow()
utcnow()
returns the current date and time as a datetime object in UTC.
isundefined(obj, /)
isundefined(foo)
returns True
if foo
is Undefined
, else
False
is returned:
data is <?if isundefined(data)?>undefined<?else?>defined<?end if?>!
isdefined(obj, /)
isdefined(foo)
returns False
if foo
is Undefined
, else
True
is returned:
data is <?if isdefined(data)?>defined<?else?>undefined<?end if?>!
isnone(obj, /)
isnone(foo)
returns True
if foo
is None
, else False
is
returned:
data is <?if isnone(data)?>None<?else?>something else<?end if?>!
isbool(obj, /)
isbool(foo)
returns True
if foo
is True
or False
, else
False
is returned.
isint(obj, /)
isint(foo)
returns True
if foo
is an integer object, else False
is returned.
isfloat(obj, /)
isfloat(foo)
returns True
if foo
is a float object, else False
is returned.
isstr(obj, /)
isstr(foo)
returns True
if foo
is a string object, else False
is returned.
isdate(obj, /)
isdate(foo)
returns True
if foo
is a date object, else False
is returned.
istimedelta(obj, /)
istimedelta(foo)
returns True
if foo
is a timedelta object, else
False
is returned.
ismonthdelta(obj, /)
ismonthdelta(foo)
returns True
if foo
is a monthdelta object, else
False
is returned.
islist(obj, /)
islist(foo)
returns True
if foo
is a list object, else False
is returned.
isdict(obj, /)
isdict(foo)
returns True
if foo
is a dictionary object, else
False
is returned.
isset(obj, /)
isset(foo)
returns True
if foo
is a set object, else
False
is returned.
isexception(obj, /)
isexception(foo)
returns True
if foo
is an exception object, else
False
is returned.
iscolor(obj, /)
iscolor(foo)
returns True
if foo
is a color object, else False
is returned.
istemplate(obj, /)
istemplate(foo)
returns True
if foo
is a template object, else
False
is returned.
isinstance(obj, type, /)
istemplate(obj, type)
returns True
if obj
is a instance of the
type type
. type
must be a type object. For type objects see
Types. For example
<?print isinstance("gurk", str)?>
prints True
.
repr(obj, /)
repr(foo)
converts foo
to a string representation that is useful for
debugging proposes. The output in most cases looks that the UL4 constant that
could be used to recreate the object.
ascii(obj, /)
ascii(foo)
produces the same output as repr(foo)
except that all
non-ASCII characters in the output for strings will be escaped.
format(value, spec, lang="en")
format
formats a value. Currently format
supports the following types
for value
: date
, int
and float
(float
is only supported
in the Python version).
The second argument spec
is a format specification string (whose format is
specific to the type of value
).
The third (optional) argument lang
is the target language.
So for example
<?print format(@(2000-02-29), "%a, %d. %b. %Y", "de")?>
outputs Di, 29. Feb. 2000
and
<?print format(42, "08b")?>
outputs 00101010
.
UL4 tries to follow Pythons convention for the format string specification,
so for more information see the documentation for Pythons format()
function.
slice(iterable, start=None, stop, step=None, /)
slice
returns a slice from a sequence or iterator. You can either pass the
stop index (i.e. slice(foo, 10)
is an iterator over the first 10 items from
foo
), or a start and stop index (slice(foo, 10, 20)
return the 11th upto
to 20th item from foo
) or a start and stop index and a step size. If given
start and stop must be non-negative and step must be positive.
asjson(obj, /)
asjson(foo)
returns a JSON representation of the object foo
.
(Date objects, color objects and templates are not supported by JSON, but
asjson
will output the appropriate Javascript code for those objects).
fromjson(string, /)
fromjson(foo)
decodes the JSON string foo
and returns the resulting
object. (Date objects, color objects and templates are not supported by
fromjson
).
asul4on(obj, /, indent=None)
asul4on(foo)
returns the UL4ON representation of the object foo
.
fromul4on(dump, /)
fromul4on(foo)
decodes the UL4ON string foo
and returns the resulting
object.
csv(obj, /)
csv(foo)
formats the value foo
for output into a CSV file.
len(obj, /)
len(foo)
returns the length of a string, or the number of items in a list
or dictionary.
round(number, /, digits=0)
Returns number
rounded to digits
precision after the decimal point.
If digits
is non-positive the returned value will always be of type int
.
For example round(42.123, 2)
returns 42.12
and round(485, -2)
returns 500.
floor(number, /, digits=0)
Returns number
rounded down (i.e. towards -∞) to digits
precision after
the decimal point. If digits
is non-positive the returned value will always
be of type int
.
For example floor(42.567, 2)
returns 42.56
and floor(485, -2)
returns 400.
ceil(number, /, digits=0)
Returns number
rounded up (i.e. towards ∞) to digits
precision after
the decimal point. If digits
is non-positive the returned value will always
be of type int
.
For example ceil(42.567, 2)
returns 42.57
and ceil(485, -2)
returns 500.
any(iterable, /)
any(foo)
returns True
if any of the items in the iterable foo
is
true. Otherwise False
is returns. If foo
is empty False
is returned.
all(iterable, /)
all(foo)
returns True
if all of the items in the iterable foo
are
true. Otherwise False
is returns. If foo
is empty True
is returned.
enumerate(iterable, start=0)
Enumerates the items of the argument (which must be iterable, i.e. a string, a list or dictionary) and for each item in the original iterable returns a two item list containing the item position and the item itself. For example the following code:
<?for (i, c) in enumerate("foo")?>
(<?print c?>=<?print i?>)
<?end for?>
prints
(f=0)(o=1)(o=2)
isfirstlast(iterable, /)
Iterates through items of the argument (which must be iterable, i.e. a string, a list or dictionary) and gives information about whether the item is the first and/or last in the iterable. For example the following code:
<?for (first, last, c) in isfirstlast("foo")?>
<?if first?>[<?end if?>
(<?print c?>)
<?if last?>]<?end if?>
<?end for?>
prints
[(f)(o)(o)]
isfirst(iterable, /)
Iterates through items of the argument (which must be iterable, i.e. a string, a list or dictionary) and gives information about whether the item is the first in the iterable. For example the following code:
<?for (first, c) in isfirst("foo")?>
<?if first?>[<?end if?>
(<?print c?>)
<?end for?>
prints
[(f)(o)(o)
islast(iterable, /)
Iterates through items of the argument (which must be iterable, i.e. a string, a list or dictionary) and gives information about whether the item is the last in the iterable. For example the following code:
<?for (last, c) in islast("foo")?>
(<?print c?>)
<?if last?>]<?end if?>
<?end for?>
prints
(f)(o)(o)]
enumfl(iterable, /)
This function is a combination of enumerate
and isfirstlast
. It iterates
through items of the argument (which must be iterable, i.e. a string, a list
or dictionary) and gives information about whether the item is the first
and/or last in the iterable and its position. For example the following code:
<?for (index, first, last, c) in enumfl("foo")?>
<?if first?>[<?end if?>
(<?print c?>=<?print index?>)
<?if last?>]<?end if?>
<?end for?>
prints
[(f=0)(o=1)(o=2)]
first(iterable, /, default=None)
first
returns the first element produced by an iterable object. If the
iterable is empty the default value (which is the second parameter and defaults
to None
) is returned.
last(iterable, /, default=None)
last
returns the last element produced by an iterable object. If the
iterable is empty the default value (which is the second parameter and defaults
to None
) is returned.
xmlescape(obj, /)
xmlescape
takes a string as an argument. It returns a new string where the
characters &
, <
, >
, '
and "
have been replaced with the
appropriate XML entity or character reference. For example:
<?print xmlescape("<'foo' & 'bar'>")?>
prints
<'foo' & ;'bar'>
If the argument is not a string, it will be converted to a string first.
<?printx foo?>
is a shortcut for <?print xmlescape(foo)?>
.
min(*args, default=<nodefault>, key=None)
min
returns the minimum value of its two or more arguments. If it’s called
with one argument, this argument must be iterable and min
returns the
minimum value of this argument. if called with one empty argument the value of
default
will be returned (if given, else an exception will be raised).
If key
is given, it will be used for extracting comparison keys, i.e. those
keys will be compared instead of the items themselves for determining the
minimal item.
If multiple items are minimal, the function returns the first one encountered.
max(*args, default=<nodefault>, key=None)
max
returns the maximum value of its two or more arguments. If it’s called
with one argument, this argument must be iterable and max
returns the
maximum value of this argument. The arguments default
and key
work the
same way as for min()
.
sum(iterable, /, start=0)
sum
returns the sum of the number from the iterable passed in. The second
parameter is the start value (i.e. the value that will be added to the total sum)
and defaults to 0. For example the template <?print sum(range(101))?>
will
output 5050
.
sorted(iterable, /, key=None, reverse=False)
sorted
returns a sorted list with the items from its argument. For example:
<?for c in sorted('abracadabra')?><?print c?><?end for?>
prints
aaaaabbcdrr
Supported arguments are iterable objects, i.e. strings, lists, dictionaries and colors.
If key
is given, it will be used for extracting comparison keys, i.e. those
keys will be compared instead of the items themselves for determining the
final order.
If reverse
is true, the sort order will be reversed.
chr(i, /)
chr(i)
returns a one-character string containing the character with the
code point i
. i
must be an integer. For example <?print chr(0x61)?>
outputs a
.
ord(c, /)
This is the inverse function to chr
The argument for ord
must be a
one-character string. ord
returns the code point of that character as an
integer. For example <?print ord('a')?>
outputs 97
.
hex(number, /)
Return the hexadecimal representation of the integer argument (with a leading
0x
). For example <?print hex(42)?>
outputs 0x2a
.
oct(number, /)
Return the octal representation of the integer argument (with a leading 0o
).
For example <?print oct(42)?>
outputs 0o52
.
bin(number, /)
Return the binary representation of the integer argument (with a leading 0b
).
For example <?print bin(42)?>
outputs 0b101010
.
range(start=None, stop, step=None, /)
range
returns an object that can be iterated and will produce consecutive
integers up to the specified argument. With two arguments the first is the start
value and the second is the stop value. With three arguments the third one is
the step size (which can be negative). For example the following template:
<?for i in range(4, 10, 2)?>(<?print i?>)<?end for?>
prints
(4)(6)(8)
rgb(r, g, b, a=1.0)
rgb
returns a color object. It can be called with
three arguments, the red, green and blue values. The alpha value will be set to 255;
four arguments, the red, green, blue and alpha values.
Arguments are treated as values from 0 to 1 and will be clipped accordingly. For example:
<?print rgb(1, 1, 1)?>
prints #fff
.
md5(string, /)
md5(s)
returns the MD5 hash of the string s
.
scrypt(string, /, salt)
scrypt(str, salt)
returns the scrypt hash of the string str
using the
salt value salt
. The returned string contains 256 hex digits.
For more info on scrypt, see https://en.wikipedia.org/wiki/Scrypt
Note
scrypt
is not implemented in the Javascript version of UL4.
random()
random()
returns a random float value between 0 (included) and 1 (excluded).
randrange(start=None, stop, step=None, /)
randrange(start, stop, step)
returns a random integer value between start
(included) and stop
(excluded). step
specifies the step size (i.e.
when r
is the random value, (r-start) % step
will always be 0
).
step
and start
can be omitted.
randchoice(seq)
randchoice(seq)
returns a random item from the sequence seq
.
urlquote(string)
urlquote
escaped special characters for including the output in URLs. For
example:
<?print urlquote("/\xff")?>
prints
%2F%C3%BF
urlunquote(string)
urlunquote
is the inverse function to urlquote
. So:
<?print urlunquote("%2F%C3%BC")?>
prints
/ü
type(obj, /)
type
returns the type of an object as a type object. For type object see the
following description.
getattr(obj, attrname, default=?, /)
getattr
returns the attribute named attrname
of the object obj
. If
obj
doesn’t have an attribute with that name default
will returned
(when passed, else an UndefinedKey
object will returned).
hasattr(obj, attrname, /)
hasattr
returns whether the object obj
has an attribute named
attrname
.