diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index 1d2d5d2b66..b817290786 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -18,17 +18,15 @@ except EnvironmentError: from calibre.constants import (iswindows, ismacos, islinux, isfrozen, isbsd, preferred_encoding, __appname__, __version__, __author__, - win32event, win32api, winerror, fcntl, plugins, - filesystem_encoding, config_dir) -from calibre.startup import winutil, winutilerror + fcntl, plugins, filesystem_encoding, config_dir) +from calibre.startup import winutil from calibre.utils.icu import safe_chr from calibre.prints import prints if False: # Prevent pyflakes from complaining - winutil, winutilerror, __appname__, islinux, __version__ - fcntl, win32event, isfrozen, __author__ - winerror, win32api, isbsd, config_dir, plugins + winutil, __appname__, islinux, __version__ + fcntl, isfrozen, __author__, isbsd, config_dir, plugins _mt_inited = False diff --git a/src/calibre/constants.py b/src/calibre/constants.py index c27511c635..dc1fa8cf9b 100644 --- a/src/calibre/constants.py +++ b/src/calibre/constants.py @@ -2,7 +2,7 @@ # vim:fileencoding=utf-8 # License: GPLv3 Copyright: 2015, Kovid Goyal from polyglot.builtins import map, unicode_type, environ_item, hasenv, getenv -import sys, locale, codecs, os, importlib, collections +import sys, locale, codecs, os, collections __appname__ = 'calibre' numeric_version = (5, 3, 0) @@ -50,10 +50,6 @@ try: except: preferred_encoding = 'utf-8' -win32event = importlib.import_module('win32event') if iswindows else None -winerror = importlib.import_module('winerror') if iswindows else None -win32api = importlib.import_module('win32api') if iswindows else None -fcntl = None if iswindows else importlib.import_module('fcntl') dark_link_color = '#6cb4ee' builtin_colors_light = { 'yellow': '#ffeb6b', diff --git a/src/calibre/utils/lock.py b/src/calibre/utils/lock.py index bcf4a1882c..34ae2ef85c 100644 --- a/src/calibre/utils/lock.py +++ b/src/calibre/utils/lock.py @@ -11,7 +11,7 @@ import time from functools import partial from calibre.constants import ( - __appname__, fcntl, filesystem_encoding, islinux, ismacos, iswindows + __appname__, filesystem_encoding, islinux, ismacos, iswindows ) from calibre_extensions import speedup from calibre.utils.monotonic import monotonic @@ -23,6 +23,7 @@ if iswindows: excl_file_mode = stat.S_IREAD | stat.S_IWRITE else: excl_file_mode = stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH + import fcntl def unix_open(path): diff --git a/src/calibre/utils/test_lock.py b/src/calibre/utils/test_lock.py index 674ebb21a2..6de40caa18 100644 --- a/src/calibre/utils/test_lock.py +++ b/src/calibre/utils/test_lock.py @@ -12,7 +12,7 @@ import time import unittest from threading import Thread -from calibre.constants import cache_dir, fcntl, iswindows +from calibre.constants import cache_dir, iswindows from calibre.utils.lock import ExclusiveFile, create_single_instance_mutex, unix_open from calibre.utils.tdir_in_cache import ( clean_tdirs_in, is_tdir_locked, retry_lock_tdir, tdir_in_cache, tdirs_in, @@ -84,6 +84,7 @@ class IPCLockTest(unittest.TestCase): t.start(), t.join() self.assertIs(t.locked, False) if not iswindows: + import fcntl with unix_open(fname) as f: self.assertEqual( 1, fcntl.fcntl(f.fileno(), fcntl.F_GETFD) & fcntl.FD_CLOEXEC