Streamware Quick (sq) to uproszczony interfejs CLI z krótszymi komendami.
pip install -e .
Po instalacji dostępne są komendy:
streamware - pełny CLIsq - quick CLI (uproszczony)sq [komenda] [argumenty] [opcje]
Oryginalny sposób:
streamware "http://api.example.com/data" \
--pipe "transform://json" \
--pipe "file://write?path=output.json"
Quick sposób:
sq get api.example.com/data --json --save output.json
Przykłady:
# Prosty GET
sq get api.example.com/users
# GET z JSON
sq get api.example.com/users --json
# GET i zapisz
sq get api.example.com/users --json --save users.json
# GET z pretty print
sq get api.example.com/users --json --pretty
# GET i konwertuj do CSV
sq get api.example.com/users --json --csv --save users.csv
# POST z danymi
sq post api.example.com/users --data '{"name":"Alice","age":30}'
# POST z pliku
sq post api.example.com/users --data @user.json --json
# POST i zapisz response
sq post api.example.com/users --data @user.json --json --save response.json
Oryginalny:
streamware "file://read?path=input.json" \
--pipe "transform://json" \
--pipe "transform://csv" \
--pipe "file://write?path=output.csv"
Quick:
sq file input.json --json --csv --save output.csv
Przykłady:
# Czytaj i wyświetl
sq file data.json
# JSON do CSV
sq file data.json --json --csv --save output.csv
# Base64 encode
sq file image.png --base64 --save encoded.txt
# Base64 decode
sq file encoded.txt --base64 --decode --save image.png
# Transformuj JSON
sq file input.json --json --save output.json
Oryginalny:
streamware "kafka://consume?topic=events&group=processor" \
--pipe "transform://json" \
--stream
Quick:
sq kafka events --consume --group processor --json --stream
Przykłady:
# Consume messages
sq kafka events --consume --group mygroup
# Consume z JSON parsing
sq kafka events --consume --json
# Stream mode
sq kafka events --consume --stream
# Produce message
sq kafka events --produce --data '{"event":"user_login"}'
Oryginalny:
streamware "postgres://query?sql=SELECT * FROM users" \
--pipe "transform://csv" \
--pipe "file://write?path=users.csv"
Quick:
sq postgres "SELECT * FROM users" --csv --save users.csv
Przykłady:
# Query do JSON
sq postgres "SELECT * FROM users" --json
# Query do CSV
sq postgres "SELECT * FROM users WHERE active=true" --csv --save users.csv
# Query i wyświetl
sq postgres "SELECT COUNT(*) FROM orders"
Oryginalny:
streamware "email://send?to=user@example.com&subject=Hello" \
--data "Message body"
Quick:
sq email user@example.com --subject "Hello" --body "Message body"
Przykłady:
# Prosta wiadomość
sq email user@example.com --subject "Test" --body "Hello World"
# Z pliku
sq email user@example.com --subject "Report" --file report.html
# HTML email
sq email user@example.com \
--subject "Monthly Report" \
--file report.html
Oryginalny:
streamware "slack://send?channel=general&token=xoxb-TOKEN" \
--data "Hello team!"
Quick:
sq slack general --message "Hello team!" --token xoxb-TOKEN
Przykłady:
# Z tokenem
sq slack general --message "Deployment complete!" --token xoxb-TOKEN
# Z env variable (SLACK_BOT_TOKEN)
export SLACK_BOT_TOKEN=xoxb-your-token
sq slack general --message "Hello!"
# Alert message
sq slack alerts --message "Error occurred in production!"
Przykłady:
# JSON transform
echo '{"name":"Alice"}' | sq transform json
# CSV transform
sq transform csv --input data.json --output data.csv
# Base64 encode
sq transform base64 --input file.txt --output encoded.txt
# Base64 decode
sq transform base64 --input encoded.txt --output file.txt --decode
Oryginalny (długi):
streamware "http://api.example.com/data" \
--pipe "transform://json" \
--pipe "file://write?path=output.json"
Quick (krótki):
sq get api.example.com/data --json --save output.json
Oszczędność: 80% mniej tekstu! ✨
Oryginalny:
streamware "file://read?path=input.json" \
--pipe "transform://json" \
--pipe "transform://csv" \
--pipe "file://write?path=output.csv"
Quick:
sq file input.json --json --csv --save output.csv
Oszczędność: 75% mniej tekstu! ✨
Oryginalny:
streamware "kafka://consume?topic=events&group=processor" \
--pipe "transform://json" \
--stream
Quick:
sq kafka events --consume --group processor --json --stream
Oszczędność: 60% mniej tekstu! ✨
--debug Włącz debug mode
--quiet, -q Tryb cichy (bez output)
Przykłady:
# Debug mode
sq get api.example.com/data --json --debug
# Quiet mode
sq email user@example.com --subject "Test" --body "Hi" --quiet
# Pobierz, parsuj, zapisz
sq get shop.example.com/products --json --save products.json
# Przekształć do CSV
sq file products.json --json --csv --save products.csv
# Extract
sq postgres "SELECT * FROM orders WHERE date=CURRENT_DATE" \
--json --save raw_orders.json
# Transform
sq file raw_orders.json --json --csv --save orders.csv
# Load (przykład)
# psql -c "\COPY orders FROM orders.csv CSV HEADER"
# Sprawdź API i wyślij alert
sq get api.example.com/health --json || \
sq slack alerts --message "API down!" --token $SLACK_TOKEN
# Export z bazy do pliku
sq postgres "SELECT * FROM users WHERE active=true" \
--csv --save active_users.csv
# Send via email
sq email manager@company.com \
--subject "Active Users Report" \
--file active_users.csv
# Daily backup script
#!/bin/bash
DATE=$(date +%Y%m%d)
sq postgres "SELECT * FROM important_data" \
--json --save backup_$DATE.json
sq slack backups \
--message "Backup completed: backup_$DATE.json"
Dodaj do ~/.bashrc lub ~/.zshrc:
# Aliasy
alias sqg='sq get'
alias sqf='sq file'
alias sqk='sq kafka'
alias sqp='sq postgres'
# Funkcje
sqget() {
sq get "$1" --json --save "${2:-output.json}"
}
sqcsv() {
sq file "$1" --json --csv --save "${2:-output.csv}"
}
sqdb() {
sq postgres "$1" --csv --save "${2:-query_result.csv}"
}
# Użycie:
sqget api.example.com/data data.json
sqcsv data.json data.csv
sqdb "SELECT * FROM users" users.csv
# HTTP
sq get URL [--json] [--csv] [--save FILE]
sq post URL --data DATA [--json] [--save FILE]
# Files
sq file PATH [--json] [--csv] [--base64] [--save FILE]
# Messaging
sq kafka TOPIC [--consume|--produce] [--json] [--stream]
# Database
sq postgres "SQL" [--json] [--csv] [--save FILE]
# Communication
sq email TO --subject SUBJECT [--body TEXT|--file FILE]
sq slack CHANNEL --message TEXT [--token TOKEN]
# Transform
sq transform TYPE [--input FILE] [--output FILE]
sq get jsonplaceholder.typicode.com/users --json --save users.json
sq file users.json --json --csv --save users.csv
cat users.csv | head -5
Gotowe! 3 proste komendy. 🎉
| Oryginalny | Quick | Oszczędność |
|---|---|---|
streamware "http://api.com" |
sq get api.com |
60% |
--pipe "transform://json" |
--json |
85% |
--pipe "file://write?path=out.json" |
--save out.json |
75% |
Q: Czy mogę używać obu CLI jednocześnie?
A: Tak! streamware dla złożonych operacji, sq dla szybkich.
Q: Czy wszystkie funkcje są dostępne w sq?
A: Najczęstsze operacje są. Dla zaawansowanych używaj streamware.
Q: Jak ustawić domyślny token dla Slack?
A: export SLACK_BOT_TOKEN=xoxb-your-token
Q: Czy sq działa z pipe?
A: Tak! cat data.json | sq transform json
Przykład kompletnego workflow:
# 1. Pobierz użytkowników
sq get api.example.com/users --json --save users.json
# 2. Filtruj aktywnych (można użyć jq)
cat users.json | jq '.[] | select(.active==true)' > active.json
# 3. Konwertuj do CSV
sq file active.json --json --csv --save active.csv
# 4. Wyślij raport
sq email manager@company.com \
--subject "Active Users" \
--file active.csv
# 5. Notyfikacja
sq slack reports \
--message "Users report sent to manager@company.com"
Quick, simple, powerful! 🚀