@@ -98,68 +98,69 @@ def from_buffer(buffer, mime=False):
9898
9999
100100
101+ try :
102+ libmagic = ctypes .CDLL (ctypes .util .find_library ('magic' ))
101103
102- libmagic = ctypes .CDLL ( ctypes . util . find_library ( 'magic' ))
104+ magic_t = ctypes .c_void_p
103105
104- magic_t = ctypes .c_void_p
106+ def errorcheck (result , func , args ):
107+ err = magic_error (args [0 ])
108+ if err is not None :
109+ raise MagicException (err )
110+ else :
111+ return result
105112
106- def errorcheck (result , func , args ):
107- err = magic_error (args [0 ])
108- if err is not None :
109- raise MagicException (err )
110- else :
111- return result
112-
113- magic_open = libmagic .magic_open
114- magic_open .restype = magic_t
115- magic_open .argtypes = [c_int ]
116-
117- magic_close = libmagic .magic_close
118- magic_close .restype = None
119- magic_close .argtypes = [magic_t ]
120- magic_close .errcheck = errorcheck
113+ magic_open = libmagic .magic_open
114+ magic_open .restype = magic_t
115+ magic_open .argtypes = [c_int ]
121116
122- magic_error = libmagic .magic_error
123- magic_error .restype = c_char_p
124- magic_error .argtypes = [magic_t ]
117+ magic_close = libmagic .magic_close
118+ magic_close .restype = None
119+ magic_close .argtypes = [magic_t ]
120+ magic_close .errcheck = errorcheck
125121
126- magic_errno = libmagic .magic_errno
127- magic_errno .restype = c_int
128- magic_errno .argtypes = [magic_t ]
122+ magic_error = libmagic .magic_error
123+ magic_error .restype = c_char_p
124+ magic_error .argtypes = [magic_t ]
129125
130- magic_file = libmagic .magic_file
131- magic_file .restype = c_char_p
132- magic_file .argtypes = [magic_t , c_char_p ]
133- magic_file .errcheck = errorcheck
126+ magic_errno = libmagic .magic_errno
127+ magic_errno .restype = c_int
128+ magic_errno .argtypes = [magic_t ]
134129
130+ magic_file = libmagic .magic_file
131+ magic_file .restype = c_char_p
132+ magic_file .argtypes = [magic_t , c_char_p ]
133+ magic_file .errcheck = errorcheck
135134
136- _magic_buffer = libmagic .magic_buffer
137- _magic_buffer .restype = c_char_p
138- _magic_buffer .argtypes = [magic_t , c_void_p , c_size_t ]
139- _magic_buffer .errcheck = errorcheck
140135
136+ _magic_buffer = libmagic .magic_buffer
137+ _magic_buffer .restype = c_char_p
138+ _magic_buffer .argtypes = [magic_t , c_void_p , c_size_t ]
139+ _magic_buffer .errcheck = errorcheck
141140
142- def magic_buffer (cookie , buf ):
143- return _magic_buffer (cookie , buf , len (buf ))
144141
142+ def magic_buffer (cookie , buf ):
143+ return _magic_buffer (cookie , buf , len (buf ))
145144
146- magic_load = libmagic .magic_load
147- magic_load .restype = c_int
148- magic_load .argtypes = [magic_t , c_char_p ]
149- magic_load .errcheck = errorcheck
150145
151- magic_setflags = libmagic .magic_setflags
152- magic_setflags .restype = c_int
153- magic_setflags .argtypes = [magic_t , c_int ]
146+ magic_load = libmagic .magic_load
147+ magic_load .restype = c_int
148+ magic_load .argtypes = [magic_t , c_char_p ]
149+ magic_load .errcheck = errorcheck
154150
155- magic_check = libmagic .magic_check
156- magic_check .restype = c_int
157- magic_check .argtypes = [magic_t , c_char_p ]
151+ magic_setflags = libmagic .magic_setflags
152+ magic_setflags .restype = c_int
153+ magic_setflags .argtypes = [magic_t , c_int ]
158154
159- magic_compile = libmagic .magic_compile
160- magic_compile .restype = c_int
161- magic_compile .argtypes = [magic_t , c_char_p ]
155+ magic_check = libmagic .magic_check
156+ magic_check .restype = c_int
157+ magic_check .argtypes = [magic_t , c_char_p ]
162158
159+ magic_compile = libmagic .magic_compile
160+ magic_compile .restype = c_int
161+ magic_compile .argtypes = [magic_t , c_char_p ]
162+ except :
163+ pass
163164
164165
165166MAGIC_NONE = 0x000000 # No flags
0 commit comments