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 details)
Built Distribution
scriptgen-0.0.5-py3-none-any.whl
(11.0 kB
view details)
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 |