summaryrefslogtreecommitdiff
path: root/magic/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'magic/__init__.py')
-rw-r--r--magic/__init__.py37
1 files changed, 2 insertions, 35 deletions
diff --git a/magic/__init__.py b/magic/__init__.py
index f2fd34d..7a75b75 100644
--- a/magic/__init__.py
+++ b/magic/__init__.py
@@ -206,41 +206,8 @@ def from_descriptor(fd, mime=False):
m = _get_magic_type(mime)
return m.from_descriptor(fd)
-
-libmagic = None
-# Let's try to find magic or magic1
-dll = ctypes.util.find_library('magic') \
- or ctypes.util.find_library('magic1') \
- or ctypes.util.find_library('cygmagic-1') \
- or ctypes.util.find_library('libmagic-1') \
- or ctypes.util.find_library('msys-magic-1') # for MSYS2
-
-# necessary because find_library returns None if it doesn't find the library
-if dll:
- libmagic = ctypes.CDLL(dll)
-
-if not libmagic or not libmagic._name:
- windows_dlls = ['magic1.dll', 'cygmagic-1.dll', 'libmagic-1.dll', 'msys-magic-1.dll']
- platform_to_lib = {'darwin': ['/opt/local/lib/libmagic.dylib',
- '/usr/local/lib/libmagic.dylib'] +
- # Assumes there will only be one version installed
- glob.glob('/usr/local/Cellar/libmagic/*/lib/libmagic.dylib'), # flake8:noqa
- 'win32': windows_dlls,
- 'cygwin': windows_dlls,
- 'linux': ['libmagic.so.1'],
- # fallback for some Linuxes (e.g. Alpine) where library search does not work # flake8:noqa
- }
- platform = 'linux' if sys.platform.startswith('linux') else sys.platform
- for dll in platform_to_lib.get(platform, []):
- try:
- libmagic = ctypes.CDLL(dll)
- break
- except OSError:
- pass
-
-if not libmagic or not libmagic._name:
- # It is better to raise an ImportError since we are importing magic module
- raise ImportError('failed to find libmagic. Check your installation')
+from . import loader
+libmagic = loader.load_lib()
magic_t = ctypes.c_void_p