[yt-svn] commit/yt: 5 new changesets
Bitbucket
commits-noreply at bitbucket.org
Wed Nov 14 13:00:40 PST 2012
5 new commits in yt:
https://bitbucket.org/yt_analysis/yt/changeset/8c04bce75238/
changeset: 8c04bce75238
branch: yt
user: samskillman
date: 2012-11-14 18:13:00
summary: Restoring the answer-name functionality, and also changing the default hash so
that it can be modified (by enzo testing) to have the enzo hash, and not the yt
hash. Also putting the local storage shelve data inside the hash/answer-name
directory. Instead of having hash/, hash.dir, hash.bak, hash.dat all in the
storage directory, put hash.dir, hash.bak, hash.dat inside hash/.
affected #: 1 file
diff -r 6021af872bc06755516426d6fc8f3acc8e49c81d -r 8c04bce75238344c4c47282b81a4949b86326c01 yt/utilities/answer_testing/framework.py
--- a/yt/utilities/answer_testing/framework.py
+++ b/yt/utilities/answer_testing/framework.py
@@ -49,6 +49,7 @@
class AnswerTesting(Plugin):
name = "answer-testing"
+ _my_version = None
def options(self, parser, env=os.environ):
super(AnswerTesting, self).options(parser, env=env)
@@ -65,16 +66,26 @@
parser.add_option("--local-store", dest="store_local_results",
default=False, action="store_true", help="Store/Load local results?")
+ @property
+ def my_version(self, version=None):
+ if self._my_version is None:
+ if version is not None:
+ self._my_version = version
+ else:
+ try:
+ self._my_version = get_yt_version()
+ except:
+ self._my_version = "UNKNOWN%s" % (time.time())
+ else:
+ return self._my_version
+
def configure(self, options, conf):
super(AnswerTesting, self).configure(options, conf)
if not self.enabled:
return
disable_stream_logging()
- try:
- my_hash = get_yt_version()
- except:
- my_hash = "UNKNOWN%s" % (time.time())
- if options.this_name is None: options.this_name = my_hash
+ if options.this_name is None:
+ options.this_name = self.my_version
from yt.config import ytcfg
ytcfg["yt","__withintesting"] = "True"
AnswerTestingTest.result_storage = \
@@ -84,19 +95,24 @@
elif options.compare_name == "latest":
options.compare_name = _latest
- # We only either store or test.
+ # Local/Cloud storage
if options.store_local_results:
+ storage_class = AnswerTestLocalStorage
+ # Fix up filename for local storage
if options.compare_name is not None:
- options.compare_name = "%s/%s" % \
+ options.compare_name = "%s/%s/%s" % \
(os.path.realpath(options.output_dir),
- options.compare_name)
- AnswerTestingTest.reference_storage = \
- self.storage = \
- AnswerTestLocalStorage(options.compare_name,
- not options.store_results)
+ options.compare_name, options.compare_name)
+ if options.this_name is not None:
+ options.this_name= "%s/%s/%s" % \
+ (os.path.realpath(options.output_dir),
+ options.this_name, options.this_name)
else:
- AnswerTestingTest.reference_storage = \
- self.storage = AnswerTestCloudStorage(options.compare_name, not options.store_results)
+ storage_class = AnswerTestCloudStorage
+
+ # Initialize answer/reference storage
+ AnswerTestingTest.reference_storage = self.storage = \
+ storage_class(options.compare_name, options.this_name)
self.store_results = options.store_results
self.store_local_results = options.store_local_results
@@ -108,10 +124,10 @@
self.storage.dump(self.result_storage)
class AnswerTestStorage(object):
- def __init__(self, reference_name, read=True):
+ def __init__(self, reference_name=None, answer_name=None):
self.reference_name = reference_name
+ self.answer_name = answer_name
self.cache = {}
- self.read = read
def dump(self, result_storage, result):
raise NotImplementedError
def get(self, pf_name, default=None):
@@ -119,7 +135,7 @@
class AnswerTestCloudStorage(AnswerTestStorage):
def get(self, pf_name, default = None):
- if not self.read: return default
+ if self.reference_name is None: return default
if pf_name in self.cache: return self.cache[pf_name]
url = _url_path % (self.reference_name, pf_name)
try:
@@ -135,7 +151,7 @@
return rv
def dump(self, result_storage):
- if self.read: return
+ if self.answer_name is None: return
# This is where we dump our result storage up to Amazon, if we are able
# to.
import boto
@@ -144,18 +160,18 @@
bucket = c.get_bucket("yt-answer-tests")
for pf_name in result_storage:
rs = cPickle.dumps(result_storage[pf_name])
- tk = bucket.get_key("%s_%s" % (self.reference_name, pf_name))
+ tk = bucket.get_key("%s_%s" % (self.answer_name, pf_name))
if tk is not None: tk.delete()
k = Key(bucket)
- k.key = "%s_%s" % (self.reference_name, pf_name)
+ k.key = "%s_%s" % (self.answer_name, pf_name)
k.set_contents_from_string(rs)
k.set_acl("public-read")
class AnswerTestLocalStorage(AnswerTestStorage):
def dump(self, result_storage):
- if self.read: return
+ if self.answer_name is None: return
# Store data using shelve
- ds = shelve.open(self.reference_name, protocol=-1)
+ ds = shelve.open(self.answer_name, protocol=-1)
for pf_name in result_storage:
answer_name = "%s" % pf_name
if name in ds:
@@ -164,7 +180,7 @@
ds.close()
def get(self, pf_name, default=None):
- if not self.read: return default
+ if self.reference_name is None: return default
# Read data using shelve
answer_name = "%s" % pf_name
ds = shelve.open(self.reference_name, protocol=-1)
@@ -224,8 +240,7 @@
def __call__(self):
nv = self.run()
- if self.reference_storage.read and \
- self.reference_storage.reference_name is not None:
+ if self.reference_storage.reference_name is not None:
dd = self.reference_storage.get(self.storage_name)
if dd is None: raise YTNoOldAnswer(self.storage_name)
ov = dd[self.description]
https://bitbucket.org/yt_analysis/yt/changeset/512ea98a0ad9/
changeset: 512ea98a0ad9
branch: yt
user: samskillman
date: 2012-11-14 19:15:45
summary: Fixes if the output dir for the local answer storage doesn't exist.
affected #: 1 file
diff -r 8c04bce75238344c4c47282b81a4949b86326c01 -r 512ea98a0ad912131b90407670b0b1ded5abe3f9 yt/utilities/answer_testing/framework.py
--- a/yt/utilities/answer_testing/framework.py
+++ b/yt/utilities/answer_testing/framework.py
@@ -101,12 +101,16 @@
# Fix up filename for local storage
if options.compare_name is not None:
options.compare_name = "%s/%s/%s" % \
- (os.path.realpath(options.output_dir),
- options.compare_name, options.compare_name)
+ (options.output_dir, options.compare_name,
+ options.compare_name)
if options.this_name is not None:
- options.this_name= "%s/%s/%s" % \
- (os.path.realpath(options.output_dir),
- options.this_name, options.this_name)
+ name_dir_path = "%s/%s" % \
+ (os.path.realpath(options.output_dir),
+ options.this_name)
+ if not os.path.isdir(name_dir_path):
+ os.mkdir(name_dir_path)
+ options.this_name= "%s/%s" % \
+ (name_dir_path, options.this_name)
else:
storage_class = AnswerTestCloudStorage
https://bitbucket.org/yt_analysis/yt/changeset/849c77e32bd5/
changeset: 849c77e32bd5
branch: yt
user: samskillman
date: 2012-11-14 19:27:59
summary: Merging in from main
affected #: 2 files
diff -r 512ea98a0ad912131b90407670b0b1ded5abe3f9 -r 849c77e32bd58c47a595006c7622d3b2d1f7b22b yt/frontends/enzo/answer_testing_support.py
--- a/yt/frontends/enzo/answer_testing_support.py
+++ b/yt/frontends/enzo/answer_testing_support.py
@@ -62,14 +62,14 @@
for field in fields:
yield GridValuesTest(pf_fn, field)
if 'particle' in field: continue
- for axis in [0, 1, 2]:
- for ds in dso:
+ for ds in dso:
+ for axis in [0, 1, 2]:
for weight_field in [None, "Density"]:
yield ProjectionValuesTest(
pf_fn, axis, field, weight_field,
ds, decimals=3)
- yield FieldValuesTest(
- pf_fn, field, ds, decimals=3)
+ yield FieldValuesTest(
+ pf_fn, field, ds, decimals=3)
class ShockTubeTest(object):
def __init__(self, data_file, solution_file, fields,
diff -r 512ea98a0ad912131b90407670b0b1ded5abe3f9 -r 849c77e32bd58c47a595006c7622d3b2d1f7b22b yt/utilities/answer_testing/framework.py
--- a/yt/utilities/answer_testing/framework.py
+++ b/yt/utilities/answer_testing/framework.py
@@ -328,7 +328,7 @@
assert_equal(new_result, old_result,
err_msg=err_msg, verbose=True)
else:
- assert_rel_equal(new_result, old_result, self.decimals,
+ assert_allclose(new_result, old_result, 10.**(-self.decimals),
err_msg=err_msg, verbose=True)
class AllFieldValuesTest(AnswerTestingTest):
@@ -389,8 +389,8 @@
assert_equal(new_result[k], old_result[k],
err_msg=err_msg)
else:
- assert_rel_equal(new_result[k], old_result[k],
- self.decimals, err_msg=err_msg)
+ assert_allclose(new_result[k], old_result[k],
+ 10.**-(self.decimals), err_msg=err_msg)
class PixelizedProjectionValuesTest(AnswerTestingTest):
_type_name = "PixelizedProjectionValues"
https://bitbucket.org/yt_analysis/yt/changeset/f5cf9655b568/
changeset: f5cf9655b568
branch: yt
user: samskillman
date: 2012-11-14 21:49:24
summary: Fixing my_version property after suggestions from @matthewturk
affected #: 1 file
diff -r 849c77e32bd58c47a595006c7622d3b2d1f7b22b -r f5cf9655b5689bffac61d2d5c5c3c531917106e2 yt/utilities/answer_testing/framework.py
--- a/yt/utilities/answer_testing/framework.py
+++ b/yt/utilities/answer_testing/framework.py
@@ -68,16 +68,15 @@
@property
def my_version(self, version=None):
- if self._my_version is None:
- if version is not None:
- self._my_version = version
- else:
- try:
- self._my_version = get_yt_version()
- except:
- self._my_version = "UNKNOWN%s" % (time.time())
- else:
+ if self._my_version is not None:
return self._my_version
+ if version is None:
+ try:
+ version = get_yt_version()
+ except:
+ version = "UNKNOWN%s" % (time.time())
+ self._my_version = version
+ return self._my_version
def configure(self, options, conf):
super(AnswerTesting, self).configure(options, conf)
https://bitbucket.org/yt_analysis/yt/changeset/9fafae943a69/
changeset: 9fafae943a69
branch: yt
user: MatthewTurk
date: 2012-11-14 22:00:38
summary: Merged in samskillman/yt (pull request #340)
affected #: 1 file
diff -r 917e70c630b36db1f9a821023a3a26b4c9454ac9 -r 9fafae943a699a5e2740699f610048c57eea7b83 yt/utilities/answer_testing/framework.py
--- a/yt/utilities/answer_testing/framework.py
+++ b/yt/utilities/answer_testing/framework.py
@@ -49,6 +49,7 @@
class AnswerTesting(Plugin):
name = "answer-testing"
+ _my_version = None
def options(self, parser, env=os.environ):
super(AnswerTesting, self).options(parser, env=env)
@@ -65,16 +66,25 @@
parser.add_option("--local-store", dest="store_local_results",
default=False, action="store_true", help="Store/Load local results?")
+ @property
+ def my_version(self, version=None):
+ if self._my_version is not None:
+ return self._my_version
+ if version is None:
+ try:
+ version = get_yt_version()
+ except:
+ version = "UNKNOWN%s" % (time.time())
+ self._my_version = version
+ return self._my_version
+
def configure(self, options, conf):
super(AnswerTesting, self).configure(options, conf)
if not self.enabled:
return
disable_stream_logging()
- try:
- my_hash = get_yt_version()
- except:
- my_hash = "UNKNOWN%s" % (time.time())
- if options.this_name is None: options.this_name = my_hash
+ if options.this_name is None:
+ options.this_name = self.my_version
from yt.config import ytcfg
ytcfg["yt","__withintesting"] = "True"
AnswerTestingTest.result_storage = \
@@ -84,19 +94,28 @@
elif options.compare_name == "latest":
options.compare_name = _latest
- # We only either store or test.
+ # Local/Cloud storage
if options.store_local_results:
+ storage_class = AnswerTestLocalStorage
+ # Fix up filename for local storage
if options.compare_name is not None:
- options.compare_name = "%s/%s" % \
- (os.path.realpath(options.output_dir),
- options.compare_name)
- AnswerTestingTest.reference_storage = \
- self.storage = \
- AnswerTestLocalStorage(options.compare_name,
- not options.store_results)
+ options.compare_name = "%s/%s/%s" % \
+ (options.output_dir, options.compare_name,
+ options.compare_name)
+ if options.this_name is not None:
+ name_dir_path = "%s/%s" % \
+ (os.path.realpath(options.output_dir),
+ options.this_name)
+ if not os.path.isdir(name_dir_path):
+ os.mkdir(name_dir_path)
+ options.this_name= "%s/%s" % \
+ (name_dir_path, options.this_name)
else:
- AnswerTestingTest.reference_storage = \
- self.storage = AnswerTestCloudStorage(options.compare_name, not options.store_results)
+ storage_class = AnswerTestCloudStorage
+
+ # Initialize answer/reference storage
+ AnswerTestingTest.reference_storage = self.storage = \
+ storage_class(options.compare_name, options.this_name)
self.store_results = options.store_results
self.store_local_results = options.store_local_results
@@ -108,10 +127,10 @@
self.storage.dump(self.result_storage)
class AnswerTestStorage(object):
- def __init__(self, reference_name, read=True):
+ def __init__(self, reference_name=None, answer_name=None):
self.reference_name = reference_name
+ self.answer_name = answer_name
self.cache = {}
- self.read = read
def dump(self, result_storage, result):
raise NotImplementedError
def get(self, pf_name, default=None):
@@ -119,7 +138,7 @@
class AnswerTestCloudStorage(AnswerTestStorage):
def get(self, pf_name, default = None):
- if not self.read: return default
+ if self.reference_name is None: return default
if pf_name in self.cache: return self.cache[pf_name]
url = _url_path % (self.reference_name, pf_name)
try:
@@ -135,7 +154,7 @@
return rv
def dump(self, result_storage):
- if self.read: return
+ if self.answer_name is None: return
# This is where we dump our result storage up to Amazon, if we are able
# to.
import boto
@@ -144,18 +163,18 @@
bucket = c.get_bucket("yt-answer-tests")
for pf_name in result_storage:
rs = cPickle.dumps(result_storage[pf_name])
- tk = bucket.get_key("%s_%s" % (self.reference_name, pf_name))
+ tk = bucket.get_key("%s_%s" % (self.answer_name, pf_name))
if tk is not None: tk.delete()
k = Key(bucket)
- k.key = "%s_%s" % (self.reference_name, pf_name)
+ k.key = "%s_%s" % (self.answer_name, pf_name)
k.set_contents_from_string(rs)
k.set_acl("public-read")
class AnswerTestLocalStorage(AnswerTestStorage):
def dump(self, result_storage):
- if self.read: return
+ if self.answer_name is None: return
# Store data using shelve
- ds = shelve.open(self.reference_name, protocol=-1)
+ ds = shelve.open(self.answer_name, protocol=-1)
for pf_name in result_storage:
answer_name = "%s" % pf_name
if name in ds:
@@ -164,7 +183,7 @@
ds.close()
def get(self, pf_name, default=None):
- if not self.read: return default
+ if self.reference_name is None: return default
# Read data using shelve
answer_name = "%s" % pf_name
ds = shelve.open(self.reference_name, protocol=-1)
@@ -224,8 +243,7 @@
def __call__(self):
nv = self.run()
- if self.reference_storage.read and \
- self.reference_storage.reference_name is not None:
+ if self.reference_storage.reference_name is not None:
dd = self.reference_storage.get(self.storage_name)
if dd is None: raise YTNoOldAnswer(self.storage_name)
ov = dd[self.description]
Repository URL: https://bitbucket.org/yt_analysis/yt/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the yt-svn
mailing list