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.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.3.post1.tar.gz
(7.5 kB
view hashes)
Built Distribution
Close
Hashes for scriptgen-0.0.3.post1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82e81949048258216736ddf3b62624707095485305f84d7d65f8f6f50d6ec73f |
|
MD5 | f9ade996f7bde3dbea9461a41d126727 |
|
BLAKE2b-256 | e938508daaf672184cf39a656fa110f97d3dda50f35d2e17fcaf7c90b222c881 |