summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-03-09 08:05:45 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-03-09 08:05:45 +0000
commit2a0c56a1b1aa7531107ace4150cc49824f1c482d (patch)
treea44c896b73105ce6c65aa850f6931dfbfb0b5272 /dev-python
parent38e23e89fe2b880cb81fadb0fdf0c81106ff068b (diff)
downloadbaldeagleos-repo-2a0c56a1b1aa7531107ace4150cc49824f1c482d.tar.gz
baldeagleos-repo-2a0c56a1b1aa7531107ace4150cc49824f1c482d.tar.xz
baldeagleos-repo-2a0c56a1b1aa7531107ace4150cc49824f1c482d.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/pyarrow/Manifest1
-rw-r--r--dev-python/pyarrow/files/pyarrow-15.0.1-32bit.patch325
-rw-r--r--dev-python/pyarrow/pyarrow-15.0.1.ebuild87
-rw-r--r--dev-python/tpm2-pytss/Manifest2
-rw-r--r--dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-internal-crypto-fix-_MyRSAPrivateNumbers-with-crypto.patch73
-rw-r--r--dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-test-add-check-for-renamed-cryptography-types.patch45
-rw-r--r--dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-test-disable-pcr_set_auth_value-and-pcr_set_auth_pol.patch40
-rw-r--r--dev-python/tpm2-pytss/tpm2-pytss-2.2.1.ebuild (renamed from dev-python/tpm2-pytss/tpm2-pytss-2.1.0-r2.ebuild)30
-rw-r--r--dev-python/ytmusicapi/Manifest1
-rw-r--r--dev-python/ytmusicapi/ytmusicapi-1.6.0.ebuild23
10 files changed, 451 insertions, 176 deletions
diff --git a/dev-python/pyarrow/Manifest b/dev-python/pyarrow/Manifest
index 36dbedb282d9..809d7f359a44 100644
--- a/dev-python/pyarrow/Manifest
+++ b/dev-python/pyarrow/Manifest
@@ -1 +1,2 @@
DIST apache-arrow-15.0.0.tar.gz 21491996 BLAKE2B 55709d1d181ed5c1482e1eadc9031c692bbd39434ccad17be8c0f3f5af47e3b3d5f262903d1ce09c39442497e14c22c80d7b30215e4de830a4ac82a1b3db34fb SHA512 d5dccaa0907b0e6f2a460e32ae75091942dcb70b51db4aefe2767ee8d99882694607b723a9c06898dda3938d8eb498258d7f9aad11054665b6ea9c2fbaeafa74
+DIST apache-arrow-15.0.1.tar.gz 21499849 BLAKE2B 5f8f91932941105e753b7b7812bf132bd99501ccfac0574b8072e638764cb46694062bcdb8568a474f50de008ede9259b70f16ba7f33ada0f6ec763c21b1c25a SHA512 b426421336c6bc3757626b2743a039d3c7030ad257c3bcf3247a236462dbc140b7eff4476cb727f4d048144a90c1368740c139318f8237d6cc20e87d3efdaf74
diff --git a/dev-python/pyarrow/files/pyarrow-15.0.1-32bit.patch b/dev-python/pyarrow/files/pyarrow-15.0.1-32bit.patch
new file mode 100644
index 000000000000..0b54deaf2c33
--- /dev/null
+++ b/dev-python/pyarrow/files/pyarrow-15.0.1-32bit.patch
@@ -0,0 +1,325 @@
+diff --git a/pyarrow/array.pxi b/pyarrow/array.pxi
+index 1416f5f43..058e0eec0 100644
+--- a/pyarrow/array.pxi
++++ b/pyarrow/array.pxi
+@@ -1573,7 +1573,7 @@ cdef class Array(_PandasConvertible):
+ # decoding the dictionary will make sure nulls are correctly handled.
+ # Decoding a dictionary does imply a copy by the way,
+ # so it can't be done if the user requested a zero_copy.
+- c_options.decode_dictionaries = not zero_copy_only
++ c_options.decode_dictionaries = True
+ c_options.zero_copy_only = zero_copy_only
+ c_options.to_numpy = True
+
+@@ -1585,9 +1585,6 @@ cdef class Array(_PandasConvertible):
+ # always convert to numpy array without pandas dependency
+ array = PyObject_to_object(out)
+
+- if isinstance(array, dict):
+- array = np.take(array['dictionary'], array['indices'])
+-
+ if writable and not array.flags.writeable:
+ # if the conversion already needed to a copy, writeable is True
+ array = array.copy()
+diff --git a/pyarrow/io.pxi b/pyarrow/io.pxi
+index 1897e76ef..b57980b3d 100644
+--- a/pyarrow/io.pxi
++++ b/pyarrow/io.pxi
+@@ -1987,7 +1987,7 @@ def foreign_buffer(address, size, base=None):
+ Object that owns the referenced memory.
+ """
+ cdef:
+- intptr_t c_addr = address
++ uintptr_t c_addr = address
+ int64_t c_size = size
+ shared_ptr[CBuffer] buf
+
+diff --git a/pyarrow/lib.pxd b/pyarrow/lib.pxd
+index 58ec34add..91c7633a7 100644
+--- a/pyarrow/lib.pxd
++++ b/pyarrow/lib.pxd
+@@ -285,6 +285,8 @@ cdef class Tensor(_Weakrefable):
+
+ cdef readonly:
+ DataType type
++ bytes _ssize_t_shape
++ bytes _ssize_t_strides
+
+ cdef void init(self, const shared_ptr[CTensor]& sp_tensor)
+
+diff --git a/pyarrow/src/arrow/python/arrow_to_pandas.cc b/pyarrow/src/arrow/python/arrow_to_pandas.cc
+index e979342b8..8354812ea 100644
+--- a/pyarrow/src/arrow/python/arrow_to_pandas.cc
++++ b/pyarrow/src/arrow/python/arrow_to_pandas.cc
+@@ -2499,6 +2499,8 @@ Status ConvertChunkedArrayToPandas(const PandasOptions& options,
+ std::shared_ptr<ChunkedArray> arr, PyObject* py_ref,
+ PyObject** out) {
+ if (options.decode_dictionaries && arr->type()->id() == Type::DICTIONARY) {
++ // XXX we should return an error as below if options.zero_copy_only
++ // is true, but that would break compatibility with existing tests.
+ const auto& dense_type =
+ checked_cast<const DictionaryType&>(*arr->type()).value_type();
+ RETURN_NOT_OK(DecodeDictionaries(options.pool, dense_type, &arr));
+diff --git a/pyarrow/src/arrow/python/io.cc b/pyarrow/src/arrow/python/io.cc
+index 43f8297c5..197f8b9d3 100644
+--- a/pyarrow/src/arrow/python/io.cc
++++ b/pyarrow/src/arrow/python/io.cc
+@@ -92,9 +92,12 @@ class PythonFile {
+ Status Seek(int64_t position, int whence) {
+ RETURN_NOT_OK(CheckClosed());
+
++ // NOTE: `long long` is at least 64 bits in the C standard, the cast below is
++ // therefore safe.
++
+ // whence: 0 for relative to start of file, 2 for end of file
+- PyObject* result = cpp_PyObject_CallMethod(file_.obj(), "seek", "(ni)",
+- static_cast<Py_ssize_t>(position), whence);
++ PyObject* result = cpp_PyObject_CallMethod(file_.obj(), "seek", "(Li)",
++ static_cast<long long>(position), whence);
+ Py_XDECREF(result);
+ PY_RETURN_IF_ERROR(StatusCode::IOError);
+ return Status::OK();
+@@ -103,16 +106,16 @@ class PythonFile {
+ Status Read(int64_t nbytes, PyObject** out) {
+ RETURN_NOT_OK(CheckClosed());
+
+- PyObject* result = cpp_PyObject_CallMethod(file_.obj(), "read", "(n)",
+- static_cast<Py_ssize_t>(nbytes));
++ PyObject* result = cpp_PyObject_CallMethod(file_.obj(), "read", "(L)",
++ static_cast<long long>(nbytes));
+ PY_RETURN_IF_ERROR(StatusCode::IOError);
+ *out = result;
+ return Status::OK();
+ }
+
+ Status ReadBuffer(int64_t nbytes, PyObject** out) {
+- PyObject* result = cpp_PyObject_CallMethod(file_.obj(), "read_buffer", "(n)",
+- static_cast<Py_ssize_t>(nbytes));
++ PyObject* result = cpp_PyObject_CallMethod(file_.obj(), "read_buffer", "(L)",
++ static_cast<long long>(nbytes));
+ PY_RETURN_IF_ERROR(StatusCode::IOError);
+ *out = result;
+ return Status::OK();
+diff --git a/pyarrow/tensor.pxi b/pyarrow/tensor.pxi
+index 1afce7f4a..c674663dc 100644
+--- a/pyarrow/tensor.pxi
++++ b/pyarrow/tensor.pxi
+@@ -15,6 +15,9 @@
+ # specific language governing permissions and limitations
+ # under the License.
+
++# Avoid name clash with `pa.struct` function
++import struct as _struct
++
+
+ cdef class Tensor(_Weakrefable):
+ """
+@@ -31,7 +34,6 @@ cdef class Tensor(_Weakrefable):
+ shape: (2, 3)
+ strides: (12, 4)
+ """
+-
+ def __init__(self):
+ raise TypeError("Do not call Tensor's constructor directly, use one "
+ "of the `pyarrow.Tensor.from_*` functions instead.")
+@@ -40,6 +42,14 @@ cdef class Tensor(_Weakrefable):
+ self.sp_tensor = sp_tensor
+ self.tp = sp_tensor.get()
+ self.type = pyarrow_wrap_data_type(self.tp.type())
++ self._ssize_t_shape = self._make_shape_or_strides_buffer(self.shape)
++ self._ssize_t_strides = self._make_shape_or_strides_buffer(self.strides)
++
++ def _make_shape_or_strides_buffer(self, values):
++ """
++ Make a bytes object holding an array of `values` cast to `Py_ssize_t`.
++ """
++ return _struct.pack(f"{len(values)}n", *values)
+
+ def __repr__(self):
+ return """<pyarrow.Tensor>
+@@ -282,10 +292,8 @@ strides: {0.strides}""".format(self)
+ buffer.readonly = 0
+ else:
+ buffer.readonly = 1
+- # NOTE: This assumes Py_ssize_t == int64_t, and that the shape
+- # and strides arrays lifetime is tied to the tensor's
+- buffer.shape = <Py_ssize_t *> &self.tp.shape()[0]
+- buffer.strides = <Py_ssize_t *> &self.tp.strides()[0]
++ buffer.shape = <Py_ssize_t *> cp.PyBytes_AsString(self._ssize_t_shape)
++ buffer.strides = <Py_ssize_t *> cp.PyBytes_AsString(self._ssize_t_strides)
+ buffer.suboffsets = NULL
+
+
+diff --git a/pyarrow/tests/test_gdb.py b/pyarrow/tests/test_gdb.py
+index d0d241cc5..0d12d710d 100644
+--- a/pyarrow/tests/test_gdb.py
++++ b/pyarrow/tests/test_gdb.py
+@@ -885,32 +885,61 @@ def test_arrays_heap(gdb_arrow):
+ ("arrow::DurationArray of type arrow::duration"
+ "(arrow::TimeUnit::NANO), length 2, offset 0, null count 1 = {"
+ "[0] = null, [1] = -1234567890123456789ns}"))
+- check_heap_repr(
+- gdb_arrow, "heap_timestamp_array_s",
+- ("arrow::TimestampArray of type arrow::timestamp"
+- "(arrow::TimeUnit::SECOND), length 4, offset 0, null count 1 = {"
+- "[0] = null, [1] = 0s [1970-01-01 00:00:00], "
+- "[2] = -2203932304s [1900-02-28 12:34:56], "
+- "[3] = 63730281600s [3989-07-14 00:00:00]}"))
+- check_heap_repr(
+- gdb_arrow, "heap_timestamp_array_ms",
+- ("arrow::TimestampArray of type arrow::timestamp"
+- "(arrow::TimeUnit::MILLI), length 3, offset 0, null count 1 = {"
+- "[0] = null, [1] = -2203932303877ms [1900-02-28 12:34:56.123], "
+- "[2] = 63730281600789ms [3989-07-14 00:00:00.789]}"))
+- check_heap_repr(
+- gdb_arrow, "heap_timestamp_array_us",
+- ("arrow::TimestampArray of type arrow::timestamp"
+- "(arrow::TimeUnit::MICRO), length 3, offset 0, null count 1 = {"
+- "[0] = null, "
+- "[1] = -2203932303345679us [1900-02-28 12:34:56.654321], "
+- "[2] = 63730281600456789us [3989-07-14 00:00:00.456789]}"))
+- check_heap_repr(
+- gdb_arrow, "heap_timestamp_array_ns",
+- ("arrow::TimestampArray of type arrow::timestamp"
+- "(arrow::TimeUnit::NANO), length 2, offset 0, null count 1 = {"
+- "[0] = null, "
+- "[1] = -2203932303012345679ns [1900-02-28 12:34:56.987654321]}"))
++ if sys.maxsize > 2**32:
++ check_heap_repr(
++ gdb_arrow, "heap_timestamp_array_s",
++ ("arrow::TimestampArray of type arrow::timestamp"
++ "(arrow::TimeUnit::SECOND), length 4, offset 0, null count 1 = {"
++ "[0] = null, [1] = 0s [1970-01-01 00:00:00], "
++ "[2] = -2203932304s [1900-02-28 12:34:56], "
++ "[3] = 63730281600s [3989-07-14 00:00:00]}"))
++ check_heap_repr(
++ gdb_arrow, "heap_timestamp_array_ms",
++ ("arrow::TimestampArray of type arrow::timestamp"
++ "(arrow::TimeUnit::MILLI), length 3, offset 0, null count 1 = {"
++ "[0] = null, [1] = -2203932303877ms [1900-02-28 12:34:56.123], "
++ "[2] = 63730281600789ms [3989-07-14 00:00:00.789]}"))
++ check_heap_repr(
++ gdb_arrow, "heap_timestamp_array_us",
++ ("arrow::TimestampArray of type arrow::timestamp"
++ "(arrow::TimeUnit::MICRO), length 3, offset 0, null count 1 = {"
++ "[0] = null, "
++ "[1] = -2203932303345679us [1900-02-28 12:34:56.654321], "
++ "[2] = 63730281600456789us [3989-07-14 00:00:00.456789]}"))
++ check_heap_repr(
++ gdb_arrow, "heap_timestamp_array_ns",
++ ("arrow::TimestampArray of type arrow::timestamp"
++ "(arrow::TimeUnit::NANO), length 2, offset 0, null count 1 = {"
++ "[0] = null, "
++ "[1] = -2203932303012345679ns [1900-02-28 12:34:56.987654321]}"))
++ else:
++ # Python's datetime is limited to smaller timestamps on 32-bit platforms
++ check_heap_repr(
++ gdb_arrow, "heap_timestamp_array_s",
++ ("arrow::TimestampArray of type arrow::timestamp"
++ "(arrow::TimeUnit::SECOND), length 4, offset 0, null count 1 = {"
++ "[0] = null, [1] = 0s [1970-01-01 00:00:00], "
++ "[2] = -2203932304s [too large to represent], "
++ "[3] = 63730281600s [too large to represent]}"))
++ check_heap_repr(
++ gdb_arrow, "heap_timestamp_array_ms",
++ ("arrow::TimestampArray of type arrow::timestamp"
++ "(arrow::TimeUnit::MILLI), length 3, offset 0, null count 1 = {"
++ "[0] = null, [1] = -2203932303877ms [too large to represent], "
++ "[2] = 63730281600789ms [too large to represent]}"))
++ check_heap_repr(
++ gdb_arrow, "heap_timestamp_array_us",
++ ("arrow::TimestampArray of type arrow::timestamp"
++ "(arrow::TimeUnit::MICRO), length 3, offset 0, null count 1 = {"
++ "[0] = null, "
++ "[1] = -2203932303345679us [too large to represent], "
++ "[2] = 63730281600456789us [too large to represent]}"))
++ check_heap_repr(
++ gdb_arrow, "heap_timestamp_array_ns",
++ ("arrow::TimestampArray of type arrow::timestamp"
++ "(arrow::TimeUnit::NANO), length 2, offset 0, null count 1 = {"
++ "[0] = null, "
++ "[1] = -2203932303012345679ns [too large to represent]}"))
+
+ # Decimal
+ check_heap_repr(
+diff --git a/pyarrow/tests/test_io.py b/pyarrow/tests/test_io.py
+index 5a495aa80..17eab871a 100644
+--- a/pyarrow/tests/test_io.py
++++ b/pyarrow/tests/test_io.py
+@@ -36,7 +36,7 @@ from pyarrow import Codec
+ import pyarrow as pa
+
+
+-def check_large_seeks(file_factory):
++def check_large_seeks(file_factory, expected_error=None):
+ if sys.platform in ('win32', 'darwin'):
+ pytest.skip("need sparse file support")
+ try:
+@@ -45,11 +45,16 @@ def check_large_seeks(file_factory):
+ f.truncate(2 ** 32 + 10)
+ f.seek(2 ** 32 + 5)
+ f.write(b'mark\n')
+- with file_factory(filename) as f:
+- assert f.seek(2 ** 32 + 5) == 2 ** 32 + 5
+- assert f.tell() == 2 ** 32 + 5
+- assert f.read(5) == b'mark\n'
+- assert f.tell() == 2 ** 32 + 10
++ if expected_error:
++ with expected_error:
++ file_factory(filename)
++ else:
++ with file_factory(filename) as f:
++ assert f.size() == 2 ** 32 + 10
++ assert f.seek(2 ** 32 + 5) == 2 ** 32 + 5
++ assert f.tell() == 2 ** 32 + 5
++ assert f.read(5) == b'mark\n'
++ assert f.tell() == 2 ** 32 + 10
+ finally:
+ os.unlink(filename)
+
+@@ -1137,7 +1142,14 @@ def test_memory_zero_length(tmpdir):
+
+
+ def test_memory_map_large_seeks():
+- check_large_seeks(pa.memory_map)
++ if sys.maxsize >= 2**32:
++ expected_error = None
++ else:
++ expected_error = pytest.raises(
++ pa.ArrowCapacityError,
++ match="Requested memory map length 4294967306 "
++ "does not fit in a C size_t")
++ check_large_seeks(pa.memory_map, expected_error=expected_error)
+
+
+ def test_memory_map_close_remove(tmpdir):
+diff --git a/pyarrow/tests/test_pandas.py b/pyarrow/tests/test_pandas.py
+index 8fd4b3041..168ed7e42 100644
+--- a/pyarrow/tests/test_pandas.py
++++ b/pyarrow/tests/test_pandas.py
+@@ -2601,8 +2601,9 @@ class TestConvertStructTypes:
+ ('yy', np.bool_)])),
+ ('y', np.int16),
+ ('z', np.object_)])
+- # Note: itemsize is not a multiple of sizeof(object)
+- assert dt.itemsize == 12
++ # Note: itemsize is not necessarily a multiple of sizeof(object)
++ # object_ is 8 bytes on 64-bit systems, 4 bytes on 32-bit systems
++ assert dt.itemsize == (12 if sys.maxsize > 2**32 else 8)
+ ty = pa.struct([pa.field('x', pa.struct([pa.field('xx', pa.int8()),
+ pa.field('yy', pa.bool_())])),
+ pa.field('y', pa.int16()),
+diff --git a/pyarrow/tests/test_schema.py b/pyarrow/tests/test_schema.py
+index fa75fcea3..8793c9e77 100644
+--- a/pyarrow/tests/test_schema.py
++++ b/pyarrow/tests/test_schema.py
+@@ -681,7 +681,8 @@ def test_schema_sizeof():
+ pa.field('bar', pa.string()),
+ ])
+
+- assert sys.getsizeof(schema) > 30
++ # Note: pa.schema is twice as large on 64-bit systems
++ assert sys.getsizeof(schema) > (30 if sys.maxsize > 2**32 else 15)
+
+ schema2 = schema.with_metadata({"key": "some metadata"})
+ assert sys.getsizeof(schema2) > sys.getsizeof(schema)
diff --git a/dev-python/pyarrow/pyarrow-15.0.1.ebuild b/dev-python/pyarrow/pyarrow-15.0.1.ebuild
new file mode 100644
index 000000000000..3b937ffd6808
--- /dev/null
+++ b/dev-python/pyarrow/pyarrow-15.0.1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 multiprocessing
+
+DESCRIPTION="Python library for Apache Arrow"
+HOMEPAGE="
+ https://arrow.apache.org/
+ https://github.com/apache/arrow/
+ https://pypi.org/project/pyarrow/
+"
+SRC_URI="mirror://apache/arrow/arrow-${PV}/apache-arrow-${PV}.tar.gz"
+S="${WORKDIR}/apache-arrow-${PV}/python"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~riscv"
+IUSE="parquet snappy ssl"
+
+RDEPEND="
+ ~dev-libs/apache-arrow-${PV}[compute,dataset,json,parquet?,re2,snappy?,ssl?]
+ dev-python/numpy[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ <dev-python/pytest-8.1[${PYTHON_USEDEP}]
+ dev-libs/apache-arrow[lz4,zlib]
+ )
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ # upstream backports
+ "${FILESDIR}/${PN}-15.0.1-32bit.patch"
+)
+
+src_prepare() {
+ # cython's -Werror
+ sed -i -e '/--warning-errors/d' CMakeLists.txt || die
+ distutils-r1_src_prepare
+}
+
+src_compile() {
+ export PYARROW_PARALLEL="$(makeopts_jobs)"
+ export PYARROW_BUILD_VERBOSE=1
+ export PYARROW_CXXFLAGS="${CXXFLAGS}"
+ export PYARROW_BUNDLE_ARROW_CPP_HEADERS=0
+ export PYARROW_CMAKE_GENERATOR=Ninja
+ export PYARROW_WITH_HDFS=1
+ if use parquet; then
+ export PYARROW_WITH_DATASET=1
+ export PYARROW_WITH_PARQUET=1
+ use ssl && export PYARROW_WITH_PARQUET_ENCRYPTION=1
+ fi
+ if use snappy; then
+ export PYARROW_WITH_SNAPPY=1
+ fi
+
+ distutils-r1_src_compile
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # wtf?
+ tests/test_fs.py::test_localfs_errors
+ # these require apache-arrow with jemalloc that doesn't seem
+ # to be supported by the Gentoo package
+ tests/test_memory.py::test_env_var
+ tests/test_memory.py::test_specific_memory_pools
+ tests/test_memory.py::test_supported_memory_backends
+ # pandas changed, i guess
+ tests/test_pandas.py::test_array_protocol_pandas_extension_types
+ tests/test_table.py::test_table_factory_function_args_pandas
+ )
+
+ cd "${T}" || die
+ epytest --pyargs pyarrow
+}
diff --git a/dev-python/tpm2-pytss/Manifest b/dev-python/tpm2-pytss/Manifest
index 589b1dd23ffb..e52433cd8399 100644
--- a/dev-python/tpm2-pytss/Manifest
+++ b/dev-python/tpm2-pytss/Manifest
@@ -1 +1 @@
-DIST tpm2-pytss-2.1.0.tar.gz 203244 BLAKE2B f960fc08c12d10835ec7127e47842ea82b760e2de4fb3060a2f55f9bab5396cbe6f8edd07cb35b98d90ba8ec22c2d3ff287acbad47feac05f02df38b154f2132 SHA512 b4d8b3a0124e67278f08ff72d3635221e84ae26b6a5489ee159e641931aa9045b4b5111ed02d5ff86d69bd89b8460b2592a3fdb94742562351e41783c78184ba
+DIST tpm2-pytss-2.2.1.tar.gz 208114 BLAKE2B fe07f38a6c19bc2b2baf079184f39d3ef28268900a35e14bfa22abb61dd956fdb286560ab6d35d66160147296e590fa3dac3d015f9919e1966f43179c1bdcdb1 SHA512 0acaa37d118d71edb123c5e88ef5af5dd78a73b0f8db15500866b6799d98e4c6107f9da1b8c1bce1c9061e9df85d735a39d9335cea65cac0e058db83aed8ad06
diff --git a/dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-internal-crypto-fix-_MyRSAPrivateNumbers-with-crypto.patch b/dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-internal-crypto-fix-_MyRSAPrivateNumbers-with-crypto.patch
deleted file mode 100644
index 4aaecd935c22..000000000000
--- a/dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-internal-crypto-fix-_MyRSAPrivateNumbers-with-crypto.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 0fbb9d099370c0a7031dd13990986538f586836a Mon Sep 17 00:00:00 2001
-From: Erik Larsson <who+github@cnackers.org>
-Date: Fri, 26 Jan 2024 12:01:41 +0100
-Subject: [PATCH 3/3] internal/crypto: fix _MyRSAPrivateNumbers with
- cryptograpy >= 42.0.1
-
-RSAPrivateNumbers was moved to a rust implementation in 42.0.1.
-So inheritance is no longer possible, so turn the class into a
-wrapper instead of a subclass.
-
-Fixes #561
-
-Signed-off-by: Erik Larsson <who+github@cnackers.org>
----
- src/tpm2_pytss/internal/crypto.py | 21 +++++++++------------
- 1 file changed, 9 insertions(+), 12 deletions(-)
-
-diff --git a/src/tpm2_pytss/internal/crypto.py b/src/tpm2_pytss/internal/crypto.py
-index 93e5181..42030c5 100644
---- a/src/tpm2_pytss/internal/crypto.py
-+++ b/src/tpm2_pytss/internal/crypto.py
-@@ -23,7 +23,7 @@ from cryptography.hazmat.primitives.ciphers.algorithms import AES, Camellia
- from cryptography.hazmat.primitives.ciphers import modes, Cipher, CipherAlgorithm
- from cryptography.hazmat.backends import default_backend
- from cryptography.exceptions import UnsupportedAlgorithm, InvalidSignature
--from typing import Tuple, Type
-+from typing import Tuple, Type, Any
- import secrets
- import sys
-
-@@ -220,7 +220,7 @@ def public_to_key(obj):
- return key
-
-
--class _MyRSAPrivateNumbers(rsa.RSAPrivateNumbers):
-+class _MyRSAPrivateNumbers:
- def __init__(self, p: int, n: int, e: int, pubnums: rsa.RSAPublicNumbers):
-
- q = n // p
-@@ -231,7 +231,12 @@ class _MyRSAPrivateNumbers(rsa.RSAPrivateNumbers):
- dmq1 = rsa.rsa_crt_dmq1(d, q)
- iqmp = rsa.rsa_crt_iqmp(p, q)
-
-- super().__init__(p, q, d, dmp1, dmq1, iqmp, pubnums)
-+ self._private_numbers = rsa.RSAPrivateNumbers(
-+ p, q, d, dmp1, dmq1, iqmp, pubnums
-+ )
-+
-+ def private_key(self, *args: Any, **kwargs: Any) -> rsa.RSAPrivateKey:
-+ return self._private_numbers.private_key(*args, **kwargs)
-
- @staticmethod
- def _xgcd(a: int, b: int) -> Tuple[int, int, int]:
-@@ -251,15 +256,7 @@ class _MyRSAPrivateNumbers(rsa.RSAPrivateNumbers):
- #
- @staticmethod
- def _modinv(a, m):
--
-- if sys.version_info < (3, 8):
-- g, x, y = _MyRSAPrivateNumbers._xgcd(a, m)
-- if g != 1:
-- raise Exception("modular inverse does not exist")
-- else:
-- return x % m
-- else:
-- return pow(a, -1, m)
-+ return pow(a, -1, m)
-
- @staticmethod
- def _generate_d(p, q, e, n):
---
-2.43.0
-
diff --git a/dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-test-add-check-for-renamed-cryptography-types.patch b/dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-test-add-check-for-renamed-cryptography-types.patch
deleted file mode 100644
index c1aeaee4dcd1..000000000000
--- a/dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-test-add-check-for-renamed-cryptography-types.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From e4006e6066c015d9ed55befa9b98247fbdcafd7d Mon Sep 17 00:00:00 2001
-From: Erik Larsson <who+github@cnackers.org>
-Date: Mon, 26 Jun 2023 12:15:41 +0200
-Subject: [PATCH] test: add check for renamed cryptography types
-
-Some types have changed their names in newer cryptography release, so add them to the tests
-
-Signed-off-by: Erik Larsson <who+github@cnackers.org>
----
- test/test_crypto.py | 16 ++++++++++++++--
- 1 file changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/test/test_crypto.py b/test/test_crypto.py
-index 92cda00..7d7466e 100644
---- a/test/test_crypto.py
-+++ b/test/test_crypto.py
-@@ -596,11 +596,23 @@ class CryptoTest(TSS2_EsapiTest):
-
- with self.assertRaises(ValueError) as e:
- TPMT_SENSITIVE.from_pem(der)
-- self.assertEqual(str(e.exception), "unsupported key type: _DSAPrivateKey")
-+ self.assertIn(
-+ str(e.exception),
-+ (
-+ "unsupported key type: _DSAPrivateKey",
-+ "unsupported key type: DSAPrivateKey",
-+ ),
-+ )
-
- with self.assertRaises(ValueError) as e:
- TPMT_PUBLIC.from_pem(dsa_public_key)
-- self.assertEqual(str(e.exception), "unsupported key type: _DSAPublicKey")
-+ self.assertIn(
-+ str(e.exception),
-+ (
-+ "unsupported key type: _DSAPublicKey",
-+ "unsupported key type: DSAPublicKey",
-+ ),
-+ )
-
- def test_from_pem_with_symmetric(self):
- sym = TPMT_SYM_DEF_OBJECT(algorithm=TPM2_ALG.AES)
---
-2.41.0
-
diff --git a/dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-test-disable-pcr_set_auth_value-and-pcr_set_auth_pol.patch b/dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-test-disable-pcr_set_auth_value-and-pcr_set_auth_pol.patch
deleted file mode 100644
index 6e99688b76ba..000000000000
--- a/dev-python/tpm2-pytss/files/tpm2-pytss-2.1.0-test-disable-pcr_set_auth_value-and-pcr_set_auth_pol.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From c55775c30c06bf3a3066b4047cb51cb42f1e403d Mon Sep 17 00:00:00 2001
-From: Erik Larsson <who+github@cnackers.org>
-Date: Sat, 6 Jan 2024 06:25:54 +0100
-Subject: [PATCH 2/3] test: disable pcr_set_auth_value and pcr_set_auth_policy
- tests for swtpm
-
-Since [commit][1] in libtpms setting auth values/policies for PCRs are no longer supported.
-
-[1]: https://github.com/stefanberger/libtpms/commit/af4fc0e66df6d012c61aee7c418148fb261d77a9
-
-Signed-off-by: Erik Larsson <who+github@cnackers.org>
----
- test/test_esapi.py | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/test/test_esapi.py b/test/test_esapi.py
-index 269a43b..e0b6d35 100644
---- a/test/test_esapi.py
-+++ b/test/test_esapi.py
-@@ -3585,6 +3585,8 @@ class TestEsys(TSS2_EsapiTest):
- self.ectx.pcr_allocate(pcrsels, session3=object())
-
- def test_pcr_set_auth_policy(self):
-+ if getattr(self.tcti, "name", "") == "swtpm":
-+ self.skipTest("pcr_set_auth_policy not supported by swtpm")
-
- policy = b"0123456789ABCDEF0123456789ABCDEF"
- self.ectx.pcr_set_auth_policy(policy, TPM2_ALG.SHA256, ESYS_TR.PCR20)
-@@ -3630,6 +3632,8 @@ class TestEsys(TSS2_EsapiTest):
- )
-
- def test_pcr_set_auth_value(self):
-+ if getattr(self.tcti, "name", "") == "swtpm":
-+ self.skipTest("pcr_set_auth_value not supported by swtpm")
-
- self.ectx.pcr_set_auth_value(ESYS_TR.PCR20, b"password")
- self.ectx.tr_set_auth(ESYS_TR.PCR20, b"password")
---
-2.43.0
-
diff --git a/dev-python/tpm2-pytss/tpm2-pytss-2.1.0-r2.ebuild b/dev-python/tpm2-pytss/tpm2-pytss-2.2.1.ebuild
index 7ec9c29f0aa2..dccd177f41d7 100644
--- a/dev-python/tpm2-pytss/tpm2-pytss-2.1.0-r2.ebuild
+++ b/dev-python/tpm2-pytss/tpm2-pytss-2.2.1.ebuild
@@ -1,5 +1,6 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+
EAPI=8
DISTUTILS_EXT=1
@@ -11,37 +12,32 @@ inherit distutils-r1 pypi
DESCRIPTION="Python bindings for TSS"
HOMEPAGE="
- https://pypi.org/project/tpm2-pytss
- https://github.com/tpm2-software/tpm2-pytss
+ https://pypi.org/project/tpm2-pytss/
+ https://github.com/tpm2-software/tpm2-pytss/
"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64"
-
IUSE="+fapi test"
-RDEPEND="${PYTHON_DEPS}
+DEPEND="
app-crypt/tpm2-tss:=[fapi=]
fapi? ( >=app-crypt/tpm2-tss-3.0.3:= )
+ test? ( app-crypt/swtpm )
+"
+RDEPEND="
+ ${DEPEND}
dev-python/cffi[${PYTHON_USEDEP}]
dev-python/asn1crypto[${PYTHON_USEDEP}]
dev-python/cryptography[${PYTHON_USEDEP}]
dev-python/pycparser[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]"
-
-DEPEND="${RDEPEND}
- test? ( app-crypt/swtpm )"
-
-BDEPEND="${PYTHON_DEPS}
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/pkgconfig[${PYTHON_USEDEP}]
dev-python/setuptools-scm[${PYTHON_USEDEP}]
- dev-python/pkgconfig[${PYTHON_USEDEP}]"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.1.0-test-add-check-for-renamed-cryptography-types.patch"
- "${FILESDIR}/${PN}-2.1.0-internal-crypto-fix-_MyRSAPrivateNumbers-with-crypto.patch"
- "${FILESDIR}/${PN}-2.1.0-test-disable-pcr_set_auth_value-and-pcr_set_auth_pol.patch"
- )
+"
export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
diff --git a/dev-python/ytmusicapi/Manifest b/dev-python/ytmusicapi/Manifest
index 67e652b0efec..42c9ed6b447d 100644
--- a/dev-python/ytmusicapi/Manifest
+++ b/dev-python/ytmusicapi/Manifest
@@ -1,3 +1,4 @@
DIST ytmusicapi-1.5.2.tar.gz 101749 BLAKE2B 5d0a8d99053fa9fa9c8dc360af62dec4241179e3e0f405e860793985742029fb5131b4852306361cbbffa6bb3057285c3e0f7e9cfaaba1054636e15bbaefd1c7 SHA512 8e7424302dfda0a2ad525495368f084af8b1f615d8f301ea347cf27a20305b015f48051915b90280712a151eb7db748cd1d3854c5d81c1d49d53ec6f27117ece
DIST ytmusicapi-1.5.3.tar.gz 102521 BLAKE2B d1fb3d850d59dde8a9c16337036c77d642544a14a3327ec7075a59e62f2392b73b9953bdc44a0f9b2cd935ded4c00fd607ec4c9e30a6346021f4ad0e9e3adfed SHA512 1eec4251130479252b7e4b1e1a4eae1b947bb25732a4d6a05fe763edbcae7a71db68182793160a15f4f159e33c9db4632d83287c00b9f67cfd6d3812b115f901
DIST ytmusicapi-1.5.4.tar.gz 102675 BLAKE2B b1b278e9c8e91eb9982b462babc614bad2b92d1c77fd49e08cbaefdfb10657531bedeca5677ce80e7e0f51bf23482f8537fda97449e645009731b83a1deb6fdc SHA512 4eda0a61d6d6f58b7aed9e668816bd8917b9562f8770c58d6b837c3cb7801a7b5da03ecaf6d15b8bba17a343611f0225aa19c91fc4d69568d9acb38efdac440c
+DIST ytmusicapi-1.6.0.tar.gz 106624 BLAKE2B b7900f4fb9e863f694a06a9d85d479e13514d6f4a0ad86e923ccceb497ad9294e34d9b3914005063b272ef8582514a5ea7c173864d38a2b6ec166bcf1199560e SHA512 9886c0b4ec29bf9b676b4c77f9e84ca6c7a0f1b4da264d589aed19d50c8be6ef3718185af755d8a9f652d425ae98603fff09ea8d84ec839756dab43181eb9f4c
diff --git a/dev-python/ytmusicapi/ytmusicapi-1.6.0.ebuild b/dev-python/ytmusicapi/ytmusicapi-1.6.0.ebuild
new file mode 100644
index 000000000000..006c7e44cb09
--- /dev/null
+++ b/dev-python/ytmusicapi/ytmusicapi-1.6.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Unofficial API for YouTube Music"
+HOMEPAGE="https://ytmusicapi.readthedocs.io/
+ https://github.com/sigma67/ytmusicapi/"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+RESTRICT="test"
+
+RDEPEND="dev-python/requests[${PYTHON_USEDEP}]"
+
+distutils_enable_sphinx docs/source \
+ dev-python/sphinx-rtd-theme