Skip to content

Commit

Permalink
Merge pull request #3016 from neutrinoceros/fix_fragile_imports
Browse files Browse the repository at this point in the history
Fix fragile imports
  • Loading branch information
cphyc committed Jan 14, 2021
2 parents fcf61cd + 839eb01 commit 8f35e0d
Show file tree
Hide file tree
Showing 12 changed files with 103 additions and 119 deletions.
1 change: 1 addition & 0 deletions .git-blame-ignore-revs
Expand Up @@ -2,6 +2,7 @@
7edfcee093cca277307aabdb180e0ffc69768291
81418e459f16c48d6b7a75d6ef8035dfe9651b39
60f670d75a23a6d094879437a8df455a66acbeaf
556636e64712a4e161b1d09aeba5833540d05994

# transition to black
ebadee629414aed2c7b6526e22a419205329ec38
Expand Down
2 changes: 0 additions & 2 deletions .pre-commit-config.yaml
Expand Up @@ -2,7 +2,6 @@
# however `minimum_pre_commit_version` itself requires 1.15.0
minimum_pre_commit_version: "1.15.0"

# note: isort can't be applied to yt/__init__.py because it creates circular imports
exclude: "^(\
yt/extern\
|yt/frontends/stream/sample_data\
Expand All @@ -11,7 +10,6 @@ yt/extern\
|benchmark\
|setupext.py\
|yt/visualization/_colormap_data.py\
|yt/__init__.py\
)"

repos:
Expand Down
3 changes: 1 addition & 2 deletions pyproject.toml
Expand Up @@ -37,8 +37,7 @@ exclude = '''
[tool.isort]
profile = "black"
combine_as_imports = true
# isort can't be applied to yt/__init__.py because it creates circular imports
skip = ["venv", "benchmarks", "yt/__init__.py"]
skip = ["venv", "benchmarks"]
known_third_party = [
"IPython",
"nose",
Expand Down
199 changes: 92 additions & 107 deletions yt/__init__.py
Expand Up @@ -16,78 +16,69 @@

__version__ = "4.0.dev0"

# First module imports
import numpy as np # For modern purposes
import numpy # In case anyone wishes to use it by name

import yt.units as units
import yt.utilities.physical_constants as physical_constants
from yt.data_objects.api import (
DatasetSeries,
ImageArray,
ParticleProfile,
Profile1D,
Profile2D,
Profile3D,
add_particle_filter,
create_profile,
particle_filter,
)
from yt.fields.api import (
DerivedField,
FieldDetector,
FieldInfoContainer,
ValidateDataField,
ValidateGridType,
ValidateParameter,
ValidateProperty,
ValidateSpatial,
add_field,
add_xray_emissivity_field,
derived_field,
field_plugins,
)
from yt.funcs import (
is_sequence,
deprecated_class,
enable_plugins,
get_memory_usage,
print_tb,
rootonly,
insert_ipython,
get_pbar,
only_on_root,
is_root,
get_version_stack,
get_yt_supp,
get_yt_version,
parallel_profile,
enable_plugins,
insert_ipython,
is_root,
is_sequence,
memory_checker,
deprecated_class,
only_on_root,
parallel_profile,
print_tb,
rootonly,
toggle_interactivity,
)
from yt.utilities.logger import ytLogger as mylog
from yt.utilities.logger import set_log_level


import yt.utilities.physical_constants as physical_constants
import yt.units as units
from yt.units.unit_object import define_unit
from yt.units import (
YTArray,
YTQuantity,
display_ytarray,
loadtxt,
savetxt,
uconcatenate,
ucross,
udot,
uhstack,
uintersect1d,
uunion1d,
unorm,
udot,
ustack,
uunion1d,
uvstack,
uhstack,
loadtxt,
savetxt,
display_ytarray,
)

from yt.fields.api import (
field_plugins,
DerivedField,
FieldDetector,
FieldInfoContainer,
ValidateParameter,
ValidateDataField,
ValidateProperty,
ValidateSpatial,
ValidateGridType,
add_field,
derived_field,
add_xray_emissivity_field,
)

from yt.data_objects.api import (
DatasetSeries,
ImageArray,
particle_filter,
add_particle_filter,
create_profile,
Profile1D,
Profile2D,
Profile3D,
ParticleProfile,
)
from yt.units.unit_object import define_unit
from yt.utilities.logger import set_log_level, ytLogger as mylog

# For backwards compatibility
TimeSeriesData = deprecated_class(DatasetSeries)
Expand All @@ -97,8 +88,6 @@
frontends = _frontend_container()

from yt.frontends.stream.api import hexahedral_connectivity


from yt.frontends.ytdata.api import save_as_dataset

# For backwards compatibility
Expand All @@ -107,77 +96,73 @@
TipsyDataset = frontends.tipsy.TipsyDataset
TipsyStaticOutput = deprecated_class(TipsyDataset)

import yt.visualization.volume_rendering.api as volume_rendering
from yt.loaders import simulation # deprecated alias for load_simulation
from yt.loaders import (
load,
load_amr_grids,
load_hexahedral_mesh,
load_octree,
load_particles,
load_sample,
load_simulation,
load_uniform_grid,
load_unstructured_mesh,
)
from yt.testing import run_nose
from yt.units.unit_systems import UnitSystem, unit_system_registry

# Import some helpful math utilities
from yt.utilities.math_utils import ortho_find, periodic_position, quartiles
from yt.utilities.parallel_tools.parallel_analysis_interface import (
communication_system,
enable_parallelism,
parallel_objects,
)

# Now individual component imports from the visualization API
from yt.visualization.api import (
AxisAlignedSlicePlot,
FITSImageData,
FITSOffAxisProjection,
FITSOffAxisSlice,
FITSProjection,
FITSSlice,
FixedResolutionBuffer,
LineBuffer,
LinePlot,
ObliqueFixedResolutionBuffer,
write_bitmap,
write_image,
apply_colormap,
scale_image,
write_projection,
SlicePlot,
AxisAlignedSlicePlot,
OffAxisProjectionPlot,
OffAxisSlicePlot,
LinePlot,
LineBuffer,
ParticleImageBuffer,
ParticlePhasePlot,
ParticlePlot,
ParticleProjectionPlot,
PhasePlot,
ProfilePlot,
ProjectionPlot,
OffAxisProjectionPlot,
show_colormaps,
SlicePlot,
add_colormap,
apply_colormap,
make_colormap,
ProfilePlot,
PhasePlot,
ParticlePhasePlot,
ParticleProjectionPlot,
ParticleImageBuffer,
ParticlePlot,
FITSImageData,
FITSSlice,
FITSProjection,
FITSOffAxisSlice,
FITSOffAxisProjection,
plot_2d,
scale_image,
show_colormaps,
write_bitmap,
write_image,
write_projection,
)

from yt.visualization.volume_rendering.api import (
volume_render,
create_scene,
ColorTransferFunction,
TransferFunction,
create_scene,
off_axis_projection,
volume_render,
)
import yt.visualization.volume_rendering.api as volume_rendering

# TransferFunctionHelper, MultiVariateTransferFunction
# off_axis_projection

from yt.utilities.parallel_tools.parallel_analysis_interface import (
parallel_objects,
enable_parallelism,
communication_system,
)

from yt.loaders import (
load,
load_simulation,
simulation, # deprecated alias for load_simulation
load_uniform_grid,
load_amr_grids,
load_particles,
load_hexahedral_mesh,
load_octree,
load_unstructured_mesh,
load_sample,
)

from yt.testing import run_nose

# Import some helpful math utilities
from yt.utilities.math_utils import ortho_find, quartiles, periodic_position

from yt.units.unit_systems import UnitSystem, unit_system_registry


def _check_deprecated_parameters():
from yt.config import ytcfg
Expand Down
3 changes: 1 addition & 2 deletions yt/data_objects/selection_objects/data_selection_objects.py
Expand Up @@ -8,14 +8,13 @@
from unyt.exceptions import UnitConversionError, UnitParseError

import yt.geometry
from yt import YTArray
from yt.data_objects.data_containers import YTDataContainer
from yt.data_objects.derived_quantities import DerivedQuantityCollection
from yt.data_objects.field_data import YTFieldData
from yt.fields.field_exceptions import NeedsGridType
from yt.funcs import fix_axis, is_sequence, iter_fields, validate_width_tuple
from yt.geometry.selection_routines import compose_selector
from yt.units import dimensions as ytdims
from yt.units import YTArray, dimensions as ytdims
from yt.utilities.exceptions import (
GenerationInProgress,
YTBooleanObjectError,
Expand Down
2 changes: 1 addition & 1 deletion yt/data_objects/selection_objects/point.py
@@ -1,10 +1,10 @@
from yt import YTArray
from yt.data_objects.selection_objects.data_selection_objects import (
YTSelectionContainer,
YTSelectionContainer0D,
)
from yt.data_objects.static_output import Dataset
from yt.funcs import validate_3d_array, validate_object
from yt.units import YTArray


class YTPoint(YTSelectionContainer0D):
Expand Down
2 changes: 1 addition & 1 deletion yt/data_objects/selection_objects/ray.py
@@ -1,7 +1,6 @@
import numpy as np
from unyt import udot, unorm

from yt import YTArray, YTQuantity
from yt.data_objects.selection_objects.data_selection_objects import (
YTSelectionContainer,
YTSelectionContainer1D,
Expand All @@ -16,6 +15,7 @@
validate_object,
validate_sequence,
)
from yt.units import YTArray, YTQuantity
from yt.utilities.lib.pixelization_routines import SPHKernelInterpolationTable
from yt.utilities.logger import ytLogger as mylog

Expand Down
2 changes: 1 addition & 1 deletion yt/data_objects/selection_objects/region.py
@@ -1,4 +1,3 @@
from yt import YTArray
from yt.data_objects.selection_objects.data_selection_objects import (
YTSelectionContainer,
YTSelectionContainer3D,
Expand All @@ -10,6 +9,7 @@
validate_object,
validate_sequence,
)
from yt.units import YTArray


class YTRegion(YTSelectionContainer3D):
Expand Down
2 changes: 1 addition & 1 deletion yt/data_objects/selection_objects/spheroids.py
@@ -1,6 +1,5 @@
import numpy as np

from yt import YTArray
from yt.data_objects.selection_objects.data_selection_objects import (
YTSelectionContainer,
YTSelectionContainer3D,
Expand All @@ -14,6 +13,7 @@
validate_object,
validate_sequence,
)
from yt.units import YTArray
from yt.utilities.exceptions import YTEllipsoidOrdering, YTException, YTSphereTooSmall
from yt.utilities.logger import ytLogger as mylog
from yt.utilities.math_utils import get_rotation_matrix
Expand Down
2 changes: 2 additions & 0 deletions yt/fields/tests/test_fields_plugins.py
Expand Up @@ -6,6 +6,8 @@
from yt.testing import assert_raises, fake_random_ds

TEST_PLUGIN_FILE = """
import numpy as np
def _myfunc(field, data):
return np.random.random(data['density'].shape)
add_field('random', dimensions='dimensionless',
Expand Down
2 changes: 1 addition & 1 deletion yt/frontends/amrvac/fields.py
Expand Up @@ -8,10 +8,10 @@

import numpy as np

from yt import mylog
from yt.fields.field_info_container import FieldInfoContainer
from yt.fields.magnetic_field import setup_magnetic_field_aliases
from yt.units import dimensions
from yt.utilities.logger import ytLogger as mylog

# We need to specify which fields we might have in our dataset. The field info
# container subclass here will define which fields it knows about. There are
Expand Down

0 comments on commit 8f35e0d

Please sign in to comment.