ValvePython / dota2

🐸 Python package for interacting with Dota 2 Game Coordinator
http://dota2.readthedocs.io
201 stars 32 forks source link

dota2 and csgo module can't be loaded at the same time #14

Closed rossengeorgiev closed 7 years ago

rossengeorgiev commented 7 years ago

steammessages.proto on both modules will try to add key_field and other extensions, but since they are duplicates a exception is raised. This prevent the use of both modules at the same time.



>>> from steam import SteamClient
>>> from dota2 import Dota2Client
>>> from csgo import CSGOClient
>>> a = SteamClient()
>>> b = CSGOClient(a)
>>> c = Dota2Client(a)
............................../dota2/protobufs/steammessages_pb2.py in <module>()
   5089 _sym_db.RegisterMessage(CMsgGCHVacVerificationChange)
   5090
-> 5091 google_dot_protobuf_dot_descriptor__pb2.FieldOptions.RegisterExtension(key_field)
   5092 google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(msgpool_soft_limit)
   5093 google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(msgpool_hard_limit)

/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyc in RegisterExtension(extension_handle)
    754           'field number %d.' %
    755           (extension_handle.full_name, actual_handle.full_name,
--> 756            cls.DESCRIPTOR.full_name, extension_handle.number))
    757
    758     cls._extensions_by_name[extension_handle.full_name] = extension_handle

AssertionError: Extensions "key_field" and "key_field" both try to extend message type "google.protobuf.FieldOptions" with field number 60000.