(item: str)
| 119 | |
| 120 | |
| 121 | def display_tool(item: str) -> str: |
| 122 | stripped = item.strip() |
| 123 | lowered = stripped.lower() |
| 124 | normalized = re.sub(r"[\s_]+", "-", lowered) |
| 125 | label = TOOL_LABELS.get(lowered) or TOOL_LABELS.get(normalized) |
| 126 | if label: |
| 127 | return label |
| 128 | |
| 129 | words = [part for part in re.split(r"[-_/\s]+", stripped) if part] |
| 130 | if not words: |
| 131 | return stripped |
| 132 | |
| 133 | def humanize_word(word: str) -> str: |
| 134 | lower = word.lower() |
| 135 | if lower == "html": |
| 136 | return "HTML" |
| 137 | if lower == "mysql": |
| 138 | return "MySQL" |
| 139 | if lower in {"aws", "eks", "ecs", "ecr", "ec2", "vpc", "iam", "rds", "sns", "sqs", "elb", "alb", "nlb"}: |
| 140 | return lower.upper() |
| 141 | if lower == "cd": |
| 142 | return "CD" |
| 143 | if lower == "devops": |
| 144 | return "DevOps" |
| 145 | if lower == "devsecops": |
| 146 | return "DevSecOps" |
| 147 | if lower == "opentelemetry": |
| 148 | return "OpenTelemetry" |
| 149 | if lower == "opentofu": |
| 150 | return "OpenTofu" |
| 151 | if lower == "node": |
| 152 | return "Node" |
| 153 | return lower.capitalize() |
| 154 | |
| 155 | display = " ".join(humanize_word(word) for word in words) |
| 156 | return display.replace("Node Js", "Node.js") |
| 157 | |
| 158 | |
| 159 | def parse_scalar(value: str) -> object: |
no test coverage detected