diff --git a/rosbag2/package.xml b/rosbag2/package.xml
index 90417086bd..16f9370b4e 100644
--- a/rosbag2/package.xml
+++ b/rosbag2/package.xml
@@ -13,7 +13,6 @@
rosbag2_compression
rosbag2_converter_default_plugins
rosbag2_cpp
- rosbag2_py
rosbag2_storage
rosbag2_storage_default_plugins
rosbag2_transport
diff --git a/rosbag2_py/CMakeLists.txt b/rosbag2_py/CMakeLists.txt
deleted file mode 100644
index 98b7fd6385..0000000000
--- a/rosbag2_py/CMakeLists.txt
+++ /dev/null
@@ -1,88 +0,0 @@
-cmake_minimum_required(VERSION 3.5)
-project(rosbag2_py)
-
-# Default to C99
-if(NOT CMAKE_C_STANDARD)
- set(CMAKE_C_STANDARD 99)
-endif()
-
-# Default to C++14
-if(NOT CMAKE_CXX_STANDARD)
- set(CMAKE_CXX_STANDARD 14)
-endif()
-
-if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- add_compile_options(-Wall -Wextra -Wpedantic -Werror)
-endif()
-
-find_package(ament_cmake REQUIRED)
-find_package(ament_cmake_ros REQUIRED)
-find_package(pybind11 REQUIRED)
-find_package(python_cmake_module REQUIRED)
-find_package(rosbag2_compression REQUIRED)
-find_package(rosbag2_cpp REQUIRED)
-find_package(rosbag2_storage REQUIRED)
-
-ament_python_install_package(${PROJECT_NAME})
-
-pybind11_add_module(_reader SHARED
- src/rosbag2_py/_reader.cpp
-)
-ament_target_dependencies(_reader PUBLIC
- "rosbag2_compression"
- "rosbag2_cpp"
-)
-
-pybind11_add_module(_storage SHARED
- src/rosbag2_py/_storage.cpp
-)
-ament_target_dependencies(_storage PUBLIC
- "rosbag2_cpp"
- "rosbag2_storage"
-)
-
-pybind11_add_module(_writer SHARED
- src/rosbag2_py/_writer.cpp
-)
-ament_target_dependencies(_writer PUBLIC
- "rosbag2_compression"
- "rosbag2_cpp"
-)
-
-# Install cython modules as sub-modules of the project
-install(
- TARGETS
- _reader
- _storage
- _writer
- DESTINATION "${PYTHON_INSTALL_DIR}/${PROJECT_NAME}"
-)
-
-if(BUILD_TESTING)
- find_package(ament_lint_auto REQUIRED)
- ament_lint_auto_find_test_dependencies()
- find_package(ament_cmake_pytest REQUIRED)
-
- set(_PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE}")
- if(WIN32 AND "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
- set(_PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE_DEBUG}")
- endif()
- set(pythonpath "${CMAKE_CURRENT_BINARY_DIR}/rosbag2_py;${CMAKE_CURRENT_SOURCE_DIR}")
- if(NOT WIN32)
- string(REPLACE ";" ":" pythonpath "${pythonpath}")
- endif()
- ament_add_pytest_test(test_sequential_reader_py "test/test_sequential_reader.py"
- PYTHON_EXECUTABLE "${_PYTHON_EXECUTABLE}"
- APPEND_ENV "PYTHONPATH=${pythonpath}"
- APPEND_LIBRARY_DIRS "${_append_library_dirs}"
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/resources"
- )
- ament_add_pytest_test(test_sequential_writer_py "test/test_sequential_writer.py"
- PYTHON_EXECUTABLE "${_PYTHON_EXECUTABLE}"
- APPEND_ENV "PYTHONPATH=${pythonpath}"
- APPEND_LIBRARY_DIRS "${_append_library_dirs}"
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/resources"
- )
-endif()
-
-ament_package()
diff --git a/rosbag2_py/package.xml b/rosbag2_py/package.xml
deleted file mode 100644
index 3f940523ac..0000000000
--- a/rosbag2_py/package.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
- rosbag2_py
- 0.2.4
- Python API for rosbag2
- Jacob Perron
- ROS Tooling Working Group
- Apache License 2.0
-
- Mabel Zhang
-
- ament_cmake_ros
-
- pybind11_vendor
- python_cmake_module
- rosbag2_compression
- rosbag2_cpp
- rosbag2_storage
-
- rpyutils
-
- ament_lint_auto
- ament_lint_common
- python3-pytest
- rcl_interfaces
- rclpy
- rosbag2_converter_default_plugins
- rosbag2_storage_default_plugins
- rosbag2_storage
- rosidl_runtime_py
- rpyutils
- std_msgs
-
-
- ament_cmake
-
-
diff --git a/rosbag2_py/pytest.ini b/rosbag2_py/pytest.ini
deleted file mode 100644
index fe55d2ed64..0000000000
--- a/rosbag2_py/pytest.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[pytest]
-junit_family=xunit2
diff --git a/rosbag2_py/resources/talker/metadata.yaml b/rosbag2_py/resources/talker/metadata.yaml
deleted file mode 100644
index 35db28401c..0000000000
--- a/rosbag2_py/resources/talker/metadata.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-rosbag2_bagfile_information:
- version: 4
- storage_identifier: sqlite3
- relative_file_paths:
- - talker.db3
- duration:
- nanoseconds: 4531096768
- starting_time:
- nanoseconds_since_epoch: 1585866235112411371
- message_count: 20
- topics_with_message_count:
- - topic_metadata:
- name: /topic
- type: std_msgs/msg/String
- serialization_format: cdr
- offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 2\n deadline:\n sec: 2147483647\n nsec: 4294967295\n lifespan:\n sec: 2147483647\n nsec: 4294967295\n liveliness: 1\n liveliness_lease_duration:\n sec: 2147483647\n nsec: 4294967295\n avoid_ros_namespace_conventions: false"
- message_count: 10
- - topic_metadata:
- name: /rosout
- type: rcl_interfaces/msg/Log
- serialization_format: cdr
- offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 1\n deadline:\n sec: 2147483647\n nsec: 4294967295\n lifespan:\n sec: 10\n nsec: 0\n liveliness: 1\n liveliness_lease_duration:\n sec: 2147483647\n nsec: 4294967295\n avoid_ros_namespace_conventions: false"
- message_count: 10
- - topic_metadata:
- name: /parameter_events
- type: rcl_interfaces/msg/ParameterEvent
- serialization_format: cdr
- offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 2\n deadline:\n sec: 2147483647\n nsec: 4294967295\n lifespan:\n sec: 2147483647\n nsec: 4294967295\n liveliness: 1\n liveliness_lease_duration:\n sec: 2147483647\n nsec: 4294967295\n avoid_ros_namespace_conventions: false"
- message_count: 0
- compression_format: ""
- compression_mode: ""
diff --git a/rosbag2_py/resources/talker/talker.db3 b/rosbag2_py/resources/talker/talker.db3
deleted file mode 100644
index 3af2110945..0000000000
Binary files a/rosbag2_py/resources/talker/talker.db3 and /dev/null differ
diff --git a/rosbag2_py/resources/talker/talker.db3-shm b/rosbag2_py/resources/talker/talker.db3-shm
deleted file mode 100644
index fe9ac2845e..0000000000
Binary files a/rosbag2_py/resources/talker/talker.db3-shm and /dev/null differ
diff --git a/rosbag2_py/resources/talker/talker.db3-wal b/rosbag2_py/resources/talker/talker.db3-wal
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/rosbag2_py/rosbag2_py/__init__.py b/rosbag2_py/rosbag2_py/__init__.py
deleted file mode 100644
index 7c52783d6b..0000000000
--- a/rosbag2_py/rosbag2_py/__init__.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2020 Open Source Robotics Foundation, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from rpyutils import add_dll_directories_from_env
-
-# Since Python 3.8, on Windows we should ensure DLL directories are explicitly added
-# to the search path.
-# See https://docs.python.org/3/whatsnew/3.8.html#bpo-36085-whatsnew
-with add_dll_directories_from_env('PATH'):
- from rosbag2_py._reader import \
- SequentialCompressionReader, \
- SequentialReader
- from rosbag2_py._storage import \
- ConverterOptions, \
- StorageFilter, \
- StorageOptions, \
- TopicMetadata
- from rosbag2_py._writer import \
- SequentialCompressionWriter, \
- SequentialWriter
-
-__all__ = [
- 'ConverterOptions',
- 'SequentialCompressionReader',
- 'SequentialCompressionWriter',
- 'SequentialReader',
- 'SequentialWriter',
- 'StorageFilter',
- 'StorageOptions',
- 'TopicMetadata',
-]
diff --git a/rosbag2_py/src/rosbag2_py/_reader.cpp b/rosbag2_py/src/rosbag2_py/_reader.cpp
deleted file mode 100644
index a14a1e1694..0000000000
--- a/rosbag2_py/src/rosbag2_py/_reader.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-// Copyright 2020 Open Source Robotics Foundation, Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include
-#include
-
-#include
-#include
-#include
-
-#include "rosbag2_compression/sequential_compression_reader.hpp"
-#include "rosbag2_cpp/converter_options.hpp"
-#include "rosbag2_cpp/readers/sequential_reader.hpp"
-#include "rosbag2_cpp/reader.hpp"
-#include "rosbag2_cpp/storage_options.hpp"
-#include "rosbag2_storage/storage_filter.hpp"
-#include "rosbag2_storage/topic_metadata.hpp"
-
-namespace rosbag2_py
-{
-
-template
-class Reader
-{
-public:
- Reader()
- : reader_(std::make_unique(std::make_unique()))
- {
- }
-
- void open(
- rosbag2_cpp::StorageOptions & storage_options,
- rosbag2_cpp::ConverterOptions & converter_options)
- {
- reader_->open(storage_options, converter_options);
- }
-
- bool has_next()
- {
- return reader_->has_next();
- }
-
- /// Return a tuple containing the topic name, the serialized ROS message, and
- /// the timestamp.
- pybind11::tuple read_next()
- {
- const auto next = reader_->read_next();
- rcutils_uint8_array_t rcutils_data = *next->serialized_data.get();
- std::string serialized_data(rcutils_data.buffer,
- rcutils_data.buffer + rcutils_data.buffer_length);
- return pybind11::make_tuple(
- next->topic_name, pybind11::bytes(serialized_data), next->time_stamp);
- }
-
- /// Return a mapping from topic name to topic type.
- std::vector get_all_topics_and_types()
- {
- return reader_->get_all_topics_and_types();
- }
-
- void set_filter(const rosbag2_storage::StorageFilter & storage_filter)
- {
- return reader_->set_filter(storage_filter);
- }
-
- void reset_filter()
- {
- reader_->reset_filter();
- }
-
-protected:
- std::unique_ptr reader_;
-};
-} // namespace rosbag2_py
-
-PYBIND11_MODULE(_reader, m) {
- m.doc() = "Python wrapper of the rosbag2_cpp reader API";
-
- pybind11::class_>(
- m, "SequentialReader")
- .def(pybind11::init())
- .def("open", &rosbag2_py::Reader::open)
- .def("read_next", &rosbag2_py::Reader::read_next)
- .def("has_next", &rosbag2_py::Reader::has_next)
- .def(
- "get_all_topics_and_types",
- &rosbag2_py::Reader::get_all_topics_and_types)
- .def("set_filter", &rosbag2_py::Reader::set_filter)
- .def("reset_filter", &rosbag2_py::Reader::reset_filter);
-
- pybind11::class_>(
- m, "SequentialCompressionReader")
- .def(pybind11::init())
- .def("open", &rosbag2_py::Reader::open)
- .def(
- "read_next", &rosbag2_py::Reader::read_next)
- .def("has_next", &rosbag2_py::Reader::has_next)
- .def(
- "get_all_topics_and_types",
- &rosbag2_py::Reader<
- rosbag2_compression::SequentialCompressionReader
- >::get_all_topics_and_types)
- .def(
- "set_filter",
- &rosbag2_py::Reader::set_filter)
- .def(
- "reset_filter",
- &rosbag2_py::Reader::reset_filter);
-}
diff --git a/rosbag2_py/src/rosbag2_py/_storage.cpp b/rosbag2_py/src/rosbag2_py/_storage.cpp
deleted file mode 100644
index bbd536dc51..0000000000
--- a/rosbag2_py/src/rosbag2_py/_storage.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2020 Open Source Robotics Foundation, Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include
-#include
-
-#include
-#include
-
-#include "rosbag2_cpp/converter_options.hpp"
-#include "rosbag2_cpp/storage_options.hpp"
-#include "rosbag2_storage/storage_filter.hpp"
-#include "rosbag2_storage/topic_metadata.hpp"
-
-PYBIND11_MODULE(_storage, m) {
- m.doc() = "Python wrapper of the rosbag2 utilities API";
-
- pybind11::class_(m, "ConverterOptions")
- .def(
- pybind11::init(),
- pybind11::arg("input_serialization_format"),
- pybind11::arg("output_serialization_format"))
- .def_readwrite(
- "input_serialization_format",
- &rosbag2_cpp::ConverterOptions::input_serialization_format)
- .def_readwrite(
- "output_serialization_format",
- &rosbag2_cpp::ConverterOptions::output_serialization_format);
-
- pybind11::class_(m, "StorageOptions")
- .def(
- pybind11::init(),
- pybind11::arg("uri"),
- pybind11::arg("storage_id"),
- pybind11::arg("max_bagfile_size") = 0,
- pybind11::arg("max_bagfile_duration") = 0,
- pybind11::arg("max_cache_size") = 0)
- .def_readwrite("uri", &rosbag2_cpp::StorageOptions::uri)
- .def_readwrite("storage_id", &rosbag2_cpp::StorageOptions::storage_id)
- .def_readwrite(
- "max_bagfile_size",
- &rosbag2_cpp::StorageOptions::max_bagfile_size)
- .def_readwrite(
- "max_bagfile_duration",
- &rosbag2_cpp::StorageOptions::max_bagfile_duration)
- .def_readwrite(
- "max_cache_size",
- &rosbag2_cpp::StorageOptions::max_cache_size);
-
- pybind11::class_(m, "StorageFilter")
- .def(
- pybind11::init>(),
- pybind11::arg("topics"))
- .def_readwrite("topics", &rosbag2_storage::StorageFilter::topics);
-
- pybind11::class_(m, "TopicMetadata")
- .def(
- pybind11::init(),
- pybind11::arg("name"),
- pybind11::arg("type"),
- pybind11::arg("serialization_format"),
- pybind11::arg("offered_qos_profiles") = "")
- .def_readwrite("name", &rosbag2_storage::TopicMetadata::name)
- .def_readwrite("type", &rosbag2_storage::TopicMetadata::type)
- .def_readwrite(
- "serialization_format",
- &rosbag2_storage::TopicMetadata::serialization_format)
- .def_readwrite(
- "offered_qos_profiles",
- &rosbag2_storage::TopicMetadata::offered_qos_profiles)
- .def("equals", &rosbag2_storage::TopicMetadata::operator==);
-}
diff --git a/rosbag2_py/src/rosbag2_py/_writer.cpp b/rosbag2_py/src/rosbag2_py/_writer.cpp
deleted file mode 100644
index ecae08a344..0000000000
--- a/rosbag2_py/src/rosbag2_py/_writer.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright 2020 Open Source Robotics Foundation, Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include
-#include
-
-#include
-#include
-
-#include "rosbag2_compression/sequential_compression_writer.hpp"
-#include "rosbag2_cpp/converter_options.hpp"
-#include "rosbag2_cpp/storage_options.hpp"
-#include "rosbag2_cpp/writer.hpp"
-#include "rosbag2_cpp/writers/sequential_writer.hpp"
-#include "rosbag2_storage/ros_helper.hpp"
-#include "rosbag2_storage/storage_filter.hpp"
-#include "rosbag2_storage/topic_metadata.hpp"
-
-namespace rosbag2_py
-{
-
-template
-class Writer
-{
-public:
- Writer()
- : writer_(std::make_unique(std::make_unique()))
- {
- }
-
- void open(
- rosbag2_cpp::StorageOptions & storage_options,
- rosbag2_cpp::ConverterOptions & converter_options)
- {
- writer_->open(storage_options, converter_options);
- }
-
- void create_topic(const rosbag2_storage::TopicMetadata & topic_with_type)
- {
- writer_->create_topic(topic_with_type);
- }
-
- void remove_topic(const rosbag2_storage::TopicMetadata & topic_with_type)
- {
- writer_->remove_topic(topic_with_type);
- }
-
- /// Write a serialized message to a bag file
- void write(
- const std::string & topic_name, const std::string & message,
- const rcutils_time_point_value_t & time_stamp)
- {
- auto bag_message =
- std::make_shared();
-
- bag_message->topic_name = topic_name;
- bag_message->serialized_data =
- rosbag2_storage::make_serialized_message(message.c_str(), message.length());
- bag_message->time_stamp = time_stamp;
-
- writer_->write(bag_message);
- }
-
-protected:
- std::unique_ptr writer_;
-};
-
-} // namespace rosbag2_py
-
-PYBIND11_MODULE(_writer, m) {
- m.doc() = "Python wrapper of the rosbag2_cpp writer API";
-
- pybind11::class_>(
- m, "SequentialWriter")
- .def(pybind11::init())
- .def("open", &rosbag2_py::Writer::open)
- .def("write", &rosbag2_py::Writer::write)
- .def("remove_topic", &rosbag2_py::Writer::remove_topic)
- .def("create_topic", &rosbag2_py::Writer::create_topic);
-
- pybind11::class_>(
- m, "SequentialCompressionWriter")
- .def(pybind11::init())
- .def("open", &rosbag2_py::Writer::open)
- .def("write", &rosbag2_py::Writer::write)
- .def(
- "remove_topic",
- &rosbag2_py::Writer::remove_topic)
- .def(
- "create_topic",
- &rosbag2_py::Writer::create_topic);
-}
diff --git a/rosbag2_py/test/common.py b/rosbag2_py/test/common.py
deleted file mode 100644
index cec02bea31..0000000000
--- a/rosbag2_py/test/common.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2020 Open Source Robotics Foundation, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import rosbag2_py
-
-
-def get_rosbag_options(path, serialization_format='cdr'):
- storage_options = rosbag2_py.StorageOptions(uri=path, storage_id='sqlite3')
-
- converter_options = rosbag2_py.ConverterOptions(
- input_serialization_format=serialization_format,
- output_serialization_format=serialization_format)
-
- return storage_options, converter_options
diff --git a/rosbag2_py/test/test_sequential_reader.py b/rosbag2_py/test/test_sequential_reader.py
deleted file mode 100644
index fc2be12c2b..0000000000
--- a/rosbag2_py/test/test_sequential_reader.py
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 2020 Open Source Robotics Foundation, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from pathlib import Path
-
-from common import get_rosbag_options
-from rcl_interfaces.msg import Log
-from rclpy.serialization import deserialize_message
-import rosbag2_py
-from rosidl_runtime_py.utilities import get_message
-from std_msgs.msg import String
-
-
-def test_sequential_reader():
- bag_path = str(Path(__file__).parent.parent / 'resources' / 'talker')
- storage_options, converter_options = get_rosbag_options(bag_path)
-
- reader = rosbag2_py.SequentialReader()
- reader.open(storage_options, converter_options)
-
- topic_types = reader.get_all_topics_and_types()
-
- # Create a map for quicker lookup
- type_map = {topic_types[i].name: topic_types[i].type for i in range(len(topic_types))}
-
- # Set filter for topic of string type
- storage_filter = rosbag2_py.StorageFilter(topics=['/topic'])
- reader.set_filter(storage_filter)
-
- msg_counter = 0
-
- while reader.has_next():
- (topic, data, t) = reader.read_next()
- msg_type = get_message(type_map[topic])
- msg = deserialize_message(data, msg_type)
-
- assert isinstance(msg, String)
- assert msg.data == f'Hello, world! {msg_counter}'
-
- msg_counter += 1
-
- # No filter
- reader.reset_filter()
-
- reader = rosbag2_py.SequentialReader()
- reader.open(storage_options, converter_options)
-
- msg_counter = 0
-
- while reader.has_next():
- (topic, data, t) = reader.read_next()
- msg_type = get_message(type_map[topic])
- msg = deserialize_message(data, msg_type)
-
- assert isinstance(msg, Log) or isinstance(msg, String)
-
- if isinstance(msg, String):
- assert msg.data == f'Hello, world! {msg_counter}'
- msg_counter += 1
diff --git a/rosbag2_py/test/test_sequential_writer.py b/rosbag2_py/test/test_sequential_writer.py
deleted file mode 100644
index e1a12f4e53..0000000000
--- a/rosbag2_py/test/test_sequential_writer.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 2020 Open Source Robotics Foundation, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from common import get_rosbag_options
-from rclpy.serialization import deserialize_message, serialize_message
-import rosbag2_py
-from rosidl_runtime_py.utilities import get_message
-from std_msgs.msg import String
-
-
-def create_topic(writer, topic_name, topic_type, serialization_format='cdr'):
- """
- Create a new topic.
-
- :param writer: writer instance
- :param topic_name:
- :param topic_type:
- :param serialization_format:
- :return:
- """
- topic_name = topic_name
- topic = rosbag2_py.TopicMetadata(name=topic_name, type=topic_type,
- serialization_format=serialization_format)
-
- writer.create_topic(topic)
-
-
-def test_sequential_writer(tmp_path):
- """
- Test for sequential writer.
-
- :return:
- """
- bag_path = str(tmp_path / 'tmp_write_test')
-
- storage_options, converter_options = get_rosbag_options(bag_path)
-
- writer = rosbag2_py.SequentialWriter()
- writer.open(storage_options, converter_options)
-
- # create topic
- topic_name = '/chatter'
- create_topic(writer, topic_name, 'std_msgs/msg/String')
-
- for i in range(10):
- msg = String()
- msg.data = f'Hello, world! {str(i)}'
- time_stamp = i * 100
-
- writer.write(topic_name, serialize_message(msg), time_stamp)
-
- # close bag and create new storage instance
- del writer
- storage_options, converter_options = get_rosbag_options(bag_path)
-
- reader = rosbag2_py.SequentialReader()
- reader.open(storage_options, converter_options)
-
- topic_types = reader.get_all_topics_and_types()
-
- # Create a map for quicker lookup
- type_map = {topic_types[i].name: topic_types[i].type for i in range(len(topic_types))}
-
- msg_counter = 0
- while reader.has_next():
- topic, data, t = reader.read_next()
- msg_type = get_message(type_map[topic])
- msg_deserialized = deserialize_message(data, msg_type)
-
- assert isinstance(msg_deserialized, String)
- assert msg_deserialized.data == f'Hello, world! {msg_counter}'
- assert t == msg_counter * 100
-
- msg_counter += 1