Skip to main content

A collection of script generation helpers and templates.

Project description

scriptgen

Repo Version PyPI PyPI - Python Version PyPI - Status PyPI - License PyPI - Format PyPI - Downloads

A collection of script generation helpers and templates.

Installation

pip install scriptgen

Usage

from scriptgen import StringBuilder


if __name__ == "__main__":
    # Create a StringBuilder instance.
    sb = StringBuilder()

    sb.wt("Hello ")  # write text "Hello "
    sb.wl("World!")  # write line "World!\n"

    print(str(sb))
Hello World!


from scriptgen import StringBuilder

from scriptgen.templates.csharp import \
    csharp_usings, \
    csharp_namespace, \
    csharp_class, \
    csharp_method


if __name__ == "__main__":
    # Create a StringBuilder instance.
    sb = StringBuilder()

    # Write using statements.
    sb.wb(csharp_usings(
        "System"
    ))

    # Add a new line after the using statements.
    sb.nl()

    # Create a namespace StringBuilder instance.
    ns = csharp_namespace("Sample")

    # Create a class StringBuilder instance.
    c = csharp_class(
        class_name="Program",
        access_modifier="public"
    )

    # Create a method StringBuilder instance.
    m = csharp_method(
        method_name="Main",
        access_modifier="public static",
        return_type="int"
    )

    # Write the following lines inside the method.
    m.wl('Console.WriteLine("Hello World!");')
    m.wl("return 0;")

    c.wb(m)  # Write the method inside the class.
    ns.wb(c)  # Write the class inside the namespace.
    sb.wb(ns)  # Write the namespace.

    print(str(sb))
using System;

namespace Sample
{
    public class Program
    {
        public static int Main()
        {
            Console.WriteLine("Hello World!");
            return 0;
        }
    }
}

from scriptgen import StringBuilder

from scriptgen.templates.csharp import \
    csharp_autogen, \
    csharp_namespace, \
    csharp_class, \
    csharp_region


if __name__ == "__main__":
    # Get version from arguments..
    # i.e. python script.py -major 0 -minor 0 -patch 1
    major: int = 0
    minor: int = 0
    patch: int = 1

    # Create a StringBuilder instance.
    sb = StringBuilder()

    # Write timestamp.
    sb.wb(csharp_autogen())

    # Add a new line after the using statements.
    sb.nl()

    # Create a namespace StringBuilder instance.
    ns = csharp_namespace("Sample")

    # Create a class StringBuilder instance.
    c = csharp_class(
        class_name="BuildInfo",
        access_modifier="public static partial"
    )

    # Create a "Constants" region StringBuilder instance.
    r = csharp_region("Constants")

    # Write the following lines inside the "Constants" region.
    r.wl(f"public const int MAJOR = {major};")
    r.nl()
    r.wl(f"public const int MINOR = {minor};")
    r.nl()
    r.wl(f"public const int PATCH = {patch};")

    c.wb(r)  # Write the region inside the class.
    ns.wb(c)  # Write the class inside the namespace.
    sb.wb(ns)  # Write the namespace.

    print(str(sb))
// Auto-generated: 2020-03-15T04:20:47.909851

namespace Sample
{
    public static partial class BuildInfo
    {
        #region Constants

        public const int MAJOR = 0;

        public const int MINOR = 0;

        public const int PATCH = 1;

        #endregion Constants
    }
}

Look at this script to see its practical use case.

Contribution

Suggestions and contributions are always welcome. Make sure to read the Contribution Guidelines file for more information before submitting a pull request.

License

scriptgen is released under the MIT License. See the LICENSE file for details.

Changelog

v0.0.4

  • Added XML templates.

v0.0.3

  • Added index parameter in filter_func.
  • Changed from current working path to file directory path in gen_docs.py script.

v0.0.2

  • Added default values for the builder classes.
  • Added optional parameters.
  • Exposed CSharpBlockBuilder class in scriptgen.templates.csharp package.
  • Bug fixes.

v0.0.1

  • Added IndentType, StringBuilder, and BlockBuilder classes.
  • Added diff_lines, diff_text, interpolate_text, timestamp, and write_text_file utility methods.
  • Added C# and Markdown templates.
  • Added tests for the utility methods, C# templates, and Markdown templates.
  • Added gen_docs.py script and template files.

Project details


Download files

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

Files for scriptgen, version 0.0.4
Filename, size File type Python version Upload date Hashes
Filename, size scriptgen-0.0.4-py3-none-any.whl (10.8 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size scriptgen-0.0.4.tar.gz (8.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page