Skip to content

Commit

Permalink
Fix deprecated warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanking13 committed Jun 15, 2024
1 parent d6c80c5 commit 219cce5
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 18 deletions.
4 changes: 2 additions & 2 deletions pyodide_build/buildall.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
"""

import dataclasses
import datetime
import shutil
import subprocess
import sys
from collections import defaultdict
from collections.abc import Iterable, Iterator
from contextlib import contextmanager
from datetime import datetime
from functools import total_ordering
from graphlib import TopologicalSorter
from pathlib import Path
Expand Down Expand Up @@ -188,7 +188,7 @@ def __init__(
self.finished = False

def finish(self, success: bool, elapsed_time: float) -> None:
time = datetime.utcfromtimestamp(elapsed_time)
time = datetime.datetime.fromtimestamp(elapsed_time, tz=datetime.UTC)
if time.minute == 0:
minutes = ""
else:
Expand Down
8 changes: 7 additions & 1 deletion pyodide_build/buildpkg.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import shutil
import subprocess
import sys
import warnings
from collections.abc import Iterator
from datetime import datetime
from pathlib import Path
Expand Down Expand Up @@ -348,7 +349,12 @@ def _download_and_extract(self) -> None:
shutil.copy(tarballpath, self.src_dist_dir)
return

shutil.unpack_archive(tarballpath, self.build_dir)
with warnings.catch_warnings():
# Python 3.12-3.13 emits a DeprecationWarning when using shutil.unpack_archive without a filter,
# but filter doesn't work well for zip files, so we suppress the warning until we find a better solution.
# https://github.com/python/cpython/issues/112760
warnings.simplefilter("ignore")
shutil.unpack_archive(tarballpath, self.build_dir)

extract_dir_name = self.source_metadata.extract_dir
if extract_dir_name is None:
Expand Down
5 changes: 1 addition & 4 deletions pyodide_build/tests/test_bash_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,4 @@ def test_subprocess_with_shared_env_logging(capfd, tmp_path):
str(dir),
]

logs = [l.strip() for l in cap.err.splitlines()]
assert len(logs) == 2
assert "ERROR: test2 script failed" in logs[0]
assert "exit code: 7" in logs[1]
assert "ERROR: test2 script failed" in cap.err
5 changes: 0 additions & 5 deletions pyodide_build/tests/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,6 @@
skeleton,
)

only_node = pytest.mark.xfail_browsers(
chrome="node only", firefox="node only", safari="node only"
)


runner = CliRunner()


Expand Down
11 changes: 5 additions & 6 deletions pyodide_build/xbuildenv_releases.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import os
from functools import cache

import pydantic
from packaging.version import Version
from pydantic import BaseModel, ConfigDict

Expand All @@ -23,9 +22,7 @@ class CrossBuildEnvReleaseSpec(BaseModel):
# Minimum and maximum pyodide-build versions that is compatible with this release
min_pyodide_build_version: str | None = None
max_pyodide_build_version: str | None = None
model_config = ConfigDict(
extra="forbid", title="CrossBuildEnvReleasesSpec"
)
model_config = ConfigDict(extra="forbid", title="CrossBuildEnvReleasesSpec")

@property
def python_version_tuple(self) -> tuple[int, int, int]:
Expand Down Expand Up @@ -224,6 +221,8 @@ def load_cross_build_env_metadata(url_or_filename: str) -> CrossBuildEnvMetaSpec
response = requests.get(url_or_filename)
response.raise_for_status()
data = response.json()
return CrossBuildEnvMetaSpec.parse_obj(data)
return CrossBuildEnvMetaSpec.model_validate(data)

return CrossBuildEnvMetaSpec.parse_file(url_or_filename)
with open(url_or_filename) as f:
data = f.read()
return CrossBuildEnvMetaSpec.model_validate_json(data)

0 comments on commit 219cce5

Please sign in to comment.