diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..3562681 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,14 @@ +# .pre-commit-config.yaml +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.1.0 # this is optional, use `pre-commit autoupdate` to get the latest rev! + hooks: + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + +- repo: https://github.com/psf/black + rev: 23.7.0 + hooks: + - id: black + name: Format Python Code (black) diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index d193766..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,204 +0,0 @@ -cmake_minimum_required(VERSION 2.8.3) -project(safety_user_plugin) - -## Compile as C++11, supported in ROS Kinetic and newer -# add_compile_options(-std=c++11) - -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages -find_package(catkin REQUIRED COMPONENTS - rospy - rqt_gui - rqt_gui_py - std_msgs - geometry_msgs -) - -## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) - - -## Uncomment this if the package has a setup.py. This macro ensures -## modules and global scripts declared therein get installed -## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -catkin_python_setup() - -################################################ -## Declare ROS messages, services and actions ## -################################################ - -## To declare and build messages, services or actions from within this -## package, follow these steps: -## * Let MSG_DEP_SET be the set of packages whose message types you use in -## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). -## * In the file package.xml: -## * add a build_depend tag for "message_generation" -## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET -## * If MSG_DEP_SET isn't empty the following dependency has been pulled in -## but can be declared for certainty nonetheless: -## * add a run_depend tag for "message_runtime" -## * In this file (CMakeLists.txt): -## * add "message_generation" and every package in MSG_DEP_SET to -## find_package(catkin REQUIRED COMPONENTS ...) -## * add "message_runtime" and every package in MSG_DEP_SET to -## catkin_package(CATKIN_DEPENDS ...) -## * uncomment the add_*_files sections below as needed -## and list every .msg/.srv/.action file to be processed -## * uncomment the generate_messages entry below -## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) - -## Generate messages in the 'msg' folder -# add_message_files( -# FILES -# RestrictionsMsg.msg -# RobotInfoMsg.msg -# ) - -## Generate services in the 'srv' folder -# add_service_files( -# FILES -# Service1.srv -# Service2.srv -# ) - -## Generate actions in the 'action' folder -# add_action_files( -# FILES -# Action1.action -# Action2.action -# ) - -## Generate added messages and services with any dependencies listed here -# generate_messages( -# DEPENDENCIES -# std_msgs -# geometry_msgs -# ) - -################################################ -## Declare ROS dynamic reconfigure parameters ## -################################################ - -## To declare and build dynamic reconfigure parameters within this -## package, follow these steps: -## * In the file package.xml: -## * add a build_depend and a run_depend tag for "dynamic_reconfigure" -## * In this file (CMakeLists.txt): -## * add "dynamic_reconfigure" to -## find_package(catkin REQUIRED COMPONENTS ...) -## * uncomment the "generate_dynamic_reconfigure_options" section below -## and list every .cfg file to be processed - -## Generate dynamic reconfigure parameters in the 'cfg' folder -# generate_dynamic_reconfigure_options( -# cfg/DynReconf1.cfg -# cfg/DynReconf2.cfg -# ) - -################################### -## catkin specific configuration ## -################################### -## The catkin_package macro generates cmake config files for your package -## Declare things to be passed to dependent projects -## INCLUDE_DIRS: uncomment this if your package contains header files -## LIBRARIES: libraries you create in this project that dependent projects also need -## CATKIN_DEPENDS: catkin_packages dependent projects also need -## DEPENDS: system dependencies of this project that dependent projects also need -catkin_package( - CATKIN_DEPENDS message_runtime -# INCLUDE_DIRS include -# LIBRARIES safety_master_plugin -# CATKIN_DEPENDS rospy std_msgs -# DEPENDS system_lib -) - -########### -## Build ## -########### - -## Specify additional locations of header files -## Your package locations should be listed before other locations -include_directories( -# include - ${catkin_INCLUDE_DIRS} -) - -## Declare a C++ library -# add_library(${PROJECT_NAME} -# src/${PROJECT_NAME}/safety_master_plugin.cpp -# ) - -## Add cmake target dependencies of the library -## as an example, code may need to be generated before libraries -## either from message generation or dynamic reconfigure -# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - - -## Declare a C++ executable -## With catkin_make all packages are built within a single CMake context -## The recommended prefix ensures that target names across packages don't collide -# add_executable(${PROJECT_NAME}_node src/safety_master_plugin_node.cpp) - -## Rename C++ executable without prefix -## The above recommended prefix causes long target names, the following renames the -## target back to the shorter version for ease of user use -## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" -# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") - -## Add cmake target dependencies of the executable -## same as for the library above -# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Specify libraries to link a library or executable target against -# target_link_libraries(${PROJECT_NAME}_node -# ${catkin_LIBRARIES} -# ) - -############# -## Install ## -############# - -# all install targets should use catkin DESTINATION variables -# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html - -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination -install(PROGRAMS -# scripts/my_python_script - DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -) - -## Mark executables and/or libraries for installation -# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node -# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark cpp header files for installation -# install(DIRECTORY include/${PROJECT_NAME}/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# FILES_MATCHING PATTERN "*.h" -# PATTERN ".svn" EXCLUDE -# ) - -## Mark other files for installation (e.g. launch and bag files, etc.) -# install(FILES -# # myfile1 -# # myfile2 -# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -# ) - -############# -## Testing ## -############# - -## Add gtest based cpp test target and link libraries -# catkin_add_gtest(${PROJECT_NAME}-test test/test_safety_master_plugin.cpp) -# if(TARGET ${PROJECT_NAME}-test) -# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) -# endif() - -## Add folders to be run by python nosetests -# catkin_add_nosetests(test) diff --git a/package.xml b/package.xml index 6255728..b5a1003 100644 --- a/package.xml +++ b/package.xml @@ -1,10 +1,13 @@ safety_user_plugin - 0.0.0 + 0.2.0 The safety_user_plugin package - Aleksander Bojda + Laboratory L1.5 + + Aleksander Bojda + Jakub Delicat MIT @@ -30,6 +33,7 @@ rosaria_msgs + ament_python diff --git a/scripts/enums/__init__.py b/resource/safety_user_plugin similarity index 100% rename from scripts/enums/__init__.py rename to resource/safety_user_plugin diff --git a/safety_user_plugin/__init__.py b/safety_user_plugin/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/english.py b/safety_user_plugin/english.py similarity index 100% rename from scripts/english.py rename to safety_user_plugin/english.py diff --git a/safety_user_plugin/enums/__init__.py b/safety_user_plugin/enums/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/enums/clutch_state.py b/safety_user_plugin/enums/clutch_state.py similarity index 100% rename from scripts/enums/clutch_state.py rename to safety_user_plugin/enums/clutch_state.py diff --git a/scripts/enums/stop_state.py b/safety_user_plugin/enums/stop_state.py similarity index 100% rename from scripts/enums/stop_state.py rename to safety_user_plugin/enums/stop_state.py diff --git a/scripts/language.py b/safety_user_plugin/language.py similarity index 100% rename from scripts/language.py rename to safety_user_plugin/language.py diff --git a/scripts/polish.py b/safety_user_plugin/polish.py similarity index 100% rename from scripts/polish.py rename to safety_user_plugin/polish.py diff --git a/scripts/qt_wrapper.py b/safety_user_plugin/qt_wrapper.py similarity index 100% rename from scripts/qt_wrapper.py rename to safety_user_plugin/qt_wrapper.py diff --git a/scripts/restrictions.py b/safety_user_plugin/restrictions.py similarity index 100% rename from scripts/restrictions.py rename to safety_user_plugin/restrictions.py diff --git a/scripts/robot_info.py b/safety_user_plugin/robot_info.py similarity index 100% rename from scripts/robot_info.py rename to safety_user_plugin/robot_info.py diff --git a/scripts/ros_wrapper.py b/safety_user_plugin/ros_wrapper.py similarity index 100% rename from scripts/ros_wrapper.py rename to safety_user_plugin/ros_wrapper.py diff --git a/scripts/user_info.py b/safety_user_plugin/user_info.py similarity index 100% rename from scripts/user_info.py rename to safety_user_plugin/user_info.py diff --git a/scripts/user_plugin.py b/safety_user_plugin/user_plugin.py similarity index 100% rename from scripts/user_plugin.py rename to safety_user_plugin/user_plugin.py diff --git a/safety_user_plugin/user_plugin_node.py b/safety_user_plugin/user_plugin_node.py new file mode 100644 index 0000000..6773d4e --- /dev/null +++ b/safety_user_plugin/user_plugin_node.py @@ -0,0 +1,11 @@ +from safety_user_plugin.user_plugin import UserPlugin +from rqt_gui.main import Main +import sys + +def main(): + """Run the plugin.""" + Main().main(sys.argv, standalone="safety_user_plugin") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/scripts/user_widget.py b/safety_user_plugin/user_widget.py similarity index 100% rename from scripts/user_widget.py rename to safety_user_plugin/user_widget.py diff --git a/scripts/safety_user_plugin b/scripts/safety_user_plugin new file mode 100644 index 0000000..a45ef8b --- /dev/null +++ b/scripts/safety_user_plugin @@ -0,0 +1,9 @@ +#!/usr/bin/env python3 + +import sys + +from safety_user_plugin.user_plugin import UserPlugin +from rqt_gui.main import Main + + +sys.exit(Main().main(sys.argv, standalone='safety_user_plugin.user_plugin.UserPlugin')) \ No newline at end of file diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..5e9153c --- /dev/null +++ b/setup.cfg @@ -0,0 +1,5 @@ +[develop] +script_dir=$base/lib/safety_user_plugin +[install] +install_scripts=$base/lib/safety_user_plugin + diff --git a/setup.py b/setup.py index 25facb1..1b4d80f 100644 --- a/setup.py +++ b/setup.py @@ -1,8 +1,31 @@ -from distutils.core import setup -from catkin_pkg.python_setup import generate_distutils_setup +import os +from glob import glob +from setuptools import setup -setup_args = generate_distutils_setup( - package_dir={'': 'scripts'} + +package_name = 'safety_user_plugin' + +setup( + name=package_name, + version='0.2.0', + packages=[package_name], + data_files=[ + ('share/ament_index/resource_index/packages', ['resource/' + package_name]), + ('share/' + package_name, ['package.xml']), + ('share/' + package_name, ['plugin.xml']), + (os.path.join('share', package_name, 'launch'), glob(os.path.join('launch', '*.launch.py'))), + (os.path.join('share', package_name, 'ui'), glob(os.path.join('ui', '*.png'))), + (os.path.join('share', package_name, 'ui'), glob(os.path.join('ui', '*.ui'))), + (os.path.join('lib/', package_name), glob(os.path.join('ui', '*.ui'))), + ], + install_requires=['setuptools'], + zip_safe=True, + maintainer='jdelicat', + maintainer_email='jakub.delicat@pwr.edu.pl', + description='TODO: Package description', + license='TODO: License declaration', + tests_require=['pytest'], + entry_points={ + 'console_scripts': ['user_plugin_node = safety_user_plugin.user_plugin_node:main'], + }, ) - -setup(**setup_args) \ No newline at end of file