Add a set of useful filters for pipen templates.
These filters can be used for both liquid and jinja2 templating in pipen.
pip install -U pipen-filtersThe plugin is registered via entrypoints. It's by default enabled. To disable it:
plugins=[..., "no:filters"], or uninstall this plugin.
from pipen import Proc
class MyProc(Proc):
input = "infile:file"
output = "outfile:file:{{in.infile | stem}}.txt"
...-
Parse the symbolic links
realpath:os.path.realpathreadlink:os.readlinkabspath:os.path.abspath
-
Find common prefix of given paths
-
commonprefix:>>> commonprefix("/a/b/abc.txt", "/a/b/abc.png") >>> # "abc." >>> commonprefix("/a/b/abc.txt", "/a/b/abc.png", basename_only=False) >>> # "/a/b/abc."
-
-
Get parts of the path
dirname:path.dirnamebasename:path.basenameext,suffix: get the extension (/a/b/c.txt -> .txt)ext0,suffix0: get the extension without dot (/a/b/c.txt -> txt)prefix: get the prefix of a path (/a/b/c.d.txt -> /a/b/c.d)prefix0: get the prefix of a path without dot in basename (/a/b/c.d.txt -> /a/b/c)filename,fn,stem: get the stem of a path (/a/b.c.txt -> b.c)filename0,fn0,stem0: get the stem of a path without dot (/a/b.c.txt -> b)joinpaths,joinpath: join path parts (os.path.join)as_path: convert a string into apathlib.Pathobject
-
Path stat
isdir:os.path.isdirisfile:os.path.isfileislink:os.path.islinkexists:os.path.existsgetsize:os.path.getsize, return -1 if the path doesn't existgetmtime:os.path.getmtime, return -1 if the path doesn't existgetctime:os.path.getctime, return -1 if the path doesn't existgetatime:os.path.getatime, return -1 if the path doesn't existisempty: check if a file is empty
-
Quote data
quote: put double quotes around data (1 -> "1")squote: put single quotes around data (1 -> '1')
-
Configurations
json,json_dumps:json.dumpsjson_load: Load json from a filejson_loads:json.loadstoml:toml.dumpstoml_dump: Load toml from a filetoml_dumps: Alias oftomltoml_loads:toml.loadsconfig: Load configuration from an object, a string or a file
-
Globs
glob: Likeglob.glob, but allows passing multiple parts of a pathglob0: Likeglob, but only returns the first matched path
-
Read file contents
read: Read file content. You can also pass arguments toopenreadlines: Read file content as a list of lines. Additional arguments will be passed toopen
-
Other
regex_replace: Replace a string using regexslugify: Slugify a string
