23 OSs = {
'humble':
'jammy',
'jazzy':
'noble',
'lyrical':
'resolute'}
24 Prefixs = {
'humble':
'H',
'jazzy':
'J',
'lyrical':
'L'}
34 'nav2_collision_monitor',
36 'nav2_constrained_smoother',
42 'opennav_docking_core',
43 'nav2_dwb_controller',
45 'nav2_graceful_controller',
46 'nav2_lifecycle_manager',
49 'nav2_mppi_controller',
53 'nav2_regulated_pure_pursuit_controller',
54 'nav2_rotation_shim_controller',
58 'nav2_simple_commander',
62 'nav2_theta_star_planner',
64 'nav2_velocity_smoother',
66 'nav2_waypoint_follower',
70 Distros = [
'humble',
'jazzy',
'lyrical']
73 def getSrcPath(package: str, prefix: str, OS: str) -> str:
74 return f
'https://build.ros2.org/job/{prefix}src_u{OS[0]}__{package}__ubuntu_{OS}__source/'
77 def getBinPath(package: str, prefix: str, OS: str) -> str:
79 f
'https://build.ros2.org/job/{prefix}bin_u{OS[0]}64__{package}__ubuntu_{OS}_'
84 def createPreamble(Distros: list[str]) -> str:
85 table =
'| Package | '
86 for distro
in Distros:
87 table += distro +
' Source | ' + distro +
' Debian | '
91 for distro
in Distros:
92 table +=
' :---: | :---: |'
97 header = createPreamble(Distros)
100 for package
in Packages:
101 entry = f
'| {package} | '
102 for distro
in Distros:
104 prefix = Prefixs[distro]
106 srcURL = getSrcPath(package, prefix, OS)
107 binURL = getBinPath(package, prefix, OS)
110 for attempt
in range(3):
112 response = requests.get(srcURL, timeout=10)
113 status = response.status_code
117 except requests.exceptions.RequestException:
120 entry +=
'N/A | N/A | '
122 entry += f
'[]({srcURL}) | '
123 entry += f
'[]({binURL}) | '
129 body = body.replace(
'| opennav_docking |',
'| nav2_docking |')
130 body = body.replace(
'| opennav_docking_bt |',
'| nav2_docking_bt |')
131 body = body.replace(
'| opennav_docking_core |',
'| nav2_docking_core |')
133 body = body.replace(
'| opennav_following |',
'| nav2_following |')
135 body = body.replace(
'| nav2_regulated_pure_pursuit_controller |',
136 '| nav2_regulated_pure_pursuit |')
138 print(header +
'\n' + body)
141 if __name__ ==
'__main__':