@@ -6,7 +6,11 @@ from libcpp cimport bool
66from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t
77from libc.stdlib cimport malloc, free
88
9- cdef extern from " tox/tox.h" : pass
9+ from pytox import error
10+ from pytox.log cimport Tox_Log_Level
11+ from pytox.system cimport Tox_System
12+
13+ cdef extern from " tox/toxcore/tox.h" : pass
1014
1115
1216VERSION: str = " %d .%d .%d " % (tox_version_major(), tox_version_minor(), tox_version_patch())
@@ -28,37 +32,20 @@ MAX_FILENAME_LENGTH: int = tox_max_filename_length()
2832MAX_HOSTNAME_LENGTH: int = tox_max_hostname_length()
2933
3034
31- class UseAfterFreeException (Exception ):
32- def __init__ (self ):
33- super ().__init__(
34- " object used after it was killed/freed (or it was never initialised)" )
35-
36- class ToxException (Exception ):
37- pass
38-
39- class ApiException (ToxException ):
40- def __init__ (self , err ):
41- super ().__init__(err)
42- self .error = err
43-
44- class LengthException (ToxException ):
45- pass
46-
4735cdef void _check_len(str name, bytes data, int expected_length) except * :
4836 if len (data) != expected_length:
49- raise LengthException(
37+ raise error. LengthException(
5038 f" parameter '{name}' received bytes of invalid"
5139 f" length {len(data)}, expected {expected_length}" )
5240
53-
5441cdef class ToxOptions:
5542
5643 cdef Tox_Options * _ptr
5744
5845 def __init__ (self ):
5946 cdef Tox_Err_Options_New err = TOX_ERR_OPTIONS_NEW_OK
6047 self ._ptr = tox_options_new(& err)
61- if err: raise ApiException(Tox_Err_Options_New(err))
48+ if err: raise error. ApiException(Tox_Err_Options_New(err))
6249
6350 def __dealloc__ (self ):
6451 self .__exit__ (None , None , None )
@@ -72,7 +59,7 @@ cdef class ToxOptions:
7259
7360 cdef Tox_Options * _get(self ) except * :
7461 if self ._ptr is NULL :
75- raise UseAfterFreeException()
62+ raise error. UseAfterFreeException()
7663 return self ._ptr
7764
7865 @property
@@ -93,7 +80,7 @@ cdef class Core:
9380 if options is None :
9481 options = ToxOptions()
9582 self ._ptr = tox_new(options._ptr, & err)
96- if err: raise ApiException(Tox_Err_New(err))
83+ if err: raise error. ApiException(Tox_Err_New(err))
9784
9885 install_handlers(self ._get())
9986
@@ -109,7 +96,7 @@ cdef class Core:
10996
11097 cdef Tox * _get(self ) except * :
11198 if self ._ptr is NULL :
112- raise UseAfterFreeException()
99+ raise error. UseAfterFreeException()
113100 return self ._ptr
114101
115102 @property
@@ -189,7 +176,7 @@ cdef class Core:
189176 def name(self , name: bytes ) -> None:
190177 cdef Tox_Err_Set_Info err = TOX_ERR_SET_INFO_OK
191178 tox_self_set_name(self._get(), name , len(name ), &err )
192- if err: raise ApiException(Tox_Err_Set_Info(err ))
179+ if err: raise error. ApiException(Tox_Err_Set_Info(err ))
193180
194181 @property
195182 def status_message(self ) -> bytes:
@@ -205,7 +192,7 @@ cdef class Core:
205192 def status_message(self , status_message: bytes ) -> None:
206193 cdef Tox_Err_Set_Info err = TOX_ERR_SET_INFO_OK
207194 tox_self_set_status_message(self._get(), status_message , len(status_message ), &err )
208- if err: raise ApiException(Tox_Err_Set_Info(err ))
195+ if err: raise error. ApiException(Tox_Err_Set_Info(err ))
209196
210197 @property
211198 def status(self ) -> Tox_User_Status:
@@ -219,15 +206,15 @@ cdef class Core:
219206 _check_len(" address" , address, tox_address_size())
220207 cdef Tox_Err_Friend_Add err = TOX_ERR_FRIEND_ADD_OK
221208 tox_friend_add(self ._get(), address, message, len (message), & err)
222- if err: raise ApiException(Tox_Err_Friend_Add(err))
209+ if err: raise error. ApiException(Tox_Err_Friend_Add(err))
223210
224211 def friend_add_norequest (self , public_key: bytes ):
225212 _check_len(" public_key" , public_key, tox_public_key_size())
226213 cdef Tox_Err_Friend_Add err = TOX_ERR_FRIEND_ADD_OK
227214 tox_friend_add_norequest(self ._get(), public_key, & err)
228- if err: raise ApiException(Tox_Err_Friend_Add(err))
215+ if err: raise error. ApiException(Tox_Err_Friend_Add(err))
229216
230217 def friend_delete (self , friend_number: int ):
231218 cdef Tox_Err_Friend_Delete err = TOX_ERR_FRIEND_DELETE_OK
232219 tox_friend_delete(self ._get(), friend_number, & err)
233- if err: raise ApiException(Tox_Err_Friend_Delete(err))
220+ if err: raise error. ApiException(Tox_Err_Friend_Delete(err))
0 commit comments