Skip to main content

Add a set of useful filters for pipen templates.

These filters can be used for both liquid and jinja2 templating in pipen.

API documentation

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
    • abspath: 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.dirname
    • basename: path.basename
    • ext, 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 a pathlib.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 exist
    • getmtime: os.path.getmtime, return -1 if the path doesn't exist
    • getctime: os.path.getctime, return -1 if the path doesn't exist
    • getatime: os.path.getatime, return -1 if the path doesn't exist
    • isempty: 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.dumps
    • json_load: Load json from a file
    • json_loads: json.loads
    • toml: toml.dumps
    • toml_dump: Load toml from a file
    • toml_dumps: Alias of toml
    • toml_loads: toml.loads
    • config: Load configuration from an object, a string or a file
  • Globs

    • glob: Like glob.glob, but allows passing multiple parts of a path
    • glob0: Like glob, but only returns the first matched path
  • Read file contents

    • read: Read file content. You can also pass arguments to open
    • readlines: Read file content as a list of lines. Additional arguments will be passed to open
  • Other

    • regex_replace: Replace a string using regex
    • slugify: Slugify a string

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-1.1.3.tar.gz (165.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pipen_filters-1.1.3-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file pipen_filters-1.1.3.tar.gz.

File metadata

  • Download URL: pipen_filters-1.1.3.tar.gz
  • Upload date:
  • Size: 165.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pipen_filters-1.1.3.tar.gz
Algorithm Hash digest
SHA256 530ceab2b2e4fda914fdd23705f0721067cdc5f6bda4c65cc29241743e285d28
MD5 f821c5d3226c75595d406f8c199b226d
BLAKE2b-256 e30847eb4b1e00707111dea1b64a8de03cd8d36f03d4428bf449ba6392e0ba10

See more details on using hashes here.

File details

Details for the file pipen_filters-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: pipen_filters-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pipen_filters-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a1414354154381af023f7bc451a7fb405ae1aa3c466fdf9616c65e65134e8c32
MD5 746521949a620c95223948840b8766cb
BLAKE2b-256 7ee4d6f2a721cb7d9c6c2651c2d021ca580b5523ba8bb18af31dd66dd112f480

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page