Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## 1.2.0 (unreleased)

- add pyrefly type checker support

## 1.1.0 (2025-03-20)

- Chore: Build-system update and minor cleanups.
Expand Down
49 changes: 49 additions & 0 deletions src/mxmake/topics/qa/pyrefly.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#:[pyrefly]
#:title = pyrefly
#:description = Static code analysis with pyrefly https://pyrefly.org/
#:depends = core.packages
#:
#:[target.pyrefly]
#:description = Run pyrefly.
#:
#:[setting.PYREFLY_SRC]
#:description = Source folder for code analysis. Left empty to use value from pyproject.toml
#:default = src/**
#:
#:[setting.PYREFLY_REQUIREMENTS]
#:description = Python requirements to be installed (via pip).
#:default =
#:
#:[target.pyrefly-dirty]
#:description = Marks pyrefly dirty
#:
#:[target.pyrefly-clean]
#:description = Uninstall pyrefly and removes cached data.

##############################################################################
# pyrefly
##############################################################################

PYREFLY_TARGET:=$(SENTINEL_FOLDER)/pyrefly.sentinel
$(PYREFLY_TARGET): $(MXENV_TARGET)
@echo "Install pyrefly"
@$(PYTHON_PACKAGE_COMMAND) install pyrefly $(PYREFLY_REQUIREMENTS)
@touch $(PYREFLY_TARGET)

.PHONY: pyrefly
pyrefly: $(PACKAGES_TARGET) $(PYREFLY_TARGET)
@echo "Run pyrefly"
@pyrefly $(PYREFLY_SRC)

.PHONY: pyrefly-dirty
pyrefly-dirty:
@rm -f $(PYREFLY_TARGET)

.PHONY: pyrefly-clean
pyrefly-clean: pyrefly-dirty
@test -e $(MXENV_PYTHON) && $(MXENV_PYTHON) -m pip uninstall -y pyrefly || :

INSTALL_TARGETS+=$(PYREFLY_TARGET)
CHECK_TARGETS+=pyrefly-check
CLEAN_TARGETS+=pyrefly-clean
DIRTY_TARGETS+=pyrefly-dirty