Ir para o conteúdo
ou

Software livre Brasil

Tela cheia Sugerir um artigo
 Feed RSS

Projeto Software Livre - Piauí

15 de Janeiro de 2010, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

O PSL-PI tem por objetivo incentivar o uso e a produção de software livre no Piauí como política de combate à exclusão digital. Acreditamos que a distribuição de conhecimentos proporcionada pelo Open Source/Software Livre tornará nossa sociedade mais justa e próspera, exatamente por dar a todos as mesmas condições de conhecimento e desenvolvimento.

Software Livre é uma grande oportunidade de construirmos uma sociedade produtora de ciência, independente e efetivamente competitiva. Estamos reconstruindo as bases da nossa sociedade, não mais calcados nos braços do Estado, mas sim, amparados pela iniciativa própria, pela auto-determinação. Nós somos capazes de nos auto-governar. Somos capazes de construir uma sociedade efetivamente Livre. Esta é a essência do PSL-PI.

O PSL-PI é formado pela articulação de indivíduos que atuam em instituições publicas e privadas, grupos de usuários e desenvolvedores de software livre, empresas, governos ou ONGs, e demais setores da sociedade. O importante é a consciência e disposição para propagar o uso de software livre e a cultura colaborativa nas diferentes esferas da sociedade.


Backend Python para Cantor – Destaque de Sintaxe, Tab Complete, e Modo Interactive

29 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Meu projeto no Google Summer of Code 2013, o desenvolvimento de um backend para python no Cantor, atingiu alguns objetivos nas últimas semanas.

Primeiramente eu desenvolvi a versão preliminar para as funcionalidades de destaque de sintaxe e tab complete. Esta etapa utilizou processamento de arquivos XML para prover um conjunto básico de palavras-chave e funções predefinidas para aquelas funcionalidades. Para ativar o tab complete, basta pressionar o botão Tav após ter digitado alguma letra ou conjunto de letras. Abaixo temos alguns screenshots destas funcionalidades (clique com o botão direito do mouse para ampliar as imagens):

python_syntax_highlighting

Um simples destaque de sintaxe

python_backend

Mais destaque de sintaxe e tab complete

Em seguida, a versão inicial do backend desenvolvido durante o LaKademy foi criada para dar suporte ao modo de script do python. Mas seria mais interessante dar suporte ao modo interactive no terminal do Cantor. Então, para fazer isso, eu implementei um pré-processamento nos códigos do python que o usuário insere no Cantor antes de enviá-los ao interpretador python, adicionando alguns comandos para simular o modo interactive do python.

Esta solução utiliza o PyRun_SimpleString da API python/C para processar os comandos python em modo de script. Existem outras funções da API python/C para processar os comandos python diretamente em modo interactive, por exemplo, PyRun_InteractiveOne, mas esta função requer que os comandos python a serem processados estejam em um arquivo, além do que acessar a saída desse processamento é algo bastante difícil. Então, para o momento,  PyRun_SimpleString + pré-processamento dos comandos é uma solução que está funcionando muito bem.

Você pode ver nas screenshots que ilustram este post que as variáveis e resultados de operações apresentados na tela do Cantor não usam o comando print. Esta é uma das características do modo interactive do python:

python_backend_aninhado1Mais exemplos de destaque de sintaxe e interactive mode

python_backend_aninhado2

Mais exemplos de destaque de sintaxe e interactive mode

Agora eu estou desenvolvendo uma funcionalidade para listar todas as funções predefinidas e palavras-chave de um módulo python específico que tenha sido importado durante a execução do programa. Para tanto, eu estou usando o comando dir do python para capturar esses dados. Esta funcionalidade proverá estas palavras para o destaque de sintaxe e o tab complete, de uma forma dinâmica. Assim, o backend para python dará suporte a qualquer módulo python, e não mais apenas ao scipy, numpy, e matplotlib.

O backend para python está disponível no branch python-backend no repositório do Cantor. Fique a vontade para testá-lo, mas lembre-se que o código não está estável e finalizado no momento.



Python backend for Cantor – Syntax Highlighting, Tab Complete, and Interactive Mode

26 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

My GSoC’2013 project for development a python backend for Cantor reach some objectives in before weeks.

Firstly I developed preliminary versions of syntax highlighting and tab complete features. This version use XML file processing to provide a basic set of keywords and built-in functions to these features. To activate tab complete, press Tab button after some letter.  You can see some screenshots of these features below (click mouse right-button and enlarge it):

A simple syntax highlighting

More syntax highlighting and tab complete

Next, the preliminary version  of the backend developed during LaKademy was build to support python script mode. But it would be more interesting to support python interactive mode in Cantor console. So, to do it, I implemented preprocessing in python command before send it to python interpreter, adding some commands to simulate python interactive mode.

This solution use PyRun_SimpleString from python/C API to process python commands in python script mode. There is other functions from python/C API to process python commands in interactive mode, for example, PyRun_InteractiveOne, but this function requires the python commands in a file to process and the output of commands is a bit of hard to get. So, for now, PyRun_SimpleString + preprocessing commands is working very well.

You can see in screenshots below and above that variable values and operation values are show in Cantor console without use of print command. It is a one of characteristic of python interactive mode:

More examples of syntax highlighting and python interactive mode

More examples of syntax highlighting and python interactive mode

Now I am developing a feature to list all functions and keywords from a specific python module imported during the program execution. I am using dir command to do it. This feature will provide these keywords to use in syntax highlighting and tab complete in a dynamic way. Then, python backend will support any python module, and not scipy, numpy, and matplotlib only.

Python backend is available in python-backend branch in Cantor repository. You can test it, but remember this code is not stable and finalized for now.



Tags deste artigo: projeto software livre - piauí psl-pi piauí psl-nordeste