<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/2f48b46aae9b11113d6e921e631954bc28b4e42d">https://github.com/macports/macports-ports/commit/2f48b46aae9b11113d6e921e631954bc28b4e42d</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 2f48b46aae9b11113d6e921e631954bc28b4e42d
</span>Author: Mark Mentovai <mark@mentovai.com>
AuthorDate: Mon Nov 6 10:11:06 2023 -0500
<span style='display:block; white-space:pre;color:#404040;'> py-pyfatfs: new port (1.0.5)
</span>---
python/py-pyfatfs/Portfile | 33 +++++++++
python/py-pyfatfs/files/patch-py312_tests.diff | 94 ++++++++++++++++++++++++++
2 files changed, 127 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pyfatfs/Portfile b/python/py-pyfatfs/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..158b60212f0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pyfatfs/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup python 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name py-pyfatfs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 1.0.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers nomaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms {darwin any}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license MIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description A filesystem module to access or modify FAT filesystems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description ${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage https://github.com/nathanhi/pyfatfs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 2b632da58d4bbea4535b23ec1f35bce3df8f5d77 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 e49ea062119fdf6198c7bbbcfe08589d8919e34ac21f5f604d0ed8b5c444972d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 50114
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions 38 39 310 311 312
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.pep517 yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${name} ne ${subport}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-py312_tests.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append port:py${python.version}-pip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:py${python.version}-fs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.args --skip-dependency-check
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test.run yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pyfatfs/files/patch-py312_tests.diff b/python/py-pyfatfs/files/patch-py312_tests.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c816c8a96d6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pyfatfs/files/patch-py312_tests.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,94 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/nathanhi/pyfatfs/commit/a4ec954fc12ff212740bc06ca962d539111e0f60.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From a4ec954fc12ff212740bc06ca962d539111e0f60 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: "Nathan-J. Hirschauer" <nathanhi@deepserve.info>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 15 Oct 2023 11:27:55 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Add workaround for PyFilesystem/pyfilesystem2#568 (Python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3.12)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyfatfs/EightDotThree.py | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyfatfs/FatIO.py | 8 ++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tests/test_PyFatFS.py | 16 +++++++++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 19 insertions(+), 9 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyfatfs/EightDotThree.py pyfatfs/EightDotThree.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 57d0ac3..0791228 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyfatfs/EightDotThree.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyfatfs/EightDotThree.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,7 @@ def set_byte_name(self, name: bytes):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ :param name: `bytes`: Padded (must be 11 bytes) 8dot3 name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not isinstance(name, bytes):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- raise TypeError(f"Given parameter must be of type bytes,"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ raise TypeError(f"Given parameter must be of type bytes, "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ f"but got {type(name)} instead.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ name = bytearray(name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -94,7 +94,7 @@ def set_byte_name(self, name: bytes):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def set_str_name(self, name: str):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """Set the name as string from user input (i.e. folder creation)."""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not isinstance(name, str):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- raise TypeError(f"Given parameter must be of type str,"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ raise TypeError(f"Given parameter must be of type str, "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ f"but got {type(name)} instead.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if not self.is_8dot3_conform(name, self.encoding):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyfatfs/FatIO.py pyfatfs/FatIO.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5947bd0..67c316e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyfatfs/FatIO.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyfatfs/FatIO.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,10 +57,10 @@ def __repr__(self) -> str:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ex: <FatFile fs=<PyFat object> path="/README.txt" mode="r">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return f'<{self.__class__.__name__} ' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- f'fs={self.fs} ' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- f'path="{self.name}" ' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- f'mode="{self.mode}"'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return str(f'<{self.__class__.__name__} '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ f'fs={self.fs} '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ f'path="{self.name}" '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ f'mode="{self.mode}"')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def seek(self, offset: int, whence: int = 0) -> int:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """Seek to a given offset in the file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git tests/test_PyFatFS.py tests/test_PyFatFS.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a62d307..c5771e4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- tests/test_PyFatFS.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tests/test_PyFatFS.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,7 +36,17 @@ def _make_fs(fat_type: int, **kwargs) -> (PyFatBytesIOFS, BytesIO):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ in_memory_fs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class TestPyFatFS16(FSTestCases, TestCase):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class PyFsCompatLayer:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ """PyFilesystem2 Python 3.12 compatibility layer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Adds a workaround for PyFilesystem2#568:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ https://github.com/PyFilesystem/pyfilesystem2/issues/568
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ assertRaisesRegexp = TestCase.assertRaisesRegex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class TestPyFatFS16(FSTestCases, TestCase, PyFsCompatLayer):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """Integration tests with PyFilesystem2 for FAT16."""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FAT_TYPE = PyFat.FAT_TYPE_FAT16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,13 +117,13 @@ def test_writetest_truncates(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assert self.fs.readtext(fname) == '1' * 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class TestPyFatFS32(TestPyFatFS16, FSTestCases, TestCase):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class TestPyFatFS32(TestPyFatFS16, FSTestCases, TestCase, PyFsCompatLayer):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """Integration tests with PyFilesystem2 for FAT32."""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FAT_TYPE = PyFat.FAT_TYPE_FAT32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class TestPyFatFS12(TestPyFatFS16, FSTestCases, TestCase):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class TestPyFatFS12(TestPyFatFS16, FSTestCases, TestCase, PyFsCompatLayer):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """Test specifics of FAT12 filesystem."""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FAT_TYPE = PyFat.FAT_TYPE_FAT12
</span></pre><pre style='margin:0'>
</pre>