Skip to content

Commit

Permalink
Add Python formatting targets (black, flake8) (#544)
Browse files Browse the repository at this point in the history
  • Loading branch information
graeme-a-stewart authored Jan 30, 2024
1 parent 541c24b commit 6ff8ff5
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
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)
35 changes: 35 additions & 0 deletions cmake/pythonFormat.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# 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}/python/*.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
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
COMMAND ${FLAKE8_EXECUTABLE}
--config=${PROJECT_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()

0 comments on commit 6ff8ff5

Please sign in to comment.