Merge master into staging-next

This commit is contained in:
github-actions[bot]
2022-12-15 12:01:09 +00:00
committed by GitHub
14 changed files with 125 additions and 28 deletions
@@ -0,0 +1,28 @@
diff --git a/scandir.py b/scandir.py
index 3f602fb..40af3e5 100644
--- a/scandir.py
+++ b/scandir.py
@@ -23,6 +23,7 @@ from os import listdir, lstat, stat, strerror
from os.path import join, islink
from stat import S_IFDIR, S_IFLNK, S_IFREG
import collections
+import platform
import sys
try:
@@ -432,6 +433,15 @@ elif sys.platform.startswith(('linux', 'darwin', 'sunos5')) or 'bsd' in sys.plat
('__d_padding', ctypes.c_uint8 * 4),
('d_name', ctypes.c_char * 256),
)
+ elif 'darwin' in sys.platform and 'arm64' in platform.machine():
+ _fields_ = (
+ ('d_ino', ctypes.c_uint64),
+ ('d_off', ctypes.c_uint64),
+ ('d_reclen', ctypes.c_uint16),
+ ('d_namlen', ctypes.c_uint16),
+ ('d_type', ctypes.c_uint8),
+ ('d_name', ctypes.c_char * 1024),
+ )
else:
_fields_ = (
('d_ino', ctypes.c_uint32), # must be uint32, not ulong
@@ -0,0 +1,24 @@
{ lib, python, buildPythonPackage, fetchPypi }:
buildPythonPackage rec {
pname = "scandir";
version = "1.10.0";
src = fetchPypi {
inherit pname version;
sha256 = "1bkqwmf056pkchf05ywbnf659wqlp6lljcdb0y88wr9f0vv32ijd";
};
patches = [
./add-aarch64-darwin-dirent.patch
];
checkPhase = "${python.interpreter} test/run_tests.py";
meta = with lib; {
description = "A better directory iterator and faster os.walk()";
homepage = "https://github.com/benhoyt/scandir";
license = licenses.gpl3;
maintainers = with maintainers; [ abbradar ];
};
}
@@ -0,0 +1,32 @@
{ lib, buildPythonPackage, fetchPypi, pythonOlder, isPy3k, isPyPy, unittestCheckHook
, pythonAtLeast }:
let
testDir = if isPy3k then "src" else "python2";
in buildPythonPackage rec {
pname = "typing";
version = "3.10.0.0";
src = fetchPypi {
inherit pname version;
sha256 = "13b4ad211f54ddbf93e5901a9967b1e07720c1d1b78d596ac6a439641aa1b130";
};
disabled = pythonAtLeast "3.5";
# Error for Python3.6: ImportError: cannot import name 'ann_module'
# See https://github.com/python/typing/pull/280
# Also, don't bother on PyPy: AssertionError: TypeError not raised
doCheck = pythonOlder "3.6" && !isPyPy;
checkInputs = [ unittestCheckHook ];
unittestFlagsArray = [ "-s" testDir ];
meta = with lib; {
description = "Backport of typing module to Python versions older than 3.5";
homepage = "https://docs.python.org/3/library/typing.html";
license = licenses.psfl;
};
}