A command-line tool for converting strings between different case styles
Project description
case-cli
case-cli é uma ferramenta de linha de comando para normalizar cadeias de texto entre estilos diferentes (snake_case, camelCase, PascalCase e outros). Ela resolve o problema de ajustar nomes padronizados em scripts, documentação ou convenções de API sem depender de editores ou procedimentos manuais.
Funcionalidades
- Converte entradas de texto para 15 estilos de escrita, incluindo upper, lower, snake, kebab, constant, ada, cobol, train, header, sentence e dot.
- Aceita nomes completos e apelidos (por exemplo,
snakeous), além de ser case-insensitive ao identificar o estilo desejado. - Permite persistir um estilo padrão via
case-cli set <style>, armazenando a preferência em~/.case-cli/config.jsonou no caminho configurado porCASE_CLI_CONFIG_PATH. - Sobrepõe o estilo padrão com a variável
CASE_CLI_DEFAULT_CASEe ajusta o nível de log comCASE_CLI_LOG_LEVEL. - Arquitetura modular separa o parser CLI, mapeamento de estilos e lógica de cada estilo em módulos dedicados, facilitando a manutenção.
Demonstração
case-cli "hello world" --case=snake
# hello_world
case-cli set pascal
# Default case style set to 'pascal'.
case-cli "another example"
# AnotherExample
Ao executar sem
--case, o utilitário consulta primeiroCASE_CLI_DEFAULT_CASEe depois o arquivo de configuração em~/.case-cli/config.jsonpara decidir o estilo.
Tecnologias e bibliotecas
- Python 3.6+ (padrão do pacote, conforme
pyproject.toml) argparseelogging(CLI e registros)jsoneos(persistência da configuração padrão)pytestepytest-covpara validação automatizada (dependências de desenvolvimento)
Organização do projeto
case_cli/– pacote principal com o ponto de entrada (main.py), dispatcher (converter.py), persistência (config.py) e implementações por estilo (styles/).tests/– suíte de testes unitários para converter estilos e manipular configuração.pyproject.toml– configuração de empacotamento e metadados do projeto.
Variáveis de ambiente
| Variável | Valor padrão | Descrição |
|---|---|---|
CASE_CLI_CONFIG_PATH |
~/.case-cli/config.json |
Caminho do arquivo que guarda o estilo padrão. |
CASE_CLI_DEFAULT_CASE |
(não definido) | Sobrepõe temporariamente o estilo padrão ao converter. |
CASE_CLI_LOG_LEVEL |
WARNING |
Ajusta o nível de log (DEBUG, INFO, WARNING, ERROR). |
Licença
Distribuído sob a licença MIT. Consulte o arquivo LICENSE para a redação completa e os direitos de uso.
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 case_cli-0.1.1.tar.gz.
File metadata
- Download URL: case_cli-0.1.1.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e26356488105f994ee1389e34317941163674ba2c2398c8e8e8f1df79c7e12d
|
|
| MD5 |
b83a8ae8d3794f3e41f7cdcd136b8ea0
|
|
| BLAKE2b-256 |
8e8221a6e3dcfad319a246b55ebfff71bb4cb75ce4d17b748165d80a4a6ca713
|
Provenance
The following attestation bundles were made for case_cli-0.1.1.tar.gz:
Publisher:
release.yml on sigaocaue/case-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
case_cli-0.1.1.tar.gz -
Subject digest:
3e26356488105f994ee1389e34317941163674ba2c2398c8e8e8f1df79c7e12d - Sigstore transparency entry: 1181535509
- Sigstore integration time:
-
Permalink:
sigaocaue/case-cli@ac14c2ec6b372281646744997e92f4569b6f97bb -
Branch / Tag:
refs/heads/main - Owner: https://github.com/sigaocaue
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ac14c2ec6b372281646744997e92f4569b6f97bb -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file case_cli-0.1.1-py3-none-any.whl.
File metadata
- Download URL: case_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 15.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ff2fb5ffbee41c8f1fd1a421573dc86ec0255214be78a147bdb9334e14dd859
|
|
| MD5 |
1f122778c9eef702cc8a3743eaff312c
|
|
| BLAKE2b-256 |
b932468d3064ecbcbb446f740d09ecfb8ff8d68a03932f163aa442a1afe88ce7
|
Provenance
The following attestation bundles were made for case_cli-0.1.1-py3-none-any.whl:
Publisher:
release.yml on sigaocaue/case-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
case_cli-0.1.1-py3-none-any.whl -
Subject digest:
2ff2fb5ffbee41c8f1fd1a421573dc86ec0255214be78a147bdb9334e14dd859 - Sigstore transparency entry: 1181535575
- Sigstore integration time:
-
Permalink:
sigaocaue/case-cli@ac14c2ec6b372281646744997e92f4569b6f97bb -
Branch / Tag:
refs/heads/main - Owner: https://github.com/sigaocaue
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ac14c2ec6b372281646744997e92f4569b6f97bb -
Trigger Event:
workflow_dispatch
-
Statement type: