Simple program that reads a template file and creates the folder structure and files based on the template.
Project description
SPLN-TP2 Template Multi-file
Daniel Faria PG50306
Hugo Brandão PG50418
João Cerquido PG50469
Projeto desenvolvido no âmbito da UC de SPLN. Permite a criação de uma estrutura de ficheiros e pastas, a partir de um ficheiro de template, podendo ser especificado o conteúdo de cada ficheiro criado. Também é possível realizar o processo inverso, ou seja, a partir de uma estrutura de ficheiros e pastas, criar um ficheiro de template.
Utilização:
utilização: Templater [-h] -i INPUT -t TYPE [-o OUTPUT] [-v [VARIABLES [VARIABLES ...]]]
Programa simples que lê um ficheiro de template e cria a estrutura de pastas e ficheiros com base no template. Também pode ser feito o inverso, pode ler uma estrutura de pastas e criar um ficheiro de template com base nela.
optional arguments:
-h, --help mostra esta mensagem de ajuda e sai
-i INPUT, --input INPUT
Input file ou folder
-t TYPE, --type TYPE
Tipo de operação. Pode ser template (gera template segundo uma diretoria) ou create (gera diretoria de um template file)
-o OUTPUT, --output OUTPUT
Output file ou folder
-v [VARIABLES [VARIABLES ...]], --variables [VARIABLES [VARIABLES ...]]
Variaveis a serem substituidas no template
Formato do template:
O template deverá ser constituído por 3 partes:
- metadata
- tree
- files
Metadata
Os metadados deverão ser enumerados com o padrão nome: valor, e deverão ser escritos um em cada linha.
Exemplo:
=== meta
name:
author: JJoao
Tree
A árvore do projeto deverá ser escrita com as seguintes regras:
- Cada pasta deverá ser identificada com o seu nome seguido de uma barra
- Cada ficheiro que pertença a uma pasta deverá ser escrita após a pasta, com um tab de identação
- Os tabs deverão ser de 4 espaços
Exemplo:
=== tree
pyproject.toml
{{name}}/
__init__.py
{{name}}.md
exemplo/
README.md
tests/
test-1.py
unit/
test-2.py
Files
Os ficheiros deverão ser escritos com o seguinte formato:
- O nome do ficheiro deverá ser precedido de ===
- O nome do ficheiro deverá conter o caminho relativo à pasta principal do projeto
- E o seu conteúdo deverá ser escrito nas linhas seguintes, até encontrar outro ficheiro ou o fim do ficheiro de template
Exemplo:
=== pyproject.toml
[build-system]
requires = ["flit_core >=3.2,<4"]
build-backend = "flit_core.buildapi"
[project]
name = "{{name}}"
authors = [ {name = "{{author}}", email = "FIXME"}]
license = {file = "LICENSE"}
dynamic = ["version", "description"]
dependencies = [ ]
readme = "{{name}}.md"
[project.scripts]
## script1 = "{{name}}:main"
=== {{name}}/{{name}}.md
# NAME
{{name}} - FIXME the fantastic module for...
=== {{name}}/__init__.py
""" FIXME: docstring """
__version__ = "0.1.0"
=== tests/test-1.py
import pytest
import {{name}}
def test_1():
assert "FIXME" == "FIXME"
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
File details
Details for the file templaterSPLN-0.2.tar.gz
.
File metadata
- Download URL: templaterSPLN-0.2.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 277d13783540d3d8c295c248b3297866131cdbb8be97bc465bca14ded686d0ee |
|
MD5 | 7835ff9c69591edb5a859b70e1e31b00 |
|
BLAKE2b-256 | 28c106fd7edb5f2c980d4f0cb4e0587f706b46b47761cc20e34050b8c8c576fc |
File details
Details for the file templaterspln-0.2-py2.py3-none-any.whl
.
File metadata
- Download URL: templaterspln-0.2-py2.py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4183f50f6aa63676d5524da478fff035ff1cccce407e86ded75c51eaf94cff6d |
|
MD5 | a31c2b842d35d4e5ba30a2d2681f2b16 |
|
BLAKE2b-256 | d0ae811fbec5a0da6cff80fea00e28e7dd3e4ff394658c5bec98ef8eacd16b39 |