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.pyscript.
v0.0.2
- Added default values for the builder classes.
- Added optional parameters.
- Exposed
CSharpBlockBuilderclass inscriptgen.templates.csharppackage. - Bug fixes.
v0.0.1
- Added
IndentType,StringBuilder, andBlockBuilderclasses. - Added
diff_lines,diff_text,interpolate_text,timestamp, andwrite_text_fileutility methods. - Added C# and Markdown templates.
- Added tests for the utility methods, C# templates, and Markdown templates.
- Added
gen_docs.pyscript 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efff45ba600d02e9b367aebacf5d3a2e59fd84dc41c5533a7d87ed6322adbecd
|
|
| MD5 |
d1095ea0b7a5abc1883d7890f098a7b1
|
|
| BLAKE2b-256 |
b1ac3dd391321e5aeddf19d32a47c4fc7ec432b16c31c3fb43d67134edd0850d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4c1832a1065224dfe4d35217bdce7a24525a691c629b8e9392d21a69975f9b8
|
|
| MD5 |
256872995f5b6ef8b6ea14b41823ed44
|
|
| BLAKE2b-256 |
e08df1240f3681eccd105a4dd50ba3e72de9208fbaaa0e1fe1fc529f516dec17
|