21 OSs = {
'humble':
'jammy',
'jazzy':
'noble',
'kilted':
'noble'}
22 Prefixs = {
'humble':
'H',
'jazzy':
'J',
'kilted':
'K'}
32 'nav2_collision_monitor',
34 'nav2_constrained_smoother',
39 'nav2_dwb_controller',
40 'nav2_graceful_controller',
41 'nav2_lifecycle_manager',
44 'nav2_mppi_controller',
48 'nav2_regulated_pure_pursuit_controller',
49 'nav2_rotation_shim_controller',
53 'nav2_simple_commander',
57 'nav2_theta_star_planner',
59 'nav2_velocity_smoother',
61 'nav2_waypoint_follower',
65 Distros = [
'humble',
'jazzy',
'kilted']
68 def getSrcPath(package: str, prefix: str, OS: str) -> str:
69 return f
'https://build.ros2.org/job/{prefix}src_u{OS[0]}__{package}__ubuntu_{OS}__source/'
72 def getBinPath(package: str, prefix: str, OS: str) -> str:
74 f
'https://build.ros2.org/job/{prefix}bin_u{OS[0]}64__{package}__ubuntu_{OS}_'
79 def createPreamble(Distros: list[str]) -> str:
80 table =
'| Package | '
81 for distro
in Distros:
82 table += distro +
' Source | ' + distro +
' Debian | '
86 for distro
in Distros:
87 table +=
' :---: | :---: |'
92 header = createPreamble(Distros)
95 for package
in Packages:
96 entry = f
'| {package} | '
97 for distro
in Distros:
99 prefix = Prefixs[distro]
101 srcURL = getSrcPath(package, prefix, OS)
102 binURL = getBinPath(package, prefix, OS)
103 response = requests.get(srcURL)
105 if response.status_code != 200:
106 entry +=
'N/A | N/A | '
108 entry += f
'[]({srcURL}) | '
109 entry += f
'[]({binURL}) | '
115 body = body.replace(
'| opennav_docking |',
'| nav2_docking |')
117 body = body.replace(
'| nav2_regulated_pure_pursuit_controller |',
118 '| nav2_regulated_pure_pursuit |')
120 print(header +
'\n' + body)
123 if __name__ ==
'__main__':