[yt-svn] commit/yt: 4 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Wed Feb 17 09:16:44 PST 2016
4 new commits in yt:
https://bitbucket.org/yt_analysis/yt/commits/c0b708a5cefa/
Changeset: c0b708a5cefa
Branch: yt
User: MatthewTurk
Date: 2016-02-03 19:25:52+00:00
Summary: particle_deposit needs F-ordered indices for grids.
Affected #: 1 file
diff -r be1961831c2209fce82d3770b7748634bffc2581 -r c0b708a5cefaa4cba230e38883f4392ec5e8d3b9 yt/data_objects/grid_patch.py
--- a/yt/data_objects/grid_patch.py
+++ b/yt/data_objects/grid_patch.py
@@ -327,12 +327,13 @@
if cls is None:
raise YTParticleDepositionNotImplemented(method)
# We allocate number of zones, not number of octs
- op = cls(tuple(self.ActiveDimensions), kernel_name)
+ # Everything inside this is fortran ordered, so we reverse it here.
+ op = cls(tuple(self.ActiveDimensions)[::-1], kernel_name)
op.initialize()
op.process_grid(self, positions, fields)
vals = op.finalize()
if vals is None: return
- return vals.copy(order="C")
+ return vals.transpose() # Fortran-ordered, so transpose.
def select_blocks(self, selector):
mask = self._get_selector_mask(selector)
https://bitbucket.org/yt_analysis/yt/commits/50f96c9a197a/
Changeset: 50f96c9a197a
Branch: yt
User: MatthewTurk
Date: 2016-02-03 19:26:37+00:00
Summary: Unbackout the merge.
Affected #: 6 files
https://bitbucket.org/yt_analysis/yt/commits/faad0f151181/
Changeset: faad0f151181
Branch: yt
User: MatthewTurk
Date: 2016-02-15 21:39:53+00:00
Summary: Merging, fixing conflict
Affected #: 87 files
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 doc/source/visualizing/unstructured_mesh_rendering.rst
--- a/doc/source/visualizing/unstructured_mesh_rendering.rst
+++ b/doc/source/visualizing/unstructured_mesh_rendering.rst
@@ -14,7 +14,7 @@
.. code-block:: bash
- conda install -c http://use.yt/with_conda/ yt
+ conda install -c http://use.yt/with_conda/ yt=3.3_dev
If you want to install from source, you can use the ``get_yt.sh`` script.
Be sure to set the INST_YT_SOURCE and INST_UNSTRUCTURED flags to 1 at the
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 setup.py
--- a/setup.py
+++ b/setup.py
@@ -1,27 +1,20 @@
import os
-import os.path
import glob
import sys
-import time
-import subprocess
-import shutil
-import glob
+from sys import platform as _platform
+from setuptools import setup, find_packages
+from setuptools.extension import Extension
+from setuptools.command.build_ext import build_ext as _build_ext
+from setuptools.command.build_py import build_py as _build_py
+from setupext import \
+ check_for_openmp, check_for_pyembree, read_embree_location, \
+ get_mercurial_changeset_id
if sys.version_info < (2, 7):
print("yt currently requires Python version 2.7")
print("certain features may fail unexpectedly and silently with older versions.")
sys.exit(1)
-import setuptools
-from distutils.command.build_py import build_py
-from numpy.distutils.misc_util import appendpath
-from numpy.distutils.command import install_data as np_install_data
-from numpy.distutils import log
-from distutils import version
-
-from distutils.core import Command
-from distutils.spawn import find_executable
-
MAPSERVER_FILES = []
MAPSERVER_DIRS = [
"",
@@ -36,109 +29,277 @@
files += glob.glob("%s/*.%s" % (dir_name, ext))
MAPSERVER_FILES.append((dir_name, files))
-# Verify that we have Cython installed
-REQ_CYTHON = '0.22'
-try:
- import Cython
- needs_cython = \
- version.LooseVersion(Cython.__version__) < version.LooseVersion(REQ_CYTHON)
-except ImportError as e:
- needs_cython = True
-
-if needs_cython:
- print("Cython is a build-time requirement for the source tree of yt.")
- print("Please either install yt from a provided, release tarball,")
- print("or install Cython (version %s or higher)." % REQ_CYTHON)
- print("You may be able to accomplish this by typing:")
- print(" pip install -U Cython")
- sys.exit(1)
-
-######
-# This next bit comes from Matthew Brett, to get Cython working with NumPy
-# distutils. I added a bit to get C++ Cython working.
-from os.path import join as pjoin, dirname
-from distutils.dep_util import newer_group
-from distutils.errors import DistutilsError
-
-
-def generate_a_pyrex_source(self, base, ext_name, source, extension):
- ''' Monkey patch for numpy build_src.build_src method
-
- Uses Cython instead of Pyrex.
-
- Assumes Cython is present
- '''
- if self.inplace:
- target_dir = dirname(base)
- else:
- target_dir = appendpath(self.build_src, dirname(base))
- if extension.language == "c++":
- cplus = True
- file_ext = ".cpp"
- else:
- cplus = False
- file_ext = ".c"
- target_file = pjoin(target_dir, ext_name + file_ext)
- depends = [source] + extension.depends
- if self.force or newer_group(depends, target_file, 'newer'):
- import Cython.Compiler.Main
- log.info("cythonc:> %s" % (target_file))
- self.mkpath(target_dir)
- options = Cython.Compiler.Main.CompilationOptions(
- defaults=Cython.Compiler.Main.default_options,
- include_path=extension.include_dirs,
- cplus=cplus,
- output_file=target_file)
- cython_result = Cython.Compiler.Main.compile(source,
- options=options)
- if cython_result.num_errors != 0:
- raise DistutilsError("%d errors while compiling %r with Cython"
- % (cython_result.num_errors, source))
- return target_file
-
-
-from numpy.distutils.command import build_src
-build_src.build_src.generate_a_pyrex_source = generate_a_pyrex_source
-# End snippet
-######
-
VERSION = "3.3.dev0"
if os.path.exists('MANIFEST'):
os.remove('MANIFEST')
-def get_mercurial_changeset_id(target_dir):
- """adapted from a script by Jason F. Harris, published at
+if check_for_openmp() is True:
+ omp_args = ['-fopenmp']
+else:
+ omp_args = None
- http://jasonfharris.com/blog/2010/05/versioning-your-application-with-the-mercurial-changeset-hash/
- """
- import subprocess
- import re
- get_changeset = subprocess.Popen('hg identify -b -i',
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- shell=True)
+cython_extensions = [
+ Extension("yt.analysis_modules.photon_simulator.utils",
+ ["yt/analysis_modules/photon_simulator/utils.pyx"]),
+ Extension("yt.analysis_modules.ppv_cube.ppv_utils",
+ ["yt/analysis_modules/ppv_cube/ppv_utils.pyx"],
+ libraries=["m"]),
+ Extension("yt.geometry.grid_visitors",
+ ["yt/geometry/grid_visitors.pyx"],
+ include_dirs=["yt/utilities/lib"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/geometry/grid_visitors.pxd"]),
+ Extension("yt.geometry.grid_container",
+ ["yt/geometry/grid_container.pyx"],
+ include_dirs=["yt/utilities/lib/"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/geometry/grid_container.pxd",
+ "yt/geometry/grid_visitors.pxd"]),
+ Extension("yt.geometry.oct_container",
+ ["yt/geometry/oct_container.pyx"],
+ include_dirs=["yt/utilities/lib"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/geometry/oct_container.pxd",
+ "yt/geometry/selection_routines.pxd"]),
+ Extension("yt.geometry.oct_visitors",
+ ["yt/geometry/oct_visitors.pyx"],
+ include_dirs=["yt/utilities/lib/"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/geometry/oct_container.pxd",
+ "yt/geometry/selection_routines.pxd"]),
+ Extension("yt.geometry.particle_oct_container",
+ ["yt/geometry/particle_oct_container.pyx"],
+ include_dirs=["yt/utilities/lib/"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/geometry/oct_container.pxd",
+ "yt/geometry/selection_routines.pxd"]),
+ Extension("yt.geometry.selection_routines",
+ ["yt/geometry/selection_routines.pyx"],
+ include_dirs=["yt/utilities/lib/"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/utilities/lib/grid_traversal.pxd",
+ "yt/geometry/oct_container.pxd",
+ "yt/geometry/oct_visitors.pxd",
+ "yt/geometry/grid_container.pxd",
+ "yt/geometry/grid_visitors.pxd",
+ "yt/geometry/selection_routines.pxd"]),
+ Extension("yt.geometry.particle_deposit",
+ ["yt/geometry/particle_deposit.pyx"],
+ include_dirs=["yt/utilities/lib/"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/geometry/oct_container.pxd",
+ "yt/geometry/selection_routines.pxd",
+ "yt/geometry/particle_deposit.pxd"]),
+ Extension("yt.geometry.particle_smooth",
+ ["yt/geometry/particle_smooth.pyx"],
+ include_dirs=["yt/utilities/lib/"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/geometry/oct_container.pxd",
+ "yt/geometry/selection_routines.pxd",
+ "yt/geometry/particle_deposit.pxd",
+ "yt/geometry/particle_smooth.pxd"]),
+ Extension("yt.geometry.fake_octree",
+ ["yt/geometry/fake_octree.pyx"],
+ include_dirs=["yt/utilities/lib/"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/geometry/oct_container.pxd",
+ "yt/geometry/selection_routines.pxd"]),
+ Extension("yt.utilities.spatial.ckdtree",
+ ["yt/utilities/spatial/ckdtree.pyx"],
+ libraries=["m"]),
+ Extension("yt.utilities.lib.bitarray",
+ ["yt/utilities/lib/bitarray.pyx"],
+ libraries=["m"], depends=["yt/utilities/lib/bitarray.pxd"]),
+ Extension("yt.utilities.lib.contour_finding",
+ ["yt/utilities/lib/contour_finding.pyx"],
+ include_dirs=["yt/utilities/lib/",
+ "yt/geometry/"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/utilities/lib/amr_kdtools.pxd",
+ "yt/utilities/lib/grid_traversal.pxd",
+ "yt/utilities/lib/contour_finding.pxd",
+ "yt/geometry/oct_container.pxd"]),
+ Extension("yt.utilities.lib.geometry_utils",
+ ["yt/utilities/lib/geometry_utils.pyx"],
+ extra_compile_args=omp_args,
+ extra_link_args=omp_args,
+ libraries=["m"], depends=["yt/utilities/lib/fp_utils.pxd"]),
+ Extension("yt.utilities.lib.marching_cubes",
+ ["yt/utilities/lib/marching_cubes.pyx",
+ "yt/utilities/lib/fixed_interpolator.c"],
+ include_dirs=["yt/utilities/lib/"],
+ libraries=["m"],
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/utilities/lib/fixed_interpolator.pxd",
+ "yt/utilities/lib/fixed_interpolator.h",
+ ]),
+ Extension("yt.utilities.lib.pixelization_routines",
+ ["yt/utilities/lib/pixelization_routines.pyx",
+ "yt/utilities/lib/pixelization_constants.c"],
+ include_dirs=["yt/utilities/lib/"],
+ language="c++",
+ libraries=["m"], depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/utilities/lib/pixelization_constants.h",
+ "yt/utilities/lib/element_mappings.pxd"]),
+ Extension("yt.utilities.lib.origami",
+ ["yt/utilities/lib/origami.pyx",
+ "yt/utilities/lib/origami_tags.c"],
+ include_dirs=["yt/utilities/lib/"],
+ depends=["yt/utilities/lib/origami_tags.h"]),
+ Extension("yt.utilities.lib.grid_traversal",
+ ["yt/utilities/lib/grid_traversal.pyx",
+ "yt/utilities/lib/fixed_interpolator.c",
+ "yt/utilities/lib/kdtree.c"],
+ include_dirs=["yt/utilities/lib/"],
+ libraries=["m"],
+ extra_compile_args=omp_args,
+ extra_link_args=omp_args,
+ depends=["yt/utilities/lib/fp_utils.pxd",
+ "yt/utilities/lib/kdtree.h",
+ "yt/utilities/lib/fixed_interpolator.h",
+ "yt/utilities/lib/fixed_interpolator.pxd",
+ "yt/utilities/lib/field_interpolation_tables.pxd"]),
+ Extension("yt.utilities.lib.element_mappings",
+ ["yt/utilities/lib/element_mappings.pyx"],
+ libraries=["m"], depends=["yt/utilities/lib/element_mappings.pxd"]),
+ Extension("yt.utilities.lib.alt_ray_tracers",
+ ["yt/utilities/lib/alt_ray_tracers.pyx"],
+ libraries=["m"]),
+]
- if (get_changeset.stderr.read() != ""):
- print("Error in obtaining current changeset of the Mercurial repository")
- changeset = None
+lib_exts = [
+ "particle_mesh_operations", "depth_first_octree", "fortran_reader",
+ "interpolators", "misc_utilities", "basic_octree", "image_utilities",
+ "points_in_volume", "quad_tree", "ray_integrators", "mesh_utilities",
+ "amr_kdtools"
+]
+for ext_name in lib_exts:
+ cython_extensions.append(
+ Extension("yt.utilities.lib.{}".format(ext_name),
+ ["yt/utilities/lib/{}.pyx".format(ext_name)],
+ libraries=["m"], depends=["yt/utilities/lib/fp_utils.pxd"]))
- changeset = get_changeset.stdout.read().strip().decode("UTF-8")
- if (not re.search("^[0-9a-f]{12}", changeset)):
- print("Current changeset of the Mercurial repository is malformed")
- changeset = None
+lib_exts = ["write_array", "ragged_arrays", "line_integral_convolution"]
+for ext_name in lib_exts:
+ cython_extensions.append(
+ Extension("yt.utilities.lib.{}".format(ext_name),
+ ["yt/utilities/lib/{}.pyx".format(ext_name)]))
- return changeset
+extensions = [
+ Extension("yt.analysis_modules.halo_finding.fof.EnzoFOF",
+ ["yt/analysis_modules/halo_finding/fof/EnzoFOF.c",
+ "yt/analysis_modules/halo_finding/fof/kd.c"],
+ libraries=["m"]),
+ Extension("yt.analysis_modules.halo_finding.hop.EnzoHop",
+ glob.glob("yt/analysis_modules/halo_finding/hop/*.c")),
+ Extension("yt.frontends.artio._artio_caller",
+ ["yt/frontends/artio/_artio_caller.pyx"] +
+ glob.glob("yt/frontends/artio/artio_headers/*.c"),
+ include_dirs=["yt/frontends/artio/artio_headers/",
+ "yt/geometry/",
+ "yt/utilities/lib/"],
+ depends=glob.glob("yt/frontends/artio/artio_headers/*.c") +
+ ["yt/utilities/lib/fp_utils.pxd",
+ "yt/geometry/oct_container.pxd",
+ "yt/geometry/selection_routines.pxd",
+ "yt/geometry/particle_deposit.pxd"]),
+ Extension("yt.utilities.spatial._distance_wrap",
+ glob.glob("yt/utilities/spatial/src/*.c")),
+ Extension("yt.visualization._MPL",
+ ["yt/visualization/_MPL.c"],
+ libraries=["m"]),
+ Extension("yt.utilities.data_point_utilities",
+ ["yt/utilities/data_point_utilities.c"],
+ libraries=["m"]),
+]
+# EMBREE
+if check_for_pyembree() is not None:
+ embree_extensions = [
+ Extension("yt.utilities.lib.mesh_construction",
+ ["yt/utilities/lib/mesh_construction.pyx"],
+ depends=["yt/utilities/lib/mesh_construction.pxd"]),
+ Extension("yt.utilities.lib.mesh_traversal",
+ ["yt/utilities/lib/mesh_traversal.pyx"],
+ depends=["yt/utilities/lib/mesh_traversal.pxd",
+ "yt/utilities/lib/grid_traversal.pxd"]),
+ Extension("yt.utilities.lib.mesh_samplers",
+ ["yt/utilities/lib/mesh_samplers.pyx"],
+ depends=["yt/utilities/lib/mesh_samplers.pxd",
+ "yt/utilities/lib/element_mappings.pxd",
+ "yt/utilities/lib/mesh_construction.pxd"]),
+ Extension("yt.utilities.lib.mesh_intersection",
+ ["yt/utilities/lib/mesh_intersection.pyx"],
+ depends=["yt/utilities/lib/mesh_intersection.pxd",
+ "yt/utilities/lib/mesh_construction.pxd"]),
+ ]
-class my_build_src(build_src.build_src):
- def run(self):
- build_src.build_src.run(self)
+ embree_prefix = os.path.abspath(read_embree_location())
+ if _platform == "darwin":
+ embree_lib_name = "embree.2"
+ else:
+ embree_lib_name = "embree"
+ for ext in embree_extensions:
+ ext.include_dirs.append(os.path.join(embree_prefix, 'include'))
+ ext.library_dirs.append(os.path.join(embree_prefix, 'lib'))
+ ext.language = "c++"
+ ext.libraries += ["m", embree_lib_name]
-class my_build_py(build_py):
+ cython_extensions += embree_extensions
+
+# ROCKSTAR
+if os.path.exists("rockstar.cfg"):
+ try:
+ rd = open("rockstar.cfg").read().strip()
+ except IOError:
+ print("Reading Rockstar location from rockstar.cfg failed.")
+ print("Please place the base directory of your")
+ print("Rockstar install in rockstar.cfg and restart.")
+ print("(ex: \"echo '/path/to/Rockstar-0.99' > rockstar.cfg\" )")
+ sys.exit(1)
+
+ rockstar_extdir = "yt/analysis_modules/halo_finding/rockstar"
+ rockstar_extensions = [
+ Extension("yt.analysis_modules.halo_finding.rockstar.rockstar_interface",
+ sources=[os.path.join(rockstar_extdir, "rockstar_interface.pyx")]),
+ Extension("yt.analysis_modules.halo_finding.rockstar.rockstar_groupies",
+ sources=[os.path.join(rockstar_extdir, "rockstar_groupies.pyx")])
+ ]
+ for ext in rockstar_extensions:
+ ext.library_dirs.append(rd)
+ ext.libraries.append("rockstar")
+ ext.define_macros.append(("THREADSAFE", ""))
+ ext.include_dirs += [rd,
+ os.path.join(rd, "io"), os.path.join(rd, "util")]
+ extensions += rockstar_extensions
+
+if os.environ.get("GPERFTOOLS", "no").upper() != "NO":
+ gpd = os.environ["GPERFTOOLS"]
+ idir = os.path.join(gpd, "include")
+ ldir = os.path.join(gpd, "lib")
+ print(("INCLUDE AND LIB DIRS", idir, ldir))
+ cython_extensions.append(
+ Extension("yt.utilities.lib.perftools_wrap",
+ ["yt/utilities/lib/perftools_wrap.pyx"],
+ libraries=["profiler"],
+ library_dirs=[ldir],
+ include_dirs=[idir]))
+
+class build_py(_build_py):
def run(self):
# honor the --dry-run flag
if not self.dry_run:
@@ -148,68 +309,74 @@
self.mkpath(target_dir)
with open(os.path.join(target_dir, '__hg_version__.py'), 'w') as fobj:
fobj.write("hg_version = '%s'\n" % changeset)
+ _build_py.run(self)
- build_py.run(self)
+class build_ext(_build_ext):
+ # subclass setuptools extension builder to avoid importing numpy
+ # at top level in setup.py. See http://stackoverflow.com/a/21621689/1382869
+ def finalize_options(self):
+ _build_ext.finalize_options(self)
+ # Prevent numpy from thinking it is still in its setup process
+ # see http://stackoverflow.com/a/21621493/1382869
+ __builtins__.__NUMPY_SETUP__ = False
+ import numpy
+ self.include_dirs.append(numpy.get_include())
+setup(
+ name="yt",
+ version=VERSION,
+ description="An analysis and visualization toolkit for Astrophysical "
+ + "simulations, focusing on Adaptive Mesh Refinement data "
+ "from Enzo, Orion, FLASH, and others.",
+ classifiers=["Development Status :: 5 - Production/Stable",
+ "Environment :: Console",
+ "Intended Audience :: Science/Research",
+ "License :: OSI Approved :: BSD License",
+ "Operating System :: MacOS :: MacOS X",
+ "Operating System :: POSIX :: AIX",
+ "Operating System :: POSIX :: Linux",
+ "Programming Language :: C",
+ "Programming Language :: Python",
+ "Topic :: Scientific/Engineering :: Astronomy",
+ "Topic :: Scientific/Engineering :: Physics",
+ "Topic :: Scientific/Engineering :: Visualization"],
+ keywords='astronomy astrophysics visualization ' +
+ 'amr adaptivemeshrefinement',
+ entry_points={'console_scripts': [
+ 'yt = yt.utilities.command_line:run_main',
+ ],
+ 'nose.plugins.0.10': [
+ 'answer-testing = yt.utilities.answer_testing.framework:AnswerTesting'
+ ]
+ },
+ packages=find_packages(),
+ setup_requires=[
+ 'numpy',
+ 'cython>=0.22'
+ ],
+ install_requires=[
+ # 'matplotlib', # messes up nosetests will be fixed in future PRs
+ 'sympy',
+ 'numpy',
+ 'IPython',
+ ],
+ cmdclass={'build_ext': build_ext, 'build_py': build_py},
+ author="The yt project",
+ author_email="yt-dev at lists.spacepope.org",
+ url="http://yt-project.org/",
+ license="BSD",
+ zip_safe=False,
+ scripts=["scripts/iyt"],
+ data_files=MAPSERVER_FILES,
+ ext_modules=cython_extensions + extensions
+)
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
-
- config = Configuration(None, parent_package, top_path)
- config.set_options(ignore_setup_xxx_py=True,
- assume_default_configuration=True,
- delegate_options_to_subpackages=True,
- quiet=True)
-
- config.make_config_py()
- # config.make_svn_version_py()
- config.add_subpackage('yt', 'yt')
- config.add_scripts("scripts/iyt")
-
- return config
-
-
-def setup_package():
-
- from numpy.distutils.core import setup
-
- setup(
- name="yt",
- version=VERSION,
- description="An analysis and visualization toolkit for Astrophysical "
- + "simulations, focusing on Adaptive Mesh Refinement data "
- "from Enzo, Orion, FLASH, and others.",
- classifiers=["Development Status :: 5 - Production/Stable",
- "Environment :: Console",
- "Intended Audience :: Science/Research",
- "License :: OSI Approved :: BSD License",
- "Operating System :: MacOS :: MacOS X",
- "Operating System :: POSIX :: AIX",
- "Operating System :: POSIX :: Linux",
- "Programming Language :: C",
- "Programming Language :: Python",
- "Topic :: Scientific/Engineering :: Astronomy",
- "Topic :: Scientific/Engineering :: Physics",
- "Topic :: Scientific/Engineering :: Visualization"],
- keywords='astronomy astrophysics visualization ' +
- 'amr adaptivemeshrefinement',
- entry_points={'console_scripts': [
- 'yt = yt.utilities.command_line:run_main',
- ],
- 'nose.plugins.0.10': [
- 'answer-testing = yt.utilities.answer_testing.framework:AnswerTesting'
- ]
- },
- author="The yt project",
- author_email="yt-dev at lists.spacepope.org",
- url="http://yt-project.org/",
- license="BSD",
- configuration=configuration,
- zip_safe=False,
- data_files=MAPSERVER_FILES,
- cmdclass={'build_py': my_build_py, 'build_src': my_build_src},
- )
- return
-
-if __name__ == '__main__':
- setup_package()
+# This info about 'ckdtree' should be incorporated somehow...
+# setup(maintainer="SciPy Developers",
+# author="Anne Archibald",
+# maintainer_email="scipy-dev at scipy.org",
+# description="Spatial algorithms and data structures",
+# url="http://www.scipy.org",
+# license="SciPy License (BSD Style)",
+# **configuration(top_path='').todict()
+# )
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 setupext.py
--- /dev/null
+++ b/setupext.py
@@ -0,0 +1,100 @@
+import os
+from pkg_resources import resource_filename
+import shutil
+import subprocess
+import sys
+import tempfile
+
+def check_for_openmp():
+ """Returns True if local setup supports OpenMP, False otherwise"""
+
+ # See https://bugs.python.org/issue25150
+ if sys.version_info[:3] == (3, 5, 0) or os.name == 'nt':
+ return False
+
+ # Create a temporary directory
+ tmpdir = tempfile.mkdtemp()
+ curdir = os.getcwd()
+ exit_code = 1
+
+ try:
+ os.chdir(tmpdir)
+
+ # Get compiler invocation
+ compiler = os.getenv('CC', 'cc')
+ compiler = compiler.split(' ')
+
+ # Attempt to compile a test script.
+ # See http://openmp.org/wp/openmp-compilers/
+ filename = r'test.c'
+ file = open(filename, 'wt', 1)
+ file.write(
+ "#include <omp.h>\n"
+ "#include <stdio.h>\n"
+ "int main() {\n"
+ "#pragma omp parallel\n"
+ "printf(\"Hello from thread %d, nthreads %d\\n\", omp_get_thread_num(), omp_get_num_threads());\n"
+ "}"
+ )
+ file.flush()
+ with open(os.devnull, 'w') as fnull:
+ exit_code = subprocess.call(compiler + ['-fopenmp', filename],
+ stdout=fnull, stderr=fnull)
+
+ # Clean up
+ file.close()
+ except OSError:
+ return False
+ finally:
+ os.chdir(curdir)
+ shutil.rmtree(tmpdir)
+
+ return exit_code == 0
+
+
+def check_for_pyembree():
+ try:
+ fn = resource_filename("pyembree", "rtcore.pxd")
+ except ImportError:
+ return None
+ return os.path.dirname(fn)
+
+
+def read_embree_location():
+ '''
+
+ Attempts to locate the embree installation. First, we check for an
+ EMBREE_DIR environment variable. If one is not defined, we look for
+ an embree.cfg file in the root yt source directory. Finally, if that
+ is not present, we default to /usr/local. If embree is installed in a
+ non-standard location and none of the above are set, the compile will
+ not succeed. This only gets called if check_for_pyembree() returns
+ something other than None.
+
+ '''
+
+ rd = os.environ.get('EMBREE_DIR')
+ if rd is not None:
+ return rd
+ print("EMBREE_DIR not set. Attempting to read embree.cfg")
+ try:
+ rd = open("embree.cfg").read().strip()
+ return rd
+ except IOError:
+ print("Reading Embree location from embree.cfg failed.")
+ print("If compilation fails, please place the base directory")
+ print("of your Embree install in embree.cfg and restart.")
+ return '/usr/local'
+
+
+def get_mercurial_changeset_id(target_dir):
+ '''
+ Returns changeset and branch using hglib
+ '''
+ try:
+ import hglib
+ except ImportError:
+ return None
+ with hglib.open(target_dir) as repo:
+ changeset = repo.identify(id=True, branch=True).strip().decode('utf8')
+ return changeset
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/cosmological_observation/light_cone/setup.py
--- a/yt/analysis_modules/cosmological_observation/light_cone/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('light_cone', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/cosmological_observation/light_ray/setup.py
--- a/yt/analysis_modules/cosmological_observation/light_ray/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('light_ray', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/cosmological_observation/setup.py
--- a/yt/analysis_modules/cosmological_observation/setup.py
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('cosmological_observation', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- config.add_subpackage("light_cone")
- config.add_subpackage("light_ray")
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/halo_finding/fof/setup.py
--- a/yt/analysis_modules/halo_finding/fof/setup.py
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('fof', parent_package, top_path)
- config.add_extension("EnzoFOF", sources=["EnzoFOF.c",
- "kd.c"],
- libraries=["m"])
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/halo_finding/hop/setup.py
--- a/yt/analysis_modules/halo_finding/hop/setup.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('hop', parent_package, top_path)
- config.add_extension("EnzoHop", sources=["EnzoHop.c",
- "hop_hop.c",
- "hop_kd.c",
- "hop_regroup.c",
- "hop_slice.c",
- "hop_smooth.c"])
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/halo_finding/rockstar/setup.py
--- a/yt/analysis_modules/halo_finding/rockstar/setup.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env python
-from __future__ import print_function
-import os.path
-import sys
-
-def configuration(parent_package='',top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('rockstar',parent_package,top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- try:
- rd = open("rockstar.cfg").read().strip()
- except IOError:
- print("Reading Rockstar location from rockstar.cfg failed.")
- print("Please place the base directory of your")
- print("Rockstar install in rockstar.cfg and restart.")
- print("(ex: \"echo '/path/to/Rockstar-0.99' > rockstar.cfg\" )")
- sys.exit(1)
- config.add_extension("rockstar_interface",
- "yt/analysis_modules/halo_finding/rockstar/rockstar_interface.pyx",
- library_dirs=[rd],
- libraries=["rockstar"],
- #define_macros = [("THREADSAFE", "__thread")],
- define_macros = [("THREADSAFE", "")],
- include_dirs=[rd,
- os.path.join(rd, "io"),
- os.path.join(rd, "util")])
- config.add_extension("rockstar_groupies",
- "yt/analysis_modules/halo_finding/rockstar/rockstar_groupies.pyx",
- library_dirs=[rd],
- libraries=["rockstar"],
- #define_macros = [("THREADSAFE", "__thread")],
- define_macros = [("THREADSAFE", "")],
- include_dirs=[rd,
- os.path.join(rd, "io"),
- os.path.join(rd, "util")])
- return config
-
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/halo_finding/setup.py
--- a/yt/analysis_modules/halo_finding/setup.py
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env python
-import os.path
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('halo_finding', parent_package, top_path)
- config.add_subpackage("fof")
- config.add_subpackage("hop")
- if os.path.exists("rockstar.cfg"):
- config.add_subpackage("rockstar")
- config.make_config_py() # installs __config__.py
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/halo_mass_function/setup.py
--- a/yt/analysis_modules/halo_mass_function/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('halo_mass_function', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/level_sets/setup.py
--- a/yt/analysis_modules/level_sets/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('level_sets', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/particle_trajectories/setup.py
--- a/yt/analysis_modules/particle_trajectories/setup.py
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('particle_trajectories', parent_package, top_path)
- #config.add_subpackage("tests")
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/photon_simulator/setup.py
--- a/yt/analysis_modules/photon_simulator/setup.py
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('photon_simulator', parent_package, top_path)
- config.add_extension("utils",
- ["yt/analysis_modules/photon_simulator/utils.pyx"])
- config.add_subpackage("tests")
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/ppv_cube/setup.py
--- a/yt/analysis_modules/ppv_cube/setup.py
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('ppv_cube', parent_package, top_path)
- config.add_extension("ppv_utils",
- ["yt/analysis_modules/ppv_cube/ppv_utils.pyx"],
- libraries=["m"])
- config.add_subpackage("tests")
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/setup.py
--- a/yt/analysis_modules/setup.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('analysis_modules', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- config.add_subpackage("absorption_spectrum")
- config.add_subpackage("cosmological_observation")
- config.add_subpackage("halo_analysis")
- config.add_subpackage("halo_finding")
- config.add_subpackage("halo_mass_function")
- config.add_subpackage("level_sets")
- config.add_subpackage("particle_trajectories")
- config.add_subpackage("photon_simulator")
- config.add_subpackage("spectral_integrator")
- config.add_subpackage("star_analysis")
- config.add_subpackage("two_point_functions")
- config.add_subpackage("radmc3d_export")
- config.add_subpackage("sunrise_export")
- config.add_subpackage("sunyaev_zeldovich")
- config.add_subpackage("particle_trajectories")
- config.add_subpackage("photon_simulator")
- config.add_subpackage("ppv_cube")
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/spectral_integrator/setup.py
--- a/yt/analysis_modules/spectral_integrator/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('spectral_integrator', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/star_analysis/setup.py
--- a/yt/analysis_modules/star_analysis/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('star_analysis', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/sunyaev_zeldovich/setup.py
--- a/yt/analysis_modules/sunyaev_zeldovich/setup.py
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('sunyaev_zeldovich', parent_package, top_path)
- config.add_subpackage("tests")
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/analysis_modules/two_point_functions/setup.py
--- a/yt/analysis_modules/two_point_functions/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('two_point_functions', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/config.py
--- a/yt/config.py
+++ b/yt/config.py
@@ -39,7 +39,7 @@
storeparameterfiles = 'False',
parameterfilestore = 'parameter_files.csv',
maximumstoreddatasets = '500',
- skip_dataset_cache = 'False',
+ skip_dataset_cache = 'True',
loadfieldplugins = 'True',
pluginfilename = 'my_plugins.py',
parallel_traceback = 'False',
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/data_objects/octree_subset.py
--- a/yt/data_objects/octree_subset.py
+++ b/yt/data_objects/octree_subset.py
@@ -92,7 +92,7 @@
def _reshape_vals(self, arr):
nz = self.nz
if len(arr.shape) <= 2:
- n_oct = arr.shape[0] / (nz**3.0)
+ n_oct = arr.shape[0] / (nz**3)
else:
n_oct = max(arr.shape)
if arr.size == nz*nz*nz*n_oct:
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/data_objects/setup.py
--- a/yt/data_objects/setup.py
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('data_objects', parent_package, top_path)
- config.add_subpackage("tests")
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/extern/setup.py
--- a/yt/extern/setup.py
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env python
-#----------------------------------------------------------------------------
-# Copyright (c) 2013, yt Development Team.
-#
-# Distributed under the terms of the Modified BSD License.
-#
-# The full license is in the file COPYING.txt, distributed with this software.
-#-----------------------------------------------------------------------------
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('extern', parent_package, top_path)
- config.add_subpackage("tqdm")
- config.make_config_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/fields/setup.py
--- a/yt/fields/setup.py
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('fields', parent_package, top_path)
- config.add_subpackage("tests")
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/_skeleton/setup.py
--- a/yt/frontends/_skeleton/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('skeleton', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/art/setup.py
--- a/yt/frontends/art/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='',top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('art',parent_package,top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/artio/setup.py
--- a/yt/frontends/artio/setup.py
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-import glob
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- artio_sources = glob.glob("yt/frontends/artio/artio_headers/*.c")
- config = Configuration('artio', parent_package, top_path)
- config.add_extension("_artio_caller",
- ["yt/frontends/artio/_artio_caller.pyx"] +
- artio_sources,
- include_dirs=["yt/frontends/artio/artio_headers/",
- "yt/geometry/",
- "yt/utilities/lib/"],
- depends=artio_sources +
- ["yt/utilities/lib/fp_utils.pxd",
- "yt/geometry/oct_container.pxd",
- "yt/geometry/selection_routines.pxd",
- "yt/geometry/particle_deposit.pxd"])
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/athena/setup.py
--- a/yt/frontends/athena/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('athena', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/boxlib/setup.py
--- a/yt/frontends/boxlib/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('boxlib', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/chombo/setup.py
--- a/yt/frontends/chombo/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('chombo', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/eagle/setup.py
--- a/yt/frontends/eagle/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('eagle', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/enzo/setup.py
--- a/yt/frontends/enzo/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('enzo', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/exodus_ii/setup.py
--- a/yt/frontends/exodus_ii/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('exodus_ii', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/fits/setup.py
--- a/yt/frontends/fits/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('fits', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/flash/setup.py
--- a/yt/frontends/flash/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('flash', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/gadget/setup.py
--- a/yt/frontends/gadget/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('gadget', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/gadget_fof/setup.py
--- a/yt/frontends/gadget_fof/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('gadget_fof', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/gdf/setup.py
--- a/yt/frontends/gdf/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('gdf', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/halo_catalog/setup.py
--- a/yt/frontends/halo_catalog/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('halo_catalog', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/http_stream/setup.py
--- a/yt/frontends/http_stream/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('http_stream', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/moab/setup.py
--- a/yt/frontends/moab/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('moab', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/owls/setup.py
--- a/yt/frontends/owls/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('owls', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/owls_subfind/setup.py
--- a/yt/frontends/owls_subfind/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('owls_subfind', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/ramses/setup.py
--- a/yt/frontends/ramses/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('ramses', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/rockstar/setup.py
--- a/yt/frontends/rockstar/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('rockstar', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/sdf/setup.py
--- a/yt/frontends/sdf/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('sdf', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/setup.py
--- a/yt/frontends/setup.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('frontends', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- config.add_subpackage("art")
- config.add_subpackage("artio")
- config.add_subpackage("athena")
- config.add_subpackage("boxlib")
- config.add_subpackage("chombo")
- config.add_subpackage("exodus_ii")
- config.add_subpackage("eagle")
- config.add_subpackage("enzo")
- config.add_subpackage("fits")
- config.add_subpackage("flash")
- config.add_subpackage("gadget")
- config.add_subpackage("gadget_fof")
- config.add_subpackage("gdf")
- config.add_subpackage("halo_catalog")
- config.add_subpackage("http_stream")
- config.add_subpackage("moab")
- config.add_subpackage("owls")
- config.add_subpackage("owls_subfind")
- config.add_subpackage("ramses")
- config.add_subpackage("rockstar")
- config.add_subpackage("sdf")
- config.add_subpackage("sph")
- config.add_subpackage("stream")
- config.add_subpackage("tipsy")
- config.add_subpackage("ytdata")
- config.add_subpackage("art/tests")
- config.add_subpackage("artio/tests")
- config.add_subpackage("athena/tests")
- config.add_subpackage("boxlib/tests")
- config.add_subpackage("chombo/tests")
- config.add_subpackage("eagle/tests")
- config.add_subpackage("enzo/tests")
- config.add_subpackage("exodus_ii/tests")
- config.add_subpackage("fits/tests")
- config.add_subpackage("flash/tests")
- config.add_subpackage("gadget/tests")
- config.add_subpackage("gadget_fof/tests")
- config.add_subpackage("moab/tests")
- config.add_subpackage("owls/tests")
- config.add_subpackage("owls_subfind/tests")
- config.add_subpackage("ramses/tests")
- config.add_subpackage("rockstar/tests")
- config.add_subpackage("stream/tests")
- config.add_subpackage("stream/sample_data")
- config.add_subpackage("tipsy/tests")
- config.add_subpackage("ytdata/tests")
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/sph/setup.py
--- a/yt/frontends/sph/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('sph', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/stream/setup.py
--- a/yt/frontends/stream/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('stream', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/tipsy/setup.py
--- a/yt/frontends/tipsy/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('tipsy', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/frontends/ytdata/setup.py
--- a/yt/frontends/ytdata/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('ytdata', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/geometry/oct_container.pxd
--- a/yt/geometry/oct_container.pxd
+++ b/yt/geometry/oct_container.pxd
@@ -16,7 +16,7 @@
cimport cython
cimport numpy as np
-from fp_utils cimport *
+from yt.utilities.lib.fp_utils cimport *
cimport oct_visitors
cimport selection_routines
from .oct_visitors cimport OctVisitor, Oct, cind
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/geometry/oct_visitors.pyx
--- a/yt/geometry/oct_visitors.pyx
+++ b/yt/geometry/oct_visitors.pyx
@@ -17,7 +17,7 @@
cimport cython
cimport numpy
import numpy
-from fp_utils cimport *
+from yt.utilities.lib.fp_utils cimport *
from libc.stdlib cimport malloc, free
from yt.geometry.oct_container cimport OctreeContainer
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/geometry/particle_deposit.pxd
--- a/yt/geometry/particle_deposit.pxd
+++ b/yt/geometry/particle_deposit.pxd
@@ -20,7 +20,7 @@
cimport cython
from libc.math cimport sqrt
-from fp_utils cimport *
+from yt.utilities.lib.fp_utils cimport *
from .oct_container cimport Oct, OctAllocationContainer, OctreeContainer
cdef extern from "platform_dep.h":
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/geometry/particle_deposit.pyx
--- a/yt/geometry/particle_deposit.pyx
+++ b/yt/geometry/particle_deposit.pyx
@@ -21,6 +21,7 @@
from libc.math cimport sqrt
from cpython cimport PyObject
from fp_utils cimport *
+
from oct_container cimport Oct, OctAllocationContainer, \
OctreeContainer, OctInfo
from cpython.array cimport array, clone
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/geometry/particle_oct_container.pyx
--- a/yt/geometry/particle_oct_container.pyx
+++ b/yt/geometry/particle_oct_container.pyx
@@ -18,7 +18,7 @@
from oct_visitors cimport cind
from libc.stdlib cimport malloc, free, qsort
from libc.math cimport floor
-from fp_utils cimport *
+from yt.utilities.lib.fp_utils cimport *
cimport numpy as np
import numpy as np
from selection_routines cimport SelectorObject
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/geometry/particle_smooth.pxd
--- a/yt/geometry/particle_smooth.pxd
+++ b/yt/geometry/particle_smooth.pxd
@@ -20,7 +20,7 @@
cimport cython
from libc.math cimport sqrt
-from fp_utils cimport *
+from yt.utilities.lib.fp_utils cimport *
from oct_container cimport Oct, OctAllocationContainer, OctreeContainer
from .particle_deposit cimport kernel_func, get_kernel_func, gind
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/geometry/particle_smooth.pyx
--- a/yt/geometry/particle_smooth.pyx
+++ b/yt/geometry/particle_smooth.pyx
@@ -21,7 +21,6 @@
cimport cython
from libc.math cimport sqrt, fabs, sin, cos
-from fp_utils cimport *
from oct_container cimport Oct, OctAllocationContainer, \
OctreeContainer, OctInfo
@@ -439,7 +438,7 @@
if layer_ind == initial_layer:
neighbors
break
-
+
for j in range(total_neighbors):
# Particle octree neighbor indices
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/geometry/selection_routines.pyx
--- a/yt/geometry/selection_routines.pyx
+++ b/yt/geometry/selection_routines.pyx
@@ -18,7 +18,7 @@
cimport numpy as np
cimport cython
from libc.stdlib cimport malloc, free
-from fp_utils cimport fclip, iclip, fmax, fmin
+from yt.utilities.lib.fp_utils cimport fclip, iclip, fmax, fmin
from .oct_container cimport OctreeContainer, OctAllocationContainer, Oct
cimport oct_visitors
from .oct_visitors cimport cind
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/geometry/setup.py
--- a/yt/geometry/setup.py
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='',top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('geometry',parent_package,top_path)
- config.add_subpackage('coordinates')
- config.add_extension("grid_visitors",
- ["yt/geometry/grid_visitors.pyx"],
- include_dirs=["yt/utilities/lib/"],
- libraries=["m"],
- depends=["yt/utilities/lib/fp_utils.pxd",
- "yt/geometry/grid_visitors.pxd"])
- config.add_extension("grid_container",
- ["yt/geometry/grid_container.pyx"],
- include_dirs=["yt/utilities/lib/"],
- libraries=["m"],
- depends=["yt/utilities/lib/fp_utils.pxd",
- "yt/geometry/grid_container.pxd",
- "yt/geometry/grid_visitors.pxd"])
- config.add_extension("oct_container",
- ["yt/geometry/oct_container.pyx"],
- include_dirs=["yt/utilities/lib/"],
- libraries=["m"],
- depends=["yt/utilities/lib/fp_utils.pxd",
- "yt/geometry/oct_container.pxd",
- "yt/geometry/selection_routines.pxd"])
- config.add_extension("oct_visitors",
- ["yt/geometry/oct_visitors.pyx"],
- include_dirs=["yt/utilities/lib/"],
- libraries=["m"],
- depends=["yt/utilities/lib/fp_utils.pxd",
- "yt/geometry/oct_container.pxd",
- "yt/geometry/selection_routines.pxd"])
- config.add_extension("particle_oct_container",
- ["yt/geometry/particle_oct_container.pyx"],
- include_dirs=["yt/utilities/lib/"],
- libraries=["m"],
- depends=["yt/utilities/lib/fp_utils.pxd",
- "yt/geometry/oct_container.pxd",
- "yt/geometry/selection_routines.pxd"])
- config.add_extension("selection_routines",
- ["yt/geometry/selection_routines.pyx"],
- include_dirs=["yt/utilities/lib/"],
- libraries=["m"],
- depends=["yt/utilities/lib/fp_utils.pxd",
- "yt/utilities/lib/grid_traversal.pxd",
- "yt/geometry/oct_container.pxd",
- "yt/geometry/oct_visitors.pxd",
- "yt/geometry/grid_container.pxd",
- "yt/geometry/grid_visitors.pxd",
- "yt/geometry/selection_routines.pxd"])
- config.add_extension("particle_deposit",
- ["yt/geometry/particle_deposit.pyx"],
- include_dirs=["yt/utilities/lib/"],
- libraries=["m"],
- depends=["yt/utilities/lib/fp_utils.pxd",
- "yt/geometry/oct_container.pxd",
- "yt/geometry/selection_routines.pxd",
- "yt/geometry/particle_deposit.pxd"])
- config.add_extension("particle_smooth",
- ["yt/geometry/particle_smooth.pyx"],
- include_dirs=["yt/utilities/lib/"],
- libraries=["m"],
- depends=["yt/utilities/lib/fp_utils.pxd",
- "yt/geometry/oct_container.pxd",
- "yt/geometry/selection_routines.pxd",
- "yt/geometry/particle_deposit.pxd",
- "yt/geometry/particle_smooth.pxd"])
- config.add_extension("fake_octree",
- ["yt/geometry/fake_octree.pyx"],
- include_dirs=["yt/utilities/lib/"],
- libraries=["m"],
- depends=["yt/utilities/lib/fp_utils.pxd",
- "yt/geometry/oct_container.pxd",
- "yt/geometry/selection_routines.pxd"])
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/setup.py
--- a/yt/setup.py
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('yt', parent_package, top_path)
- config.add_subpackage('analysis_modules')
- config.add_subpackage('data_objects')
- config.add_subpackage('fields')
- config.add_subpackage('extern')
- config.add_subpackage('frontends')
- config.add_subpackage('geometry')
- config.add_subpackage('units')
- config.add_subpackage('utilities')
- config.add_subpackage('tests')
- config.add_subpackage('visualization')
- config.make_config_py()
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/testing.py
--- a/yt/testing.py
+++ b/yt/testing.py
@@ -262,7 +262,7 @@
data = {}
for field, offset, u in zip(fields, offsets, units):
if "position" in field:
- v = np.random.normal(npart, 0.5, 0.25)
+ v = np.random.normal(loc=0.5, scale=0.25, size=npart)
np.clip(v, 0.0, 1.0, v)
v = (np.random.random(npart) - offset)
data[field] = (v, u)
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/units/setup.py
--- a/yt/units/setup.py
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('units', parent_package, top_path)
- config.add_subpackage("tests")
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/answer_testing/setup.py
--- a/yt/utilities/answer_testing/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('answer_testing', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/flagging_methods.py
--- a/yt/utilities/flagging_methods.py
+++ b/yt/utilities/flagging_methods.py
@@ -91,7 +91,7 @@
self.sigs = []
for dim in range(3):
d1 = (dim + 1) % 3
- d2 = (dim == 0)
+ d2 = int(dim == 0)
self.sigs.append(self.flagged.sum(axis=d1).sum(axis=d2))
@property
@@ -118,7 +118,7 @@
def find_by_zero_signature(self, dim):
sig = self.sigs[dim]
- grid_ends = np.zeros((sig.size, 2))
+ grid_ends = np.zeros((sig.size, 2), dtype='int64')
ng = 0
i = 0
while i < sig.size:
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/grid_data_format/conversion/setup.py
--- a/yt/utilities/grid_data_format/conversion/setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('conversion', parent_package, top_path)
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/grid_data_format/setup.py
--- a/yt/utilities/grid_data_format/setup.py
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env python
-
-
-def configuration(parent_package='', top_path=None):
- from numpy.distutils.misc_util import Configuration
- config = Configuration('grid_data_format', parent_package, top_path)
- config.add_subpackage("conversion")
- config.add_subpackage("tests")
- config.make_config_py() # installs __config__.py
- #config.make_svn_version_py()
- return config
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/basic_octree.pyx
--- a/yt/utilities/lib/basic_octree.pyx
+++ b/yt/utilities/lib/basic_octree.pyx
@@ -20,7 +20,7 @@
cimport numpy as cnp
cimport cython
-from fp_utils cimport imax, fmax, imin, fmin, iclip, fclip
+from yt.utilities.lib.fp_utils cimport imax, fmax, imin, fmin, iclip, fclip
from libc.stdlib cimport malloc, free, abs
import sys, time
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/field_interpolation_tables.pxd
--- a/yt/utilities/lib/field_interpolation_tables.pxd
+++ b/yt/utilities/lib/field_interpolation_tables.pxd
@@ -15,7 +15,7 @@
cimport cython
cimport numpy as np
-from fp_utils cimport imax, fmax, imin, fmin, iclip, fclip, fabs
+from yt.utilities.lib.fp_utils cimport imax, fmax, imin, fmin, iclip, fclip, fabs
DEF Nch = 4
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/geometry_utils.pyx
--- a/yt/utilities/lib/geometry_utils.pyx
+++ b/yt/utilities/lib/geometry_utils.pyx
@@ -17,7 +17,7 @@
cimport numpy as np
cimport cython
from libc.stdlib cimport malloc, free
-from fp_utils cimport fclip, i64clip
+from yt.utilities.lib.fp_utils cimport fclip, i64clip
from libc.math cimport copysign
from yt.utilities.exceptions import YTDomainOverflow
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/grid_traversal.pyx
--- a/yt/utilities/lib/grid_traversal.pyx
+++ b/yt/utilities/lib/grid_traversal.pyx
@@ -20,7 +20,7 @@
from libc.stdlib cimport malloc, calloc, free, abs
from libc.math cimport exp, floor, log2, \
lrint, fabs, atan, atan2, asin, cos, sin, sqrt
-from fp_utils cimport imax, fmax, imin, fmin, iclip, fclip, i64clip
+from yt.utilities.lib.fp_utils cimport imax, fmax, imin, fmin, iclip, fclip, i64clip
from field_interpolation_tables cimport \
FieldInterpolationTable, FIT_initialize_table, FIT_eval_transfer,\
FIT_eval_transfer_with_light
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/image_utilities.pyx
--- a/yt/utilities/lib/image_utilities.pyx
+++ b/yt/utilities/lib/image_utilities.pyx
@@ -13,7 +13,7 @@
import numpy as np
cimport numpy as np
cimport cython
-from fp_utils cimport iclip
+from yt.utilities.lib.fp_utils cimport iclip
def add_points_to_greyscale_image(
np.ndarray[np.float64_t, ndim=2] buffer,
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/interpolators.pyx
--- a/yt/utilities/lib/interpolators.pyx
+++ b/yt/utilities/lib/interpolators.pyx
@@ -16,7 +16,7 @@
import numpy as np
cimport numpy as np
cimport cython
-from fp_utils cimport imax, fmax, imin, fmin, iclip, fclip
+from yt.utilities.lib.fp_utils cimport imax, fmax, imin, fmin, iclip, fclip
@cython.cdivision(True)
@cython.wraparound(False)
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/marching_cubes.pyx
--- a/yt/utilities/lib/marching_cubes.pyx
+++ b/yt/utilities/lib/marching_cubes.pyx
@@ -16,7 +16,7 @@
cimport numpy as np
cimport cython
import numpy as np
-from fp_utils cimport imax, fmax, imin, fmin, iclip, fclip
+from yt.utilities.lib.fp_utils cimport imax, fmax, imin, fmin, iclip, fclip
from libc.stdlib cimport malloc, free, abs
from fixed_interpolator cimport *
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/mesh_utilities.pyx
--- a/yt/utilities/lib/mesh_utilities.pyx
+++ b/yt/utilities/lib/mesh_utilities.pyx
@@ -17,7 +17,7 @@
cimport numpy as np
cimport cython
from libc.stdlib cimport malloc, free, abs
-from fp_utils cimport imax, fmax, imin, fmin, iclip, fclip, i64clip
+from yt.utilities.lib.fp_utils cimport imax, fmax, imin, fmin, iclip, fclip, i64clip
@cython.boundscheck(False)
@cython.wraparound(False)
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/misc_utilities.pyx
--- a/yt/utilities/lib/misc_utilities.pyx
+++ b/yt/utilities/lib/misc_utilities.pyx
@@ -19,7 +19,7 @@
cimport cython
cimport libc.math as math
from libc.math cimport abs
-from fp_utils cimport fmin, fmax, i64min, i64max
+from yt.utilities.lib.fp_utils cimport fmin, fmax, i64min, i64max
from yt.geometry.selection_routines cimport _ensure_code
from libc.stdlib cimport malloc, free
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/particle_mesh_operations.pyx
--- a/yt/utilities/lib/particle_mesh_operations.pyx
+++ b/yt/utilities/lib/particle_mesh_operations.pyx
@@ -15,7 +15,7 @@
cimport numpy as np
cimport cython
-from fp_utils cimport imax, fmax, imin, fmin, iclip, fclip
+from yt.utilities.lib.fp_utils cimport imax, fmax, imin, fmin, iclip, fclip
@cython.boundscheck(False)
@cython.wraparound(False)
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/pixelization_routines.pyx
--- a/yt/utilities/lib/pixelization_routines.pyx
+++ b/yt/utilities/lib/pixelization_routines.pyx
@@ -17,7 +17,7 @@
cimport numpy as np
cimport cython
cimport libc.math as math
-from fp_utils cimport fmin, fmax, i64min, i64max, imin, imax, fabs
+from yt.utilities.lib.fp_utils cimport fmin, fmax, i64min, i64max, imin, imax, fabs
from yt.utilities.exceptions import YTPixelizeError, \
YTElementTypeNotRecognized
from yt.utilities.lib.element_mappings cimport \
diff -r 50f96c9a197ac4a1a0004e454de7c84375e712d5 -r faad0f15118113a78cfe99fd720ef489b70beb82 yt/utilities/lib/quad_tree.pyx
--- a/yt/utilities/lib/quad_tree.pyx
+++ b/yt/utilities/lib/quad_tree.pyx
@@ -17,11 +17,10 @@
import numpy as np
cimport numpy as np
cimport cython
-from fp_utils cimport fmax
from libc.stdlib cimport malloc, free, abs
from cython.operator cimport dereference as deref, preincrement as inc
-from fp_utils cimport fmax
+from yt.utilities.lib.fp_utils cimport fmax
from yt.utilities.exceptions import YTIntDomainOverflow
This diff is so big that we needed to truncate the remainder.
https://bitbucket.org/yt_analysis/yt/commits/28196e94219e/
Changeset: 28196e94219e
Branch: yt
User: xarthisius
Date: 2016-02-17 17:16:32+00:00
Summary: Merged in MatthewTurk/yt (pull request #1983)
Fix the particle deposit memoryview PR
Affected #: 6 files
diff -r 0f22947ebba119f8039037937270e295d95224a7 -r 28196e94219e1203f78a3ba94272d49e79deaee4 yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -702,11 +702,11 @@
if cls is None:
raise YTParticleDepositionNotImplemented(method)
# We allocate number of zones, not number of octs
- op = cls(self.ActiveDimensions.prod(), kernel_name)
+ op = cls(self.ActiveDimensions, kernel_name)
op.initialize()
op.process_grid(self, positions, fields)
vals = op.finalize()
- return vals.reshape(self.ActiveDimensions, order="C")
+ return vals.copy(order="C")
def write_to_gdf(self, gdf_path, fields, nprocs=1, field_units=None,
**kwargs):
diff -r 0f22947ebba119f8039037937270e295d95224a7 -r 28196e94219e1203f78a3ba94272d49e79deaee4 yt/data_objects/grid_patch.py
--- a/yt/data_objects/grid_patch.py
+++ b/yt/data_objects/grid_patch.py
@@ -327,12 +327,13 @@
if cls is None:
raise YTParticleDepositionNotImplemented(method)
# We allocate number of zones, not number of octs
- op = cls(self.ActiveDimensions.prod(), kernel_name)
+ # Everything inside this is fortran ordered, so we reverse it here.
+ op = cls(tuple(self.ActiveDimensions)[::-1], kernel_name)
op.initialize()
op.process_grid(self, positions, fields)
vals = op.finalize()
if vals is None: return
- return vals.reshape(self.ActiveDimensions, order="C")
+ return vals.transpose() # Fortran-ordered, so transpose.
def select_blocks(self, selector):
mask = self._get_selector_mask(selector)
diff -r 0f22947ebba119f8039037937270e295d95224a7 -r 28196e94219e1203f78a3ba94272d49e79deaee4 yt/frontends/artio/_artio_caller.pyx
--- a/yt/frontends/artio/_artio_caller.pyx
+++ b/yt/frontends/artio/_artio_caller.pyx
@@ -15,6 +15,7 @@
from libc.stdlib cimport malloc, free
from libc.string cimport memcpy
import data_structures
+from yt.utilities.lib.misc_utilities import OnceIndirect
cdef extern from "platform_dep.h":
void *alloca(int)
@@ -1554,6 +1555,9 @@
if fields is None:
fields = []
nf = len(fields)
+ cdef np.float64_t[::cython.view.indirect, ::1] field_pointers
+ if nf > 0: field_pointers = OnceIndirect(fields)
+ cdef np.float64_t[:] field_vals = np.empty(nf, dtype="float64")
cdef np.ndarray[np.uint8_t, ndim=1, cast=True] mask
mask = self.mask(selector, -1)
cdef np.ndarray[np.int64_t, ndim=1] domain_ind
@@ -1568,17 +1572,9 @@
continue
domain_ind[sfc - self.sfc_start] = j
j += 1
- cdef np.float64_t **field_pointers
- cdef np.float64_t *field_vals
cdef np.float64_t pos[3]
cdef np.float64_t left_edge[3]
cdef int coords[3]
- cdef np.ndarray[np.float64_t, ndim=1] tarr
- field_pointers = <np.float64_t**> alloca(sizeof(np.float64_t *) * nf)
- field_vals = <np.float64_t*>alloca(sizeof(np.float64_t) * nf)
- for i in range(nf):
- tarr = fields[i]
- field_pointers[i] = <np.float64_t *> tarr.data
cdef int dims[3]
dims[0] = dims[1] = dims[2] = 1
cdef np.int64_t offset, moff
diff -r 0f22947ebba119f8039037937270e295d95224a7 -r 28196e94219e1203f78a3ba94272d49e79deaee4 yt/geometry/particle_deposit.pxd
--- a/yt/geometry/particle_deposit.pxd
+++ b/yt/geometry/particle_deposit.pxd
@@ -138,5 +138,5 @@
cdef public int update_values
cdef void process(self, int dim[3], np.float64_t left_edge[3],
np.float64_t dds[3], np.int64_t offset,
- np.float64_t ppos[3], np.float64_t *fields,
+ np.float64_t ppos[3], np.float64_t[:] fields,
np.int64_t domain_ind)
diff -r 0f22947ebba119f8039037937270e295d95224a7 -r 28196e94219e1203f78a3ba94272d49e79deaee4 yt/geometry/particle_deposit.pyx
--- a/yt/geometry/particle_deposit.pyx
+++ b/yt/geometry/particle_deposit.pyx
@@ -19,9 +19,22 @@
from libc.stdlib cimport malloc, free
cimport cython
from libc.math cimport sqrt
+from cpython cimport PyObject
+from fp_utils cimport *
from oct_container cimport Oct, OctAllocationContainer, \
OctreeContainer, OctInfo
+from cpython.array cimport array, clone
+from cython.view cimport memoryview as cymemview
+from yt.utilities.lib.misc_utilities import OnceIndirect
+
+cdef append_axes(np.ndarray arr, int naxes):
+ if arr.ndim == naxes:
+ return arr
+ # Avoid copies
+ arr2 = arr.view()
+ arr2.shape = arr2.shape + (1,) * (naxes - arr2.ndim)
+ return arr2
cdef class ParticleDepositOperation:
def __init__(self, nvals, kernel_name):
@@ -46,15 +59,10 @@
if fields is None:
fields = []
nf = len(fields)
- cdef np.float64_t **field_pointers
- cdef np.float64_t *field_vals
+ cdef np.float64_t[::cython.view.indirect, ::1] field_pointers
+ if nf > 0: field_pointers = OnceIndirect(fields)
cdef np.float64_t pos[3]
- cdef np.ndarray[np.float64_t, ndim=1] tarr
- field_pointers = <np.float64_t**> alloca(sizeof(np.float64_t *) * nf)
- field_vals = <np.float64_t*>alloca(sizeof(np.float64_t) * nf)
- for i in range(nf):
- tarr = fields[i]
- field_pointers[i] = <np.float64_t *> tarr.data
+ cdef np.float64_t[:] field_vals = np.empty(nf, dtype="float64")
cdef int dims[3]
dims[0] = dims[1] = dims[2] = (1 << octree.oref)
cdef int nz = dims[0] * dims[1] * dims[2]
@@ -66,7 +74,7 @@
for i in range(positions.shape[0]):
# We should check if particle remains inside the Oct here
for j in range(nf):
- field_vals[j] = field_pointers[j][i]
+ field_vals[j] = field_pointers[j,i]
for j in range(3):
pos[j] = positions[i, j]
# This line should be modified to have it return the index into an
@@ -89,7 +97,7 @@
if oct == NULL or (domain_id > 0 and oct.domain != domain_id):
continue
# Note that this has to be our local index, not our in-file index.
- offset = dom_ind[oct.domain_ind - moff] * nz
+ offset = dom_ind[oct.domain_ind - moff]
if offset < 0: continue
# Check that we found the oct ...
self.process(dims, oi.left_edge, oi.dds,
@@ -107,16 +115,11 @@
if fields is None:
fields = []
nf = len(fields)
- cdef np.float64_t **field_pointers
- cdef np.float64_t *field_vals
+ cdef np.float64_t[:] field_vals = np.empty(nf, dtype="float64")
+ cdef np.float64_t[::cython.view.indirect, ::1] field_pointers
+ if nf > 0: field_pointers = OnceIndirect(fields)
cdef np.float64_t pos[3]
- cdef np.ndarray[np.float64_t, ndim=1] tarr
- field_pointers = <np.float64_t**> alloca(sizeof(np.float64_t *) * nf)
- field_vals = <np.float64_t*>alloca(sizeof(np.float64_t) * nf)
cdef np.int64_t gid = getattr(gobj, "id", -1)
- for i in range(nf):
- tarr = fields[i]
- field_pointers[i] = <np.float64_t *> tarr.data
cdef np.float64_t dds[3]
cdef np.float64_t left_edge[3]
cdef int dims[3]
@@ -127,7 +130,7 @@
for i in range(positions.shape[0]):
# Now we process
for j in range(nf):
- field_vals[j] = field_pointers[j][i]
+ field_vals[j] = field_pointers[j,i]
for j in range(3):
pos[j] = positions[i, j]
self.process(dims, left_edge, dds, 0, pos, field_vals, gid)
@@ -137,19 +140,16 @@
cdef void process(self, int dim[3], np.float64_t left_edge[3],
np.float64_t dds[3], np.int64_t offset,
- np.float64_t ppos[3], np.float64_t *fields,
+ np.float64_t ppos[3], np.float64_t[:] fields,
np.int64_t domain_ind):
raise NotImplementedError
cdef class CountParticles(ParticleDepositOperation):
- cdef np.int64_t *count # float, for ease
- cdef public object ocount
+ cdef np.int64_t[:,:,:,:] count
def initialize(self):
# Create a numpy array accessible to python
- self.ocount = np.zeros(self.nvals, dtype="int64", order='F')
- cdef np.ndarray arr = self.ocount
- # alias the C-view for use in cython
- self.count = <np.int64_t*> arr.data
+ self.count = append_axes(
+ np.zeros(self.nvals, dtype="int64", order='F'), 4)
@cython.cdivision(True)
cdef void process(self, int dim[3],
@@ -157,7 +157,7 @@
np.float64_t dds[3],
np.int64_t offset, # offset into IO field
np.float64_t ppos[3], # this particle's position
- np.float64_t *fields,
+ np.float64_t[:] fields,
np.int64_t domain_ind
):
# here we do our thing; this is the kernel
@@ -165,10 +165,12 @@
cdef int i
for i in range(3):
ii[i] = <int>((ppos[i] - left_edge[i])/dds[i])
- self.count[gind(ii[0], ii[1], ii[2], dim) + offset] += 1
+ self.count[ii[2], ii[1], ii[0], offset] += 1
def finalize(self):
- return self.ocount.astype('f8')
+ arr = np.asarray(self.count)
+ arr.shape = self.nvals
+ return arr.astype("float64")
deposit_count = CountParticles
@@ -176,18 +178,14 @@
# Note that this does nothing at the edges. So it will give a poor
# estimate there, and since Octrees are mostly edges, this will be a very
# poor SPH kernel.
- cdef np.float64_t *data
- cdef public object odata
- cdef np.float64_t *temp
- cdef public object otemp
+ cdef np.float64_t[:,:,:,:] data
+ cdef np.float64_t[:,:,:,:] temp
def initialize(self):
- self.odata = np.zeros(self.nvals, dtype="float64", order='F')
- cdef np.ndarray arr = self.odata
- self.data = <np.float64_t*> arr.data
- self.otemp = np.zeros(self.nvals, dtype="float64", order='F')
- arr = self.otemp
- self.temp = <np.float64_t*> arr.data
+ self.data = append_axes(
+ np.zeros(self.nvals, dtype="float64", order='F'), 4)
+ self.temp = append_axes(
+ np.zeros(self.nvals, dtype="float64", order='F'), 4)
@cython.cdivision(True)
cdef void process(self, int dim[3],
@@ -195,7 +193,7 @@
np.float64_t dds[3],
np.int64_t offset,
np.float64_t ppos[3],
- np.float64_t *fields,
+ np.float64_t[:] fields,
np.int64_t domain_ind
):
cdef int ii[3]
@@ -227,14 +225,14 @@
dist = idist[0] + idist[1] + idist[2]
# Calculate distance in multiples of the smoothing length
dist = sqrt(dist) / fields[0]
- self.temp[gind(i,j,k,dim) + offset] = self.sph_kernel(dist)
- kernel_sum += self.temp[gind(i,j,k,dim) + offset]
+ self.temp[k,j,i,offset] = self.sph_kernel(dist)
+ kernel_sum += self.temp[k,j,i,offset]
# Having found the kernel, deposit accordingly into gdata
for i from ib0[0] <= i <= ib1[0]:
for j from ib0[1] <= j <= ib1[1]:
for k from ib0[2] <= k <= ib1[2]:
- dist = self.temp[gind(i,j,k,dim) + offset] / kernel_sum
- self.data[gind(i,j,k,dim) + offset] += fields[1] * dist
+ dist = self.temp[k,j,i,offset] / kernel_sum
+ self.data[k,j,i,offset] += fields[1] * dist
def finalize(self):
return self.odata
@@ -242,12 +240,10 @@
deposit_simple_smooth = SimpleSmooth
cdef class SumParticleField(ParticleDepositOperation):
- cdef np.float64_t *sum
- cdef public object osum
+ cdef np.float64_t[:,:,:,:] sum
def initialize(self):
- self.osum = np.zeros(self.nvals, dtype="float64", order='F')
- cdef np.ndarray arr = self.osum
- self.sum = <np.float64_t*> arr.data
+ self.sum = append_axes(
+ np.zeros(self.nvals, dtype="float64", order='F'), 4)
@cython.cdivision(True)
cdef void process(self, int dim[3],
@@ -255,18 +251,20 @@
np.float64_t dds[3],
np.int64_t offset,
np.float64_t ppos[3],
- np.float64_t *fields,
+ np.float64_t[:] fields,
np.int64_t domain_ind
):
cdef int ii[3]
cdef int i
for i in range(3):
ii[i] = <int>((ppos[i] - left_edge[i]) / dds[i])
- self.sum[gind(ii[0], ii[1], ii[2], dim) + offset] += fields[0]
+ self.sum[ii[2], ii[1], ii[0], offset] += fields[0]
return
def finalize(self):
- return self.osum
+ sum = np.asarray(self.sum)
+ sum.shape = self.nvals
+ return sum
deposit_sum = SumParticleField
@@ -274,28 +272,20 @@
# Thanks to Britton and MJ Turk for the link
# to a single-pass STD
# http://www.cs.berkeley.edu/~mhoemmen/cs194/Tutorials/variance.pdf
- cdef np.float64_t *mk
- cdef np.float64_t *qk
- cdef np.float64_t *i
- cdef public object omk
- cdef public object oqk
- cdef public object oi
+ cdef np.float64_t[:,:,:,:] mk
+ cdef np.float64_t[:,:,:,:] qk
+ cdef np.float64_t[:,:,:,:] i
def initialize(self):
# we do this in a single pass, but need two scalar
# per cell, M_k, and Q_k and also the number of particles
# deposited into each one
# the M_k term
- self.omk= np.zeros(self.nvals, dtype="float64", order='F')
- cdef np.ndarray omkarr= self.omk
- self.mk= <np.float64_t*> omkarr.data
- # the Q_k term
- self.oqk= np.zeros(self.nvals, dtype="float64", order='F')
- cdef np.ndarray oqkarr= self.oqk
- self.qk= <np.float64_t*> oqkarr.data
- # particle count
- self.oi = np.zeros(self.nvals, dtype="float64", order='F')
- cdef np.ndarray oiarr = self.oi
- self.i = <np.float64_t*> oiarr.data
+ self.mk = append_axes(
+ np.zeros(self.nvals, dtype="float64", order='F'), 4)
+ self.qk = append_axes(
+ np.zeros(self.nvals, dtype="float64", order='F'), 4)
+ self.i = append_axes(
+ np.zeros(self.nvals, dtype="float64", order='F'), 4)
@cython.cdivision(True)
cdef void process(self, int dim[3],
@@ -303,7 +293,7 @@
np.float64_t dds[3],
np.int64_t offset,
np.float64_t ppos[3],
- np.float64_t *fields,
+ np.float64_t[:] fields,
np.int64_t domain_ind
):
cdef int ii[3]
@@ -311,35 +301,36 @@
cdef float k, mk, qk
for i in range(3):
ii[i] = <int>((ppos[i] - left_edge[i])/dds[i])
- cell_index = gind(ii[0], ii[1], ii[2], dim) + offset
- k = self.i[cell_index]
- mk = self.mk[cell_index]
- qk = self.qk[cell_index]
+ k = self.i[ii[2], ii[1], ii[0], offset]
+ mk = self.mk[ii[2], ii[1], ii[0], offset]
+ qk = self.qk[ii[2], ii[1], ii[0], offset]
#print k, mk, qk, cell_index
if k == 0.0:
# Initialize cell values
- self.mk[cell_index] = fields[0]
+ self.mk[ii[2], ii[1], ii[0], offset] = fields[0]
else:
- self.mk[cell_index] = mk + (fields[0] - mk) / k
- self.qk[cell_index] = qk + (k - 1.0) * (fields[0] - mk)**2.0 / k
- self.i[cell_index] += 1
+ self.mk[ii[2], ii[1], ii[0], offset] = mk + (fields[0] - mk) / k
+ self.qk[ii[2], ii[1], ii[0], offset] = \
+ qk + (k - 1.0) * (fields[0] - mk)**2.0 / k
+ self.i[ii[2], ii[1], ii[0], offset] += 1
def finalize(self):
# This is the standard variance
# if we want sample variance divide by (self.oi - 1.0)
- std2 = self.oqk / self.oi
- std2[self.oi == 0.0] = 0.0
+ i = np.asarray(self.i)
+ std2 = np.asarray(self.qk) / i
+ std2[i == 0.0] = 0.0
+ std2.shape = self.nvals
return np.sqrt(std2)
deposit_std = StdParticleField
cdef class CICDeposit(ParticleDepositOperation):
- cdef np.float64_t *field
+ cdef np.float64_t[:,:,:,:] field
cdef public object ofield
def initialize(self):
- self.ofield = np.zeros(self.nvals, dtype="float64", order='F')
- cdef np.ndarray arr = self.ofield
- self.field = <np.float64_t *> arr.data
+ self.field = append_axes(
+ np.zeros(self.nvals, dtype="float64", order='F'), 4)
@cython.cdivision(True)
cdef void process(self, int dim[3],
@@ -347,7 +338,7 @@
np.float64_t dds[3],
np.int64_t offset, # offset into IO field
np.float64_t ppos[3], # this particle's position
- np.float64_t *fields,
+ np.float64_t[:] fields,
np.int64_t domain_ind
):
@@ -372,29 +363,26 @@
for i in range(2):
for j in range(2):
for k in range(2):
- ii = gind(ind[0] - i, ind[1] - j, ind[2] - k, dim) + offset
- self.field[ii] += fields[0]*rdds[0][i]*rdds[1][j]*rdds[2][k]
+ self.field[ind[2] - k, ind[1] - j, ind[0] - i, offset] += \
+ fields[0]*rdds[0][i]*rdds[1][j]*rdds[2][k]
def finalize(self):
- return self.ofield
+ rv = np.asarray(self.field)
+ rv.shape = self.nvals
+ return rv
deposit_cic = CICDeposit
cdef class WeightedMeanParticleField(ParticleDepositOperation):
# Deposit both mass * field and mass into two scalars
# then in finalize divide mass * field / mass
- cdef np.float64_t *wf
- cdef public object owf
- cdef np.float64_t *w
- cdef public object ow
+ cdef np.float64_t[:,:,:,:] wf
+ cdef np.float64_t[:,:,:,:] w
def initialize(self):
- self.owf = np.zeros(self.nvals, dtype='float64', order='F')
- cdef np.ndarray wfarr = self.owf
- self.wf = <np.float64_t*> wfarr.data
-
- self.ow = np.zeros(self.nvals, dtype='float64', order='F')
- cdef np.ndarray warr = self.ow
- self.w = <np.float64_t*> warr.data
+ self.wf = append_axes(
+ np.zeros(self.nvals, dtype='float64', order='F'), 4)
+ self.w = append_axes(
+ np.zeros(self.nvals, dtype='float64', order='F'), 4)
@cython.cdivision(True)
cdef void process(self, int dim[3],
@@ -402,18 +390,22 @@
np.float64_t dds[3],
np.int64_t offset,
np.float64_t ppos[3],
- np.float64_t *fields,
+ np.float64_t[:] fields,
np.int64_t domain_ind
):
cdef int ii[3]
cdef int i
for i in range(3):
ii[i] = <int>((ppos[i] - left_edge[i]) / dds[i])
- self.w[ gind(ii[0], ii[1], ii[2], dim) + offset] += fields[1]
- self.wf[gind(ii[0], ii[1], ii[2], dim) + offset] += fields[0] * fields[1]
+ self.w[ii[2], ii[1], ii[0], offset] += fields[1]
+ self.wf[ii[2], ii[1], ii[0], offset] += fields[0] * fields[1]
def finalize(self):
- return self.owf / self.ow
+ wf = np.asarray(self.owf)
+ w = np.asarray(self.ow)
+ rv = wf / w
+ rv.shape = self.nvals
+ return rv
deposit_weighted_mean = WeightedMeanParticleField
@@ -430,7 +422,7 @@
np.float64_t dds[3],
np.int64_t offset,
np.float64_t ppos[3],
- np.float64_t *fields,
+ np.float64_t[:] fields,
np.int64_t domain_ind
):
fields[0] = domain_ind
@@ -441,19 +433,14 @@
deposit_mesh_id = MeshIdentifier
cdef class NNParticleField(ParticleDepositOperation):
- cdef np.float64_t *nnfield
- cdef np.float64_t *distfield
- cdef public object onnfield
- cdef public object odistfield
+ cdef np.float64_t[:,:,:,:] nnfield
+ cdef np.float64_t[:,:,:,:] distfield
def initialize(self):
- self.onnfield = np.zeros(self.nvals, dtype="float64", order='F')
- cdef np.ndarray arr = self.onnfield
- self.nnfield = <np.float64_t*> arr.data
-
- self.odistfield = np.zeros(self.nvals, dtype="float64", order='F')
- self.odistfield[:] = np.inf
- arr = self.odistfield
- self.distfield = <np.float64_t*> arr.data
+ self.nnfield = append_axes(
+ np.zeros(self.nvals, dtype="float64", order='F'), 4)
+ self.distfield = append_axes(
+ np.zeros(self.nvals, dtype="float64", order='F'), 4)
+ self.distfield[:] = np.inf
@cython.cdivision(True)
cdef void process(self, int dim[3],
@@ -461,14 +448,13 @@
np.float64_t dds[3],
np.int64_t offset,
np.float64_t ppos[3],
- np.float64_t *fields,
+ np.float64_t[:] fields,
np.int64_t domain_ind
):
# This one is a bit slow. Every grid cell is going to be iterated
# over, and we're going to deposit particles in it.
cdef int i, j, k
cdef int ii[3]
- cdef np.int64_t ggind
cdef np.float64_t r2
cdef np.float64_t gpos[3]
gpos[0] = left_edge[0] + 0.5 * dds[0]
@@ -477,19 +463,20 @@
for j in range(dim[1]):
gpos[2] = left_edge[2] + 0.5 * dds[2]
for k in range(dim[2]):
- ggind = gind(i, j, k, dim) + offset
r2 = ((ppos[0] - gpos[0])*(ppos[0] - gpos[0]) +
(ppos[1] - gpos[1])*(ppos[1] - gpos[1]) +
(ppos[2] - gpos[2])*(ppos[2] - gpos[2]))
- if r2 < self.distfield[ggind]:
- self.distfield[ggind] = r2
- self.nnfield[ggind] = fields[0]
+ if r2 < self.distfield[k,j,i,offset]:
+ self.distfield[k,j,i,offset] = r2
+ self.nnfield[k,j,i,offset] = fields[0]
gpos[2] += dds[2]
gpos[1] += dds[1]
gpos[0] += dds[0]
return
def finalize(self):
- return self.onnfield
+ nn = np.asarray(self.nnfield)
+ nn.shape = self.nvals
+ return nn
deposit_nearest = NNParticleField
diff -r 0f22947ebba119f8039037937270e295d95224a7 -r 28196e94219e1203f78a3ba94272d49e79deaee4 yt/utilities/lib/misc_utilities.pyx
--- a/yt/utilities/lib/misc_utilities.pyx
+++ b/yt/utilities/lib/misc_utilities.pyx
@@ -22,6 +22,13 @@
from yt.utilities.lib.fp_utils cimport fmin, fmax, i64min, i64max
from yt.geometry.selection_routines cimport _ensure_code
+from libc.stdlib cimport malloc, free
+from libc.string cimport strcmp
+
+from cython.view cimport memoryview
+from cpython cimport buffer
+
+
cdef extern from "stdlib.h":
# NOTE that size_t might not be int
void *alloca(int)
@@ -966,3 +973,128 @@
dest[i,j,k] += dsp * (overlap[0]*overlap[1]*overlap[2])
else:
dest[i,j,k] = dsp
+
+# The OnceIndirect code is from:
+# http://stackoverflow.com/questions/10465091/assembling-a-cython-memoryview-from-numpy-arrays/12991519#12991519
+# This is under the CC-BY-SA license.
+
+cdef class OnceIndirect:
+ cdef object _objects
+ cdef void** buf
+ cdef int ndim
+ cdef int n_rows
+ cdef int buf_len
+ cdef Py_ssize_t* shape
+ cdef Py_ssize_t* strides
+ cdef Py_ssize_t* suboffsets
+ cdef Py_ssize_t itemsize
+ cdef bytes format
+ cdef int is_readonly
+
+ def __cinit__(self, object rows, want_writable=True, want_format=True, allow_indirect=False):
+ """
+ Set want_writable to False if you don't want writable data. (This may
+ prevent copies.)
+ Set want_format to False if your input doesn't support PyBUF_FORMAT (unlikely)
+ Set allow_indirect to True if you are ok with the memoryview being indirect
+ in dimensions other than the first. (This may prevent copies.)
+
+ An example usage:
+
+ cdef double[::cython.view.indirect, ::1] vectors =
+ OnceIndirect([object.vector for object in objects])
+ """
+ demand = buffer.PyBUF_INDIRECT if allow_indirect else buffer.PyBUF_STRIDES
+ if want_writable:
+ demand |= buffer.PyBUF_WRITABLE
+ if want_format:
+ demand |= buffer.PyBUF_FORMAT
+ self._objects = [memoryview(row, demand) for row in rows]
+ self.n_rows = len(self._objects)
+ self.buf_len = sizeof(void*) * self.n_rows
+ self.buf = <void**>malloc(self.buf_len)
+ self.ndim = 1 + self._objects[0].ndim
+ self.shape = <Py_ssize_t*>malloc(sizeof(Py_ssize_t) * self.ndim)
+ self.strides = <Py_ssize_t*>malloc(sizeof(Py_ssize_t) * self.ndim)
+ self.suboffsets = <Py_ssize_t*>malloc(sizeof(Py_ssize_t) * self.ndim)
+
+ cdef memoryview example_obj = self._objects[0]
+ self.itemsize = example_obj.itemsize
+
+ if want_format:
+ self.format = example_obj.view.format
+ else:
+ self.format = None
+ self.is_readonly |= example_obj.view.readonly
+
+ for dim in range(self.ndim):
+ if dim == 0:
+ self.shape[dim] = self.n_rows
+ self.strides[dim] = sizeof(void*)
+ self.suboffsets[dim] = 0
+ else:
+ self.shape[dim] = example_obj.view.shape[dim - 1]
+ self.strides[dim] = example_obj.view.strides[dim - 1]
+ if example_obj.view.suboffsets == NULL:
+ self.suboffsets[dim] = -1
+ else:
+ self.suboffsets[dim] = example_obj.suboffsets[dim - 1]
+
+ cdef memoryview obj
+ cdef int i = 0
+ for obj in self._objects:
+ assert_similar(example_obj, obj)
+ self.buf[i] = obj.view.buf
+ i += 1
+
+ def __getbuffer__(self, Py_buffer* buff, int flags):
+ if (flags & buffer.PyBUF_INDIRECT) != buffer.PyBUF_INDIRECT:
+ raise Exception("don't want to copy data")
+ if flags & buffer.PyBUF_WRITABLE and self.is_readonly:
+ raise Exception("couldn't provide writable, you should have demanded it earlier")
+ if flags & buffer.PyBUF_FORMAT:
+ if self.format is None:
+ raise Exception("couldn't provide format, you should have demanded it earlier")
+ buff.format = self.format
+ else:
+ buff.format = NULL
+
+ buff.buf = <void*>self.buf
+ buff.obj = self
+ buff.len = self.buf_len
+ buff.readonly = self.is_readonly
+ buff.ndim = self.ndim
+ buff.shape = self.shape
+ buff.strides = self.strides
+ buff.suboffsets = self.suboffsets
+ buff.itemsize = self.itemsize
+ buff.internal = NULL
+
+ def __dealloc__(self):
+ free(self.buf)
+ free(self.shape)
+ free(self.strides)
+ free(self.suboffsets)
+
+cdef int assert_similar(memoryview left_, memoryview right_) except -1:
+ cdef Py_buffer left = left_.view
+ cdef Py_buffer right = right_.view
+ assert left.ndim == right.ndim
+ cdef int i
+ for i in range(left.ndim):
+ assert left.shape[i] == right.shape[i], (left_.shape, right_.shape)
+ assert left.strides[i] == right.strides[i], (left_.strides, right_.strides)
+
+ if left.suboffsets == NULL:
+ assert right.suboffsets == NULL, (left_.suboffsets, right_.suboffsets)
+ else:
+ for i in range(left.ndim):
+ assert left.suboffsets[i] == right.suboffsets[i], (left_.suboffsets, right_.suboffsets)
+
+ if left.format == NULL:
+ assert right.format == NULL, (bytes(left.format), bytes(right.format))
+ else:
+ #alternatively, compare as Python strings:
+ #assert bytes(left.format) == bytes(right.format)
+ assert strcmp(left.format, right.format) == 0, (bytes(left.format), bytes(right.format))
+ return 0
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