@@ -103,12 +103,27 @@ endef
103103# 🌱 VIRTUAL ENVIRONMENT & INSTALLATION
104104# =============================================================================
105105# help: 🌱 VIRTUAL ENVIRONMENT & INSTALLATION
106+ # help: uv - Ensure uv is installed or install it if needed
106107# help: venv - Create a fresh virtual environment with uv & friends
107108# help: activate - Activate the virtual environment in the current shell
108109# help: install - Install project into the venv
109110# help: install-dev - Install project (incl. dev deps) into the venv
110111# help: install-db - Install project (incl. postgres and redis) into venv
111112# help: update - Update all installed deps inside the venv
113+ .PHONY : uv
114+ uv :
115+ @if ! type uv > /dev/null 2>&1 ; then \
116+ echo " 🔧 'uv' not found - installing..." ; \
117+ if type brew > /dev/null 2>&1 ; then \
118+ echo " 🍺 Installing 'uv' via Homebrew..." ; \
119+ brew install uv; \
120+ else \
121+ echo " 🐍 Installing 'uv' via local install script..." ; \
122+ curl -LsSf https://astral.sh/uv/install.sh | sh ; \
123+ echo " 💡 Make sure to add 'uv' to your PATH if not done automatically." ; \
124+ fi ; \
125+ fi
126+
112127.PHONY : venv
113128venv :
114129 @rm -Rf " $( VENV_DIR) "
@@ -1010,8 +1025,9 @@ isort-check:
10101025flake8 : # # 🐍 flake8 checks
10111026 @echo " 🐍 flake8 $( TARGET) ..." && $(VENV_DIR ) /bin/flake8 $(TARGET )
10121027
1013- pylint : # # 🐛 pylint checks
1014- @echo " 🐛 pylint $( TARGET) (parallel)..." && $(VENV_DIR ) /bin/pylint -j 8 $(TARGET )
1028+ pylint : uv # # 🐛 pylint checks
1029+ @echo " 🐛 pylint $( TARGET) (parallel)..."
1030+ uv run pylint -j 0 --fail-on E --fail-under 10 $(TARGET )
10151031
10161032markdownlint : # # 📖 Markdown linting
10171033 @# Install markdownlint-cli2 if not present
0 commit comments