No post anterior, eu mencionei sobre palavras-chave dinâmicas no python backend. A ideia é que, após importar um módulo python na área de trabalho do Cantor, funções, palavras-chave, variáveis e mais deste módulo são carredados no Cantor e disponibilizados para o destaque de sintaxe e tab complete.
Esta funcionalidade já está implementada e você pode testá-la compilando o Cantor do branch python-backend.
Mas vamos antes ver mais algumas informações sobre esta funcionalidade.
Existem várias maneiras de importar um módulo python no console python. Você pode usar “import modulename”, “import modulename as modulevariable”, “from modulename import *”, “from modulename import function_1, function_2, …”, e mais. Cada maneira de fazer um import provoca diferentes consequências na experiência do usuário.
As quatro maneiras de realizar um import mencionadas anteriormente são suportadas pelo python backend. Veremos agora como esses diferentes imports se comportam e como o python backend reage a cada um deles.
import modulename
A maneira mais básica e simples de fazer um import. Após este comando, uma variável chamada “modulename” é definida e as funções e mais palavras-chave do módulo são disponibilizadas através de “modulename.keyword”.
Destaque de Sintaxe
import modulename as modulevariable
Nesta forma o usuário define uma variável “modulevariable” para referenciar o “modulename”, e “modulename” não é definido. Portanto, você pode acessar as funções e mais palavras-chave do “modulename” usando “modulevariable.keyword”.
Tab Complete
Destaque de Sintaxe
from modulename import *
Nesta forma o usuário importa todas as funções e palavras-chave do “modulename”, mas nenhuma variável é definida para acessar o “modulename”. As funções do módulo são acessadas diretamente.
Tab Complete
Destaque de Sintaxe
from modulename import function_1, function_2, …
O usuário importa apenas funções específicas do “modulename”, e não todas as funções.
Tab Complete
Destaque de Sintaxe
Cantor plugin
Eu também desenvolvi um plugin para importar módulos no Cantor. Este plugin abre uma janela de diálogo para o usuário entrar com o módulo e, após apertar o Ok, Cantor executará um “import modulename” e as palavras-chave estarão disponíveis. O diálogo é acessado via o menu “Packaging”, na barra de menu.
Plugin de import no Cantor
Identificando erros
O backend pode identificar vários tipos de erros durante o import.
Identificando erros no import
Conclusões
A funcionalidade está desenvolvida e madura para uso, entretanto, ela não suporta todas a maneiras de realizar um import em python. Entretanto, imagino que estas cinco maneiras de realizar o import representam as formas mais comuns utilizadas por desenvolvedores python com foco em softwares científicos.
O importante é que esta funcionalidade permite ao python backend suportar os mais variados tipos de módulos python, e não somente scipy, numpy, and matplotlib, como eu havia proposto no início desse projeto.
Agora, deixe-me saber como você importa módulos no python. Eu desenvolverei o suporte para novas formas de import em futuras versões do backend.
Por enquanto, espere por mais novidades deste projeto logo mais!