Commit 6373c03a authored by Martin Bauer's avatar Martin Bauer
Browse files

Import sorting using isort

parent cd0949ab
[settings]
line_length=100
balanced_wrapping=True
multi_line_output=4
...@@ -89,6 +89,7 @@ class IPyNbTest(pytest.Item): ...@@ -89,6 +89,7 @@ class IPyNbTest(pytest.Item):
self.code = code self.code = code
self.add_marker('notebook') self.add_marker('notebook')
@pytest.mark.filterwarnings("ignore:IPython.core.inputsplitter is deprecated")
def runtest(self): def runtest(self):
global_dict = {'get_ipython': lambda: IPythonMockup(), global_dict = {'get_ipython': lambda: IPythonMockup(),
'is_test_run': True} 'is_test_run': True}
......
"""Module to generate stencil kernels in C or CUDA using sympy expressions and call them as Python functions""" """Module to generate stencil kernels in C or CUDA using sympy expressions and call them as Python functions"""
from . import sympy_gmpy_bug_workaround # NOQA from . import sympy_gmpy_bug_workaround # NOQA
from .field import Field, FieldType, fields from . import fd
from . import stencil as stencil
from .assignment import Assignment, assignment_from_stencil
from .data_types import TypedSymbol from .data_types import TypedSymbol
from .slicing import make_slice from .datahandling import create_data_handling
from .kernelcreation import create_kernel, create_indexed_kernel, create_staggered_kernel
from .display_utils import show_code, to_dot from .display_utils import show_code, to_dot
from .field import Field, FieldType, fields
from .kernel_decorator import kernel
from .kernelcreation import create_indexed_kernel, create_kernel, create_staggered_kernel
from .simp import AssignmentCollection from .simp import AssignmentCollection
from .assignment import Assignment, assignment_from_stencil from .slicing import make_slice
from .sympyextensions import SymbolCreator from .sympyextensions import SymbolCreator
from .datahandling import create_data_handling
from .kernel_decorator import kernel
from . import fd
from . import stencil as stencil
__all__ = ['Field', 'FieldType', 'fields', __all__ = ['Field', 'FieldType', 'fields',
'TypedSymbol', 'TypedSymbol',
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import numpy as np
import sympy as sp import sympy as sp
from sympy.printing.latex import LatexPrinter from sympy.printing.latex import LatexPrinter
...@@ -6,7 +7,6 @@ try: ...@@ -6,7 +7,6 @@ try:
from sympy.codegen.ast import Assignment from sympy.codegen.ast import Assignment
except ImportError: except ImportError:
Assignment = None Assignment = None
import numpy as np
__all__ = ['Assignment', 'assignment_from_stencil'] __all__ = ['Assignment', 'assignment_from_stencil']
...@@ -84,7 +84,7 @@ def assignment_from_stencil(stencil_array, input_field, output_field, ...@@ -84,7 +84,7 @@ def assignment_from_stencil(stencil_array, input_field, output_field,
>>> assignment_from_stencil(stencil, f[1, 0], g[2, 0]) >>> assignment_from_stencil(stencil, f[1, 0], g[2, 0])
Assignment(g_2E, 3*f_C + 6*f_SE + 4*f_E + 2*f_NE + 5*f_2E) Assignment(g_2E, 3*f_C + 6*f_SE + 4*f_E + 2*f_NE + 5*f_2E)
""" """
from pystencils import Field from pystencils.field import Field
stencil_array = np.array(stencil_array) stencil_array = np.array(stencil_array)
if order == 'visual': if order == 'visual':
......
...@@ -5,8 +5,7 @@ import sympy as sp ...@@ -5,8 +5,7 @@ import sympy as sp
from pystencils.data_types import TypedSymbol, cast_func, create_type from pystencils.data_types import TypedSymbol, cast_func, create_type
from pystencils.field import Field from pystencils.field import Field
from pystencils.kernelparameters import (FieldPointerSymbol, FieldShapeSymbol, from pystencils.kernelparameters import FieldPointerSymbol, FieldShapeSymbol, FieldStrideSymbol
FieldStrideSymbol)
from pystencils.sympyextensions import fast_subs from pystencils.sympyextensions import fast_subs
NodeOrExpr = Union['Node', sp.Expr] NodeOrExpr = Union['Node', sp.Expr]
......
...@@ -6,18 +6,15 @@ import sympy as sp ...@@ -6,18 +6,15 @@ import sympy as sp
from sympy.core import S from sympy.core import S
from sympy.printing.ccode import C89CodePrinter from sympy.printing.ccode import C89CodePrinter
from pystencils.astnodes import (DestructuringBindingsForFieldClass, from pystencils.astnodes import DestructuringBindingsForFieldClass, KernelFunction, Node
KernelFunction, Node)
from pystencils.cpu.vectorization import vec_all, vec_any from pystencils.cpu.vectorization import vec_all, vec_any
from pystencils.data_types import (PointerType, VectorType, address_of, from pystencils.data_types import (
cast_func, create_type, PointerType, VectorType, address_of, cast_func, create_type, get_type_of_expression,
get_type_of_expression, reinterpret_cast_func, vector_memory_access)
reinterpret_cast_func, vector_memory_access) from pystencils.fast_approximation import fast_division, fast_inv_sqrt, fast_sqrt
from pystencils.fast_approximation import (fast_division, fast_inv_sqrt, from pystencils.integer_functions import (
fast_sqrt) bit_shift_left, bit_shift_right, bitwise_and, bitwise_or, bitwise_xor,
from pystencils.integer_functions import (bit_shift_left, bit_shift_right, int_div, int_power_of_2, modulo_ceil)
bitwise_and, bitwise_or, bitwise_xor,
int_div, int_power_of_2, modulo_ceil)
from pystencils.kernelparameters import FieldPointerSymbol from pystencils.kernelparameters import FieldPointerSymbol
try: try:
......
from sympy.printing.printer import Printer
from graphviz import Digraph, lang
import graphviz import graphviz
from graphviz import Digraph, lang
from sympy.printing.printer import Printer
# noinspection PyPep8Naming # noinspection PyPep8Naming
......
from pystencils.boundaries.boundaryconditions import Dirichlet, Neumann
from pystencils.boundaries.boundaryhandling import BoundaryHandling from pystencils.boundaries.boundaryhandling import BoundaryHandling
from pystencils.boundaries.boundaryconditions import Neumann, Dirichlet
from pystencils.boundaries.inkernel import add_neumann_boundary from pystencils.boundaries.inkernel import add_neumann_boundary
__all__ = ['BoundaryHandling', 'Neumann', 'Dirichlet', 'add_neumann_boundary'] __all__ = ['BoundaryHandling', 'Neumann', 'Dirichlet', 'add_neumann_boundary']
from typing import List, Tuple, Any from typing import Any, List, Tuple
from pystencils import Assignment from pystencils import Assignment
from pystencils.boundaries.boundaryhandling import BoundaryOffsetInfo from pystencils.boundaries.boundaryhandling import BoundaryOffsetInfo
from pystencils.data_types import create_type from pystencils.data_types import create_type
......
import numpy as np import numpy as np
import sympy as sp import sympy as sp
from pystencils import create_indexed_kernel
from pystencils.assignment import Assignment from pystencils.assignment import Assignment
from pystencils import Field, TypedSymbol, create_indexed_kernel
from pystencils.backends.cbackend import CustomCodeNode from pystencils.backends.cbackend import CustomCodeNode
from pystencils.boundaries.createindexlist import numpy_data_type_for_boundary_object, create_boundary_index_array from pystencils.boundaries.createindexlist import (
create_boundary_index_array, numpy_data_type_for_boundary_object)
from pystencils.cache import memorycache from pystencils.cache import memorycache
from pystencils.data_types import create_type from pystencils.data_types import TypedSymbol, create_type
from pystencils.field import Field
from pystencils.kernelparameters import FieldPointerSymbol from pystencils.kernelparameters import FieldPointerSymbol
DEFAULT_FLAG_TYPE = np.uint32 DEFAULT_FLAG_TYPE = np.uint32
......
import numpy as np
import itertools import itertools
import warnings import warnings
import numpy as np
try: try:
# Try to import right away - assume compiled code is available # Try to import right away - assume compiled code is available
# compile with: python setup.py build_ext --inplace --use-cython # compile with: python setup.py build_ext --inplace --use-cython
......
import sympy as sp import sympy as sp
from pystencils import Field, TypedSymbol
from pystencils.integer_functions import bitwise_and
from pystencils.boundaries.boundaryhandling import DEFAULT_FLAG_TYPE from pystencils.boundaries.boundaryhandling import DEFAULT_FLAG_TYPE
from pystencils.data_types import create_type from pystencils.data_types import TypedSymbol, create_type
from pystencils.field import Field
from pystencils.integer_functions import bitwise_and
def add_neumann_boundary(eqs, fields, flag_field, boundary_flag="neumann_flag", inverse_flag=False): def add_neumann_boundary(eqs, fields, flag_field, boundary_flag="neumann_flag", inverse_flag=False):
""" """
Replaces all neighbor accesses by flag field guarded accesses. Replaces all neighbor accesses by flag field guarded accesses.
If flag in neighboring cell is set, the center value is used instead If flag in neighboring cell is set, the center value is used instead
:param eqs: list of equations containing field accesses to direct neighbors
:param fields: fields for which the Neumann boundary should be applied Args:
:param flag_field: integer field marking boundary cells eqs: list of equations containing field accesses to direct neighbors
:param boundary_flag: if flag field has value 'boundary_flag' (no bit operations yet) fields: fields for which the Neumann boundary should be applied
the cell is assumed to be boundary flag_field: integer field marking boundary cells
:param inverse_flag: if true, boundary cells are where flag field has not the value of boundary_flag boundary_flag: if flag field has value 'boundary_flag' (no bit operations yet)
:return: list of equations with guarded field accesses the cell is assumed to be boundary
inverse_flag: if true, boundary cells are where flag field has not the value of boundary_flag
Returns:
list of equations with guarded field accesses
""" """
if not hasattr(fields, "__len__"): if not hasattr(fields, "__len__"):
fields = [fields] fields = [fields]
......
from pystencils.cpu.kernelcreation import create_kernel, create_indexed_kernel, add_openmp
from pystencils.cpu.cpujit import make_python_function from pystencils.cpu.cpujit import make_python_function
from pystencils.cpu.kernelcreation import add_openmp, create_indexed_kernel, create_kernel
__all__ = ['create_kernel', 'create_indexed_kernel', 'add_openmp', 'make_python_function'] __all__ = ['create_kernel', 'create_indexed_kernel', 'add_openmp', 'make_python_function']
...@@ -43,25 +43,24 @@ Then 'cl.exe' is used to compile. ...@@ -43,25 +43,24 @@ Then 'cl.exe' is used to compile.
For Windows compilers the qualifier should be ``__restrict`` For Windows compilers the qualifier should be ``__restrict``
""" """
import os
import hashlib import hashlib
import json import json
import os
import platform import platform
import shutil import shutil
import subprocess
import textwrap import textwrap
from collections import OrderedDict
from sysconfig import get_paths
from tempfile import TemporaryDirectory from tempfile import TemporaryDirectory
import numpy as np import numpy as np
import subprocess from appdirs import user_cache_dir, user_config_dir
from appdirs import user_config_dir, user_cache_dir
from collections import OrderedDict
from pystencils.utils import recursive_dict_update
from sysconfig import get_paths
from pystencils import FieldType
from pystencils.backends.cbackend import generate_c, get_headers from pystencils.backends.cbackend import generate_c, get_headers
from pystencils.utils import file_handle_for_atomic_write, atomic_file_write from pystencils.field import FieldType
from pystencils.include import get_pystencils_include_path from pystencils.include import get_pystencils_include_path
from pystencils.utils import atomic_file_write, file_handle_for_atomic_write, recursive_dict_update
def make_python_function(kernel_function_node): def make_python_function(kernel_function_node):
......
from typing import List, Union
import sympy as sp import sympy as sp
from pystencils.astnodes import SympyAssignment, Block, LoopOverCoordinate, KernelFunction
from pystencils.transformations import resolve_buffer_accesses, resolve_field_accesses, make_loop_over_domain, \
add_types, get_optimal_loop_ordering, parse_base_pointer_info, move_constants_before_loop, \
split_inner_loop, get_base_buffer_index, filtered_tree_iteration
from pystencils.data_types import TypedSymbol, BasicType, StructType, create_type
from pystencils.field import Field, FieldType
import pystencils.astnodes as ast import pystencils.astnodes as ast
from pystencils.cpu.cpujit import make_python_function
from pystencils.assignment import Assignment from pystencils.assignment import Assignment
from typing import List, Union from pystencils.astnodes import Block, KernelFunction, LoopOverCoordinate, SympyAssignment
from pystencils.cpu.cpujit import make_python_function
from pystencils.data_types import BasicType, StructType, TypedSymbol, create_type
from pystencils.field import Field, FieldType
from pystencils.transformations import (
add_types, filtered_tree_iteration, get_base_buffer_index, get_optimal_loop_ordering,
make_loop_over_domain, move_constants_before_loop, parse_base_pointer_info,
resolve_buffer_accesses, resolve_field_accesses, split_inner_loop)
AssignmentOrAstNodeList = List[Union[Assignment, ast.Node]] AssignmentOrAstNodeList = List[Union[Assignment, ast.Node]]
......
import subprocess
import os import os
import subprocess
def get_environment(version_specifier, arch='x64'): def get_environment(version_specifier, arch='x64'):
......
import sympy as sp
import warnings import warnings
from typing import Union, Container from typing import Container, Union
from pystencils.backends.simd_instruction_sets import get_vector_instruction_set
from pystencils.fast_approximation import fast_division, fast_sqrt, fast_inv_sqrt import sympy as sp
from pystencils.integer_functions import modulo_floor, modulo_ceil
from pystencils.sympyextensions import fast_subs
from pystencils.data_types import TypedSymbol, VectorType, get_type_of_expression, vector_memory_access, cast_func, \
collate_types, PointerType
import pystencils.astnodes as ast import pystencils.astnodes as ast
from pystencils.transformations import cut_loop, filtered_tree_iteration, replace_inner_stride_with_one from pystencils.backends.simd_instruction_sets import get_vector_instruction_set
from pystencils.data_types import (
PointerType, TypedSymbol, VectorType, cast_func, collate_types, get_type_of_expression,
vector_memory_access)
from pystencils.fast_approximation import fast_division, fast_inv_sqrt, fast_sqrt
from pystencils.field import Field from pystencils.field import Field
from pystencils.integer_functions import modulo_ceil, modulo_floor
from pystencils.sympyextensions import fast_subs
from pystencils.transformations import (
cut_loop, filtered_tree_iteration, replace_inner_stride_with_one)
# noinspection PyPep8Naming # noinspection PyPep8Naming
......
import ctypes import ctypes
import sympy as sp
import numpy as np import numpy as np
import sympy as sp
from sympy.core.cache import cacheit
from sympy.logic.boolalg import Boolean
from pystencils.cache import memorycache
from pystencils.utils import all_equal
try: try:
import llvmlite.ir as ir import llvmlite.ir as ir
except ImportError as e: except ImportError as e:
ir = None ir = None
_ir_importerror = e _ir_importerror = e
from sympy.core.cache import cacheit
from pystencils.cache import memorycache
from pystencils.utils import all_equal
from sympy.logic.boolalg import Boolean
# noinspection PyPep8Naming # noinspection PyPep8Naming
......
from typing import Tuple, Union from typing import Tuple, Union
from .serial_datahandling import SerialDataHandling
from .datahandling_interface import DataHandling from .datahandling_interface import DataHandling
from .serial_datahandling import SerialDataHandling
try: try:
# noinspection PyPep8Naming # noinspection PyPep8Naming
......
...@@ -7,6 +7,7 @@ import numpy as np ...@@ -7,6 +7,7 @@ import numpy as np
from pystencils.datahandling.datahandling_interface import Block from pystencils.datahandling.datahandling_interface import Block
from pystencils.slicing import normalize_slice from pystencils.slicing import normalize_slice
try: try:
# noinspection PyPep8Naming # noinspection PyPep8Naming
import waLBerla as wlb import waLBerla as wlb
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment