A collection of script generation helpers and templates.
Project description
scriptgen
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 inscriptgen.templates.csharp
package. - Bug fixes.
v0.0.1
- Added
IndentType
,StringBuilder
, andBlockBuilder
classes. - Added
diff_lines
,diff_text
,interpolate_text
,timestamp
, andwrite_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
Release history Release notifications | RSS feed
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 hashes)
Built Distribution
scriptgen-0.0.5-py3-none-any.whl
(11.0 kB
view hashes)
Close
Hashes for scriptgen-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4c1832a1065224dfe4d35217bdce7a24525a691c629b8e9392d21a69975f9b8 |
|
MD5 | 256872995f5b6ef8b6ea14b41823ed44 |
|
BLAKE2-256 | e08df1240f3681eccd105a4dd50ba3e72de9208fbaaa0e1fe1fc529f516dec17 |