DynamicDoc


NameDynamicDoc JSON
Version 1.0.2 PyPI version JSON
download
home_pagehttps://github.com/SamuelSGSouza/Dynamic-Docs
SummaryUma biblioteca para manipulação dinâmica de documentos docx.
upload_time2025-02-11 15:00:28
maintainerNone
docs_urlNone
authorSamuel Santos
requires_python>=3.6
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DynamicDoc Library
https://github.com/SamuelSGSouza/Dynamic-Docs
DynamicDoc é uma biblioteca Python que permite a manipulação dinâmica de documentos `.docx`, processando blocos condicionais e loops de maneira baseada no jinja2. Esta biblioteca utiliza variáveis e expressões lógicas no documento, substituindo as tags encontradas com os valores fornecidos pelo usuário. No repositório deste projeto, você encontrará um exemplo de uso da biblioteca, bem como um arquivo de exemplo para testes.

## Ferramentas Atuais

- **Substituição de variáveis**: Substitui as variáveis presentes no documento com os valores fornecidos.
- **Blocos condicionais**: Processa blocos `if`, ou remover parágrafos de acordo com a condição.

## Ferramentas Futuras 

- **Blocos de loop**: Suporte a blocos `for`, permitindo iterações sobre listas será adicionado em futuras versões.
- **Condicionais aninhados**: Suporte a condicionais aninhadas como if's dentro de if's será adicionado em futuras versões

## Instalação

Para instalar as dependências da biblioteca, rode:

```bash
pip install DynamicDoc==1.0.2
```

## Exemplo de Uso

```python
from DynamicDoc.dynamicdoc import DynamicDoc

doc = DynamicDoc("template.docx",nome = "João", idade = 20, maioridade = True)
doc.save_document("output.docx")
```

Caso deseje os bytes do documento, basta utilizar a seguinte sintaxe:

```python
from DynamicDoc.dynamicdoc import DynamicDoc

doc = DynamicDoc("template.docx",nome = "João", idade = 20, maioridade = True)
document_bytes = doc.get_document()
```


## Documentação

### Variáveis

Variáveis são definidas no documento com a seguinte sintaxe:

```
>#nome_da_variavel#<
```
As variáveis são substituídas pelos valores fornecidos no construtor da classe `DynamicDoc`. No exemplo acima, a variável `nome` será substituída por `João`.
As variáveis sofrerão uma safe_evaluation, ou seja, não é possível executar comandos maliciosos.


### Blocos Condicionais

Blocos condicionais sempre terão uma abertura e um fechamento. A sintaxe é a seguinte:

```
>#if NOMES#<
    *seu texto*
>#endif#<
```

No exemplo acima, o bloco será processado se a variável `NOMES` for verdadeira. Caso contrário, o bloco será removido do documento.

### Inline IF's

Caso deseje, você também pode inserir uma verificação condicional dentro do seu texto para que 
a verificação condicional funcione internamente no parágrafo. As informações do parágrafo irão compartilhar estilizações do documento original.

```

Lorem Ipsum is >#if dummy#< simply dummy >#endif#<text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum

```

No exemplo acima, o bloco será processado se a variável `NOMES` for verdadeira. Caso contrário, o bloco será removido do documento.

## Contribuição

Para contribuir com a biblioteca, siga os passos abaixo:

1. Faça um fork do repositório
2. Crie uma branch com a feature que deseja adicionar (`git checkout -b feature/nova-feature`)
3. Commit as mudanças (`git commit -am 'Adicionando nova feature'`)
4. Faça um push para a branch (`git push origin feature/nova-feature`)
5. Crie um novo Pull Request

## Licença

Este projeto é licenciado sob a licença MIT - veja o arquivo [LICENSE.md](LICENSE.md) para mais detalhes.
```




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/SamuelSGSouza/Dynamic-Docs",
    "name": "DynamicDoc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "Samuel Santos",
    "author_email": "samuels.g.desouza@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/20/4e/ebb4c878e01cb94f092909f6d6ae6e5db33f1c15227bfe148652bfc0345f/dynamicdoc-1.0.2.tar.gz",
    "platform": null,
    "description": "# DynamicDoc Library\nhttps://github.com/SamuelSGSouza/Dynamic-Docs\nDynamicDoc \u00e9 uma biblioteca Python que permite a manipula\u00e7\u00e3o din\u00e2mica de documentos `.docx`, processando blocos condicionais e loops de maneira baseada no jinja2. Esta biblioteca utiliza vari\u00e1veis e express\u00f5es l\u00f3gicas no documento, substituindo as tags encontradas com os valores fornecidos pelo usu\u00e1rio. No reposit\u00f3rio deste projeto, voc\u00ea encontrar\u00e1 um exemplo de uso da biblioteca, bem como um arquivo de exemplo para testes.\n\n## Ferramentas Atuais\n\n- **Substitui\u00e7\u00e3o de vari\u00e1veis**: Substitui as vari\u00e1veis presentes no documento com os valores fornecidos.\n- **Blocos condicionais**: Processa blocos `if`, ou remover par\u00e1grafos de acordo com a condi\u00e7\u00e3o.\n\n## Ferramentas Futuras \n\n- **Blocos de loop**: Suporte a blocos `for`, permitindo itera\u00e7\u00f5es sobre listas ser\u00e1 adicionado em futuras vers\u00f5es.\n- **Condicionais aninhados**: Suporte a condicionais aninhadas como if's dentro de if's ser\u00e1 adicionado em futuras vers\u00f5es\n\n## Instala\u00e7\u00e3o\n\nPara instalar as depend\u00eancias da biblioteca, rode:\n\n```bash\npip install DynamicDoc==1.0.2\n```\n\n## Exemplo de Uso\n\n```python\nfrom DynamicDoc.dynamicdoc import DynamicDoc\n\ndoc = DynamicDoc(\"template.docx\",nome = \"Jo\u00e3o\", idade = 20, maioridade = True)\ndoc.save_document(\"output.docx\")\n```\n\nCaso deseje os bytes do documento, basta utilizar a seguinte sintaxe:\n\n```python\nfrom DynamicDoc.dynamicdoc import DynamicDoc\n\ndoc = DynamicDoc(\"template.docx\",nome = \"Jo\u00e3o\", idade = 20, maioridade = True)\ndocument_bytes = doc.get_document()\n```\n\n\n## Documenta\u00e7\u00e3o\n\n### Vari\u00e1veis\n\nVari\u00e1veis s\u00e3o definidas no documento com a seguinte sintaxe:\n\n```\n>#nome_da_variavel#<\n```\nAs vari\u00e1veis s\u00e3o substitu\u00eddas pelos valores fornecidos no construtor da classe `DynamicDoc`. No exemplo acima, a vari\u00e1vel `nome` ser\u00e1 substitu\u00edda por `Jo\u00e3o`.\nAs vari\u00e1veis sofrer\u00e3o uma safe_evaluation, ou seja, n\u00e3o \u00e9 poss\u00edvel executar comandos maliciosos.\n\n\n### Blocos Condicionais\n\nBlocos condicionais sempre ter\u00e3o uma abertura e um fechamento. A sintaxe \u00e9 a seguinte:\n\n```\n>#if NOMES#<\n    *seu texto*\n>#endif#<\n```\n\nNo exemplo acima, o bloco ser\u00e1 processado se a vari\u00e1vel `NOMES` for verdadeira. Caso contr\u00e1rio, o bloco ser\u00e1 removido do documento.\n\n### Inline IF's\n\nCaso deseje, voc\u00ea tamb\u00e9m pode inserir uma verifica\u00e7\u00e3o condicional dentro do seu texto para que \na verifica\u00e7\u00e3o condicional funcione internamente no par\u00e1grafo. As informa\u00e7\u00f5es do par\u00e1grafo ir\u00e3o compartilhar estiliza\u00e7\u00f5es do documento original.\n\n```\n\nLorem Ipsum is >#if dummy#< simply dummy >#endif#<text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum\n\n```\n\nNo exemplo acima, o bloco ser\u00e1 processado se a vari\u00e1vel `NOMES` for verdadeira. Caso contr\u00e1rio, o bloco ser\u00e1 removido do documento.\n\n## Contribui\u00e7\u00e3o\n\nPara contribuir com a biblioteca, siga os passos abaixo:\n\n1. Fa\u00e7a um fork do reposit\u00f3rio\n2. Crie uma branch com a feature que deseja adicionar (`git checkout -b feature/nova-feature`)\n3. Commit as mudan\u00e7as (`git commit -am 'Adicionando nova feature'`)\n4. Fa\u00e7a um push para a branch (`git push origin feature/nova-feature`)\n5. Crie um novo Pull Request\n\n## Licen\u00e7a\n\nEste projeto \u00e9 licenciado sob a licen\u00e7a MIT - veja o arquivo [LICENSE.md](LICENSE.md) para mais detalhes.\n```\n\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Uma biblioteca para manipula\u00e7\u00e3o din\u00e2mica de documentos docx.",
    "version": "1.0.2",
    "project_urls": {
        "Homepage": "https://github.com/SamuelSGSouza/Dynamic-Docs"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ee34ee50250839490e63b82a10e0723dc7f385dab60c3268cfa2950024c0097c",
                "md5": "ae4332380e505e605d7f77d546e0bb44",
                "sha256": "f82c3f94b4b0194b2fbe6377cb5f6a4ac32c91ce074cab804b088619ebc29e88"
            },
            "downloads": -1,
            "filename": "DynamicDoc-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ae4332380e505e605d7f77d546e0bb44",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 7092,
            "upload_time": "2025-02-11T15:00:27",
            "upload_time_iso_8601": "2025-02-11T15:00:27.337425Z",
            "url": "https://files.pythonhosted.org/packages/ee/34/ee50250839490e63b82a10e0723dc7f385dab60c3268cfa2950024c0097c/DynamicDoc-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "204eebb4c878e01cb94f092909f6d6ae6e5db33f1c15227bfe148652bfc0345f",
                "md5": "db85dcc2f306f732b2a2badd66dbdee0",
                "sha256": "f75939e0298fe59d8382396d129636f062237586735847631ed4466f2b323241"
            },
            "downloads": -1,
            "filename": "dynamicdoc-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "db85dcc2f306f732b2a2badd66dbdee0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 6759,
            "upload_time": "2025-02-11T15:00:28",
            "upload_time_iso_8601": "2025-02-11T15:00:28.503311Z",
            "url": "https://files.pythonhosted.org/packages/20/4e/ebb4c878e01cb94f092909f6d6ae6e5db33f1c15227bfe148652bfc0345f/dynamicdoc-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-11 15:00:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "SamuelSGSouza",
    "github_project": "Dynamic-Docs",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "dynamicdoc"
}
        
Elapsed time: 6.32948s