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 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.5

  • Fixed multiple new lines in Windows.
  • Added more C# templates.

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.

Source Distribution

scriptgen-0.0.5.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

scriptgen-0.0.5-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file scriptgen-0.0.5.tar.gz.

File metadata

  • Download URL: scriptgen-0.0.5.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.0

File hashes

Hashes for scriptgen-0.0.5.tar.gz
Algorithm Hash digest
SHA256 efff45ba600d02e9b367aebacf5d3a2e59fd84dc41c5533a7d87ed6322adbecd
MD5 d1095ea0b7a5abc1883d7890f098a7b1
BLAKE2b-256 b1ac3dd391321e5aeddf19d32a47c4fc7ec432b16c31c3fb43d67134edd0850d

See more details on using hashes here.

File details

Details for the file scriptgen-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: scriptgen-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.0

File hashes

Hashes for scriptgen-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 d4c1832a1065224dfe4d35217bdce7a24525a691c629b8e9392d21a69975f9b8
MD5 256872995f5b6ef8b6ea14b41823ed44
BLAKE2b-256 e08df1240f3681eccd105a4dd50ba3e72de9208fbaaa0e1fe1fc529f516dec17

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page