Skip to content

Commit d834d3b

Browse files
authored
Merge pull request #120 from domdfcoding/toml-utf8
Use UTF-8 encoding when reading pyproject.toml
2 parents 54acda9 + 93de5b2 commit d834d3b

File tree

7 files changed

+19
-6
lines changed

7 files changed

+19
-6
lines changed

pep517/build.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Build a project using PEP 517 hooks.
22
"""
33
import argparse
4+
import io
45
import logging
56
import os
67
import shutil
@@ -30,7 +31,7 @@ def load_system(source_dir):
3031
Load the build system from a source dir (pyproject.toml).
3132
"""
3233
pyproject = os.path.join(source_dir, 'pyproject.toml')
33-
with open(pyproject) as f:
34+
with io.open(pyproject, encoding="utf-8") as f:
3435
pyproject_data = toml_load(f)
3536
return pyproject_data['build-system']
3637

pep517/check.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Check a project and backend by attempting to build using PEP 517 hooks.
22
"""
33
import argparse
4+
import io
45
import logging
56
import os
67
from os.path import isfile, join as pjoin
@@ -141,7 +142,7 @@ def check(source_dir):
141142
return False
142143

143144
try:
144-
with open(pyproject) as f:
145+
with io.open(pyproject, encoding="utf-8") as f:
145146
pyproject_data = toml_load(f)
146147
# Ensure the mandatory data can be loaded
147148
buildsys = pyproject_data['build-system']

pep517/envbuild.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Build wheels/sdists by installing build deps to a temporary environment.
22
"""
33

4+
import io
45
import os
56
import logging
67
import shutil
@@ -16,7 +17,10 @@
1617

1718

1819
def _load_pyproject(source_dir):
19-
with open(os.path.join(source_dir, 'pyproject.toml')) as f:
20+
with io.open(
21+
os.path.join(source_dir, 'pyproject.toml'),
22+
encoding="utf-8",
23+
) as f:
2024
pyproject_data = toml_load(f)
2125
buildsys = pyproject_data['build-system']
2226
return (

tests/samples/pkg1/pyproject.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
[build-system]
22
requires = ["eg_buildsys"]
33
build-backend = "buildsys"
4+
5+
[project]
6+
description = "Factory ⸻ A code generator 🏭"
7+
maintainers = [{name = "Łukasz Langa"}]

tests/test_call_hooks.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import io
12
import os
23
from os.path import dirname, abspath, join as pjoin
34
import tarfile
@@ -28,7 +29,7 @@
2829

2930
def get_hooks(pkg, **kwargs):
3031
source_dir = pjoin(SAMPLES_DIR, pkg)
31-
with open(pjoin(source_dir, 'pyproject.toml')) as f:
32+
with io.open(pjoin(source_dir, 'pyproject.toml'), encoding="utf-8") as f:
3233
data = toml_load(f)
3334
return Pep517HookCaller(
3435
source_dir, data['build-system']['build-backend'], **kwargs

tests/test_hook_fallbacks.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import io
12
from os.path import dirname, abspath, join as pjoin
23
import pytest
34
from testpath import modified_env, assert_isfile
@@ -12,7 +13,7 @@
1213

1314
def get_hooks(pkg):
1415
source_dir = pjoin(SAMPLES_DIR, pkg)
15-
with open(pjoin(source_dir, 'pyproject.toml')) as f:
16+
with io.open(pjoin(source_dir, 'pyproject.toml'), encoding="utf-8") as f:
1617
data = toml_load(f)
1718
return Pep517HookCaller(source_dir, data['build-system']['build-backend'])
1819

tests/test_inplace_hooks.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import io
12
from os.path import dirname, abspath, join as pjoin
23
from testpath import modified_env
34
import pytest
@@ -12,7 +13,7 @@
1213

1314
def get_hooks(pkg, backend=None, path=None):
1415
source_dir = pjoin(SAMPLES_DIR, pkg)
15-
with open(pjoin(source_dir, 'pyproject.toml')) as f:
16+
with io.open(pjoin(source_dir, 'pyproject.toml'), encoding="utf-8") as f:
1617
data = toml_load(f)
1718
if backend is None:
1819
backend = data['build-system']['build-backend']

0 commit comments

Comments
 (0)