Skip to content

Commit b5b18c7

Browse files
update
1 parent 5a4b1e6 commit b5b18c7

3 files changed

Lines changed: 196 additions & 0 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/bin/bash
2+
3+
# Skrypt do sprawdzania i poprawiania jakości kodu
4+
# Autor: Tom
5+
# Data: 2025-05-13
6+
7+
echo "=== Narzędzia do podnoszenia jakości kodu ==="
8+
9+
# Instalacja narzędzi jeśli nie istnieją
10+
echo "Sprawdzanie i instalacja narzędzi do analizy kodu..."
11+
pip install --no-cache-dir black flake8 pylint mypy isort pytest tox 2>/dev/null
12+
13+
# Formatowanie kodu przy użyciu black
14+
echo -e "\n=== Formatowanie kodu (black) ==="
15+
black --line-length 88 /app/*.py || echo "Wystąpiły błędy podczas formatowania kodu"
16+
17+
# Sortowanie importów
18+
echo -e "\n=== Sortowanie importów (isort) ==="
19+
isort --profile black /app/*.py || echo "Wystąpiły błędy podczas sortowania importów"
20+
21+
# Analiza statyczna kodu
22+
echo -e "\n=== Analiza statyczna kodu (flake8) ==="
23+
flake8 --max-line-length=88 --extend-ignore=E203 /app/*.py || echo "Znaleziono problemy z kodem"
24+
25+
# Analiza typów
26+
echo -e "\n=== Analiza typów (mypy) ==="
27+
mypy --ignore-missing-imports /app/*.py || echo "Znaleziono problemy z typami"
28+
29+
# Pylint
30+
echo -e "\n=== Analiza kodu (pylint) ==="
31+
pylint --disable=C0111,C0103,C0303,W0621,C0301,W0212,W0703,R0913,R0914 /app/*.py || echo "Znaleziono problemy z kodem"
32+
33+
# Raport podsumowujący
34+
echo -e "\n=== Podsumowanie analizy kodu ==="
35+
echo "Sprawdź powyższe wyniki, aby poprawić jakość kodu."
36+
echo "Aby automatycznie naprawić część problemów, uruchom: ./scripts/code_quality.sh --fix"
37+
38+
# Automatyczne naprawianie problemów
39+
if [ "$1" == "--fix" ]; then
40+
echo -e "\n=== Automatyczne naprawianie problemów ==="
41+
black --line-length 88 /app/*.py
42+
isort --profile black /app/*.py
43+
echo "Podstawowe problemy zostały naprawione."
44+
fi
45+
46+
echo "=== Analiza kodu zakończona ==="
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
#!/bin/bash
2+
3+
# Skrypt do zarządzania cache Docker i pakietów Pythona
4+
# Autor: Tom
5+
# Data: 2025-05-13
6+
7+
set -e
8+
9+
echo "=== Zarządzanie cache Docker i pakietów Pythona ==="
10+
11+
# Funkcja do wyświetlania rozmiaru
12+
format_size() {
13+
local size=$1
14+
if [ $size -ge 1073741824 ]; then
15+
echo "$(awk "BEGIN {printf \"%.2f\", $size/1073741824}") GB"
16+
elif [ $size -ge 1048576 ]; then
17+
echo "$(awk "BEGIN {printf \"%.2f\", $size/1048576}") MB"
18+
elif [ $size -ge 1024 ]; then
19+
echo "$(awk "BEGIN {printf \"%.2f\", $size/1024}") KB"
20+
else
21+
echo "$size bajtów"
22+
fi
23+
}
24+
25+
# Sprawdzenie wolumenów Docker
26+
echo "Sprawdzanie wolumenów Docker..."
27+
docker volume ls | grep -E 'pip-cache|wheel-cache|models-cache' || echo "Brak wolumenów cache"
28+
29+
# Utworzenie wolumenów cache jeśli nie istnieją
30+
echo "Tworzenie wolumenów cache jeśli nie istnieją..."
31+
docker volume create coboarding-pip-cache 2>/dev/null || true
32+
docker volume create coboarding-wheel-cache 2>/dev/null || true
33+
docker volume create coboarding-models-cache 2>/dev/null || true
34+
35+
# Sprawdzenie rozmiaru obrazów Docker
36+
echo -e "\nSprawdzanie rozmiaru obrazów Docker..."
37+
docker images --format "{{.Repository}}:{{.Tag}} - {{.Size}}" | grep -E 'llm-orchestrator|coboarding'
38+
39+
# Sprawdzenie cache pip
40+
echo -e "\nSprawdzanie cache pip..."
41+
PIP_CACHE_SIZE=$(du -sb ~/.cache/pip 2>/dev/null | cut -f1 || echo 0)
42+
echo "Rozmiar lokalnego cache pip: $(format_size $PIP_CACHE_SIZE)"
43+
44+
# Funkcja do budowania obrazu z wykorzystaniem cache
45+
build_with_cache() {
46+
echo -e "\nBudowanie obrazu z wykorzystaniem cache wolumenów..."
47+
docker build \
48+
--build-arg BUILDKIT_INLINE_CACHE=1 \
49+
--cache-from llm-orchestrator-min:latest \
50+
--tag llm-orchestrator-min:latest \
51+
--file containers/llm-orchestrator-min/Dockerfile \
52+
--volume coboarding-pip-cache:/root/.cache/pip \
53+
--volume coboarding-wheel-cache:/app/wheels \
54+
.
55+
}
56+
57+
# Funkcja do czyszczenia nieużywanych obrazów i kontenerów
58+
clean_docker() {
59+
echo -e "\nCzyszczenie nieużywanych obrazów i kontenerów..."
60+
docker container prune -f
61+
docker image prune -f
62+
echo "Czyszczenie zakończone."
63+
}
64+
65+
# Funkcja do zapisywania i wczytywania obrazów Docker
66+
save_docker_image() {
67+
echo -e "\nZapisywanie obrazu Docker do pliku..."
68+
mkdir -p ./docker-images
69+
docker save llm-orchestrator-min:latest | gzip > ./docker-images/llm-orchestrator-min-latest.tar.gz
70+
echo "Obraz zapisany do ./docker-images/llm-orchestrator-min-latest.tar.gz"
71+
}
72+
73+
load_docker_image() {
74+
echo -e "\nWczytywanie obrazu Docker z pliku..."
75+
if [ -f ./docker-images/llm-orchestrator-min-latest.tar.gz ]; then
76+
docker load < ./docker-images/llm-orchestrator-min-latest.tar.gz
77+
echo "Obraz wczytany pomyślnie."
78+
else
79+
echo "Plik obrazu nie istnieje!"
80+
fi
81+
}
82+
83+
# Obsługa argumentów
84+
case "$1" in
85+
build)
86+
build_with_cache
87+
;;
88+
clean)
89+
clean_docker
90+
;;
91+
save)
92+
save_docker_image
93+
;;
94+
load)
95+
load_docker_image
96+
;;
97+
status)
98+
# Już wyświetliliśmy status na początku
99+
;;
100+
*)
101+
echo -e "\nUżycie: $0 {build|clean|save|load|status}"
102+
echo " build - Buduje obraz Docker z wykorzystaniem cache"
103+
echo " clean - Czyści nieużywane obrazy i kontenery"
104+
echo " save - Zapisuje obraz Docker do pliku"
105+
echo " load - Wczytuje obraz Docker z pliku"
106+
echo " status - Wyświetla status cache i obrazów"
107+
;;
108+
esac
109+
110+
echo -e "\n=== Zarządzanie cache zakończone ==="
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
[tox]
2+
envlist = py39, lint, type
3+
isolated_build = True
4+
5+
[testenv]
6+
deps =
7+
pytest
8+
pytest-cov
9+
commands =
10+
pytest --cov=. --cov-report=term-missing {posargs}
11+
12+
[testenv:lint]
13+
deps =
14+
black
15+
flake8
16+
isort
17+
commands =
18+
black --check --line-length 88 .
19+
flake8 .
20+
isort --check --profile black .
21+
22+
[testenv:type]
23+
deps =
24+
mypy
25+
commands =
26+
mypy --ignore-missing-imports .
27+
28+
[flake8]
29+
max-line-length = 88
30+
extend-ignore = E203
31+
exclude = .tox,*.egg,build,data
32+
select = E,W,F
33+
34+
[isort]
35+
profile = black
36+
line_length = 88
37+
38+
[pytest]
39+
testpaths = tests
40+
python_files = test_*.py

0 commit comments

Comments
 (0)