Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

templaterSPLN-0.2.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

templaterspln-0.2-py2.py3-none-any.whl (7.4 kB view details)

Uploaded Python 2 Python 3

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

Hashes for templaterSPLN-0.2.tar.gz
Algorithm Hash digest
SHA256 277d13783540d3d8c295c248b3297866131cdbb8be97bc465bca14ded686d0ee
MD5 7835ff9c69591edb5a859b70e1e31b00
BLAKE2b-256 28c106fd7edb5f2c980d4f0cb4e0587f706b46b47761cc20e34050b8c8c576fc

See more details on using hashes here.

File details

Details for the file templaterspln-0.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for templaterspln-0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4183f50f6aa63676d5524da478fff035ff1cccce407e86ded75c51eaf94cff6d
MD5 a31c2b842d35d4e5ba30a2d2681f2b16
BLAKE2b-256 d0ae811fbec5a0da6cff80fea00e28e7dd3e4ff394658c5bec98ef8eacd16b39

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page