annotate configmix/variables.py @ 54:aa8345dae995

Generate readable HTML documentation and an API documentation
author Franz Glasner <hg@dom66.de>
date Tue, 27 Feb 2018 23:42:11 +0100
parents b42e9936df2d
children a43749f751e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
54
aa8345dae995 Generate readable HTML documentation and an API documentation
Franz Glasner <hg@dom66.de>
parents: 44
diff changeset
2 r"""
aa8345dae995 Generate readable HTML documentation and an API documentation
Franz Glasner <hg@dom66.de>
parents: 44
diff changeset
3 configmix.variables
aa8345dae995 Generate readable HTML documentation and an API documentation
Franz Glasner <hg@dom66.de>
parents: 44
diff changeset
4 ^^^^^^^^^^^^^^^^^^^
aa8345dae995 Generate readable HTML documentation and an API documentation
Franz Glasner <hg@dom66.de>
parents: 44
diff changeset
5
aa8345dae995 Generate readable HTML documentation and an API documentation
Franz Glasner <hg@dom66.de>
parents: 44
diff changeset
6 Variable expansion: namespaces and filters
15
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
7
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
8 """
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
9
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
10 from __future__ import division, absolute_import, print_function
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
11
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
12 import os
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
13 from functools import wraps
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
14
33
3ee21f868440 Implement a "posixpath" filter to convert file path strings to use forward slashes.
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 30
diff changeset
15 from .compat import PY2, text_to_native_os_str, native_os_str_to_text, u
15
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
16
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
17
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
18 __all__ = []
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
19
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
20
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
21 _MARKER = object()
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
22
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
23
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
24 def _envlookup(name, default=_MARKER):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
25 """Lookup an environment variable"""
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
26 try:
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
27 return native_os_str_to_text(os.environ[name])
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
28 except KeyError:
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
29 if default is _MARKER:
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
30 raise
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
31 else:
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
32 return default
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
33
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
34
30
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
35 def _oslookup(name, default=_MARKER):
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
36 """Lookup an environment variable"""
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
37 if name == "cwd":
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
38 return native_os_str_to_text(os.getcwd())
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
39 raise KeyError("key %r not found in the namespace" % name)
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
40
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
41
43
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
42 def _pylookup(name, default=_MARKER):
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
43 """Lookup a Python specific variable"""
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
44 import platform
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
45 if name == "version":
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
46 return u(platform.python_version())
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
47 elif name == "implementation":
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
48 return u(platform.python_implementation())
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
49 elif name == "version_maj_min":
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
50 t = platform.python_version_tuple()
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
51 return u('.'.join(t[:2]))
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
52 elif name == "version_maj":
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
53 t = platform.python_version_tuple()
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
54 return u(t[0])
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
55 else:
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
56 if default is _MARKER:
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
57 raise KeyError("variable %r not found in namespace PY" % name)
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
58 else:
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
59 return default
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
60
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
61
30
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
62 _varns_registry = {
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
63 "ENV": _envlookup,
43
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
64 "OS": _oslookup,
0e9f1f875ab0 A new PY variable namespace with some variables about the Python implementation and version
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 33
diff changeset
65 "PY": _pylookup
30
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
66 }
15
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
67
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
68
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
69 def lookup_varns(name):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
70 return _varns_registry[_normalized(name)]
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
71
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
72
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
73 _filter_registry = {}
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
74
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
75
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
76 def add_filter(name, fn):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
77 _filter_registry[_normalized(name)] = fn
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
78
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
79
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
80 def lookup_filter(name):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
81 return _filter_registry[_normalized(name)]
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
82
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
83
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
84 def filter(name):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
85 """Decorator for a filter function"""
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
86
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
87 def _decorator(f):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
88
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
89 @wraps(f)
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
90 def _f(appconfig, v):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
91 return f(appconfig, v)
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
92
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
93 add_filter(name, _f)
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
94 return _f
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
95
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
96 return _decorator
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
97
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
98
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
99 def _normalized(name):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
100 return name.replace('-', '_')
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
101
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
102
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
103 #
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
104 # Some pre-defined filter functions
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
105 #
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
106 if PY2:
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
107
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
108 @filter("urlquote")
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
109 def urlquote(config, v):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
110 """Replace all special characters in string using the ``%xx`` escape"""
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
111 from urllib import quote
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
112 return quote(v.encode("utf-8"), safe=b"").decode("utf-8")
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
113
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
114 else:
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
115
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
116 @filter("urlquote")
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
117 def urlquote(config, v):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
118 """Replace all special characters in string using the ``%xx`` escape"""
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
119 from urllib.parse import quote
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
120 return quote(v, safe="")
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
121
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
122
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
123 @filter("saslprep")
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
124 def saslprep(config, v):
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
125 """Do a `SASLprep` according to RFC4013 on `v`.
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
126
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
127 This is a Stringprep Profile for usernames and passwords
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
128
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
129 """
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
130 import passlib.utils
0b1292e920af Variables: namespaces and filters
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff changeset
131 return passlib.utils.saslprep(v)
30
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
132
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
133
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
134 @filter("normpath")
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
135 def normpath_impl(config, v):
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
136 return os.path.normpath(v)
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
137
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
138
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
139 @filter("abspath")
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
140 def abspath_impl(config, v):
d70b58b0dfb9 A new variable namespace "OS" with a "cwd" function with new filters "abspath" and "normpath" for some minimal path manipulation
Franz Glasner <hg@dom66.de>
parents: 15
diff changeset
141 return os.path.abspath(v)
33
3ee21f868440 Implement a "posixpath" filter to convert file path strings to use forward slashes.
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 30
diff changeset
142
3ee21f868440 Implement a "posixpath" filter to convert file path strings to use forward slashes.
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 30
diff changeset
143
3ee21f868440 Implement a "posixpath" filter to convert file path strings to use forward slashes.
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 30
diff changeset
144 @filter("posixpath")
3ee21f868440 Implement a "posixpath" filter to convert file path strings to use forward slashes.
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 30
diff changeset
145 def posixpath_impl(config, v):
3ee21f868440 Implement a "posixpath" filter to convert file path strings to use forward slashes.
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 30
diff changeset
146 return v.replace(u('\\'), u('/'))
44
b42e9936df2d Added "lower" and "upper" filters to make variable lower-case and upper-case
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 43
diff changeset
147
b42e9936df2d Added "lower" and "upper" filters to make variable lower-case and upper-case
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 43
diff changeset
148
b42e9936df2d Added "lower" and "upper" filters to make variable lower-case and upper-case
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 43
diff changeset
149 @filter("lower")
b42e9936df2d Added "lower" and "upper" filters to make variable lower-case and upper-case
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 43
diff changeset
150 def lower_impl(config, v):
b42e9936df2d Added "lower" and "upper" filters to make variable lower-case and upper-case
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 43
diff changeset
151 return v.lower()
b42e9936df2d Added "lower" and "upper" filters to make variable lower-case and upper-case
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 43
diff changeset
152
b42e9936df2d Added "lower" and "upper" filters to make variable lower-case and upper-case
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 43
diff changeset
153
b42e9936df2d Added "lower" and "upper" filters to make variable lower-case and upper-case
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 43
diff changeset
154 @filter("upper")
b42e9936df2d Added "lower" and "upper" filters to make variable lower-case and upper-case
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 43
diff changeset
155 def upper_impl(config, v):
b42e9936df2d Added "lower" and "upper" filters to make variable lower-case and upper-case
Franz Glasner <f.glasner@feldmann-mg.com>
parents: 43
diff changeset
156 return v.upper()