| 3204 | ) |
| 3205 | |
| 3206 | def get_help_record(self, ctx: Context) -> tuple[str, str] | None: |
| 3207 | if self.hidden: |
| 3208 | return None |
| 3209 | |
| 3210 | any_prefix_is_slash = False |
| 3211 | |
| 3212 | def _write_opts(opts: cabc.Sequence[str]) -> str: |
| 3213 | nonlocal any_prefix_is_slash |
| 3214 | |
| 3215 | rv, any_slashes = join_options(opts) |
| 3216 | |
| 3217 | if any_slashes: |
| 3218 | any_prefix_is_slash = True |
| 3219 | |
| 3220 | if not self.is_flag and not self.count: |
| 3221 | rv += f" {self.make_metavar(ctx=ctx)}" |
| 3222 | |
| 3223 | return rv |
| 3224 | |
| 3225 | rv = [_write_opts(self.opts)] |
| 3226 | |
| 3227 | if self.secondary_opts: |
| 3228 | rv.append(_write_opts(self.secondary_opts)) |
| 3229 | |
| 3230 | help = self.help or "" |
| 3231 | |
| 3232 | extra = self.get_help_extra(ctx) |
| 3233 | extra_items = [] |
| 3234 | if "envvars" in extra: |
| 3235 | extra_items.append( |
| 3236 | _("env var: {var}").format(var=", ".join(extra["envvars"])) |
| 3237 | ) |
| 3238 | if "default" in extra: |
| 3239 | extra_items.append(_("default: {default}").format(default=extra["default"])) |
| 3240 | if "range" in extra: |
| 3241 | extra_items.append(extra["range"]) |
| 3242 | if "required" in extra: |
| 3243 | extra_items.append(_(extra["required"])) |
| 3244 | |
| 3245 | if extra_items: |
| 3246 | extra_str = "; ".join(extra_items) |
| 3247 | help = f"{help} [{extra_str}]" if help else f"[{extra_str}]" |
| 3248 | |
| 3249 | return ("; " if any_prefix_is_slash else " / ").join(rv), help |
| 3250 | |
| 3251 | def get_help_extra(self, ctx: Context) -> types.OptionHelpExtra: |
| 3252 | extra: types.OptionHelpExtra = {} |