Submodule functions
This file originates from the file beets/library.py of the beets project.
- class tmep.functions.DefaultTemplateFunctions(values: Dict[str, Any] | None = None)[source]
Bases:
objectA container class for the default functions provided to path templates. These functions are contained in an object to provide additional context to the functions – specifically, the Item being evaluated.
- prefix
- get() Dict[str, Callable[[...], str | int]][source]
Returns a dictionary containing the functions defined in this object. The keys are function names (as exposed in templates) and the values are Python functions.
- fn_alpha(text: str) str[source]
synopsis:
%alpha{text}description: This function first ASCIIfies the given text, then all non alphabet characters are replaced with whitespaces.
example:
%alpha{a1b23c}→a b c
- fn_alphanum(text: str) str[source]
synopsis:
%alphanum{text}description: This function first ASCIIfies the given text, then all non alpanumeric characters are replaced with whitespaces.
example:
%alphanum{après-évêque1}→apres eveque1
- static fn_asciify(text: str) str[source]
synopsis:
%asciify{text}description: Translate non-ASCII characters to their ASCII equivalents. For example, “café” becomes “cafe”. Uses the mapping provided by the unidecode module.
example:
%asciify{äÄöÖüÜ}→aeAeoeOeueUe
- static fn_delchars(text: str, chars: str) str[source]
synopsis:
%delchars{text,chars}description: Delete every single character of “chars“ in “text”.
example:
%delchars{Schubert, ue}→Schbrt
- static fn_deldupchars(text: str, chars: str = '-_\\.') str[source]
synopsis:
%deldupchars{text,chars}description: Search for duplicate characters and replace with only one occurrance of this characters.
example:
%deldupchars{a---b___c...d}→a-b_c.d;%deldupchars{a---b___c, -}→a-b___c
- static fn_first(text: str, count: int = 1, skip: int = 0, sep: str = '; ', join_str: str = '; ') str[source]
synopsis:
%first{text}or%first{text,count,skip}or%first{text,count,skip,sep,join}description: Returns the first item, separated by
;. You can use%first{text,count,skip}, where count is the number of items (default 1) and skip is number to skip (default 0). You can also use%first{text,count,skip,sep,join}wheresepis the separator, like;or/and join is the text to concatenate the items.example:
%first{Alice / Bob / Eve,2,0, / , & }→Alice & Bob
- Parameters:
text – the string
count – The number of items included
skip – The number of items skipped
sep – the separator. Usually is ‘; ‘ (default) or ‘/ ‘
join_str – the string which will join the items, default ‘; ‘.
- static fn_if(condition: str, trueval: str, falseval: str = '') str[source]
If
conditionis nonempty and nonzero, emittrueval; otherwise, emitfalseval(if provided).synopsis:
%if{condition,trueval}or%if{condition,trueval,falseval}description: If condition is nonempty (or nonzero, if it’s a number), then returns the second argument. Otherwise, returns the third argument if specified (or nothing if
falsevalis left off).example:
x%if{false,foo}→x
- fn_ifdef(field: str, trueval: str = '', falseval: str = '') str[source]
If field exists return trueval or the field (default) otherwise, emit return falseval (if provided).
synopsis:
%ifdef{field},%ifdef{field,trueval}or%ifdef{field,trueval,falseval}description: If field exists, then return
truevalor field (default). Otherwise, returnsfalseval. The field should be entered without$.example:
%ifdef{compilation,Compilation}
- Parameters:
field – The name of the field
trueval – The string if the condition is true
falseval – The string if the condition is false
- Returns:
The string, based on condition
- fn_ifdefempty(field: str, trueval: str = '', falseval: str = '')[source]
If field exists and is emtpy return trueval otherwise, emit return falseval (if provided).
synopsis:
%ifdefempty{field,text}or%ifdefempty{field,text,falsetext}description: If field exists and is empty, then return
truetext. Otherwise, returnsfalsetext. The field should be entered without$.example:
%ifdefempty{compilation,Album,Compilation}
- Parameters:
field – The name of the field
trueval – The string if the condition is true
falseval – The string if the condition is false
- Returns:
The string, based on condition
- fn_ifdefnotempty(field: str, trueval: str = '', falseval: str = '') str[source]
If field is not emtpy return trueval or the field (default) otherwise, emit return falseval (if provided).
synopsis:
%ifdefnotempty{field,text}or%ifdefnotempty{field,text,falsetext}description: If field is not empty, then return
truetext. Otherwise, returnsfalsetext. The field should be entered without$.example:
%ifdefnotempty{compilation,Compilation,Album}
- Parameters:
field – The name of the field
trueval – The string if the condition is true
falseval – The string if the condition is false
- Returns:
The string, based on condition
- static fn_initial(text: str) str[source]
synopsis:
%initial{text}- description: Get the first character of a text in lowercase. The text is converted to ASCII. All non word characters are erased.
Only letters and numbers are preserved. If the first character is a number, then the result is ‘0’.
example:
%initial{Schubert}→s
- Parameters:
text (string) – Input text to build initial from.
- Returns:
A single character
- static fn_left(text: str, n: str) str[source]
Get the leftmost characters of a string.
synopsis:
%left{text,n}description: Return the first “n” characters of “text”.
example:
%left{Schubert, 3}→Sch
- static fn_lower(text: str) str[source]
Convert a string to lower case
synopsis:
%lower{text}description: Convert “text” to lowercase.
example:
%lower{SCHUBERT}→schubert
- static fn_nowhitespace(text: str, replace: str = '-') str[source]
synopsis:
%nowhitespace{text,replace}description: Replace all whitespace characters with
replace. By default: a dash (-)example:
%nowhitespace{a b}→a-b;%nowhitespace{a b, _}→a_b
- static fn_num(number: int, count: int = 2) str[source]
Pad decimal number with leading zeros
synopsis:
%num{number,count}description: Pad decimal number with leading zeros.
example:
%num{7,3}→007
- static fn_replchars(text: str, replace: str, chars: str) str[source]
synopsis:
%replchars{text,chars,replace}description: Replace the characters “chars” in “text” with “replace”.
example:
%replchars{Schubert,-,ue}→Sch-b-rt
- static fn_right(text: str, n: str) str[source]
Get the rightmost characters of a string.
synopsis:
%right{text,n}description: Return the last “n” characters of “text”.
example:
%right{Schubert,3}→ert
- static fn_sanitize(text: str) str[source]
synopsis:
%sanitize{text}description: Delete characters that are not allowed in most file systems.
example:
%sanitize{x:*?<>|/~&x}→xx
- static fn_shorten(text: str, max_size: int = 32) str[source]
Shorten the given text to
max_sizesynopsis:
%shorten{text}or%shorten{text,max_size}description: Shorten “text” on word boundarys.
example:
%shorten{Lorem ipsum dolor sit, 10}→Lorem
- static fn_time(text: str, fmt: str, cur_fmt: str) str[source]
Format a time value using strftime.
synopsis:
%time{date_time,format,curformat}description: Return the date and time in any format accepted by
strftime. For example, to get the year, use%time{$added,%Y}.example:
%time{30 Nov 2024,%Y,%d %b %Y}→2024