[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3466] trunk/py/scripts/tools/bi_farm: make pep8 compliant
Campbell Barton
ideasman42 at gmail.com
Wed Jun 6 10:24:19 CEST 2012
Revision: 3466
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3466
Author: campbellbarton
Date: 2012-06-06 08:24:00 +0000 (Wed, 06 Jun 2012)
Log Message:
-----------
make pep8 compliant
Modified Paths:
--------------
trunk/py/scripts/tools/bi_farm/exr_header_collate.py
trunk/py/scripts/tools/bi_farm/master_avi_gen.py
trunk/py/scripts/tools/bi_farm/master_ui.py
trunk/py/scripts/tools/bi_farm/new_blend_2_frames.py
trunk/py/scripts/tools/bi_farm/new_blender_setup.py
trunk/py/scripts/tools/bi_farm/new_gen_avi.py
trunk/py/scripts/tools/bi_farm/new_master.py
trunk/py/scripts/tools/bi_farm/render_dirs.py
trunk/py/scripts/tools/bi_farm/svn_force_update.py
Modified: trunk/py/scripts/tools/bi_farm/exr_header_collate.py
===================================================================
--- trunk/py/scripts/tools/bi_farm/exr_header_collate.py 2012-06-06 08:01:28 UTC (rev 3465)
+++ trunk/py/scripts/tools/bi_farm/exr_header_collate.py 2012-06-06 08:24:00 UTC (rev 3466)
@@ -27,6 +27,7 @@
DIR = "/render/mango/frames/"
BIGNUM = 100000000.0
+
# copied from bpy.utils
def smpte_from_seconds(time):
import math
@@ -39,10 +40,10 @@
else:
neg = ""
- if time >= 3600.0: # hours
+ if time >= 3600.0: # hours
hours = int(time / 3600.0)
time = time % 3600.0
- if time >= 60.0: # mins
+ if time >= 60.0: # mins
minutes = int(time / 60.0)
time = time % 60.0
@@ -78,7 +79,7 @@
if not os.path.isdir(dirname_full):
print("NOT A DIR:", dirname_full)
return
-
+
exrs = []
time_sec_average = 0.0
time_sec_min = BIGNUM
@@ -87,17 +88,17 @@
time_file = os.path.join(dirname_full, "render_times.txt")
if os.path.exists(time_file):
generate_timefile = False
- time_file_chtime = file_date(time_file)
+ time_file_chtime = file_date(time_file)
else:
generate_timefile = True
time_file_chtime = None
-
+
for exr in sorted(os.listdir(dirname_full)):
if exr.endswith(".exr"):
# print(exr)
exr_full = os.path.join(dirname_full, exr)
exrs.append((exr, exr_full))
-
+
if generate_timefile is False:
if time_file_chtime < file_date(exr_full):
generate_timefile = True
@@ -142,27 +143,27 @@
continue
file_rendertimes.append((exr, sec, ip))
-
+
if file_rendertimes:
for exr, sec, ip in file_rendertimes:
- time_sec_average += sec
-
+ time_sec_average += sec
+
time_sec_max = max(time_sec_max, sec)
time_sec_min = min(time_sec_min, sec)
-
+
time_sec_average /= len(file_rendertimes)
-
+
file_rendertimes.insert(0, (dirname_full, time_sec_average, ""))
-
+
# write a txt to the farm
file_txt = open(time_file, 'w')
for item in file_rendertimes:
file_txt.write(format_time(*item) + "\n")
-
+
print(time_file)
-
+
all_rendertimes.append(file_rendertimes)
-
+
if time_sec_min == BIGNUM:
time_sec_min = 0.0
@@ -172,26 +173,26 @@
def render_times(blendfile):
dirname = blendfile.split("/")[-1].split("\\")[-1].replace(".blend", "")
return update_render_times(dirname, [])
-
+
def main():
all_rendertimes = []
-
+
size = 2048, 872
-
+
DIR = "/shared/render/"
for dirname in sorted(os.listdir(DIR)):
update_render_times(dirname, all_rendertimes, size=size)
-
+
summery = os.path.join(DIR, "render_times.txt")
print(summery)
summery_file = open(summery, 'w')
-
+
# first wrote totals
summery_average_time = 0.0
summery_total_time = 0.0
summery_total_frames = 0
-
+
for file_rendertimes in all_rendertimes:
for exr, sec, ip in file_rendertimes:
summery_total_time += sec
@@ -200,11 +201,11 @@
summery_average_time = summery_total_time / summery_total_frames
summery_file.write("Summery: average time %s | total time %s | total frames %d\n" % (smpte_from_seconds(summery_average_time), smpte_from_seconds(summery_total_time), summery_total_frames))
-
+
for file_rendertimes in all_rendertimes:
- summery_file.write(format_time(*file_rendertimes[0]) + (" | frames %d\n" % (len(file_rendertimes)-1)))
-
+ summery_file.write(format_time(*file_rendertimes[0]) + (" | frames %d\n" % (len(file_rendertimes) - 1)))
+
if __name__ == "__main__":
import time
while True:
Modified: trunk/py/scripts/tools/bi_farm/master_avi_gen.py
===================================================================
--- trunk/py/scripts/tools/bi_farm/master_avi_gen.py 2012-06-06 08:01:28 UTC (rev 3465)
+++ trunk/py/scripts/tools/bi_farm/master_avi_gen.py 2012-06-06 08:24:00 UTC (rev 3466)
@@ -32,23 +32,25 @@
import time
-
# assume guest
BIN = os.path.join(FARM_DIR, "blender_farm.sh")
SCRIPT = os.path.join(FARM_DIR, "blender_exr_to_avi.py")
+
def file_date(path):
#currtime = (year, month, day, hour, min, sec)
# year, month, day, hour, minute, second, weekday, yearday, daylight = now
return time.localtime(os.stat(path)[8])[0:6]
+
def find_file(dir, filename):
for root, dirs, files in os.walk(dir):
if filename in files:
return os.path.join(root, filename)
-
+
return None
+
def generate(ip, user=GEN_AVI_USER):
frame_dir = os.path.join(REND_DIR)
frame_dirs = os.listdir(frame_dir)
@@ -71,7 +73,7 @@
# find avis and exrs
files = os.listdir(image_dir)
-
+
exrs = []
avi = None
if fdir + ".avi" in files:
@@ -96,7 +98,7 @@
avi_date = file_date(os.path.join(image_dir, avi))
commit_avis += [(image_dir, avi)]
-
+
# avi is newer
if avi_date > exr_date:
print("avi up to date: %s" % image_dir)
Modified: trunk/py/scripts/tools/bi_farm/master_ui.py
===================================================================
--- trunk/py/scripts/tools/bi_farm/master_ui.py 2012-06-06 08:01:28 UTC (rev 3465)
+++ trunk/py/scripts/tools/bi_farm/master_ui.py 2012-06-06 08:24:00 UTC (rev 3466)
@@ -53,6 +53,7 @@
MOVE_OLD_FRAMES = None
OVERVIEW_BLEND = "overview.blend"
+
def latest_svn_info():
command = "svnlook youngest " + REPO_PATH
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
@@ -60,7 +61,7 @@
if len(rev):
logs = ""
- for i in reversed(range(max(int(rev)-2, 0), int(rev)+1)):
+ for i in reversed(range(max(int(rev) - 2, 0), int(rev) + 1)):
command = "svnlook log -r%d %s" % (i, REPO_PATH)
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
log = p.communicate()[0].decode("utf-8").strip()
@@ -74,6 +75,7 @@
############################ Jobs ########################
+
class Job:
priority_types = ('Low', 'Medium', 'High', 'Critical', 'Final')
quality_types = ('File settings', 'Final 4K', 'Final 2K', 'Final 1K', 'Final 0.5k', 'Final HD', 'Preview 1K', 'NoShading 1K', 'Simplified 1K')
@@ -94,7 +96,7 @@
for job in JOBS:
if job.id == id:
return job
-
+
@staticmethod
def dump():
f = open(JOBS_FILE, "wb")
@@ -111,7 +113,7 @@
except IOError:
print("No jobs file, starting with 0 jobs.")
JOBS = []
-
+
def sortkey(self):
if self.priority == 'Final':
return 0
@@ -124,6 +126,7 @@
else:
return 4
+
def job_set_enabled(id, enabled):
# slaves executing a job will detect that it is disabled in the
# master loop and stop rendering that job
@@ -131,21 +134,24 @@
job.enabled = enabled
Job.dump()
+
def job_set_priority(id, priority):
# changes in priority are detected in master loop
Job.find(id).priority = priority
Job.dump()
+
def job_set_quality(id, quality):
# XXX not implemented yet
Job.find(id).quality = quality
Job.dump()
+
def job_add(id, revision, quality):
# master loop will find the new job when refreshes it's jobs list in
# the outer loop, so actually starting to render may take a while
for job in JOBS:
- if job.id == id: # only one job per file supported
+ if job.id == id: # only one job per file supported
return
if not id.endswith(".blend"):
@@ -162,7 +168,7 @@
command = "svn up -r %s %s" % (revision, subdir)
print(command)
os.system(command)
-
+
command = "svn up -r %s %s" % (revision, os.path.join(FARM_DIR, "mango_svn", id))
print(command)
os.system(command)
@@ -175,12 +181,14 @@
if MOVE_OLD_FRAMES:
MOVE_OLD_FRAMES(job)
+
def job_remove(id):
# disabling first ensures that any slaves rendering this stop the job
job_set_enabled(id, False)
JOBS.remove(Job.find(id))
Job.dump()
+
def job_set_stats(job):
import exr_header_collate
render_times = exr_header_collate.render_times(job.id)
@@ -192,6 +200,7 @@
############################ Slaves ########################
+
class Slave:
def __init__(self, id, ip):
self.id = id
@@ -204,7 +213,7 @@
for slave in SLAVES:
if slave.id == id:
return slave
-
+
@staticmethod
def dump():
f = open(SLAVES_FILE, "wb")
@@ -222,12 +231,14 @@
print("No slaves file, starting with 0 slaves.")
SLAVES = []
+
def slave_set_enabled(id, enabled):
# master loop will detect slave.enabled and start/stop jobs
slave = Slave.find(id)
slave.enabled = enabled
Slave.dump()
+
def slave_add(id, ip):
# master loop will detect new added slaves automatically
for slave in SLAVES:
@@ -238,6 +249,7 @@
SLAVES.sort(key=lambda slave: slave.id)
Slave.dump()
+
def slave_remove(id):
# master loop will keep reference and then detect that it got removed
slave_set_enabled(id, False)
@@ -246,20 +258,24 @@
######################## Actions ##########################
+
def master_generate_avi():
global GENERATE_AVI
GENERATE_AVI = True
+
def master_stop_avi():
global STOP_AVI
STOP_AVI = True
+
def master_restart():
global RESTART
RESTART = True
######################### Server ###########################
+
class HHandler(http.server.BaseHTTPRequestHandler):
def log_message(self, format, *args):
pass
@@ -287,7 +303,7 @@
else:
rev = 'HEAD'
job_add(d['id'][0], rev, d['quality'][0])
-
+
self.send_response(http.client.SEE_OTHER)
self.send_header("Location", "/")
self.end_headers()
@@ -327,8 +343,10 @@
output("</table>\n")
def checkbox(function, id, enabled):
- if enabled: state = "checked"
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list