Add a set of useful filters for pipen templates
Project description
pipen-filters
Add a set of useful filters for pipen templates.
These filters can be used for both liquid and jinja2 templating in pipen.
Installation
pip install -U pipen-filters
Enabling/Disabling the plugin
The plugin is registered via entrypoints. It's by default enabled. To disable it:
plugins=[..., "no:filters"]
, or uninstall this plugin.
Usage
from pipen import Proc
class MyProc(Proc):
input = "infile:file"
output = "outfile:file:{{in.infile | stem}}.txt"
...
Filters
-
Parse the symbolic links
realpath
:os.path.realpath
readlink
:os.readlink
-
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.dirname
basename
:path.basename
ext
: get the extension (/a/b/c.txt -> .txt
)ext0
: 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
: join path parts (os.path.join
)as_path
: convert a string into apathlib.Path
object
-
Path stat
isdir
:os.path.isdir
isfile
:os.path.isfile
islink
:os.path.islink
exists
:os.path.exists
getsize
: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_dump
: Load json froma filejson_dumps
: Alias ofjson
json_loads
:json.loads
toml
:toml.dumps
toml_dump
: Load toml from a filetoml_dumps
: Alias oftoml
toml_loads
:toml.loads
config
: 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 toopen
readlines
: Read file content as a list of lines. Additional arguments will be passed toopen
-
Other
regex_replace
: Replace a string using regex
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pipen_filters-0.13.0.tar.gz
(5.5 kB
view details)
Built Distribution
File details
Details for the file pipen_filters-0.13.0.tar.gz
.
File metadata
- Download URL: pipen_filters-0.13.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a401263110816ef17a06f95c0a592bff36ff3e5ef0b1054228bd25f032b49c35 |
|
MD5 | f5e442dfd992bce35f932083f27eb70d |
|
BLAKE2b-256 | 7e764ab86b4ce58311e4c3e36a2d622b48754d8cd9d036f731cb10b551e5a53d |
File details
Details for the file pipen_filters-0.13.0-py3-none-any.whl
.
File metadata
- Download URL: pipen_filters-0.13.0-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f67506cbba2cc6f2d719e421622c43b9aea02bec7d709290748ef6c4df9aa535 |
|
MD5 | 402e610ea4ad9cdaa0fcb27f6b27d636 |
|
BLAKE2b-256 | 5a789aae36f504d59af7cd0a7479e4a5a5e38671498af6b8af0e0ec34e4b54e8 |