[libcxx-commits] [libcxx] [libc++] Specify `encoding='utf-8'` in `conformance` script (PR #189534)
via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Mar 30 22:43:29 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: A. Jiang (frederick-vs-ja)
<details>
<summary>Changes</summary>
In some environments, especially Windows with active code page other than 65001, some characters in the CSV files cause parse errors without explicitly specifying the UTF-8 encoding.
Explicitly using `encoding='utf-8'` in `click.File` fixes such errors.
---
Full diff: https://github.com/llvm/llvm-project/pull/189534.diff
1 Files Affected:
- (modified) libcxx/utils/conformance (+9-9)
``````````diff
diff --git a/libcxx/utils/conformance b/libcxx/utils/conformance
index 20750204fce50..ae8093c0dd7ce 100755
--- a/libcxx/utils/conformance
+++ b/libcxx/utils/conformance
@@ -496,8 +496,8 @@ def github_link(issues, meeting_voted, status):
link_github_issue(issue, meeting_voted, status)
@github_cmd.command('create')
- at click.argument('csvfiles', nargs=-1, type=click.File('r'))
- at click.option('--load-github-from', type=click.File('r'), required=False,
+ at click.argument('csvfiles', nargs=-1, type=click.File('r', encoding='utf-8'))
+ at click.option('--load-github-from', type=click.File('r', encoding='utf-8'), required=False,
help='Optionally load the Github Conformance tracking data from the given file. Useful to avoid '
'running into API call limits when testing locally. See `conformance github download`.')
@click.option('--labels', type=str, multiple=True,
@@ -565,7 +565,7 @@ def github_create(csvfiles, load_github_from, labels):
@github_cmd.command('download')
- at click.option('--output', '-o', type=click.File('w'), default='-',
+ at click.option('--output', '-o', type=click.File('w', encoding='utf-8'), default='-',
help='Save the data to the provided file. Default is stdout.')
def github_download(output):
"""Download libc++ conformance tracking data from Github issues and save it locally."""
@@ -580,7 +580,7 @@ def csv_cmd():
@csv_cmd.command('validate')
- at click.argument('files', nargs=-1, type=click.File('r'))
+ at click.argument('files', nargs=-1, type=click.File('r', encoding='utf-8'))
def csv_validate(files):
"""Validate the format of the provided CSV files."""
for file in files:
@@ -591,10 +591,10 @@ def csv_validate(files):
@csv_cmd.command('synchronize')
- at click.argument('files', nargs=-1, type=click.File('r'))
- at click.option('--output', '-o', type=click.File('w'), default='-',
+ at click.argument('files', nargs=-1, type=click.File('r', encoding='utf-8'))
+ at click.option('--output', '-o', type=click.File('w', encoding='utf-8'), default='-',
help='Write the generated CSV to the specified file. Defaults to stdout.')
- at click.option('--load-github-from', type=click.File('r'), required=False,
+ at click.option('--load-github-from', type=click.File('r', encoding='utf-8'), required=False,
help='Optionally load the Github Conformance tracking data from the given file. Useful to avoid '
'running into API call limits when testing locally. See `conformance github download`.')
def csv_synchronize(files, output, load_github_from):
@@ -615,9 +615,9 @@ def csv_synchronize(files, output, load_github_from):
@csv_cmd.command('create')
@click.argument('issues', nargs=-1)
- at click.option('--output', '-o', type=click.File('w'), default='-',
+ at click.option('--output', '-o', type=click.File('w', encoding='utf-8'), default='-',
help='Write the generated CSV to the specified file. Defaults to stdout.')
- at click.option('--load-github-from', type=click.File('r'), required=False,
+ at click.option('--load-github-from', type=click.File('r', encoding='utf-8'), required=False,
help='Optionally load the Github Conformance tracking data from the given file. Useful to avoid '
'running into API call limits when testing locally. See `conformance github download`.')
def csv_create(issues, output, load_github_from):
``````````
</details>
https://github.com/llvm/llvm-project/pull/189534
More information about the libcxx-commits
mailing list