proclip

A powerful templating tool for your projects.


Licenses
BSD-1-Clause/Zed
Install
pip install proclip==0.2.0

Documentation

Proclip

PyPi version PyPI - Status Downloads GitHub last commit License

A powerful templating tool for your projects.

CPython versions 3.7 through 3.11-dev and PyPy versions 3.7 through 3.9 are officially supported.

Windows, MacOS, and Linux are all supported.

Installation

To install the latest stable version of Proclip, use the following command:

pip install proclip

You can also install the latest development version using the following command:

pip install git+https://github.com/parafoxia/proclip

You may need to prefix these commands with a call to the Python interpreter depending on your OS and Python configuration.

Creating clips

You can create clips using the following command:

clip new <name> <file> [-o output-dir]

Use clip new --help for more information on what each option does.

To create a clip, first create a file, and code it how you want it to look. You can also include variables that Proclip can replace when you paste the clip. Variables use a slightly modified Jinja syntax, which additionally allows for default values to be provided.

Take the following example:

class {{ cls = MyClass }}:
    def __init__(self, n: int) -> None:
        self.{{ attr }} = n

    @property
    def number(self) -> int:
        return self.{{ attr }}

if __name__ == "__main__":
    c = {{ cls }}(5)
    print(c.number)

In this example, you have two distinct variables: cls, and attr. cls has a default value (MyClass), so when you paste the clip, that value will be used if you don't supply one. Note that only the first instance of cls needs a default value. Keep in mind that only one default value can be assigned per variable; others will be overwritten.

Pasting clips

You can paste clips using the following command:

clip paste <name> [-i input-dir] [-o output] [-v variables]

Use clip paste --help for more information on what each option does.

You can use the -v flag to insert values for variables when pasting. Variables that were not assigned default values when the clip was created need a value supplied to them. Default values can be overridden if you choose to do so.

Variables are passed as strings, where a value needs to be assigned to a key (for example, key=value). You can use commas to separate multiple variable assignments (key1=value1,key2=value2). In the above example, passing -v "attr=n" produces the following file:

class MyClass:
    def __init__(self, n: int) -> None:
        self.n = n

    @property
    def number(self) -> int:
        return self.n

if __name__ == "__main__":
    c = MyClass(5)
    print(c.number)

Contributing

Contributions are very much welcome! To get started:

License

The Proclip module for Python is licensed under the BSD 3-Clause License.