diff --git a/api/python/lief/__init__.pyi b/api/python/lief/__init__.pyi index aa9db749..03d2772a 100644 --- a/api/python/lief/__init__.pyi +++ b/api/python/lief/__init__.pyi @@ -306,7 +306,10 @@ class SpanStream(BinaryStream): class VectorStream(BinaryStream): @staticmethod - def from_file(arg: Union[str, os.PathLike], /) -> Union[VectorStream,lief.lief_errors]: ... + def from_file(path: Union[str, os.PathLike]) -> Union[VectorStream,lief.lief_errors]: ... + + @staticmethod + def from_bytes(buffer: bytes) -> Optional[VectorStream]: ... @property def content(self) -> memoryview: ... @@ -340,7 +343,6 @@ class WriteStream: @property def size(self) -> int: ... - @property def __len__(self) -> int: ... @property @@ -360,7 +362,6 @@ class WriteStream: @property def raw(self) -> memoryview: ... - @property def __bytes__(self) -> bytes: ... def write_u8(self, arg: int, /) -> WriteStream: ... diff --git a/api/python/src/BinaryStream/pyVectorStream.cpp b/api/python/src/BinaryStream/pyVectorStream.cpp index a980bc94..af68ec96 100644 --- a/api/python/src/BinaryStream/pyVectorStream.cpp +++ b/api/python/src/BinaryStream/pyVectorStream.cpp @@ -29,7 +29,11 @@ void create(nb::module_& m) { nb::class_(m, "VectorStream") .def_static("from_file", [] (typing::StrOrPath path) { return VectorStream::from_file(*path.to_string()); - }) + }, "path"_a) + + .def_static("from_bytes", [] (nb::bytes buffer) { + return std::make_unique(nb::to_vector(buffer)); + }, "buffer"_a) .def_prop_ro("content", [] (VectorStream& self) { return nb::to_memoryview(self.content());