Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid unnecessary isfile/exists calls #14527

Merged
merged 2 commits into from
Jan 4, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 8 additions & 9 deletions modules/cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,16 +62,15 @@ def cache(subsection):
if cache_data is None:
with cache_lock:
if cache_data is None:
if not os.path.isfile(cache_filename):
try:
with open(cache_filename, "r", encoding="utf8") as file:
cache_data = json.load(file)
except FileNotFoundError:
cache_data = {}
except Exception:
os.replace(cache_filename, os.path.join(script_path, "tmp", "cache.json"))
print('[ERROR] issue occurred while trying to read cache.json, move current cache to tmp/cache.json and create new cache')
cache_data = {}
else:
try:
with open(cache_filename, "r", encoding="utf8") as file:
cache_data = json.load(file)
except Exception:
os.replace(cache_filename, os.path.join(script_path, "tmp", "cache.json"))
print('[ERROR] issue occurred while trying to read cache.json, move current cache to tmp/cache.json and create new cache')
cache_data = {}

s = cache_data.get(subsection, {})
cache_data[subsection] = s
Expand Down
11 changes: 6 additions & 5 deletions modules/extensions.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,12 @@ def __init__(self, path, canonical_name):
self.config = configparser.ConfigParser()

filepath = os.path.join(path, self.filename)
if os.path.isfile(filepath):
try:
self.config.read(filepath)
except Exception:
errors.report(f"Error reading {self.filename} for extension {canonical_name}.", exc_info=True)
# `self.config.read()` will quietly swallow OSErrors (which FileNotFoundError is),
# so no need to check whether the file exists beforehand.
try:
self.config.read(filepath)
except Exception:
errors.report(f"Error reading {self.filename} for extension {canonical_name}.", exc_info=True)

self.canonical_name = self.config.get("Extension", "Name", fallback=canonical_name)
self.canonical_name = canonical_name.lower().strip()
Expand Down
7 changes: 4 additions & 3 deletions modules/extra_networks.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,9 +215,10 @@ def get_user_metadata(filename):

metadata = {}
try:
if os.path.isfile(metadata_filename):
with open(metadata_filename, "r", encoding="utf8") as file:
metadata = json.load(file)
with open(metadata_filename, "r", encoding="utf8") as file:
metadata = json.load(file)
except FileNotFoundError:
pass
except Exception as e:
errors.display(e, f"reading extra network user metadata from {metadata_filename}")

Expand Down
4 changes: 3 additions & 1 deletion modules/infotext_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -453,9 +453,11 @@ def connect_paste(button, paste_fields, input_comp, override_settings_component,
def paste_func(prompt):
if not prompt and not shared.cmd_opts.hide_ui_dir_config:
filename = os.path.join(data_path, "params.txt")
if os.path.exists(filename):
try:
with open(filename, "r", encoding="utf8") as file:
prompt = file.read()
except OSError:
pass

params = parse_generation_parameters(prompt)
script_callbacks.infotext_pasted_callback(prompt, params)
Expand Down
7 changes: 4 additions & 3 deletions modules/launch_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,9 +245,10 @@ def list_extensions(settings_file):
settings = {}

try:
if os.path.isfile(settings_file):
with open(settings_file, "r", encoding="utf8") as file:
settings = json.load(file)
with open(settings_file, "r", encoding="utf8") as file:
settings = json.load(file)
except FileNotFoundError:
pass
except Exception:
errors.report("Could not load settings", exc_info=True)

Expand Down
7 changes: 4 additions & 3 deletions modules/postprocessing.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,12 @@ def get_images(extras_mode, image, image_folder, input_dir):

if pp.caption:
caption_filename = os.path.splitext(fullfn)[0] + ".txt"
if os.path.isfile(caption_filename):
existing_caption = ""
try:
with open(caption_filename, encoding="utf8") as file:
existing_caption = file.read().strip()
else:
existing_caption = ""
except FileNotFoundError:
pass

action = shared.opts.postprocessing_existing_caption_action
if action == 'Prepend' and existing_caption:
Expand Down
4 changes: 3 additions & 1 deletion modules/shared_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ def initialize():
shared.options_templates = shared_options.options_templates
shared.opts = options.Options(shared_options.options_templates, shared_options.restricted_opts)
shared.restricted_opts = shared_options.restricted_opts
if os.path.exists(shared.config_filename):
try:
shared.opts.load(shared.config_filename)
except FileNotFoundError:
pass

from modules import devices
devices.device, devices.device_interrogate, devices.device_gfpgan, devices.device_esrgan, devices.device_codeformer = \
Expand Down
8 changes: 3 additions & 5 deletions modules/ui_gradio_extensions.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,11 @@ def stylesheet(fn):
return f'<link rel="stylesheet" property="stylesheet" href="{webpath(fn)}">'

for cssfile in scripts.list_files_with_name("style.css"):
if not os.path.isfile(cssfile):
continue

head += stylesheet(cssfile)

if os.path.exists(os.path.join(data_path, "user.css")):
head += stylesheet(os.path.join(data_path, "user.css"))
user_css = os.path.join(data_path, "user.css")
if os.path.exists(user_css):
head += stylesheet(user_css)

return head

Expand Down
5 changes: 3 additions & 2 deletions modules/ui_loadsave.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ def __init__(self, filename):
self.ui_defaults_review = None

try:
if os.path.exists(self.filename):
self.ui_settings = self.read_from_file()
self.ui_settings = self.read_from_file()
except FileNotFoundError:
pass
except Exception as e:
self.error_loading = True
errors.display(e, "loading settings")
Expand Down
6 changes: 3 additions & 3 deletions modules/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ def html_path(filename):
def html(filename):
path = html_path(filename)

if os.path.exists(path):
try:
with open(path, encoding="utf8") as file:
return file.read()

return ""
except OSError:
return ""


def walk_files(path, allowed_extensions=None):
Expand Down