SpiceCode: The next generation of code analysis.
Project description
🌶️ SpiceCode - The next generation of code analysis.
"Aquele que controla o código, controla o futuro."
- Full Documentation & Tutorial: https://spicecodecli.github.io/spicecode/docs/intro/
- Visite nossa página no PyPI: https://pypi.org/project/spicecode/
SonarCloud Ratings
Introdução
Bem-vindo ao SpiceCode CLI, a próxima geração de análise de código. Como os Fremen que dominam as areias de Arrakis, o SpiceCode permite que você navegue pelo deserto do desenvolvimento com precisão e sabedoria, extraindo insights valiosos do seu código.
SpiceCode é uma ferramenta de linha de comando desenvolvida para analisar e aprimorar seu código em várias linguagens de programação. Assim como a especiaria melange revela os segredos do universo, o SpiceCode revela os padrões, métricas e potenciais melhorias em sua base de código.
Nossa ferramenta foi construída com foco na simplicidade e eficiência, permitindo que desenvolvedores de todos os níveis - desde os jovens Fremen até os experientes Mentats - possam compreender e melhorar a qualidade de seus projetos.
Características Principais
- Análise Profunda: Examina seu código e fornece métricas detalhadas
- Suporte Multi-linguagem: Compatível com Python, JavaScript, Ruby e Go
- Lexers e Parsers Nativos: Todos os analisadores são construídos por nós, sem dependências externas
- Interface Amigável: Comandos simples e intuitivos para facilitar o uso
- Exportação de Resultados: Exporte suas análises em diversos formatos (JSON, CSV, Markdown, HTML)
- Suporte a Múltiplos Idiomas: Interface traduzível para diferentes línguas
A água da vida é preciosa no deserto, assim como o código limpo é valioso em um projeto. Deixe o SpiceCode ser seu stillsuit, protegendo e otimizando seus recursos mais valiosos.
Instalação
Para começar sua jornada com o SpiceCode, você precisará preparar seu ambiente como um verdadeiro Fremen prepara seu equipamento antes de atravessar o deserto.
Pré-requisitos
- Python instalado em seu sistema (como a água, essencial para a vida)
- Terminal ou prompt de comando (seu thopter pessoal para navegar pelo código)
Instalação via PIP
A maneira mais simples de obter o SpiceCode é através do PIP, o gerenciador de pacotes do Python:
pip install spicecode
Após a instalação, o comando spice estará disponível em seu terminal, como uma faca crysknife sempre ao seu alcance.
Instalação a partir do Código-fonte
Se preferir construir a partir do código-fonte (como os Fremen que fabricam seus próprios equipamentos):
-
Clone o repositório para sua máquina:
git clone https://github.com/spicecodecli/spicecode.git
-
Navegue até a pasta do projeto clonado:
cd spicecode
-
Crie um ambiente virtual Python (venv):
python -m venv venv
-
Ative seu ambiente virtual:
Windows:
./venv/Scripts/activate
Linux/macOS:
source ./venv/bin/activate
-
Instale as dependências necessárias:
pip install -r requirements.txt
-
Instale (build) o pacote SpiceCode localmente:
pip install -e .
Agora você está pronto para começar sua jornada pelo deserto do código, com todas as ferramentas necessárias ao seu dispor.
Verificando a Instalação
Para confirmar que o SpiceCode foi instalado corretamente, execute:
spice version
Se tudo estiver funcionando corretamente, você verá a versão atual do SpiceCode, confirmando que a especiaria flui em seu sistema.
Uso
Como um Fremen que domina as técnicas de sobrevivência no deserto, você agora pode utilizar o SpiceCode para navegar pelo vasto oceano de areia que é seu código. Aqui estão os comandos principais que você pode executar:
Comandos Básicos
Verificar a Versão
spice version
Este comando mostra a versão atual do SpiceCode instalada em seu sistema.
Mensagem de Boas-vindas
spice hello
Uma simples mensagem de boas-vindas, como o ritual de saudação entre os Fremen.
Configurar Idioma
spice translate
Configure o idioma da interface do SpiceCode. Como os dialetos de Arrakis, você pode escolher o que melhor se adapta às suas necessidades.
Análise de Código
O coração do SpiceCode está em sua capacidade de analisar código, como um Mentat processando informações complexas:
Análise Básica
spice analyze ARQUIVO
Substitua ARQUIVO pelo caminho do arquivo que deseja analisar. Por exemplo:
spice analyze codigo.js
Este comando analisará o arquivo especificado e apresentará um menu interativo com diferentes opções de análise.
Análise Completa
spice analyze ARQUIVO --all
Executa todas as análises disponíveis para o arquivo sem exibir o menu de seleção.
Saída em JSON
spice analyze ARQUIVO --json
Retorna os resultados da análise em formato JSON, ideal para integração com outras ferramentas.
Exportação de Resultados
Como os Fremen que preservam cada gota de água, você pode salvar os resultados de suas análises em diferentes formatos:
spice export ARQUIVO --format FORMATO --output CAMINHO_SAIDA
Onde:
ARQUIVOé o caminho do arquivo a ser analisadoFORMATOpode ser json, csv, markdown ou htmlCAMINHO_SAIDAé o caminho onde o arquivo de resultados será salvo
Exemplo:
spice export codigo.js --format markdown --output resultados.md
Linguagens Suportadas
O SpiceCode, como um navegador experiente que conhece diferentes terrenos, suporta análise para as seguintes linguagens:
- Python (
.py) - JavaScript (
.js) - Ruby (
.rb) - Go (
.go)
Cada linguagem tem seu próprio lexer e parser nativos, construídos especificamente para o SpiceCode, sem dependências de bibliotecas externas - assim como os Fremen que constroem suas próprias ferramentas a partir dos recursos disponíveis em Arrakis.
Contribuição
Como os Fremen que compartilham seu conhecimento para o bem da tribo, você também pode contribuir para o SpiceCode. No entanto, como este é atualmente um projeto acadêmico, há algumas considerações especiais:
Status Atual do Projeto
Atualmente, o SpiceCode é um trabalho acadêmico e, por isso, não está aceitando contribuições externas. Como a água que é guardada nos reservatórios secretos dos Fremen, o desenvolvimento está temporariamente restrito à equipe original.
No entanto, planejamos abrir o projeto para contribuições da comunidade no futuro, quando nossa jornada acadêmica estiver completa. Sua paciência é valorizada como a virtude mais importante no deserto.
Reportando Problemas
Mesmo que contribuições diretas de código não sejam aceitas no momento, você pode ajudar reportando problemas ou sugestões:
- Acesse a página de issues no GitHub
- Clique em "New Issue"
- Descreva o problema ou sugestão com o máximo de detalhes possível
- Adicione labels relevantes como "bug" ou "enhancement"
Código de Conduta
Como os Fremen que seguem regras estritas para sobreviver no deserto, todos os participantes do projeto SpiceCode devem aderir ao nosso Código de Conduta. Este código é inspirado no Contributor Covenant e adaptado com a temática de Dune.
Os principais pontos incluem:
- Mostrar gentileza, paciência e respeito aos companheiros de jornada
- Honrar diferenças em estilos de código, ideias e perspectivas
- Fornecer feedback construtivo com humildade e recebê-lo com graça
- Aceitar responsabilidade por erros e se esforçar para melhorar
- Trabalhar pelo bem maior da comunidade, não apenas pelo ganho pessoal
Para mais detalhes, consulte o arquivo CODE_OF_CONDUCT.md no repositório.
Futuras Contribuições
Quando o projeto for aberto para contribuições, seguiremos o modelo tradicional de fork e pull request:
- Faça um fork do repositório
- Crie uma branch para sua feature (
git checkout -b feature/nova-funcionalidade) - Faça commit das suas mudanças (
git commit -m 'Adiciona nova funcionalidade') - Envie para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Aguardamos ansiosamente o dia em que a comunidade poderá contribuir diretamente para o SpiceCode, como os Fremen que compartilham seu conhecimento para o benefício de todos em Arrakis.
Segurança
Como os Fremen que protegem seus sietchs com vigilância constante, a segurança é uma prioridade no SpiceCode.
Política de Segurança
O SpiceCode segue uma política de segurança simples mas eficaz:
| Versão | Suportada |
|---|---|
| Mais recente | ✅ |
| Não mais recente | ❌ |
Assim como os Fremen que mantêm seus equipamentos sempre atualizados para sobreviver no deserto, recomendamos que você sempre utilize a versão mais recente do SpiceCode para garantir a melhor experiência e segurança.
Reportando Vulnerabilidades
Se você descobrir uma vulnerabilidade de segurança no SpiceCode, por favor, reporte-a imediatamente:
- Acesse a página de issues no GitHub
- Crie uma nova issue com os labels "bug" ou "security"
- Descreva a vulnerabilidade com o máximo de detalhes possível
- Se possível, inclua passos para reproduzir o problema
Nossa equipe, como os vigilantes Fremen que protegem as reservas de água, tratará todas as vulnerabilidades reportadas com a máxima prioridade e discrição.
Práticas Recomendadas
Para garantir a segurança ao utilizar o SpiceCode:
- Sempre verifique a origem do código que está sendo analisado
- Mantenha o SpiceCode atualizado com a versão mais recente
- Utilize ambientes virtuais Python para isolar suas dependências
- Revise os resultados das análises antes de aplicar quaisquer mudanças sugeridas
Lembre-se: a vigilância constante é o preço da segurança, assim como os Fremen nunca baixam a guarda no deserto hostil de Arrakis.
Licença
O SpiceCode é distribuído sob a licença Apache 2.0, uma licença permissiva que, como as leis dos Fremen, estabelece regras claras para o benefício de todos.
Apache License 2.0
A licença Apache 2.0 permite:
- Uso Comercial ✅ - Como as caravanas de especiarias que cruzam o deserto, você pode usar o SpiceCode em projetos comerciais
- Modificação ✅ - Assim como os Fremen adaptam seus equipamentos, você pode modificar o código
- Distribuição ✅ - Compartilhe o conhecimento como os Fremen compartilham a água
- Uso de Patente ✅ - As patentes dos contribuidores são licenciadas para uso
- Uso Privado ✅ - Use o SpiceCode em seus projetos privados, como os segredos guardados nas cavernas
A licença Apache 2.0 não permite:
- Uso de Marca Registrada ❌ - O nome e logotipo do SpiceCode são protegidos
- Responsabilidade ❌ - Os criadores não são responsáveis por danos causados pelo uso do software
- Garantia ❌ - O software é fornecido "como está", sem garantias
Requisitos da Licença
Ao utilizar, modificar ou distribuir o SpiceCode, você deve:
- Incluir uma cópia da licença em qualquer redistribuição
- Indicar claramente quaisquer mudanças feitas nos arquivos
- Manter os avisos de direitos autorais e atribuições
Para mais detalhes, consulte o arquivo LICENSE no repositório.
Como dizem os Fremen: "Respeite as regras do deserto, e o deserto respeitará você."
FAQ e Solução de Problemas
Como um Fremen que enfrenta os desafios do deserto com sabedoria, aqui estão respostas para perguntas frequentes e soluções para problemas comuns que você pode encontrar ao utilizar o SpiceCode.
Perguntas Frequentes
O que torna o SpiceCode diferente de outras ferramentas de análise de código?
O SpiceCode foi desenvolvido com foco na simplicidade e independência. Todos os lexers e parsers são construídos nativamente, sem depender de bibliotecas externas de análise de código. Isso nos dá controle total sobre o processo de análise e permite uma experiência mais consistente entre as diferentes linguagens suportadas.
Quais métricas o SpiceCode analisa?
O SpiceCode analisa diversas métricas, incluindo:
- Proporção de comentários no código
- Complexidade de funções e métodos
- Padrões de nomenclatura
- Estrutura do código
- Contagem de tipos de métodos
Novas métricas são adicionadas regularmente, como novas descobertas no deserto de Arrakis.
O SpiceCode funciona em todos os sistemas operacionais?
Sim! Como os Fremen que se adaptam a diferentes regiões do deserto, o SpiceCode funciona em Windows, macOS e Linux, desde que você tenha Python instalado.
Posso usar o SpiceCode em projetos comerciais?
Absolutamente! O SpiceCode é distribuído sob a licença Apache 2.0, que permite uso comercial. Consulte a seção de Licença para mais detalhes.
Solução de Problemas
O comando spice não é reconhecido após a instalação
Problema: Após instalar o SpiceCode, o terminal não reconhece o comando spice.
Solução:
- Verifique se o Python está no PATH do seu sistema
- Tente reinstalar o pacote com
pip install --user spicecode - Em alguns sistemas, pode ser necessário usar
python -m spicecodeem vez despice
Erro ao analisar arquivos grandes
Problema: O SpiceCode apresenta erros ou lentidão ao analisar arquivos muito grandes.
Solução:
- Considere dividir o arquivo em partes menores
- Verifique se seu sistema tem memória suficiente disponível
- Atualize para a versão mais recente do SpiceCode, que pode conter otimizações
Problemas com caracteres especiais em nomes de arquivos
Problema: Erros ao analisar arquivos com caracteres especiais ou espaços no nome.
Solução:
- Use aspas ao redor do nome do arquivo:
spice analyze "meu arquivo.js" - Evite caracteres especiais em nomes de arquivos quando possível
- Use a notação de escape apropriada para seu sistema operacional
A análise não reconhece corretamente minha linguagem de programação
Problema: O SpiceCode não identifica corretamente a linguagem do arquivo que está sendo analisado.
Solução:
- Verifique se a extensão do arquivo está correta (.py, .js, .rb, .go)
- Certifique-se de que está usando a versão mais recente do SpiceCode
- Se o problema persistir, reporte-o como uma issue no GitHub
Como dizem os Fremen: "O homem que pode destruir uma coisa, controla essa coisa." Conhecer os problemas e suas soluções dá a você controle sobre sua experiência com o SpiceCode.
Visite nossa página no registro PyPI: https://pypi.org/project/spicecode/
A especiaria deve fluir, e seu código deve ser apimentado! 🌶️🔥
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spicecode-2.2.0.tar.gz.
File metadata
- Download URL: spicecode-2.2.0.tar.gz
- Upload date:
- Size: 53.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
296a5e2ed3c8dc009b9ff7b0dcd507146371cbcfda33a83cc706b1bf6ce6af5c
|
|
| MD5 |
dfe2ecf24b8d77c477e0b29d31a695cf
|
|
| BLAKE2b-256 |
9daa4d78919ef48ea5ac1735f0c8d37d010677a7078aad4475f2c97ece443f48
|
Provenance
The following attestation bundles were made for spicecode-2.2.0.tar.gz:
Publisher:
publishing.yml on spicecodecli/spicecode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spicecode-2.2.0.tar.gz -
Subject digest:
296a5e2ed3c8dc009b9ff7b0dcd507146371cbcfda33a83cc706b1bf6ce6af5c - Sigstore transparency entry: 219734600
- Sigstore integration time:
-
Permalink:
spicecodecli/spicecode@1c9d86411c00e233a97e36af6e38d53535a7c5da -
Branch / Tag:
refs/tags/2.2.0 - Owner: https://github.com/spicecodecli
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publishing.yml@1c9d86411c00e233a97e36af6e38d53535a7c5da -
Trigger Event:
push
-
Statement type:
File details
Details for the file spicecode-2.2.0-py3-none-any.whl.
File metadata
- Download URL: spicecode-2.2.0-py3-none-any.whl
- Upload date:
- Size: 68.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaf5b5e61f9b2ef91f8bb48edf527e7f5cf8ecfa49b25a2874eb9b39cf1ed895
|
|
| MD5 |
7e89e942438ed01564d8ce4aa246b233
|
|
| BLAKE2b-256 |
cedc12b76eaa076430ae4077ca65489ccc23b75b6d04da136275673053a2d3f9
|
Provenance
The following attestation bundles were made for spicecode-2.2.0-py3-none-any.whl:
Publisher:
publishing.yml on spicecodecli/spicecode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spicecode-2.2.0-py3-none-any.whl -
Subject digest:
eaf5b5e61f9b2ef91f8bb48edf527e7f5cf8ecfa49b25a2874eb9b39cf1ed895 - Sigstore transparency entry: 219734601
- Sigstore integration time:
-
Permalink:
spicecodecli/spicecode@1c9d86411c00e233a97e36af6e38d53535a7c5da -
Branch / Tag:
refs/tags/2.2.0 - Owner: https://github.com/spicecodecli
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publishing.yml@1c9d86411c00e233a97e36af6e38d53535a7c5da -
Trigger Event:
push
-
Statement type: