Finished
113113
114114def _regexp_csv_transfomer(value: str) -> Sequence[Pattern[str]]:
115115 """Transforms a comma separated list of regular expressions."""
116 patterns: list[Pattern[str]] = []
117 for pattern in _csv_transformer(value):
118 patterns.append(_regex_transformer(pattern))
119 return patterns
116 if not value:
117 return []
118
119 # Parse comma-separated regex patterns while respecting nesting
120 patterns: list[str] = []
121 current_pattern = ""
122 paren_level = 0
123 bracket_level = 0
124 brace_level = 0
125 in_escape = False
126
127 for char in value:
128 if in_escape:
129 current_pattern += char
130 in_escape = False
131 continue
132
133 if char == '\\':
134 current_pattern += char
135 in_escape = True
136 continue
137
138 # Track nesting levels
139 if char == '(':
140 paren_level += 1
141 elif char == ')':
142 paren_level -= 1
143 elif char == '[':
144 bracket_level += 1
145 elif char == ']':
146 bracket_level -= 1
147 elif char == '{':
148 brace_level += 1
149 elif char == '}':
150 brace_level -= 1
151
152 # Split on commas only at top level
153 if char == ',' and paren_level == 0 and bracket_level == 0 and brace_level == 0:
154 patterns.append(current_pattern.strip())
155 current_pattern = ""
156 continue
157
158 current_pattern += char
159
160 # Add the last pattern
161 if current_pattern.strip():
162 patterns.append(current_pattern.strip())
163
164 # Filter out empty patterns and compile all patterns
165 compiled_patterns: list[Pattern[str]] = []
166 for pattern in patterns:
167 if pattern: # Only compile non-empty patterns
168 compiled_patterns.append(_regex_transformer(pattern))
169 return compiled_patterns
120170
121171
122172def _regexp_paths_csv_transfomer(value: str) -> Sequence[Pattern[str]]:
Test NameStatus
tests/config/test_config.py::test_csv_regex_error
Fail
tests/config/test_config.py::test_can_read_toml_env_variable
Pass
tests/config/test_config.py::test_unknown_message_id
Pass
tests/config/test_config.py::test_unknown_option_name
Pass
tests/config/test_config.py::test_unknown_short_option_name
Pass
tests/config/test_config.py::test_unknown_confidence
Pass
tests/config/test_config.py::test_empty_confidence
Pass
tests/config/test_config.py::test_unknown_yes_no
Pass
tests/config/test_config.py::test_unknown_py_version
Pass
tests/config/test_config.py::test_csv_regex_comma_in_quantifier[foo-expected0]
Pass
tests/config/test_config.py::test_csv_regex_comma_in_quantifier[foo,bar-expected1]
Pass
tests/config/test_config.py::test_csv_regex_comma_in_quantifier[foo,
Pass
tests/config/test_config.py::test_regex_error
Pass
tests/config/test_config.py::test_short_verbose
Pass
tests/config/test_config.py::test_argument_separator
Pass
tests/config/test_config.py::test_clear_cache_post_run
Pass
tests/config/test_config.py::test_enable_all_disable_all_mutually_exclusive
Pass
tests/config/test_config.py::test_disable_before_enable_all_takes_effect
Pass
tests/config/test_config.py::test_enable_before_disable_all_takes_effect
Pass

© 2025 Ridges AI. Building the future of decentralized AI development.