[yt-svn] commit/yt-3.0: 6 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Tue Jun 18 04:57:20 PDT 2013
6 new commits in yt-3.0:
https://bitbucket.org/yt_analysis/yt-3.0/commits/8ced18e7c9ac/
Changeset: 8ced18e7c9ac
Branch: yt-3.0
User: ngoldbaum
Date: 2013-06-14 08:30:15
Summary: Taking a whack at #589. Still needs a little bit of work to interface with the cosmology fields.
Affected #: 3 files
diff -r 266b7da460ae2be60f36d5713ec6676ce46e9c7c -r 8ced18e7c9aca80531343bf5f2cdf6b196899bc7 yt/data_objects/universal_fields.py
--- a/yt/data_objects/universal_fields.py
+++ b/yt/data_objects/universal_fields.py
@@ -420,8 +420,8 @@
def _Convert_Overdensity(data):
return 1.0 / (rho_crit_now * data.pf.hubble_constant**2 *
(1+data.pf.current_redshift)**3)
-add_field("Overdensity",function=_Matter_Density,
- convert_function=_Convert_Overdensity, units=r"")
+#add_field("Overdensity",function=_Matter_Density,
+# convert_function=_Convert_Overdensity, units=r"")
# This is (rho_total - <rho_total>) / <rho_total>.
def _DensityPerturbation(field, data):
@@ -463,9 +463,9 @@
return (((DL * DLS) / DS) * (1.5e14 * data.pf.omega_matter *
(data.pf.hubble_constant / speed_of_light_cgs)**2 *
(1 + data.pf.current_redshift)))
-add_field("WeakLensingConvergence", function=_DensityPerturbation,
- convert_function=_convertConvergence,
- projection_conversion='mpccm')
+#add_field("WeakLensingConvergence", function=_DensityPerturbation,
+# convert_function=_convertConvergence,
+# projection_conversion='mpccm')
def _CellVolume(field, data):
if data['dx'].size == 1:
@@ -950,10 +950,10 @@
def _pdensity(field, data):
blank = np.zeros(data.ActiveDimensions, dtype='float64')
if data["particle_position_x"].size == 0: return blank
- CICDeposit_3(data["particle_position_x"].astype(np.float64),
- data["particle_position_y"].astype(np.float64),
- data["particle_position_z"].astype(np.float64),
- data["ParticleMass"],
+ CICDeposit_3(data["particle_position_x"].astype(np.float64).ravel(),
+ data["particle_position_y"].astype(np.float64).ravel(),
+ data["particle_position_z"].astype(np.float64).ravel(),
+ data["ParticleMass"].ravel(),
data["particle_position_x"].size,
blank, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
diff -r 266b7da460ae2be60f36d5713ec6676ce46e9c7c -r 8ced18e7c9aca80531343bf5f2cdf6b196899bc7 yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py
+++ b/yt/frontends/enzo/fields.py
@@ -365,9 +365,9 @@
if data["particle_position_x"].size == 0: return blank
filter = data['creation_time'] > 0.0
if not filter.any(): return blank
- amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
- data["particle_position_y"][filter].astype(np.float64),
- data["particle_position_z"][filter].astype(np.float64),
+ amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64).ravel(),
+ data["particle_position_y"][filter].astype(np.float64).ravel(),
+ data["particle_position_z"][filter].astype(np.float64).ravel(),
data["particle_mass"][filter],
np.int64(np.where(filter)[0].size),
blank, np.array(data.LeftEdge).astype(np.float64),
@@ -387,10 +387,10 @@
else:
filter = Ellipsis
num = data["particle_position_x"].size
- amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
- data["particle_position_y"][filter].astype(np.float64),
- data["particle_position_z"][filter].astype(np.float64),
- data["particle_mass"][filter],
+ amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64).ravel(),
+ data["particle_position_y"][filter].astype(np.float64).ravel(),
+ data["particle_position_z"][filter].astype(np.float64).ravel(),
+ data["particle_mass"][filter].ravel(),
num,
blank, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
@@ -408,10 +408,10 @@
top = np.zeros(data.ActiveDimensions, dtype='float64')
if data["particle_position_x"].size == 0: return top
particle_field_data = data[particle_field] * data['particle_mass']
- amr_utils.CICDeposit_3(data["particle_position_x"].astype(np.float64),
- data["particle_position_y"].astype(np.float64),
- data["particle_position_z"].astype(np.float64),
- particle_field_data,
+ amr_utils.CICDeposit_3(data["particle_position_x"].astype(np.float64).ravel(),
+ data["particle_position_y"].astype(np.float64).ravel(),
+ data["particle_position_z"].astype(np.float64).ravel(),
+ particle_field_data.ravel(),
data["particle_position_x"].size,
top, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
@@ -419,11 +419,11 @@
del particle_field_data
bottom = np.zeros(data.ActiveDimensions, dtype='float64')
- amr_utils.CICDeposit_3(data["particle_position_x"].astype(np.float64),
- data["particle_position_y"].astype(np.float64),
- data["particle_position_z"].astype(np.float64),
- data["particle_mass"],
- data["particle_position_x"].size,
+ amr_utils.CICDeposit_3(data["particle_position_x"].astype(np.float64).ravel(),
+ data["particle_position_y"].astype(np.float64).ravel(),
+ data["particle_position_z"].astype(np.float64).ravel(),
+ data["particle_mass"].ravel(),
+ data["particle_position_x"].ravel().size,
bottom, np.array(data.LeftEdge).astype(np.float64),
np.array(data.ActiveDimensions).astype(np.int32),
just_one(data['dx']))
@@ -446,12 +446,13 @@
particle_field = field.name[5:]
top = np.zeros(data.ActiveDimensions, dtype='float64')
if data["particle_position_x"].size == 0: return top
- filter = data['creation_time'] > 0.0
- if not filter.any(): return top
- particle_field_data = data[particle_field][filter] * data['particle_mass'][filter]
- amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
- data["particle_position_y"][filter].astype(np.float64),
- data["particle_position_z"][filter].astype(np.float64),
+ filter = np.nonzero(data['creation_time'])
+ if True in [f == np.array([]) for f in filter]: return top
+ particle_field_data = data[particle_field][filter] * \
+ data['particle_mass'][filter]
+ amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64).ravel(),
+ data["particle_position_y"][filter].astype(np.float64).ravel(),
+ data["particle_position_z"][filter].astype(np.float64).ravel(),
particle_field_data,
np.int64(np.where(filter)[0].size),
top, np.array(data.LeftEdge).astype(np.float64),
@@ -460,9 +461,9 @@
del particle_field_data
bottom = np.zeros(data.ActiveDimensions, dtype='float64')
- amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64),
- data["particle_position_y"][filter].astype(np.float64),
- data["particle_position_z"][filter].astype(np.float64),
+ amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64).ravel(),
+ data["particle_position_y"][filter].astype(np.float64).ravel(),
+ data["particle_position_z"][filter].astype(np.float64).ravel(),
data["particle_mass"][filter],
np.int64(np.where(filter)[0].size),
bottom, np.array(data.LeftEdge).astype(np.float64),
@@ -531,8 +532,8 @@
for pf in ["type", "mass"] + \
["position_%s" % ax for ax in 'xyz']:
- add_enzo_field(("all", "particle_%s" % pf), NullFunc, particle_type=True)
-
+ add_field(("all", "particle_%s" % pf), NullFunc, particle_type=True)
+
def _convRetainInt(data):
return 1
add_enzo_field(("all", "particle_index"), function=NullFunc,
@@ -552,7 +553,7 @@
add_enzo_field(("all", pf), function=NullFunc,
validators = [ValidateDataField(pf)],
particle_type=True)
-add_field("particle_mass", function=NullFunc, particle_type=True)
+add_field(('all', "particle_mass"), function=NullFunc, particle_type=True)
def _ParticleAge(field, data):
current_time = data.pf.current_time
diff -r 266b7da460ae2be60f36d5713ec6676ce46e9c7c -r 8ced18e7c9aca80531343bf5f2cdf6b196899bc7 yt/geometry/geometry_handler.py
--- a/yt/geometry/geometry_handler.py
+++ b/yt/geometry/geometry_handler.py
@@ -42,6 +42,7 @@
from yt.utilities.logger import ytLogger as mylog
from yt.utilities.parallel_tools.parallel_analysis_interface import \
ParallelAnalysisInterface, parallel_splitter
+from yt.utilities.exceptions import YTFieldNotFound
class GeometryHandler(ParallelAnalysisInterface):
@@ -187,7 +188,7 @@
for field in fields_to_check:
try:
fd = fi[field].get_dependencies(pf = self.parameter_file)
- except Exception as e:
+ except YTFieldNotFound as e:
continue
missing = False
# This next bit checks that we can't somehow generate everything.
https://bitbucket.org/yt_analysis/yt-3.0/commits/3f7c2391771a/
Changeset: 3f7c2391771a
Branch: yt-3.0
User: ngoldbaum
Date: 2013-06-14 08:46:03
Summary: Adding dummy parameters for the stream frontend.
This is necessary for field detection to work correctly during the unit tests.
Affected #: 1 file
diff -r 8ced18e7c9aca80531343bf5f2cdf6b196899bc7 -r 3f7c2391771a03b590913854829eb3b74048d78b yt/frontends/stream/data_structures.py
--- a/yt/frontends/stream/data_structures.py
+++ b/yt/frontends/stream/data_structures.py
@@ -285,6 +285,8 @@
self.periodicity = self.stream_handler.periodicity
self.domain_dimensions = self.stream_handler.domain_dimensions
self.current_time = self.stream_handler.simulation_time
+ self.parameters['Gamma'] = 5/3
+ self.parameters['EOSType'] = -1
if self.stream_handler.cosmology_simulation:
self.cosmological_simulation = 1
self.current_redshift = self.stream_handler.current_redshift
https://bitbucket.org/yt_analysis/yt-3.0/commits/c91712d5ab99/
Changeset: c91712d5ab99
Branch: yt-3.0
User: ngoldbaum
Date: 2013-06-15 00:26:20
Summary: Switching CICDeposit_3 fields to use the new "deposit"-style fields.
Affected #: 2 files
diff -r 3f7c2391771a03b590913854829eb3b74048d78b -r c91712d5ab99fae87d2dc5315afef2ae64ede886 yt/data_objects/universal_fields.py
--- a/yt/data_objects/universal_fields.py
+++ b/yt/data_objects/universal_fields.py
@@ -32,7 +32,7 @@
from yt.funcs import *
-from yt.utilities.lib import CICDeposit_3, obtain_rvec, obtain_rv_vec
+from yt.utilities.lib import obtain_rvec, obtain_rv_vec
from yt.utilities.cosmology import Cosmology
from field_info_container import \
add_field, \
@@ -395,7 +395,7 @@
convert_function=_convertCellMassCode)
def _TotalMass(field,data):
- return (data["Density"]+data["particle_density"]) * data["CellVolume"]
+ return (data["Density"]+data[("deposit", "particle_density")]) * data["CellVolume"]
add_field("TotalMass", function=_TotalMass, units=r"\rm{g}")
add_field("TotalMassMsun", units=r"M_{\odot}",
function=_TotalMass,
@@ -948,18 +948,9 @@
units=r"UNDEFINED")
def _pdensity(field, data):
- blank = np.zeros(data.ActiveDimensions, dtype='float64')
- if data["particle_position_x"].size == 0: return blank
- CICDeposit_3(data["particle_position_x"].astype(np.float64).ravel(),
- data["particle_position_y"].astype(np.float64).ravel(),
- data["particle_position_z"].astype(np.float64).ravel(),
- data["ParticleMass"].ravel(),
- data["particle_position_x"].size,
- blank, np.array(data.LeftEdge).astype(np.float64),
- np.array(data.ActiveDimensions).astype(np.int32),
- just_one(data['dx']))
- np.divide(blank, data["CellVolume"], blank)
- return blank
+ pmass = data[('deposit','all_mass')]
+ np.divide(pmass, data["CellVolume"], pmass)
+ return pmass
add_field("particle_density", function=_pdensity,
validators=[ValidateGridType()],
display_name=r"\mathrm{Particle}\/\mathrm{Density}")
diff -r 3f7c2391771a03b590913854829eb3b74048d78b -r c91712d5ab99fae87d2dc5315afef2ae64ede886 yt/frontends/enzo/fields.py
--- a/yt/frontends/enzo/fields.py
+++ b/yt/frontends/enzo/fields.py
@@ -361,41 +361,23 @@
f.take_log = False
def _spdensity(field, data):
- blank = np.zeros(data.ActiveDimensions, dtype='float64')
- if data["particle_position_x"].size == 0: return blank
filter = data['creation_time'] > 0.0
- if not filter.any(): return blank
- amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64).ravel(),
- data["particle_position_y"][filter].astype(np.float64).ravel(),
- data["particle_position_z"][filter].astype(np.float64).ravel(),
- data["particle_mass"][filter],
- np.int64(np.where(filter)[0].size),
- blank, np.array(data.LeftEdge).astype(np.float64),
- np.array(data.ActiveDimensions).astype(np.int32),
- just_one(data['dx']))
- return blank
+ pos = data["all", "Coordinates"][filter, :]
+ d = data.deposit(pos, [data['all', 'Mass'][filter]], method='sum')
+ d /= data['CellVolume']
+ return d
add_field("star_density", function=_spdensity,
validators=[ValidateSpatial(0)], convert_function=_convertDensity)
def _dmpdensity(field, data):
- blank = np.zeros(data.ActiveDimensions, dtype='float64')
- if data["particle_position_x"].size == 0: return blank
if 'creation_time' in data.pf.field_info:
filter = data['creation_time'] <= 0.0
- if not filter.any(): return blank
- num = filter.sum()
else:
filter = Ellipsis
- num = data["particle_position_x"].size
- amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64).ravel(),
- data["particle_position_y"][filter].astype(np.float64).ravel(),
- data["particle_position_z"][filter].astype(np.float64).ravel(),
- data["particle_mass"][filter].ravel(),
- num,
- blank, np.array(data.LeftEdge).astype(np.float64),
- np.array(data.ActiveDimensions).astype(np.int32),
- just_one(data['dx']))
- return blank
+ pos = data["all", "Coordinates"][filter, :]
+ d = data.deposit(pos, [data['all', 'Mass'][filter]], method='sum')
+ d /= data['CellVolume']
+ return d
add_field("dm_density", function=_dmpdensity,
validators=[ValidateSpatial(0)], convert_function=_convertDensity)
@@ -405,28 +387,17 @@
using cloud-in-cell deposit.
"""
particle_field = field.name[4:]
- top = np.zeros(data.ActiveDimensions, dtype='float64')
- if data["particle_position_x"].size == 0: return top
- particle_field_data = data[particle_field] * data['particle_mass']
- amr_utils.CICDeposit_3(data["particle_position_x"].astype(np.float64).ravel(),
- data["particle_position_y"].astype(np.float64).ravel(),
- data["particle_position_z"].astype(np.float64).ravel(),
- particle_field_data.ravel(),
- data["particle_position_x"].size,
- top, np.array(data.LeftEdge).astype(np.float64),
- np.array(data.ActiveDimensions).astype(np.int32),
- just_one(data['dx']))
- del particle_field_data
-
- bottom = np.zeros(data.ActiveDimensions, dtype='float64')
- amr_utils.CICDeposit_3(data["particle_position_x"].astype(np.float64).ravel(),
- data["particle_position_y"].astype(np.float64).ravel(),
- data["particle_position_z"].astype(np.float64).ravel(),
- data["particle_mass"].ravel(),
- data["particle_position_x"].ravel().size,
- bottom, np.array(data.LeftEdge).astype(np.float64),
- np.array(data.ActiveDimensions).astype(np.int32),
- just_one(data['dx']))
+ pos = data[('all', 'Coordinates')]
+ top = data.deposit(
+ pos,
+ [data[('all', particle_field)]*data[('all', 'particle_mass')]],
+ method = 'cic'
+ )
+ bottom = data.deposit(
+ pos,
+ [data[('all', 'particle_mass')]],
+ method = 'cic'
+ )
top[bottom == 0] = 0.0
bnz = bottom.nonzero()
top[bnz] /= bottom[bnz]
@@ -444,31 +415,18 @@
Create a grid field for star quantities, weighted by star mass.
"""
particle_field = field.name[5:]
- top = np.zeros(data.ActiveDimensions, dtype='float64')
- if data["particle_position_x"].size == 0: return top
- filter = np.nonzero(data['creation_time'])
- if True in [f == np.array([]) for f in filter]: return top
- particle_field_data = data[particle_field][filter] * \
- data['particle_mass'][filter]
- amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64).ravel(),
- data["particle_position_y"][filter].astype(np.float64).ravel(),
- data["particle_position_z"][filter].astype(np.float64).ravel(),
- particle_field_data,
- np.int64(np.where(filter)[0].size),
- top, np.array(data.LeftEdge).astype(np.float64),
- np.array(data.ActiveDimensions).astype(np.int32),
- just_one(data['dx']))
- del particle_field_data
-
- bottom = np.zeros(data.ActiveDimensions, dtype='float64')
- amr_utils.CICDeposit_3(data["particle_position_x"][filter].astype(np.float64).ravel(),
- data["particle_position_y"][filter].astype(np.float64).ravel(),
- data["particle_position_z"][filter].astype(np.float64).ravel(),
- data["particle_mass"][filter],
- np.int64(np.where(filter)[0].size),
- bottom, np.array(data.LeftEdge).astype(np.float64),
- np.array(data.ActiveDimensions).astype(np.int32),
- just_one(data['dx']))
+ filter = data['creation_time'] > 0.0
+ pos = data['all', 'Coordinates'][filter, :]
+ top = data.deposit(
+ pos,
+ [data['all', particle_field][filter]*data['all', 'Mass'][filter]],
+ method='sum'
+ )
+ bottom = data.deposit(
+ pos,
+ [data['all', 'Mass'][filter]],
+ method='sum'
+ )
top[bottom == 0] = 0.0
bnz = bottom.nonzero()
top[bnz] /= bottom[bnz]
@@ -532,7 +490,7 @@
for pf in ["type", "mass"] + \
["position_%s" % ax for ax in 'xyz']:
- add_field(("all", "particle_%s" % pf), NullFunc, particle_type=True)
+ add_enzo_field(('all',"particle_%s" % pf), NullFunc, particle_type=True)
def _convRetainInt(data):
return 1
@@ -550,7 +508,7 @@
particle_type=True)
for pf in ["creation_time", "dynamical_time", "metallicity_fraction"]:
- add_enzo_field(("all", pf), function=NullFunc,
+ add_enzo_field(pf, function=NullFunc,
validators = [ValidateDataField(pf)],
particle_type=True)
add_field(('all', "particle_mass"), function=NullFunc, particle_type=True)
@@ -565,7 +523,7 @@
particle_type=True, convert_function=_convertParticleAge)
def _ParticleMass(field, data):
- particles = data["particle_mass"].astype('float64') * \
+ particles = data['all', "particle_mass"].astype('float64') * \
just_one(data["CellVolumeCode"].ravel())
# Note that we mandate grid-type here, so this is okay
return particles
https://bitbucket.org/yt_analysis/yt-3.0/commits/1382f43c0c56/
Changeset: 1382f43c0c56
Branch: yt-3.0
User: ngoldbaum
Date: 2013-06-15 00:27:59
Summary: These are hacks that I needed to add to get the tests to pass. There might be a better way to do this.
Affected #: 2 files
diff -r c91712d5ab99fae87d2dc5315afef2ae64ede886 -r 1382f43c0c562d55cdfef31c4bfe3f1cc83af9c4 yt/frontends/stream/io.py
--- a/yt/frontends/stream/io.py
+++ b/yt/frontends/stream/io.py
@@ -54,7 +54,7 @@
def _read_fluid_selection(self, chunks, selector, fields, size):
chunks = list(chunks)
- if any((ftype != "gas" for ftype, fname in fields)):
+ if any((ftype not in ("gas", "deposit") for ftype, fname in fields)):
raise NotImplementedError
rv = {}
for field in fields:
@@ -65,6 +65,8 @@
size, [f2 for f1, f2 in fields], ng)
for field in fields:
ftype, fname = field
+ if ftype == 'deposit':
+ fname = field
ind = 0
for chunk in chunks:
for g in chunk.objs:
diff -r c91712d5ab99fae87d2dc5315afef2ae64ede886 -r 1382f43c0c562d55cdfef31c4bfe3f1cc83af9c4 yt/visualization/fixed_resolution.py
--- a/yt/visualization/fixed_resolution.py
+++ b/yt/visualization/fixed_resolution.py
@@ -148,7 +148,7 @@
fields = getattr(self.data_source, "fields", [])
fields += getattr(self.data_source, "field_data", {}).keys()
for f in fields:
- if f not in exclude:
+ if f not in exclude and f[0] not in self.data_source.pf.particle_types:
self[f]
def _get_info(self, item):
https://bitbucket.org/yt_analysis/yt-3.0/commits/5077106a5979/
Changeset: 5077106a5979
Branch: yt-3.0
User: ngoldbaum
Date: 2013-06-15 00:28:25
Summary: Reverting to catching the generic exception but at least now we record that there was an exception in the first place.
Affected #: 1 file
diff -r 1382f43c0c562d55cdfef31c4bfe3f1cc83af9c4 -r 5077106a597949a6939289f7fb0aa9418464fcdc yt/geometry/geometry_handler.py
--- a/yt/geometry/geometry_handler.py
+++ b/yt/geometry/geometry_handler.py
@@ -188,7 +188,10 @@
for field in fields_to_check:
try:
fd = fi[field].get_dependencies(pf = self.parameter_file)
- except YTFieldNotFound as e:
+ except Exception as e:
+ if type(e) != YTFieldNotFound:
+ mylog.debug("Exception %s raised during field detection" %
+ str(type(e)))
continue
missing = False
# This next bit checks that we can't somehow generate everything.
https://bitbucket.org/yt_analysis/yt-3.0/commits/718e8f89a721/
Changeset: 718e8f89a721
Branch: yt-3.0
User: ngoldbaum
Date: 2013-06-15 00:30:52
Summary: Reverting the changes to Overdensity and WeakLensingConvergence.
Affected #: 1 file
diff -r 5077106a597949a6939289f7fb0aa9418464fcdc -r 718e8f89a721b916b7b5d3ce0f05b00138e10d32 yt/data_objects/universal_fields.py
--- a/yt/data_objects/universal_fields.py
+++ b/yt/data_objects/universal_fields.py
@@ -420,8 +420,8 @@
def _Convert_Overdensity(data):
return 1.0 / (rho_crit_now * data.pf.hubble_constant**2 *
(1+data.pf.current_redshift)**3)
-#add_field("Overdensity",function=_Matter_Density,
-# convert_function=_Convert_Overdensity, units=r"")
+add_field("Overdensity",function=_Matter_Density,
+ convert_function=_Convert_Overdensity, units=r"")
# This is (rho_total - <rho_total>) / <rho_total>.
def _DensityPerturbation(field, data):
@@ -463,9 +463,9 @@
return (((DL * DLS) / DS) * (1.5e14 * data.pf.omega_matter *
(data.pf.hubble_constant / speed_of_light_cgs)**2 *
(1 + data.pf.current_redshift)))
-#add_field("WeakLensingConvergence", function=_DensityPerturbation,
-# convert_function=_convertConvergence,
-# projection_conversion='mpccm')
+add_field("WeakLensingConvergence", function=_DensityPerturbation,
+ convert_function=_convertConvergence,
+ projection_conversion='mpccm')
def _CellVolume(field, data):
if data['dx'].size == 1:
Repository URL: https://bitbucket.org/yt_analysis/yt-3.0/
--
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