No project description provided
Project description
Universal Initializer
A versatile tool for initializing software projects from templates. Create React, Python, C++, Node.js, iOS, Android, and more projects with a single command.
Features
- Configurable template-based project creation
- Support for multiple project types (React, Vue, Flutter)
- Parameter-based customization
- Variable replacement in template files
- Post-processing support for additional setup tasks
- JSON output for integration with other tools
Installation
# Install with pip
pip install universalinit
# Or install directly from source
git clone https://github.com/Kavia-ai/universalinit.git
cd universalinit
pip install -e .
Usage
Create a new project using the command-line interface:
uniinit --name my-app --type react --output ./my-app --author "Your Name" --parameters typescript=true,styling_solution=styled-components
Command Options
| Option | Description | Example |
|---|---|---|
--author |
Project author (Required) | --author "Your Name" |
--config |
Path to JSON config file | --config ./my-config.json |
--description |
Project description | --description "An awesome app" |
--name |
Project name (Required) | --name my-awesome-app |
--output |
Output directory path (Required) | --output ./my-app |
--parameters |
Additional parameters as key=value pairs | --parameters typescript=true,styling_solution=styled-components |
--type |
Project type (Required) | --type react |
--version |
Project version | --version 0.1.0 |
Available Project Types
react: React applicationvue: Vue applicationflutter: Flutter application
Parameter Examples
React Project
uniinit --name my-react-app --type react --output ./my-react-app --author "Your Name" --parameters typescript=true,styling_solution=styled-components
Vue Project
uniinit --name myservice --type vue --output ./myservice --author "Your Name"
JSON Configuration
Instead of command-line parameters, you can use a JSON configuration file:
{
"name": "my-app",
"version": "1.0.0",
"description": "My awesome application",
"author": "Your Name",
"project_type": "react",
"output_path": "./my-app",
"parameters": {
"typescript": true,
"styling_solution": "styled-components"
}
}
Then use:
uniinit --config ./my-config.json
Development
Running Tests
# Install dev dependencies
pip install pytest
# Run tests
pytest
Adding New Templates
- Create a new directory in
src/universalinit/templates/for your template - Add a
config.ymlfile with template configuration - Add new template type in
ProjectTypeenum insrc/universalinit/templateconfig.py - Add new replaceable parameters if necessary in the function
ProjectConfig.get_replaceable_parametersinsrc/universalinit/templateconfig.py - Add new environment parameters if necessary in the function
TemplateConfigProvider.get_init_infoinsrc/universalinit/templateconfig.py - Add new template at
TEMPLATE_MAPinsrc/universalinit/templates.py - Register the template class in the
ProjectInitializerconstructor insrc/universalinit/universalinit.py - Create a new template class in
src/universalinit/universalinit.py - Update the epilog in
maininsrc/universalinit/cli.py
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 universalinit-0.1.7.tar.gz.
File metadata
- Download URL: universalinit-0.1.7.tar.gz
- Upload date:
- Size: 472.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.6 Darwin/23.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2423a7adb73af4ced7dfc9f3592f5769f101257e4ad470ea6ab084735d244554
|
|
| MD5 |
6cab4be72f8571b53588bf356c1a4b27
|
|
| BLAKE2b-256 |
8b32046d33d3a035dcbb662ffab1adca6e631ec59f1917431b525baf2f09a35a
|
File details
Details for the file universalinit-0.1.7-py3-none-any.whl.
File metadata
- Download URL: universalinit-0.1.7-py3-none-any.whl
- Upload date:
- Size: 526.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.6 Darwin/23.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1aa60b803de4b4d9f39f2a6977ff6de13004fc6033c17ab8cd98b1c1bbb67f02
|
|
| MD5 |
65f3c255eadc795679200d22e23689b6
|
|
| BLAKE2b-256 |
0a72c89c93d03fc40ff160c6ea67a7e99c329e6d1f2b06dc82d60295191fb07a
|