Создан общий файл запуска digital_twin.launch.py, через который в дальнейшем будет запускаться весь цифровой двойник.
Добавлена папка `supported`, в которой будут размещаться файлы запуска подключаемые в основном файле. Переименован контроллер на `iiwa_arm_controller` Добавлен пакет `iiwa_bringup.utils`, в котором будут распологаться все вспомогательные функции, для папки `launch` В файле `README`, были добавлены подсказки для автора
This commit is contained in:
+38
-48
@@ -1,65 +1,55 @@
|
||||
import os
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
EXCLUDES = {'.DS_Store', 'Thumbs.db'}
|
||||
EXCLUDE_DIRS = {'__pycache__', '.pytest_cache', '.git', '.idea'}
|
||||
|
||||
def data_files_from_tree(src_dir: str, dst_root: str) -> list:
|
||||
"""
|
||||
Собирает data_files в формате, подходящем для setuptools.
|
||||
Возвращает список пар (dst_path, [file1, file2, ...]).
|
||||
"""
|
||||
entries = []
|
||||
|
||||
for root, dirs, files in os.walk(src_dir):
|
||||
# исключаем служебные директории
|
||||
dirs[:] = [d for d in dirs if d not in EXCLUDE_DIRS]
|
||||
|
||||
file_list = [os.path.join(root, f) for f in files if f not in EXCLUDES]
|
||||
if not file_list:
|
||||
continue
|
||||
|
||||
rel = os.path.relpath(root, src_dir)
|
||||
dst_dir = os.path.join(dst_root, rel) if rel != '.' else dst_root
|
||||
entries.append((dst_dir, file_list))
|
||||
|
||||
return entries
|
||||
from setuptools import setup
|
||||
|
||||
package_name = 'iiwa_bringup'
|
||||
|
||||
resource_intsall_root = f"share/{package_name}/resource"
|
||||
launch_intsall_root = f"share/{package_name}/launch"
|
||||
config_intsall_root = f"share/{package_name}/config"
|
||||
# Собираем список пакетов: основной + вложенные (если они есть).
|
||||
packages = [package_name]
|
||||
# Если есть подпапка utils с __init__.py — зарегистрируем её как iiwa_bringup.utils
|
||||
if os.path.isdir('utils') and os.path.isfile(os.path.join('utils', '__init__.py')):
|
||||
packages.append(f'{package_name}.utils')
|
||||
|
||||
# Соответствие имени пакета -> директория на диске.
|
||||
# iiwa_bringup -> текущая папка '.'
|
||||
# iiwa_bringup.utils -> ./utils
|
||||
package_dir = {
|
||||
package_name: '.',
|
||||
}
|
||||
if f'{package_name}.utils' in packages:
|
||||
package_dir[f'{package_name}.utils'] = os.path.join('.', 'utils')
|
||||
|
||||
data_files = [
|
||||
('share/' + package_name, ['package.xml']),
|
||||
]
|
||||
|
||||
data_files += data_files_from_tree('resource', resource_intsall_root)
|
||||
data_files += data_files_from_tree('launch', launch_intsall_root)
|
||||
data_files += data_files_from_tree('config', config_intsall_root)
|
||||
|
||||
def data_files_from_tree(src_dir: str, dst_root: str) -> list:
|
||||
entries = []
|
||||
if not os.path.isdir(src_dir):
|
||||
return entries
|
||||
EXCLUDE_DIRS = {'.git', '__pycache__', '.pytest_cache', '.idea'}
|
||||
EXCLUDES = {'.DS_Store', 'Thumbs.db'}
|
||||
for root, dirs, files in os.walk(src_dir):
|
||||
dirs[:] = [d for d in dirs if d not in EXCLUDE_DIRS]
|
||||
file_list = [os.path.join(root, f) for f in files if f not in EXCLUDES]
|
||||
if not file_list:
|
||||
continue
|
||||
rel = os.path.relpath(root, src_dir)
|
||||
dst_dir = os.path.join(dst_root, rel) if rel != '.' else dst_root
|
||||
entries.append((dst_dir, file_list))
|
||||
return entries
|
||||
|
||||
data_files = [(f'share/{package_name}', ['package.xml'])]
|
||||
data_files += data_files_from_tree('launch', f'share/{package_name}/launch')
|
||||
data_files += data_files_from_tree('config', f'share/{package_name}/config')
|
||||
data_files += data_files_from_tree('resource', f'share/{package_name}/resource')
|
||||
|
||||
setup(
|
||||
name=package_name,
|
||||
version='0.0.1',
|
||||
packages=find_packages(exclude=['test']),
|
||||
packages=packages,
|
||||
package_dir=package_dir,
|
||||
include_package_data=True,
|
||||
data_files=data_files,
|
||||
install_requires=['setuptools'],
|
||||
zip_safe=True,
|
||||
zip_safe=False,
|
||||
maintainer='Grabar Daniil',
|
||||
maintainer_email='grabardm@ml-dev.ru',
|
||||
description='TODO: Package description',
|
||||
description='iiwa bringup package',
|
||||
license='Apache-2.0',
|
||||
extras_require={
|
||||
'test': [
|
||||
'pytest',
|
||||
],
|
||||
},
|
||||
entry_points={
|
||||
'console_scripts': [
|
||||
],
|
||||
},
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user