Template Engine V2 - Create software component skeletons from templates and generate new components with AI-assisted tools.
Project description
Template Engine V2
Hello there! Thank you for using the Template Engine. Please review our commercial license for legal use and contact us at support@entinco.com for inquiries and clarification.
Overview
The Template Engine is a powerful tool designed to create software component skeletons from templates. This tool streamlines the process of creating complex software components by leveraging templates and advanced AI-based descriptions for increased precision.
Core Functions
- Template-based Skeleton Generation: Copies a component template to a specified output directory and performs search & replace operations on targeted keywords.
- Subcomponent Generation: Parses formal and informal descriptions to generate new components and subcomponents that match the given descriptions.
- AI-Powered Planning: Uses OpenAI for planning and generating detailed subcomponents based on textual specifications.
- Comprehensive CLI Interface: Provides flexible options for quiet, verbose, and replacement modes.
- Specification Handling: Reads and interprets JSON specification files to guide the generation process.
- Ignore Mechanism: Supports
.gitignore-style lists to skip unnecessary files and directories during generation.
Installation
Install this package from PyPI using the Python package installer (Pip):
pip install templateengine
Command-line Usage
To run the Template Engine, use the following command in your terminal:
templateengine [options]
General Arguments
-
-h, --help: Displays available command-line arguments.- Type: Utility
- Required: No
-
--version: Displays the current version of the Template Engine.- Type: Utility
- Required: No
Primary Parameters
-
-t, --template: Specifies the folder or directory path where the component template is located.- Type: Required
- Shorthand:
-t
-
-o, --output: Specifies the folder or directory path where the resulting component will be saved.- Type: Required
- Shorthand:
-o
Optional Parameters
-
-g, --ignore: Specifies the file name or relative path in the template directory for a list of ignored keywords. By default, it looks for a.gitignorefile.- Type: Optional
- Default:
.gitignore - Shorthand:
-g
-
-n, --name: Specifies a search and replacement keyword pair for renaming components. Can be repeated for multiple replacements.- Type: Optional but recommended
- Shorthand:
-n - Usage:
--name=<old_name>:<new_name> - Example:
--name=entity:product
-
-v, --verbose: Enables verbose output for detailed information during execution.- Type: Optional
- Shorthand:
-v
-
-q, --quiet: Mutes all output during execution. Overrides--verboseif both are present.- Type: Optional
- Shorthand:
-q
-
-s, --spec: Specifies the file path to the component specifications file (in JSON format).- Type: Optional
- Shorthand:
-s - Description: This file guides the generation process and helps describe subcomponents in detail.
-
-m, --model: Specifies the GPT model to use for AI-assisted generation.- Type: Optional
- Default:
gpt-4o - Shorthand:
-m
OpenAI API Key
The Template Engine requires an OpenAI API key to use AI-assisted planning and component generation. The API key can be provided in two ways:
-
Environment Variable: Set the
OPENAI_API_KEYin your system environment.export OPENAI_API_KEY=your_openai_api_key_here
- Benefits: Automatically read during execution for convenience.
-
Manual Input: If the environment variable is not set, the Template Engine will prompt you to input the API key manually.
API Key Validation:
- The API key must be at least 20 characters long.
- If the key is invalid or missing, the program will terminate with an error code
4.Code 4 - Invalid or missing API key.
- Security Tip: Do not share or hard-code your API key in scripts to avoid unauthorized access.
Example Usage
Here's an example of running the Template Engine from the command line:
#!/usr/bin/env pwsh
templateengine \
--template=../../templates/backend/node/service-cruddata-pipservices \
--output=../../output/service-products-pipservices \
--name=cruddata:products \
--name=entity:product \
--name=entities:products \
--spec=specifications/description.json \
--verbose
InputParams Structure
The InputParams class stores all the key parameters passed to the Template Engine. Here is a breakdown of its attributes:
command(str): Specifies the command to execute (e.g.,create,extend,fix).template_dir(str): Directory path to the template being used.input_dir(str): Directory path to the input software component.output_dir(str): Directory path where the output software component will be saved.ignore_list(list): List of paths or filenames to ignore during template processing.replacements(list of dicts): List of search and replacement keyword pairs for renaming components.- Example:
[{"search": "cruddata", "replace": "products"}]
- Example:
specs(dict): JSON-formatted specifications that guide the component generation process.quiet(bool): Whether to suppress all output.verbose(bool): Whether to display detailed execution logs.model(str): Specifies the GPT model to use (default:omni).api_key(str): OpenAI API key for accessing AI-powered features.
Contact
Please contact us at support@entinco.com for inquiries and clarification.
Thank you for using the Template Engine!
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 templateengine-2.0.4.tar.gz.
File metadata
- Download URL: templateengine-2.0.4.tar.gz
- Upload date:
- Size: 35.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3087dddcea3c25e0c27b62242ec0bce89ede947ae4a7bded2f4a42f8ffa0b4db
|
|
| MD5 |
ade370fe4a21f573440a19fb3f2e7cdb
|
|
| BLAKE2b-256 |
15cb329f59947c8934ef589210652ddfa9548e44b8ff6116387cc65fd3e75f73
|
File details
Details for the file templateengine-2.0.4-py3-none-any.whl.
File metadata
- Download URL: templateengine-2.0.4-py3-none-any.whl
- Upload date:
- Size: 61.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
392120009492457174b943441c47d7a5dd0f0490b34ca7fa3623e1d41a4cbb5c
|
|
| MD5 |
6eed5f96d08282c6d2d143cfe46cbffc
|
|
| BLAKE2b-256 |
ae10764ae1c595a655e50435e6e63e907595c6ef93fe3cb058aac5391274374f
|