Metadata-Version: 2.3
Name: ros_introspect
Version: 0.2.3
Summary: Pure Python library for working with the files in ROS packages
Project-URL: Homepage, https://github.com/MetroRobots/ros_introspect
Project-URL: Bug Tracker, https://github.com/MetroRobots/ros_introspect/issues
Author-email: "David V. Lu!!" <davidvlu@gmail.com>
Maintainer-email: "David V. Lu!!" <davidvlu@gmail.com>
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development
Requires-Python: >=3.8
Requires-Dist: betsy-ros
Requires-Dist: pyyaml
Requires-Dist: ruamel-yaml
Requires-Dist: stylish-cmake-parser
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Description-Content-Type: text/markdown

![ros_introspect logo](docs/Logo.png)

 `ros_introspect` is a Pure Python library for working with the files in ROS packages in a structured way.
It is compatible with both ROS 1 and ROS 2.

You can specify the path directly.

```
from ros_introspect import Package
package = Package('/full/path/geometry_msgs')
```
or you can use the built-in crawler to search recursively

```
from ros_introspect import find_packages

for package in find_packages('/home/dlu/ros2_ws/src'):
    print(package)
```

## Installation

[![PyPI version](https://badge.fury.io/py/ros-introspect.svg)](https://badge.fury.io/py/ros-introspect)

    sudo pip3 install ros-introspect



## The `Package` Class

A `Package` is a path where the `$PATH/package.xml` exists and a collection of `PackageFile`s that are contained within that folder.

Each of the package files are a subtype of `PackageFile` based on their functionality, with each of the subtypes being defined in `ros_introspect.components`, including...

 * `package.xml`
 * `CMakeLists.txt`
 * Source code (Python or C++)
 * ROS Interfaces, i.e. messages, services and actions
 * DynamicReconfig configurations (ROS 1 only)
 * Plugin XML, for use with `pluginlib`
 * Launch files, both `XML` (ROS 1) and Python (ROS 2)
 * Parameter files (`.yaml`)
 * RViz configurations (`.rviz`)
 * Robot model files (`.urdf` and `.xacro`)
 * `setup.py` and `setup.cfg` for Python code
 * Documentation (Markdown, RST, licenses, etc.)
 * Miscellaneous Config files (various metadata like the `.github` folder)

Everything that does not fall into one of those categories ends up as "Other"**

**Excluding `.pyc`, `*~`, and `.git/` files
