aboutsummaryrefslogtreecommitdiff
path: root/modules/images.py
diff options
context:
space:
mode:
authorw-e-w <40751091+w-e-w@users.noreply.github.com>2022-10-23 18:09:21 +0900
committerAUTOMATIC1111 <16777216c@gmail.com>2022-10-24 10:28:42 +0300
commit5a981310e68253c77f9fe3144d247cfd531f9e48 (patch)
tree25408baa38fc18319c49b03631d9d1881a82069e /modules/images.py
parent8f6af4ed651cdb4456e2f3474d05dd3a18086ac2 (diff)
replace_datetime() can now accept a datetime parameter
Diffstat (limited to 'modules/images.py')
-rw-r--r--modules/images.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/modules/images.py b/modules/images.py
index 321439e3..ff00fc52 100644
--- a/modules/images.py
+++ b/modules/images.py
@@ -303,7 +303,7 @@ def apply_filename_pattern(x, p, seed, prompt):
x = re.sub(r'\[model_hash]', getattr(p, "sd_model_hash", shared.sd_model.sd_model_hash), x, flags=re.IGNORECASE)
x = re.sub(r'\[date]', datetime.date.today().isoformat(), x, flags=re.IGNORECASE)
- x = replace_datetime(x)
+ x = replace_datetime(x, datetime.datetime.now())
x = re.sub(r'\[job_timestamp]', getattr(p, "job_timestamp", shared.state.job_timestamp), x, flags=re.IGNORECASE)
# Apply [prompt] at last. Because it may contain any replacement word.^M
if prompt is not None:
@@ -353,8 +353,14 @@ def get_next_sequence_number(path, basename):
return result + 1
-def replace_datetime(input_str: str):
+def replace_datetime(input_str: str, time_datetime: datetime.datetime = None):
"""
+ Args:
+ input_str (`str`):
+ the String to be Formatted
+ time_datetime (`datetime.datetime`)
+ the time to be used, if None, use datetime.datetime.now()
+
Formats sub_string of input_str with formatted datetime with time zone support.
accepts sub_string format: [datetime], [datetime<Format>], [datetime<Format><Time Zone>]
case insensitive
@@ -373,8 +379,8 @@ def replace_datetime(input_str: str):
https://pytz.sourceforge.net/
"""
default_time_format = '%Y%m%d%H%M%S'
- time_now = datetime.datetime.now()
-
+ if time_datetime is None:
+ time_datetime = datetime.datetime.now()
# match all datetime to be replace
match_itr = re.finditer(r'\[datetime(?:<([^>]*)>(?:<([^>]*)>)?)?]', input_str, re.IGNORECASE)
for match in reversed(list(match_itr)):
@@ -392,7 +398,7 @@ def replace_datetime(input_str: str):
time_zone = None
# generate time string
- time_zone_time = time_now.astimezone(time_zone)
+ time_zone_time = time_datetime.astimezone(time_zone)
try:
formatted_time = time_zone_time.strftime(time_format)