From 0e1ab9430e81a61ca40ab4e61f07d7fe4ce0c967 Mon Sep 17 00:00:00 2001 From: Daniel Han Date: Tue, 19 Aug 2025 05:19:41 -0700 Subject: [PATCH] Protobuf issue --- unsloth/__init__.py | 50 ++++++++++++++++++++-------------------- unsloth/models/_utils.py | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/unsloth/__init__.py b/unsloth/__init__.py index 1055dfb3eb..a43dc4f70f 100644 --- a/unsloth/__init__.py +++ b/unsloth/__init__.py @@ -12,31 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -try: - # Fix up AttributeError: 'MessageFactory' object has no attribute 'GetPrototype' - # MUST do this at the start primarily due to tensorflow causing issues - import google.protobuf.message_factory - class MessageFactory: - def CreatePrototype(self, *args, **kwargs): return - def GetMessages(self, *args, **kwargs): return - def GetPrototype(self, *args, **kwargs): return - if not hasattr(google.protobuf.message_factory, "MessageFactory"): - google.protobuf.message_factory.MessageFactory = MessageFactory - elif hasattr(google.protobuf.message_factory, "MessageFactory") and \ - not hasattr(google.protobuf.message_factory.MessageFactory, "GetPrototype") and \ - not hasattr(google.protobuf.message_factory, "GetMessageClass"): - google.protobuf.message_factory.MessageFactory = MessageFactory - elif hasattr(google.protobuf.message_factory, "MessageFactory") and \ - not hasattr(google.protobuf.message_factory.MessageFactory, "GetPrototype") and \ - hasattr(google.protobuf.message_factory, "GetMessageClass"): - GetMessageClass = google.protobuf.message_factory.GetMessageClass - def GetPrototype(self, descriptor): - return GetMessageClass(descriptor) - google.protobuf.message_factory.MessageFactory.GetPrototype = GetPrototype - pass -except: - pass - import warnings, importlib, sys from packaging.version import Version import os, re, subprocess, inspect @@ -265,6 +240,31 @@ except: raise ImportError("Unsloth: Please install unsloth_zoo via `pip install unsloth_zoo`") pass +try: + # Fix up AttributeError: 'MessageFactory' object has no attribute 'GetPrototype' + # MUST do this at the start primarily due to tensorflow causing issues + import google.protobuf.message_factory + class MessageFactory: + def CreatePrototype(self, *args, **kwargs): return + def GetMessages(self, *args, **kwargs): return + def GetPrototype(self, *args, **kwargs): return + if not hasattr(google.protobuf.message_factory, "MessageFactory"): + google.protobuf.message_factory.MessageFactory = MessageFactory + elif hasattr(google.protobuf.message_factory, "MessageFactory") and \ + not hasattr(google.protobuf.message_factory.MessageFactory, "GetPrototype") and \ + not hasattr(google.protobuf.message_factory, "GetMessageClass"): + google.protobuf.message_factory.MessageFactory = MessageFactory + elif hasattr(google.protobuf.message_factory, "MessageFactory") and \ + not hasattr(google.protobuf.message_factory.MessageFactory, "GetPrototype") and \ + hasattr(google.protobuf.message_factory, "GetMessageClass"): + GetMessageClass = google.protobuf.message_factory.GetMessageClass + def GetPrototype(self, descriptor): + return GetMessageClass(descriptor) + google.protobuf.message_factory.MessageFactory.GetPrototype = GetPrototype + pass +except: + pass + from .models import * from .models import __version__ from .save import * diff --git a/unsloth/models/_utils.py b/unsloth/models/_utils.py index dd1798f105..fd4cd81d83 100644 --- a/unsloth/models/_utils.py +++ b/unsloth/models/_utils.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "2025.8.7" +__version__ = "2025.8.8" __all__ = [ "SUPPORTS_BFLOAT16",