1 from os
.path
import abspath
, exists
4 from config
import OUTPUT_DIR
6 from utils
.colors
import *
10 def __init__(self
, filename
, create_empty
=False):
11 self
.filename
= filename
13 assert not self
.exists()
14 open(self
.filename
,'w').close()
16 def exists(self
, warn
=False):
17 status
= exists(self
.filename
)
18 if not status
and warn
:
19 logging
.warn("File '%s' does not exist."%(self
.filename
,))
23 return "ResultFile('%s')"%(self
.filename
,)
25 def get_random_output_base(sub_len
=3, levels
=2):
26 h
= misc
.unique_hash()
27 assert len(h
) > levels
* sub_len
30 for x
in xrange(levels
):
31 l
.append( h
[ x
* sub_len
: (x
+1) * sub_len
] )
34 if not os
.path
.isdir(d
):
36 return os
.path
.join(d
, h
)
38 def get_output_resultfile(suffix
=''):
39 ret
= ResultFile( get_random_output_base() + suffix
)
41 raise RuntimeError("New output result file '%s' already exists, unique hash not really unique..."%(ret))
44 def get_output_resultpair(suffix
=''):
45 basename
= get_random_output_base()
46 ret1
= ResultFile(basename
+ '_B' + suffix
)
47 ret2
= ResultFile(basename
+ '_W' + suffix
)
48 rettup
= BlackWhite(ret1
, ret2
)
51 raise RuntimeError("New output result file '%s' already exists, unique hash not really unique..."%(ret))