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:

Seguindo o exemplo dado pelos professores no enunciado, o template deve ter a seguinte estrutura:

=== meta name: // provided or ask author: JJoao // provided or default

=== tree

pyproject.toml {{name}}/ init.py {{name}}.md exemplo/ README.md tests/ test-1.py unit/ test-2.py

=== 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"

O template deverá então ser constituído por 3 partes:

  • metadata
  • tree
  • files

Onde na meta deverá conter o nome do projeto e o nome do autor, na tree deverá ser especificada a estrutura de pastas e ficheiros a ser criada, e na files deverá ser especificado o conteúdo de cada ficheiro.

Na tree, sempre que se trata duma pasta deverá ser especificado o nome da pasta seguido de uma barra, e todos os ficheiro dentro dessa pasta deverão estar identificados com um tab.

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.1.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

templaterspln-0.1-py2.py3-none-any.whl (7.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file templaterSPLN-0.1.tar.gz.

File metadata

  • Download URL: templaterSPLN-0.1.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.22.0

File hashes

Hashes for templaterSPLN-0.1.tar.gz
Algorithm Hash digest
SHA256 be2a31f7b9c0263b07a9a855d2e7d2c86755ec8bb7b2b02e511fdda1f3c3850d
MD5 1e13e2c34e10250d6e3678b403acccee
BLAKE2b-256 22f1d1ac9d74483c4388a9d5f096f36b18b36a98bc327ef64739e6e1b939aa35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for templaterspln-0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5d0df29bb2a8849d031995b79103ffb85debf84cd97b9ada04ce87f4c157415b
MD5 342e011477122ae10400d168c15e4519
BLAKE2b-256 f80f4ab627ff1f0d7d4b62a846c374cb971e3c2d68b91caa3030f567df6eb492

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