Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add Python formatting targets (black, flake8) #544

Merged
merged 6 commits into from
Jan 30, 2024
Merged
Show file tree
Hide file tree
Changes from 5 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
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -224,3 +224,6 @@ if(BUILD_TESTING)
endif()
#--- add CMake infrastructure --------------------------------------------------
include(cmake/podioCreateConfig.cmake)

#--- code format targets -------------------------------------------------------
include(cmake/pythonFormat.cmake)
33 changes: 33 additions & 0 deletions cmake/pythonFormat.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Additional target to run python linters and formatters on python scripts
#
# Requires black/flake8 to be available in the environment


# Get all our Python files
file(GLOB_RECURSE ALL_PYTHON_FILES ${PROJECT_SOURCE_DIR}/*.py)

# Black is rather simple because there are no options...
find_program(BLACK_EXECUTABLE black)
if(BLACK_EXECUTABLE)
add_custom_target(
black
COMMAND ${BLACK_EXECUTABLE}
${ALL_PYTHON_FILES}
)
set_target_properties(black PROPERTIES EXCLUDE_FROM_ALL TRUE)
else()
message(STATUS "Failed to find black executable - no target to run black can be set")
endif()

find_program(FLAKE8_EXECUTABLE flake8)
if(FLAKE8_EXECUTABLE)
add_custom_target(
flake8
COMMAND ${FLAKE8_EXECUTABLE}
--config=${CMAKE_CURRENT_SOURCE_DIR}/.flake8
${ALL_PYTHON_FILES}
)
set_target_properties(flake8 PROPERTIES EXCLUDE_FROM_ALL TRUE)
else()
message(STATUS "Failed to find flake8 executable - no target to run flake8 can be set")
endif()
Loading