Skip to main content

ghost_writer

CI codecov DOI PyPI PyPI - Downloads

A simple package that allows you to build a class to parameterize scripts via code generation.

A cmdline utility is add to convert python scripts into generators which can later be modified.

Installation

pip install pyghost-writer

Usage

Say you have a simple script that you want to parameterize for code generation.

import os


for i in range(10):
    for j in range(20):
        pass

In the terminal run the scriptify_py command on the script

scriptify_py script.py

Now you will have a new file called generated_script.py which contains a class that can generate that script which can be run:

from ghost_writer import ScriptGenerator


class NewGenerator(ScriptGenerator):
    def __init__(self, file_name: str) -> None:
        super().__init__(file_name)

    def _build_script(self) -> None:
        self._add_line('import os')
        self._end_line()
        self._end_line()
        self._add_line('for i in range(10):')
        self._add_line('for j in range(20):', indent_level=1)
        self._add_line('pass', indent_level=2)

We can now modify the class to be parameterized:

from ghost_writer import ScriptGenerator


class MyGenerator(ScriptGenerator):
    def __init__(self, file_name: str, parameter: int) -> None:

        self._parameter = parameter

		super().__init__(file_name)

    def _build_script(self) -> None:
        self._add_line('import os')
        self._end_line()
        self._end_line()
        self._add_line('for i in range(10):')
        self._add_line('for j in range(20):', indent_level=1)
        self._add_line(f'print({parameter})', indent_level=2)

Now in python, we can import our class and run it:

generator = MyGenerator("new_script.py", 4)

generator.write()

And now we have a generated script called new_script.py

import os


for i in range(10):
    for j in range(20):
        print(4)
  • Free software: GNU General Public License v3

Metadata

Release files for pyghost-writer 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyghost-writer 0.1.2
File Size Uploaded
pyghost_writer-0.1.2.tar.gz 25.4 kB Details

Release files / pyghost_writer-0.1.2.tar.gz

Download URL pyghost_writer-0.1.2.tar.gz
Size 25.4 kB
Tags Source
SHA-256 checksum
How to use checksums
8266c31f28a52e4f285ac64fe6ecb130b06be468276e065d4591655cbb188fbd
BLAKE2b-256 checksum
How to use checksums
8390c4119f30d21b8a7fcfba4cd4cd1946131076e6e0c45b8b2c1ed88acf366d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release history Release notifications | RSS feed

This release

0.1.2 This release

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page