Skip to main content

🧱 notion-starter

Python 3.10+ Requests Licença MIT

Biblioteca Python resiliente para operar a API oficial do Notion e compartilhar regras de negócio entre interfaces.

📖 Sobre🚀 Funcionalidades🎯 Como usar✅ Qualidade


📋 Índice


📖 Sobre o Projeto

O notion-starter é o núcleo do ecossistema Automações do Notion. Ele oferece uma API Python tipada para trabalhar com páginas, databases, tarefas e conteúdo do Notion com retries, rate limit e erros previsíveis.

Além do cliente base, este repositório concentra a camada compartilhada entre o notion-tasks-cli e o notion-workspace-app: adaptadores GitHub/OpenRouter e notion_starter.services para tarefas, conteúdo, clonagem, ingestão, inventário GitHub, exportação DOCX e IA. As bordas e a configuração de ambiente permanecem nos consumidores.


📁 Estrutura do Projeto

notion-starter/
│
├── 📁 src/notion_starter/       # Biblioteca pública e módulos de domínio
│   ├── 📁 services/             # Casos de uso compartilhados
│   ├── client.py                # Cliente HTTP resiliente do Notion
│   ├── content.py               # Conversão Markdown ↔ blocos
│   ├── properties.py            # Builders de propriedades e schemas
│   └── tasks.py                 # Tarefa e TaskList
│
├── 📁 examples/                 # Scripts de uso da biblioteca
├── 📁 tests/                    # Suíte automatizada sem rede
├── .github/workflows/ci.yml     # Gate em Python 3.10–3.13
├── pyproject.toml               # Pacote, dependências e ferramentas
├── QUALIDADE.md                 # Contrato de qualidade do módulo
├── README.md                    # Este arquivo
└── LICENSE                      # Licença MIT

🚀 Funcionalidades

  • NotionClient — cliente HTTP resiliente com retries, rate limit e erros tipados; inclui obter_pagina e atualizar_pagina para propriedades.
  • Schema — leitura e comparação de schemas de databases com comparar_schema.
  • Tarefas — modelos Tarefa e TaskList para criar, editar, mover e concluir tarefas; na criação, a coluna de título é descoberta pelo schema para também aceitar databases genéricos.
  • Conteúdo — leitura e escrita de blocos, incluindo conversão Markdown ↔ blocos.
  • Propriedades — builders properties.* para title, rich_text, select, status, number, date, relation e outros tipos; textos acima de 2.000 unidades UTF-16 são fatiados automaticamente.
  • Inventário — varredura de páginas, databases e árvore do workspace.
  • Relatórios DOCXnotion_starter.services.relatorios_docx exporta um arquivo por data, combinando propriedades e corpo sem arquivos intermediários.
  • Utilidades — saneamento de texto/JSON, fatiar_utf16, logging e readers.

Exemplo de fluxo: Markdown → blocos tipados da API do Notion → página atualizada.


🎯 Como Usar

Instalação

# Instale a versão candidata quando ela estiver publicada no PyPI
python -m pip install "notion-starter>=0.3.0,<0.4.0"

O pacote 0.3.0 está preparado para distribuição como wheel/sdist Python e não depende de checkout Git. A publicação efetiva depende da confirmação do contrato de distribuição do ecossistema. Para desenvolvimento, clone o repositório e use python -m pip install -e ".[dev]".

Para desenvolvimento:

# Clone e instale com as dependências de desenvolvimento
git clone https://github.com/Felipe-Alcantara/notion-starter.git
cd notion-starter
python -m pip install -e ".[dev]"

Uso rápido

from notion_starter import NotionClient

client = NotionClient()  # lê NOTION_TOKEN do ambiente

A pasta examples/ contém scripts completos para listar páginas, exportar linhas, sincronizar CSV, gerar a árvore HTML do workspace, gerenciar tarefas e publicar relatórios diários a partir do histórico de um repositório git (relatorios_do_git.py, com --simular para conferir antes de escrever).


⚙️ Configuração

Variável Descrição
NOTION_TOKEN Token de integração interna do Notion (obrigatório)
NOTION_DATABASE_ID Database padrão de tarefas (opcional)

Use variáveis de ambiente ou um arquivo .env local baseado em .env.example. Nunca versione tokens ou IDs reais.


✅ Qualidade

O gate local combina lint e testes:

python -m ruff check .
python -m pytest

A CI repete o gate em Python 3.10, 3.11, 3.12 e 3.13. Consulte QUALIDADE.md para o critério de pronto e a política de dependências deste pacote.


📄 Licença

Este projeto está sob a licença MIT — veja LICENSE.


👤 Autor

Felipe Martin


🤝 Contribuições

Contribuições são bem-vindas. Algumas ideias para quem quiser colaborar:

  • ampliar a cobertura de tipos de propriedade do Notion;
  • adicionar tipos de bloco ao conversor Markdown;
  • expandir a escrita de linhas em data sources;
  • melhorar exemplos, testes e documentação.

Leia CONTRIBUTING.md antes de enviar uma mudança.


⭐ Se esta biblioteca foi útil, considere dar uma estrela no GitHub.

Download files

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

Source Distribution

notion_starter-0.3.0.tar.gz (164.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notion_starter-0.3.0-py3-none-any.whl (132.3 kB view details)

Uploaded Python 3

File details

Details for the file notion_starter-0.3.0.tar.gz.

File metadata

  • Download URL: notion_starter-0.3.0.tar.gz
  • Upload date:
  • Size: 164.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for notion_starter-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9d4b144c9e581b611e5d9a470f3fa87f9ffba409e8e1f7bd4f4f64caa5d821fb
MD5 02a26f3cd5b9f97ca5f905f77682ba27
BLAKE2b-256 34d25eb1c19856222601260c5a56122a80649e5333bf4ccdd7caf08727065929

See more details on using hashes here.

Provenance

The following attestation bundles were made for notion_starter-0.3.0.tar.gz:

Publisher: release.yml on Felipe-Alcantara/notion-starter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file notion_starter-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: notion_starter-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 132.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for notion_starter-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e3c4bf2e05d9d2e34d5dbc0ca84c0b32f5502593bdde13dd05ce54df42d8ea4
MD5 f250cf5de4d2a4ef22484b9b2e612bbf
BLAKE2b-256 05895508722f8691d754deca1d889728386a31e91ff47221be71b06e5cb3f247

See more details on using hashes here.

Provenance

The following attestation bundles were made for notion_starter-0.3.0-py3-none-any.whl:

Publisher: release.yml on Felipe-Alcantara/notion-starter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.1

2 files

This release

0.3.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page