A collection of script generation helpers and templates.
Installation
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))
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.