Skip to content

Commit ee50ecf

Browse files
committed
cras_lint: Added package and applied linting to other packages.
1 parent f5a8387 commit ee50ecf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+4304
-227
lines changed

cras_bag_tools/CMakeLists.txt

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,14 @@ install(
1919
DESTINATION share/${PROJECT_NAME}
2020
)
2121

22-
#if(CATKIN_ENABLE_TESTING)
23-
# find_package(roslint REQUIRED)
24-
#
25-
# roslint_custom(catkin_lint "-W2" .)
26-
#
27-
# # Run roslint on Python sources
28-
# file(GLOB_RECURSE python_files scripts/* src/*.py)
29-
# roslint_python("${python_files}")
30-
#
31-
# roslint_add_test()
32-
#endif()
22+
if(BUILD_TESTING)
23+
find_package(cras_lint REQUIRED)
24+
cras_lint_common()
25+
cras_lint_py(EXCLUDE
26+
cras_bag_tools/bag_filter.py
27+
cras_bag_tools/message_filter.py
28+
cras_bag_tools/message_filters.py
29+
)
30+
endif()
3331

3432
ament_package()

cras_bag_tools/cras_bag_tools/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@
66
# from .message_filter import MessageFilter, DeserializedMessageFilter, RawMessageFilter, FilterChain, Passthrough, \
77
# filter_message, get_filters
88
# from .bag_filter import filter_bag
9+
10+
__all__ = [TopicSet, BagIterator, TqdmBag]

cras_bag_tools/cras_bag_tools/topic_set.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,25 @@
11
# SPDX-License-Identifier: BSD-3-Clause
22
# SPDX-FileCopyrightText: Czech Technical University in Prague
33

4-
"""Efficient data structure to hold a static set of topics with super-fast is-in-set queries.
4+
"""
5+
Efficient data structure to hold a static set of topics with super-fast is-in-set queries.
56
67
The querying is done using expressions like `topic in set` or `topic not in set`.
78
"""
89

910

1011
import sys
11-
from typing import AnyStr, Iterable
12+
from typing import Iterable, Optional
1213

1314

1415
class TopicSet(object):
1516
"""Efficient data structure to hold a static set of topics with super-fast is-in-set queries."""
1617

17-
def __init__(self, items=None):
18-
"""Build the data structure. Adding items later is not supported.
18+
def __init__(self, items: Optional[Iterable[str]] = None):
19+
"""
20+
Build the data structure. Adding items later is not supported.
1921
20-
:param Iterable[AnyStr]|None items: The topics to search. Leading slash will be removed.
22+
:param items: The topics to search. Leading slash will be removed.
2123
"""
2224
self._empty = False
2325
if items is None or not items:
@@ -36,7 +38,7 @@ def __init__(self, items=None):
3638
self._trie.build(keyset)
3739
except ImportError:
3840
if not TopicSet._warned:
39-
print("!!!\n!!!\nInstall python-marisa or python3-marisa for up to 100% speedup!!!\n!!!\n!!!",
41+
print('!!!\n!!!\nInstall python-marisa or python3-marisa for up to 100% speedup!!!\n!!!\n!!!',
4042
file=sys.stderr)
4143
TopicSet._warned = True
4244
self._set = set(self._items)

cras_bag_tools/cras_bag_tools/tqdm_bag.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,19 @@
44
"""Bag file reader that shows progressbars when reading messages."""
55

66
import os
7+
from typing import Any, Generator, Optional, Union
8+
79
import rosbag2_py
810
from tqdm import tqdm
9-
from typing import Optional, Tuple, Union, Any, Generator
1011

1112

1213
class BagIterator(rosbag2_py.SequentialReader):
1314
"""Utility class for easier working with ROS2 BAG files."""
1415

1516
def __init__(self, storage_options: Union[rosbag2_py.StorageOptions, str],
16-
converter_options: rosbag2_py.ConverterOptions = rosbag2_py.ConverterOptions("", "")):
17-
"""Construct the bag iterator and give it arguments for opening the bag, but do not open it yet.
17+
converter_options: rosbag2_py.ConverterOptions = rosbag2_py.ConverterOptions('', '')):
18+
"""
19+
Construct the bag iterator and give it arguments for opening the bag, but do not open it yet.
1820
1921
:param storage_options: Storage options.
2022
:param converter_options: Converter options.
@@ -30,7 +32,8 @@ def __init__(self, storage_options: Union[rosbag2_py.StorageOptions, str],
3032
def read_messages(self, topics: Optional[list[str]] = None,
3133
start_time: Optional[int] = None, end_time: Optional[int] = None) -> \
3234
Generator[tuple[str, bytes, int], Any, None]:
33-
"""Iterate through messages in the bag.
35+
"""
36+
Iterate through messages in the bag.
3437
3538
:param topics: If nonempty, this is the list of topics to filter by.
3639
:param start_time: If set, this is the time of the first read message (in nanoseconds since epoch).

cras_bag_tools/doc/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
# CRAS_DOCS_COMMON_SPHINX_THEME_PATH and CRAS_DOCS_COMMON_SPHINX_HTML_THEME
88

99
# include the master configuration
10-
from cras_docs_common.sphinx_docs_conf import *
10+
from cras_docs_common.sphinx_docs_conf import * # noqa: E402, F401, F403

cras_bag_tools/package.xml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@
3030
<exec_depend>sensor_msgs</exec_depend>
3131
<exec_depend>tf2_msgs</exec_depend>
3232

33-
<!-- <test_depend condition="$ROS_PYTHON_VERSION == 2">python-catkin-lint</test_depend>-->
34-
<!-- <test_depend condition="$ROS_PYTHON_VERSION == 3">python3-catkin-lint</test_depend>-->
35-
<!-- <test_depend>roslint</test_depend>-->
33+
<test_depend>cras_lint</test_depend>
3634

3735
<!-- <doc_depend>cras_docs_common</doc_depend>-->
3836
<!-- <doc_depend>rosdoc_lite</doc_depend>-->

cras_bag_tools/setup.py

Lines changed: 0 additions & 12 deletions
This file was deleted.

cras_cpp_common/CMakeLists.txt

Lines changed: 81 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ add_library(cras_type_traits INTERFACE)
5252
target_sources(cras_type_traits INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/type_utils/string_traits.hpp>)
5353

5454
add_library(cras_literal_sz INTERFACE)
55-
target_sources(cras_literal_sz INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/type_utils/literal_sz.h>)
55+
target_sources(cras_literal_sz INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/type_utils/literal_sz.hpp>)
5656

5757
#add_library(cras_urdf_utils src/urdf_utils.cpp)
5858
##catkin_lint: ignore_once external_interface_path
@@ -116,7 +116,7 @@ target_include_directories(cras_string_utils PUBLIC
116116
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
117117
"$<INSTALL_INTERFACE:include/${PROJECT_NAME}>")
118118
target_link_libraries(cras_string_utils PUBLIC cras_type_traits)
119-
if (HAS_FROM_CHARS_FLOAT)
119+
if(HAS_FROM_CHARS_FLOAT)
120120
target_compile_definitions(cras_string_utils PRIVATE HAS_FROM_CHARS_FLOAT=1)
121121
endif()
122122

@@ -236,13 +236,16 @@ target_link_libraries(cras_qos_utils PUBLIC rclcpp::rclcpp)
236236
# src/nodelet_utils/stateful_nodelet.cpp)
237237
#target_sources(cras_nodelet_utils INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/nodelet_utils.hpp>)
238238
#target_sources(cras_nodelet_utils INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/nodelet_utils/log_macros.h>)
239-
#target_sources(cras_nodelet_utils INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/nodelet_utils/nodelet_with_diagnostics.hpp>)
239+
#target_sources(
240+
# cras_nodelet_utils INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/nodelet_utils/nodelet_with_diagnostics.hpp>)
240241
#target_sources(cras_nodelet_utils INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/nodelet_utils/param_helper.hpp>)
241-
#target_sources(cras_nodelet_utils INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/nodelet_utils/thread_name_updating_nodelet.hpp>)
242+
#target_sources(
243+
# cras_nodelet_utils INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/nodelet_utils/thread_name_updating_nodelet.hpp>)
242244
#add_dependencies(cras_nodelet_utils ${catkin_EXPORTED_TARGETS})
243245
#target_link_libraries(cras_nodelet_utils
244-
# PUBLIC cras_diag_updater cras_diag_utils cras_log_utils cras_message_utils cras_node_utils cras_param_utils cras_resettable
245-
# cras_string_utils cras_thread_utils cras_time_utils cras_tf2_utils ${catkin_LIBRARIES} Boost::boost)
246+
# PUBLIC cras_diag_updater cras_diag_utils cras_log_utils cras_message_utils cras_node_utils cras_param_utils
247+
# cras_resettable cras_string_utils cras_thread_utils cras_time_utils cras_tf2_utils ${catkin_LIBRARIES}
248+
# Boost::boost)
246249

247250
#add_library(cras_filter_chain_nodelet INTERFACE)
248251
#target_sources(cras_filter_chain_nodelet INTERFACE $<BUILD_INTERFACE:${CCC_INCLUDE_BASE}/filter_chain_nodelet.hpp>)
@@ -300,7 +303,6 @@ install(TARGETS
300303
cras_type_traits
301304
cras_type_utils
302305
# cras_urdf_utils
303-
# nodelet_manager_sharing_tf_buffer # Technically, having the executable here is wrong, but we keep it for compatibility
304306

305307
EXPORT export_${PROJECT_NAME}
306308
ARCHIVE DESTINATION lib
@@ -314,33 +316,65 @@ install(TARGETS
314316
# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
315317
#)
316318

317-
#if (CATKIN_ENABLE_TESTING)
318-
# find_package(roslaunch REQUIRED)
319-
# find_package(roslint REQUIRED)
320-
# find_package(rostest REQUIRED)
321-
#
322-
# roslint_custom(catkin_lint "-W2" .)
323-
#
324-
# # Roslint C++ - checks formatting and some other rules for C++ files
325-
#
326-
# file(GLOB_RECURSE ROSLINT_INCLUDE include/*.h include/*.hpp)
327-
# list(FILTER ROSLINT_INCLUDE EXCLUDE REGEX ".*/external/.*")
328-
# list(FILTER ROSLINT_INCLUDE EXCLUDE REGEX ".*/cloud.hpp") # The big macro is full of false positives
329-
# list(FILTER ROSLINT_INCLUDE EXCLUDE REGEX ".*/nodelet_utils/nodelet_with_diagnostics.hpp") # Macros have false positives
330-
#
331-
# file(GLOB_RECURSE ROSLINT_SRC src/*.cpp src/*.hpp src/*.h)
332-
#
333-
# file(GLOB_RECURSE ROSLINT_TEST test/*.cpp)
334-
#
335-
# set(ROSLINT_CPP_OPTS "--extensions=h,hpp,hh,c,cpp,cc;--linelength=120;--filter=\
336-
# -build/header_guard,-readability/namespace,-whitespace/braces,-runtime/references,\
337-
# -build/c++11,-readability/nolint,-readability/todo,-legal/copyright")
338-
# roslint_cpp(${ROSLINT_INCLUDE} ${ROSLINT_SRC})
339-
#
340-
# set(ROSLINT_CPP_OPTS "${ROSLINT_CPP_OPTS},-build/namespaces") # allow "using namespace cras;" in tests
341-
# roslint_cpp(${ROSLINT_TEST})
342-
#
343-
# roslint_add_test()
319+
if(BUILD_TESTING)
320+
# cras_lint - checks formatting and some other rules for C++ files
321+
find_package(cras_lint REQUIRED)
322+
cras_lint_common()
323+
set(cras_lint_FILE_EXCLUDE
324+
include/${PROJECT_NAME}/cloud/impl/*
325+
include/${PROJECT_NAME}/diag_utils/*
326+
include/${PROJECT_NAME}/diag_utils/deprecated/*
327+
include/${PROJECT_NAME}/diag_utils/impl/*
328+
include/${PROJECT_NAME}/diagnostics/*
329+
include/${PROJECT_NAME}/filter_utils/*
330+
include/${PROJECT_NAME}/filter_utils/impl/*
331+
include/${PROJECT_NAME}/log_utils/*
332+
include/${PROJECT_NAME}/log_utils/deprecated/*
333+
include/${PROJECT_NAME}/node_utils/*
334+
include/${PROJECT_NAME}/nodelet_utils/*
335+
include/${PROJECT_NAME}/nodelet_utils/impl/*
336+
include/${PROJECT_NAME}/string_utils/ros.hpp
337+
include/${PROJECT_NAME}/string_utils/tf2.hpp
338+
include/${PROJECT_NAME}/test_utils/*
339+
include/${PROJECT_NAME}/tf2_utils/*
340+
include/${PROJECT_NAME}/time_utils/*
341+
include/${PROJECT_NAME}/cloud.hpp
342+
include/${PROJECT_NAME}/diag_utils.hpp
343+
include/${PROJECT_NAME}/filter_chain_nodelet.hpp
344+
include/${PROJECT_NAME}/filter_utils.hpp
345+
include/${PROJECT_NAME}/log_utils.h
346+
include/${PROJECT_NAME}/message_utils.hpp
347+
include/${PROJECT_NAME}/node_utils.hpp
348+
include/${PROJECT_NAME}/nodelet_utils.hpp
349+
include/${PROJECT_NAME}/rate_limiter.h
350+
include/${PROJECT_NAME}/resettable.h
351+
include/${PROJECT_NAME}/tf2_sensor_msgs.h
352+
include/${PROJECT_NAME}/tf2_utils.hpp
353+
include/${PROJECT_NAME}/time_utils.hpp
354+
include/${PROJECT_NAME}/urdf_utils.h
355+
nodes/*
356+
src/diag_utils/*
357+
src/log_utils/*
358+
src/node_utils/*
359+
src/nodelet_utils/*
360+
src/string_utils/ros.cpp
361+
src/tf2_utils/interruptible_buffer.cpp
362+
src/time_utils/*
363+
src/cloud.cpp
364+
src/log_utils.cpp
365+
src/rate_limiter.cpp
366+
src/resettable.cpp
367+
src/tf2_sensor_msgs.cpp
368+
src/tf2_utils.cpp
369+
src/time_utils.cpp
370+
src/urdf_utils.cpp
371+
test/*
372+
)
373+
cras_lint_cpp(EXCLUDE
374+
include/${PROJECT_NAME}/external/fast_float/*
375+
include/${PROJECT_NAME}/external/tcb/*
376+
include/${PROJECT_NAME}/external/tl/*
377+
)
344378
#
345379
# # GTEST tests (no rosmaster required)
346380
#
@@ -406,7 +440,8 @@ install(TARGETS
406440
#
407441
# # ROSTEST tests (need rosmaster)
408442
#
409-
# add_rostest_gtest(test_cras_filter_chain_nodelet test/test_filter_chain_nodelet.test test/test_filter_chain_nodelet.cpp)
443+
# add_rostest_gtest(
444+
# test_cras_filter_chain_nodelet test/test_filter_chain_nodelet.test test/test_filter_chain_nodelet.cpp)
410445
# target_link_libraries(test_cras_filter_chain_nodelet cras_filter_chain_nodelet ${catkin_LIBRARIES})
411446
# roslaunch_add_file_check(test/test_filter_chain_nodelet.test USE_TEST_DEPENDENCIES)
412447
#
@@ -439,7 +474,8 @@ install(TARGETS
439474
# add_rostest_gtest(test_cras_nodelet_get_param test/test_nodelet_get_param.test test/test_nodelet_get_param.cpp)
440475
# target_link_libraries(test_cras_nodelet_get_param cras_nodelet_utils cras_param_utils ${catkin_LIBRARIES})
441476
# target_compile_options(test_cras_nodelet_get_param PRIVATE -fno-var-tracking-assignments) # speed up build
442-
# # roslaunch_add_file_check(test/test_nodelet_get_param.test USE_TEST_DEPENDENCIES) # Disabled due to conflicting params
477+
# # Disabled due to conflicting params
478+
# # roslaunch_add_file_check(test/test_nodelet_get_param.test USE_TEST_DEPENDENCIES)
443479
#
444480
# # node_utils runs multiple tests from a single rostest launch file
445481
#
@@ -448,15 +484,17 @@ install(TARGETS
448484
# target_compile_options(test_cras_node_utils_get_param PRIVATE -fno-var-tracking-assignments) # speed up build
449485
# add_dependencies(tests test_cras_node_utils_get_param)
450486
#
451-
# catkin_add_executable_with_gtest(test_cras_node_utils_diagnostics test/test_node_utils_diagnostics.cpp EXCLUDE_FROM_ALL)
487+
# catkin_add_executable_with_gtest(
488+
# test_cras_node_utils_diagnostics test/test_node_utils_diagnostics.cpp EXCLUDE_FROM_ALL)
452489
# target_link_libraries(test_cras_node_utils_diagnostics cras_node_utils cras_param_utils ${catkin_LIBRARIES})
453490
# target_compile_options(test_cras_node_utils_diagnostics PRIVATE -fno-var-tracking-assignments) # speed up build
454491
# add_dependencies(tests test_cras_node_utils_diagnostics)
455492
# if (HAS_DESIGNATED_INITIALIZERS)
456493
# target_compile_definitions(test_cras_node_utils_diagnostics PRIVATE HAS_DESIGNATED_INITIALIZERS=1)
457494
# endif()
458495
#
459-
# catkin_add_executable_with_gtest(test_cras_node_with_master test/test_node_utils_node_with_master.cpp EXCLUDE_FROM_ALL)
496+
# catkin_add_executable_with_gtest(
497+
# test_cras_node_with_master test/test_node_utils_node_with_master.cpp EXCLUDE_FROM_ALL)
460498
# target_link_libraries(test_cras_node_with_master cras_node_utils cras_param_utils ${catkin_LIBRARIES})
461499
# add_dependencies(tests test_cras_node_with_master)
462500
#
@@ -468,7 +506,8 @@ install(TARGETS
468506
#
469507
# # nodelet_utils runs multiple tests from a single rostest launch file
470508
#
471-
# catkin_add_executable_with_gtest(test_cras_nodelet_aware_tf_buffer test/test_nodelet_aware_tf_buffer.cpp EXCLUDE_FROM_ALL)
509+
# catkin_add_executable_with_gtest(
510+
# test_cras_nodelet_aware_tf_buffer test/test_nodelet_aware_tf_buffer.cpp EXCLUDE_FROM_ALL)
472511
# target_link_libraries(test_cras_nodelet_aware_tf_buffer cras_nodelet_utils ${catkin_LIBRARIES})
473512
# add_dependencies(tests test_cras_nodelet_aware_tf_buffer)
474513
#
@@ -480,7 +519,8 @@ install(TARGETS
480519
# target_link_libraries(test_cras_nodelet_log_macros cras_nodelet_utils ${catkin_LIBRARIES})
481520
# add_dependencies(tests test_cras_nodelet_log_macros)
482521
#
483-
# catkin_add_executable_with_gtest(test_cras_nodelet_with_shared_tf_buffer test/test_nodelet_with_shared_tf_buffer.cpp EXCLUDE_FROM_ALL)
522+
# catkin_add_executable_with_gtest(
523+
# test_cras_nodelet_with_shared_tf_buffer test/test_nodelet_with_shared_tf_buffer.cpp EXCLUDE_FROM_ALL)
484524
# target_link_libraries(test_cras_nodelet_with_shared_tf_buffer cras_nodelet_utils ${catkin_LIBRARIES})
485525
# add_dependencies(tests test_cras_nodelet_with_shared_tf_buffer)
486526
#
@@ -503,7 +543,7 @@ install(TARGETS
503543
# add_rostest_gtest(test_resettable test/test_resettable.test test/test_resettable.cpp)
504544
# target_link_libraries(test_resettable cras_resettable cras_test_utils ${catkin_LIBRARIES})
505545
# roslaunch_add_file_check(test/test_resettable.test USE_TEST_DEPENDENCIES)
506-
#endif()
546+
endif()
507547

508548
ament_export_include_directories("include/${PROJECT_NAME}")
509549

cras_cpp_common/cmake/designated_initializers_try_compile.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
// SPDX-License-Identifier: BSD-3-Clause
2+
// SPDX-FileCopyrightText: Czech Technical University in Prague
3+
14
/**
25
* \file
36
* \brief Test availability of designated struct initializers.
47
* \author Martin Pecka
5-
* SPDX-License-Identifier: BSD-3-Clause
6-
* SPDX-FileCopyrightText: Czech Technical University in Prague
78
*/
89

910
struct S
@@ -15,4 +16,4 @@ struct S
1516
void fn()
1617
{
1718
S s{.b = 1};
18-
}
19+
}
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
// SPDX-License-Identifier: BSD-3-Clause
2+
// SPDX-FileCopyrightText: Czech Technical University in Prague
3+
14
/**
25
* \file
36
* \brief Test availability of std::from_chars() for floating point values.
47
* \author Martin Pecka
5-
* SPDX-License-Identifier: BSD-3-Clause
6-
* SPDX-FileCopyrightText: Czech Technical University in Prague
78
*/
89

910
#include <charconv>
@@ -13,4 +14,4 @@ void fn()
1314
double d;
1415
const char* s = "1.0";
1516
std::from_chars(s, s + 3, d);
16-
}
17+
}

0 commit comments

Comments
 (0)