Skip to main content

Python-based command line tool to replace text/code in files

Project description

librep - LIne Block REPlacement

librep is a python-based command-line tools allows to render file placeholders, so it replaces a placeholder of a given syntax with the content of the file that is given in the placeholder.

The tool is independent of the document type, since it is assumed that the chosen syntax does not interfere with the syntax of any (especially markup) language.

The indentation of the placeholder is used for the whole inserted code/text block.

Usage

Insert a placeholder of the following syntax inside a file:

§§§<filename>:<start>:<end>§§§

Afterwards, you can render the placeholder by running

$ librep -i "file_with_placeholder.md"

This will replace the original line in the file file_with_placeholder.md with the content of the file <filename> from line <start> to line <end>. The filename has to either be absolute or relative to the file you specify the placeholder in.

Using a URL instead of a file from the repository

If you want to link a file that is not present on your machine, but you have a URL to that exact file, you can use the following syntax:

§§§url="<url>":<start>:<end>§§§

Note that this requires wget to be installed on your machine

Example

This file file_with_placeholders.md

# Heading

Check out this awesome python code!
```py
§§§./code.py§§§
```

Can be processed with librep by doing

$ librep -i "file_with_placeholder.md"

Which results in

# Heading

Check out this awesome python code!
```py
def calc_sum(a, b):
    """Calculates the sum of a+b
    Parameters
    ----------
    a : float, int
        First number
    b : float, int
        Second number
    Returns
    -------
    sum : float
        Sum of a and b
    """

    return a + b
```

Examples

Below you can find different versions for inserting different parts of the file examples/plotting/plot_rocs.py into your markdown file.

Placeholder Result
§§§examples/file.py§§§ whole file
§§§examples/file.py::§§§ whole file
§§§examples/file.py:10:20§§§ from line 10 to line 20
§§§examples/file.py::10§§§ from top to line 10
§§§examples/file.py:10§§§ from line 10 to bottom
§§§examples/file.py:10:§§§ from line 10 to bottom

Installation

librep can simply be installed using pip install:

pip install librep
# or
pip install https://github.com/umami-hep/librep/archive/master.tar.gz

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

librep-0.0.2.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

librep-0.0.2-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file librep-0.0.2.tar.gz.

File metadata

  • Download URL: librep-0.0.2.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.7.13

File hashes

Hashes for librep-0.0.2.tar.gz
Algorithm Hash digest
SHA256 ed6b5922b7df91a04ff3c9b4c5e14cfedbb8506e4742be4e4a9eae7d84c0596a
MD5 20342b5ab51490a9715881d9c51702bf
BLAKE2b-256 d09b4d04f4611beafc98ba3397b7679aeefb4f79eb94d8b7c0d959bdbe0e300f

See more details on using hashes here.

File details

Details for the file librep-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: librep-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.7.13

File hashes

Hashes for librep-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 94f0badede9753456b0d96068a97f1348f7966e5807214707709da38e8c2ba21
MD5 4720b9b9c55ad9958ad879f105588f33
BLAKE2b-256 15999948f6cc75e4d43f02d47019f055d11b4add8538d56c3d8f73bf6eae249e

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 Pingdom Monitoring Sentry Error logging StatusPage Status page