Skip to content

Instantly share code, notes, and snippets.

@turicas
Last active December 19, 2017 19:45
Show Gist options
  • Save turicas/739e95a120f7e6efe528737ba612e6c3 to your computer and use it in GitHub Desktop.
Save turicas/739e95a120f7e6efe528737ba612e6c3 to your computer and use it in GitHub Desktop.

Rows Plugins

Plugins de formatos (input e/ou output)

  • Separar os repositórios (pip install rows rows-html rows-pdf)
  • Detecção dos plugins instalados (ideal não carregar os imports)
    • rows print arquivo.html
  • Metadados de plugins:
    • URIs (regexp): rows print postgresql://asdfafasdf/
    • mimetypes suportados
  • PROBLEMA: opções da CLI (ver como o nose faz). Opções: - rows print arquivo.html -- --table-index=2 - rows print arquivo.html --plugin-args="table-index=2 - rows print arquivo.html --table-index=2 (depois de cada input pega todos os args) - Parsear em duas etapas (uma ignorando os argumentos desconhecidos e outro depois de definir os plugins) - Definir múltiplas opções de input (ex: encoding no rows query --input-encoding=utf8 $SQL table1.csv table2.csv ...) - Talvez lançar versão inicial com --plugins-args e depois versão com implementação mais completa/fácil de usar

Plugins da CLI

  • dá pra fazer com click

Parâmetros de importação

  • PROBLEMA: Separar parâmetros do create_table e parâmetros do plugin
  • Separar locale (ver outras formas de definir schema)
    • Se eu tirar os locales, comofas com a CLI?
class MySchema(rows.fields.Schema):
    date = rows.fields.DateField(input_format='%d/%m/%Y')
    salario = rows.fields.DecimalField(locale='pt_BR') # OU decimal_sepator=','
    data_nascimento = rows.fieldsDateField(input_format='%Y-%m-%d')  # assim dá pra usar 2 locales

table = CsvTable(filename=...)

Sistemas de plugins

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment