From bcc8d8181082bcb5be41d157accef6f7e839a161 Mon Sep 17 00:00:00 2001
From: Frederik Hennig <frederik.hennig@fau.de>
Date: Tue, 16 Jan 2024 08:50:35 +0100
Subject: [PATCH] Refactor source tree layout

---
 .flake8                                       |   6 +--
 .gitignore                                    |  14 +++----
 .gitlab-ci.yml                                |  35 ++++++++++++------
 conftest.py                                   |  30 +++++++--------
 pyproject.toml                                |  10 +++--
 pytest.ini                                    |  21 ++++++-----
 quicktest.py                                  |   2 +-
 setup.py                                      |  10 ++++-
 {pystencils => src/pystencils}/__init__.py    |   0
 {pystencils => src/pystencils}/_version.py    |   0
 .../pystencils}/alignedarray.py               |   0
 {pystencils => src/pystencils}/assignment.py  |   0
 {pystencils => src/pystencils}/astnodes.py    |   0
 .../pystencils}/backends/__init__.py          |   0
 .../backends/arm_instruction_sets.py          |   0
 .../pystencils}/backends/cbackend.py          |   0
 .../pystencils}/backends/cuda_backend.py      |   0
 .../pystencils}/backends/dot.py               |   0
 .../pystencils}/backends/json.py              |   0
 .../backends/ppc_instruction_sets.py          |   0
 .../backends/riscv_instruction_sets.py        |   0
 .../backends/simd_instruction_sets.py         |   0
 .../backends/x86_instruction_sets.py          |   0
 {pystencils => src/pystencils}/bit_masks.py   |   0
 .../pystencils}/boundaries/__init__.py        |   0
 .../boundaries/boundaryconditions.py          |   0
 .../boundaries/boundaryhandling.py            |   0
 .../pystencils}/boundaries/createindexlist.py |   0
 .../boundaries/createindexlistcython.pyx      |   0
 .../pystencils}/boundaries/inkernel.py        |   0
 {pystencils => src/pystencils}/cache.py       |   0
 {pystencils => src/pystencils}/config.py      |   0
 .../pystencils}/cpu/__init__.py               |   0
 {pystencils => src/pystencils}/cpu/cpujit.py  |   0
 .../pystencils}/cpu/kernelcreation.py         |   0
 .../pystencils}/cpu/msvc_detection.py         |   0
 .../pystencils}/cpu/vectorization.py          |   0
 .../pystencils}/datahandling/__init__.py      |   0
 .../datahandling/blockiteration.py            |   0
 .../datahandling/datahandling_interface.py    |   0
 .../datahandling/parallel_datahandling.py     |   0
 .../datahandling/serial_datahandling.py       |   0
 .../pystencils}/datahandling/vtk.py           |   0
 .../pystencils}/display_utils.py              |   0
 {pystencils => src/pystencils}/enums.py       |   0
 .../pystencils}/fast_approximation.py         |   0
 {pystencils => src/pystencils}/fd/__init__.py |   0
 .../pystencils}/fd/derivation.py              |   0
 .../pystencils}/fd/derivative.py              |   0
 .../pystencils}/fd/finitedifferences.py       |   0
 .../pystencils}/fd/finitevolumes.py           |   0
 {pystencils => src/pystencils}/fd/spatial.py  |   0
 {pystencils => src/pystencils}/field.py       |   0
 {pystencils => src/pystencils}/functions.py   |   0
 .../pystencils}/gpu/__init__.py               |   0
 .../pystencils}/gpu/gpu_array_handler.py      |   0
 {pystencils => src/pystencils}/gpu/gpujit.py  |   0
 .../pystencils}/gpu/indexing.py               |   0
 .../pystencils}/gpu/kernelcreation.py         |   0
 .../pystencils}/gpu/periodicity.py            |   0
 .../pystencils}/include/PyStencilsField.h     |   0
 .../pystencils}/include/__init__.py           |   0
 .../pystencils}/include/aesni_rand.h          |   0
 .../pystencils}/include/arm_neon_helpers.h    |   0
 .../pystencils}/include/gpu_defines.h         |   0
 .../pystencils}/include/half_precision.h      |   0
 .../pystencils}/include/myintrin.h            |   0
 .../pystencils}/include/philox_rand.h         |   0
 .../pystencils}/include/ppc_altivec_helpers.h |   0
 .../pystencils}/integer_functions.py          |   0
 .../pystencils}/integer_set_analysis.py       |   0
 {pystencils => src/pystencils}/jupyter.py     |   0
 .../pystencils}/kernel_contrains_check.py     |   0
 .../pystencils}/kernel_decorator.py           |   0
 .../pystencils}/kernel_wrapper.py             |   0
 .../pystencils}/kernelcreation.py             |   0
 .../pystencils}/node_collection.py            |   0
 .../pystencils}/placeholder_function.py       |   0
 {pystencils => src/pystencils}/plot.py        |   0
 {pystencils => src/pystencils}/rng.py         |   0
 .../pystencils}/runhelper/__init__.py         |   0
 .../pystencils}/runhelper/db.py               |   0
 .../pystencils}/runhelper/parameterstudy.py   |   0
 {pystencils => src/pystencils}/session.py     |   0
 .../pystencils}/simp/__init__.py              |   0
 .../pystencils}/simp/assignment_collection.py |   0
 .../pystencils}/simp/simplifications.py       |   0
 .../simp/simplificationstrategy.py            |   0
 .../simp/subexpression_insertion.py           |   0
 .../pystencils}/simplificationfactory.py      |   0
 {pystencils => src/pystencils}/slicing.py     |   0
 .../pystencils}/spatial_coordinates.py        |   0
 {pystencils => src/pystencils}/stencil.py     |   0
 .../pystencils}/sympyextensions.py            |   0
 {pystencils => src/pystencils}/timeloop.py    |   0
 .../pystencils}/transformations.py            |   0
 .../pystencils}/typing/__init__.py            |   0
 .../pystencils}/typing/cast_functions.py      |   0
 .../pystencils}/typing/leaf_typing.py         |   0
 .../pystencils}/typing/transformations.py     |   0
 .../pystencils}/typing/typed_sympy.py         |   0
 .../pystencils}/typing/types.py               |   0
 .../pystencils}/typing/utilities.py           |   0
 {pystencils => src/pystencils}/utils.py       |   0
 {pystencils_tests => tests}/__init__.py       |   0
 {pystencils_tests => tests}/test_Min_Max.py   |   0
 {pystencils_tests => tests}/test_abs.py       |   0
 .../test_address_of.py                        |   0
 .../test_aligned_array.py                     |   0
 .../test_assignment_collection.py             |   0
 ...t_assignment_collection_dict_conversion.py |   0
 .../test_assignment_from_stencil.py           |   0
 {pystencils_tests => tests}/test_astnodes.py  |   0
 .../test_augmented_assignment.py              |   0
 .../test_base_pointer_specification.py        |   0
 {pystencils_tests => tests}/test_bit_masks.py |   0
 {pystencils_tests => tests}/test_blocking.py  |   0
 .../test_blocking_staggered.py                |   0
 {pystencils_tests => tests}/test_boundary.py  |   0
 .../test_boundary_indexlist_creation.py       |   0
 {pystencils_tests => tests}/test_buffer.py    |   0
 .../test_buffer_gpu.py                        |   0
 .../test_conditional_field_access.py          |   0
 .../test_conditional_vec.py                   |   0
 {pystencils_tests => tests}/test_config.py    |   0
 .../test_create_kernel_config.py              |   0
 .../test_custom_backends.py                   |   0
 .../test_data/datahandling_load_test.npz      | Bin
 .../datahandling_parallel_load_test/dst.dat   | Bin
 .../datahandling_parallel_load_test/src.dat   | Bin
 .../datahandling_parallel_save_test/dst.dat   | Bin
 .../datahandling_parallel_save_test/src.dat   | Bin
 .../test_data/datahandling_save_test.npz      | Bin
 .../test_data/lenna.png                       | Bin
 .../test_data/test_vessel2d_mask.png          | Bin
 .../test_datahandling.py                      |   0
 .../test_datahandling_parallel.py             |   2 +-
 .../test_derivative.py                        |   0
 .../test_dot_printer.ipynb                    |   0
 .../test_dot_printer.py                       |   0
 .../test_dtype_check.py                       |   0
 .../test_fast_approximation.py                |   0
 .../test_fd_derivation.ipynb                  |   0
 .../test_fd_derivation_via_rotation.ipynb     |   0
 .../test_fd_derivative.py                     |   0
 {pystencils_tests => tests}/test_field.py     |   0
 .../test_field_access_poly.py                 |   0
 .../test_field_equality.ipynb                 |   0
 .../test_finite_differences.py                |   0
 .../test_floor_ceil_int_optimization.py       |   0
 {pystencils_tests => tests}/test_fvm.py       |   0
 .../test_global_definitions.py                |   0
 {pystencils_tests => tests}/test_gpu.py       |   0
 .../test_half_precision.py                    |   0
 .../test_helpful_errors.py                    |   0
 .../test_indexed_kernels.py                   |   0
 .../test_jacobi_cbackend.py                   |   0
 .../test_json_backend.py                      |   0
 .../test_json_serializer.py                   |   0
 .../test_jupyter_extensions.ipynb             |   0
 {pystencils_tests => tests}/test_logarithm.py |   0
 .../test_loop_cutting.py                      |   0
 ...st_match_subs_for_assignment_collection.py |   0
 .../test_math_functions.py                    |   0
 {pystencils_tests => tests}/test_modulo.py    |   0
 .../test_move_constant_before_loop.py         |   0
 .../test_nodecollection.py                    |   0
 .../test_parameterstudy.py                    |   0
 .../test_phasefield_dentritic_3D.ipynb        |   0
 .../test_pickle_support.py                    |   0
 {pystencils_tests => tests}/test_plot.py      |   0
 {pystencils_tests => tests}/test_printing.py  |   0
 .../test_quicktests.py                        |   0
 {pystencils_tests => tests}/test_random.py    |   0
 .../test_sharedmethodcache.py                 |   0
 .../test_simplification_strategy.py           |   0
 .../test_simplifications.py                   |   0
 .../test_size_and_layout_checks.py            |   0
 .../test_sliced_iteration.py                  |   0
 {pystencils_tests => tests}/test_slicing.py   |   0
 .../test_small_block_benchmark.ipynb          |   0
 .../test_source_code_comment.py               |   0
 .../test_staggered_kernel.py                  |   0
 .../test_stencil_plot.ipynb                   |   0
 {pystencils_tests => tests}/test_stencils.py  |   0
 .../test_struct_types.py                      |   0
 .../test_subexpression_insertion.py           |   0
 {pystencils_tests => tests}/test_sum_prod.py  |   0
 .../test_sympyextensions.py                   |   0
 {pystencils_tests => tests}/test_timeloop.py  |   0
 .../test_transformations.py                   |   0
 .../test_type_interference.py                 |   0
 {pystencils_tests => tests}/test_types.py     |   0
 {pystencils_tests => tests}/test_utils.py     |   0
 .../test_vectorization.py                     |   0
 .../test_vectorization_specific.py            |   0
 .../test_version_string.py                    |   0
 197 files changed, 76 insertions(+), 54 deletions(-)
 rename {pystencils => src/pystencils}/__init__.py (100%)
 rename {pystencils => src/pystencils}/_version.py (100%)
 rename {pystencils => src/pystencils}/alignedarray.py (100%)
 rename {pystencils => src/pystencils}/assignment.py (100%)
 rename {pystencils => src/pystencils}/astnodes.py (100%)
 rename {pystencils => src/pystencils}/backends/__init__.py (100%)
 rename {pystencils => src/pystencils}/backends/arm_instruction_sets.py (100%)
 rename {pystencils => src/pystencils}/backends/cbackend.py (100%)
 rename {pystencils => src/pystencils}/backends/cuda_backend.py (100%)
 rename {pystencils => src/pystencils}/backends/dot.py (100%)
 rename {pystencils => src/pystencils}/backends/json.py (100%)
 rename {pystencils => src/pystencils}/backends/ppc_instruction_sets.py (100%)
 rename {pystencils => src/pystencils}/backends/riscv_instruction_sets.py (100%)
 rename {pystencils => src/pystencils}/backends/simd_instruction_sets.py (100%)
 rename {pystencils => src/pystencils}/backends/x86_instruction_sets.py (100%)
 rename {pystencils => src/pystencils}/bit_masks.py (100%)
 rename {pystencils => src/pystencils}/boundaries/__init__.py (100%)
 rename {pystencils => src/pystencils}/boundaries/boundaryconditions.py (100%)
 rename {pystencils => src/pystencils}/boundaries/boundaryhandling.py (100%)
 rename {pystencils => src/pystencils}/boundaries/createindexlist.py (100%)
 rename {pystencils => src/pystencils}/boundaries/createindexlistcython.pyx (100%)
 rename {pystencils => src/pystencils}/boundaries/inkernel.py (100%)
 rename {pystencils => src/pystencils}/cache.py (100%)
 rename {pystencils => src/pystencils}/config.py (100%)
 rename {pystencils => src/pystencils}/cpu/__init__.py (100%)
 rename {pystencils => src/pystencils}/cpu/cpujit.py (100%)
 rename {pystencils => src/pystencils}/cpu/kernelcreation.py (100%)
 rename {pystencils => src/pystencils}/cpu/msvc_detection.py (100%)
 rename {pystencils => src/pystencils}/cpu/vectorization.py (100%)
 rename {pystencils => src/pystencils}/datahandling/__init__.py (100%)
 rename {pystencils => src/pystencils}/datahandling/blockiteration.py (100%)
 rename {pystencils => src/pystencils}/datahandling/datahandling_interface.py (100%)
 rename {pystencils => src/pystencils}/datahandling/parallel_datahandling.py (100%)
 rename {pystencils => src/pystencils}/datahandling/serial_datahandling.py (100%)
 rename {pystencils => src/pystencils}/datahandling/vtk.py (100%)
 rename {pystencils => src/pystencils}/display_utils.py (100%)
 rename {pystencils => src/pystencils}/enums.py (100%)
 rename {pystencils => src/pystencils}/fast_approximation.py (100%)
 rename {pystencils => src/pystencils}/fd/__init__.py (100%)
 rename {pystencils => src/pystencils}/fd/derivation.py (100%)
 rename {pystencils => src/pystencils}/fd/derivative.py (100%)
 rename {pystencils => src/pystencils}/fd/finitedifferences.py (100%)
 rename {pystencils => src/pystencils}/fd/finitevolumes.py (100%)
 rename {pystencils => src/pystencils}/fd/spatial.py (100%)
 rename {pystencils => src/pystencils}/field.py (100%)
 rename {pystencils => src/pystencils}/functions.py (100%)
 rename {pystencils => src/pystencils}/gpu/__init__.py (100%)
 rename {pystencils => src/pystencils}/gpu/gpu_array_handler.py (100%)
 rename {pystencils => src/pystencils}/gpu/gpujit.py (100%)
 rename {pystencils => src/pystencils}/gpu/indexing.py (100%)
 rename {pystencils => src/pystencils}/gpu/kernelcreation.py (100%)
 rename {pystencils => src/pystencils}/gpu/periodicity.py (100%)
 rename {pystencils => src/pystencils}/include/PyStencilsField.h (100%)
 rename {pystencils => src/pystencils}/include/__init__.py (100%)
 rename {pystencils => src/pystencils}/include/aesni_rand.h (100%)
 rename {pystencils => src/pystencils}/include/arm_neon_helpers.h (100%)
 rename {pystencils => src/pystencils}/include/gpu_defines.h (100%)
 rename {pystencils => src/pystencils}/include/half_precision.h (100%)
 rename {pystencils => src/pystencils}/include/myintrin.h (100%)
 rename {pystencils => src/pystencils}/include/philox_rand.h (100%)
 rename {pystencils => src/pystencils}/include/ppc_altivec_helpers.h (100%)
 rename {pystencils => src/pystencils}/integer_functions.py (100%)
 rename {pystencils => src/pystencils}/integer_set_analysis.py (100%)
 rename {pystencils => src/pystencils}/jupyter.py (100%)
 rename {pystencils => src/pystencils}/kernel_contrains_check.py (100%)
 rename {pystencils => src/pystencils}/kernel_decorator.py (100%)
 rename {pystencils => src/pystencils}/kernel_wrapper.py (100%)
 rename {pystencils => src/pystencils}/kernelcreation.py (100%)
 rename {pystencils => src/pystencils}/node_collection.py (100%)
 rename {pystencils => src/pystencils}/placeholder_function.py (100%)
 rename {pystencils => src/pystencils}/plot.py (100%)
 rename {pystencils => src/pystencils}/rng.py (100%)
 rename {pystencils => src/pystencils}/runhelper/__init__.py (100%)
 rename {pystencils => src/pystencils}/runhelper/db.py (100%)
 rename {pystencils => src/pystencils}/runhelper/parameterstudy.py (100%)
 rename {pystencils => src/pystencils}/session.py (100%)
 rename {pystencils => src/pystencils}/simp/__init__.py (100%)
 rename {pystencils => src/pystencils}/simp/assignment_collection.py (100%)
 rename {pystencils => src/pystencils}/simp/simplifications.py (100%)
 rename {pystencils => src/pystencils}/simp/simplificationstrategy.py (100%)
 rename {pystencils => src/pystencils}/simp/subexpression_insertion.py (100%)
 rename {pystencils => src/pystencils}/simplificationfactory.py (100%)
 rename {pystencils => src/pystencils}/slicing.py (100%)
 rename {pystencils => src/pystencils}/spatial_coordinates.py (100%)
 rename {pystencils => src/pystencils}/stencil.py (100%)
 rename {pystencils => src/pystencils}/sympyextensions.py (100%)
 rename {pystencils => src/pystencils}/timeloop.py (100%)
 rename {pystencils => src/pystencils}/transformations.py (100%)
 rename {pystencils => src/pystencils}/typing/__init__.py (100%)
 rename {pystencils => src/pystencils}/typing/cast_functions.py (100%)
 rename {pystencils => src/pystencils}/typing/leaf_typing.py (100%)
 rename {pystencils => src/pystencils}/typing/transformations.py (100%)
 rename {pystencils => src/pystencils}/typing/typed_sympy.py (100%)
 rename {pystencils => src/pystencils}/typing/types.py (100%)
 rename {pystencils => src/pystencils}/typing/utilities.py (100%)
 rename {pystencils => src/pystencils}/utils.py (100%)
 rename {pystencils_tests => tests}/__init__.py (100%)
 rename {pystencils_tests => tests}/test_Min_Max.py (100%)
 rename {pystencils_tests => tests}/test_abs.py (100%)
 rename {pystencils_tests => tests}/test_address_of.py (100%)
 rename {pystencils_tests => tests}/test_aligned_array.py (100%)
 rename {pystencils_tests => tests}/test_assignment_collection.py (100%)
 rename {pystencils_tests => tests}/test_assignment_collection_dict_conversion.py (100%)
 rename {pystencils_tests => tests}/test_assignment_from_stencil.py (100%)
 rename {pystencils_tests => tests}/test_astnodes.py (100%)
 rename {pystencils_tests => tests}/test_augmented_assignment.py (100%)
 rename {pystencils_tests => tests}/test_base_pointer_specification.py (100%)
 rename {pystencils_tests => tests}/test_bit_masks.py (100%)
 rename {pystencils_tests => tests}/test_blocking.py (100%)
 rename {pystencils_tests => tests}/test_blocking_staggered.py (100%)
 rename {pystencils_tests => tests}/test_boundary.py (100%)
 rename {pystencils_tests => tests}/test_boundary_indexlist_creation.py (100%)
 rename {pystencils_tests => tests}/test_buffer.py (100%)
 rename {pystencils_tests => tests}/test_buffer_gpu.py (100%)
 rename {pystencils_tests => tests}/test_conditional_field_access.py (100%)
 rename {pystencils_tests => tests}/test_conditional_vec.py (100%)
 rename {pystencils_tests => tests}/test_config.py (100%)
 rename {pystencils_tests => tests}/test_create_kernel_config.py (100%)
 rename {pystencils_tests => tests}/test_custom_backends.py (100%)
 rename {pystencils_tests => tests}/test_data/datahandling_load_test.npz (100%)
 rename {pystencils_tests => tests}/test_data/datahandling_parallel_load_test/dst.dat (100%)
 rename {pystencils_tests => tests}/test_data/datahandling_parallel_load_test/src.dat (100%)
 rename {pystencils_tests => tests}/test_data/datahandling_parallel_save_test/dst.dat (100%)
 rename {pystencils_tests => tests}/test_data/datahandling_parallel_save_test/src.dat (100%)
 rename {pystencils_tests => tests}/test_data/datahandling_save_test.npz (100%)
 rename {pystencils_tests => tests}/test_data/lenna.png (100%)
 rename {pystencils_tests => tests}/test_data/test_vessel2d_mask.png (100%)
 rename {pystencils_tests => tests}/test_datahandling.py (100%)
 rename {pystencils_tests => tests}/test_datahandling_parallel.py (99%)
 rename {pystencils_tests => tests}/test_derivative.py (100%)
 rename {pystencils_tests => tests}/test_dot_printer.ipynb (100%)
 rename {pystencils_tests => tests}/test_dot_printer.py (100%)
 rename {pystencils_tests => tests}/test_dtype_check.py (100%)
 rename {pystencils_tests => tests}/test_fast_approximation.py (100%)
 rename {pystencils_tests => tests}/test_fd_derivation.ipynb (100%)
 rename {pystencils_tests => tests}/test_fd_derivation_via_rotation.ipynb (100%)
 rename {pystencils_tests => tests}/test_fd_derivative.py (100%)
 rename {pystencils_tests => tests}/test_field.py (100%)
 rename {pystencils_tests => tests}/test_field_access_poly.py (100%)
 rename {pystencils_tests => tests}/test_field_equality.ipynb (100%)
 rename {pystencils_tests => tests}/test_finite_differences.py (100%)
 rename {pystencils_tests => tests}/test_floor_ceil_int_optimization.py (100%)
 rename {pystencils_tests => tests}/test_fvm.py (100%)
 rename {pystencils_tests => tests}/test_global_definitions.py (100%)
 rename {pystencils_tests => tests}/test_gpu.py (100%)
 rename {pystencils_tests => tests}/test_half_precision.py (100%)
 rename {pystencils_tests => tests}/test_helpful_errors.py (100%)
 rename {pystencils_tests => tests}/test_indexed_kernels.py (100%)
 rename {pystencils_tests => tests}/test_jacobi_cbackend.py (100%)
 rename {pystencils_tests => tests}/test_json_backend.py (100%)
 rename {pystencils_tests => tests}/test_json_serializer.py (100%)
 rename {pystencils_tests => tests}/test_jupyter_extensions.ipynb (100%)
 rename {pystencils_tests => tests}/test_logarithm.py (100%)
 rename {pystencils_tests => tests}/test_loop_cutting.py (100%)
 rename {pystencils_tests => tests}/test_match_subs_for_assignment_collection.py (100%)
 rename {pystencils_tests => tests}/test_math_functions.py (100%)
 rename {pystencils_tests => tests}/test_modulo.py (100%)
 rename {pystencils_tests => tests}/test_move_constant_before_loop.py (100%)
 rename {pystencils_tests => tests}/test_nodecollection.py (100%)
 rename {pystencils_tests => tests}/test_parameterstudy.py (100%)
 rename {pystencils_tests => tests}/test_phasefield_dentritic_3D.ipynb (100%)
 rename {pystencils_tests => tests}/test_pickle_support.py (100%)
 rename {pystencils_tests => tests}/test_plot.py (100%)
 rename {pystencils_tests => tests}/test_printing.py (100%)
 rename {pystencils_tests => tests}/test_quicktests.py (100%)
 rename {pystencils_tests => tests}/test_random.py (100%)
 rename {pystencils_tests => tests}/test_sharedmethodcache.py (100%)
 rename {pystencils_tests => tests}/test_simplification_strategy.py (100%)
 rename {pystencils_tests => tests}/test_simplifications.py (100%)
 rename {pystencils_tests => tests}/test_size_and_layout_checks.py (100%)
 rename {pystencils_tests => tests}/test_sliced_iteration.py (100%)
 rename {pystencils_tests => tests}/test_slicing.py (100%)
 rename {pystencils_tests => tests}/test_small_block_benchmark.ipynb (100%)
 rename {pystencils_tests => tests}/test_source_code_comment.py (100%)
 rename {pystencils_tests => tests}/test_staggered_kernel.py (100%)
 rename {pystencils_tests => tests}/test_stencil_plot.ipynb (100%)
 rename {pystencils_tests => tests}/test_stencils.py (100%)
 rename {pystencils_tests => tests}/test_struct_types.py (100%)
 rename {pystencils_tests => tests}/test_subexpression_insertion.py (100%)
 rename {pystencils_tests => tests}/test_sum_prod.py (100%)
 rename {pystencils_tests => tests}/test_sympyextensions.py (100%)
 rename {pystencils_tests => tests}/test_timeloop.py (100%)
 rename {pystencils_tests => tests}/test_transformations.py (100%)
 rename {pystencils_tests => tests}/test_type_interference.py (100%)
 rename {pystencils_tests => tests}/test_types.py (100%)
 rename {pystencils_tests => tests}/test_utils.py (100%)
 rename {pystencils_tests => tests}/test_vectorization.py (100%)
 rename {pystencils_tests => tests}/test_vectorization_specific.py (100%)
 rename {pystencils_tests => tests}/test_version_string.py (100%)

diff --git a/.flake8 b/.flake8
index 5701df707..8b65d20eb 100644
--- a/.flake8
+++ b/.flake8
@@ -1,6 +1,6 @@
 [flake8]
 max-line-length=120
-exclude=pystencils/jupyter.py,
-        pystencils/plot.py
-        pystencils/session.py
+exclude=src/pystencils/jupyter.py,
+        src/pystencils/plot.py
+        src/pystencils/session.py
 ignore = W293 W503 W291 C901 E741
diff --git a/.gitignore b/.gitignore
index e6e71f76d..992284e7d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,7 +5,7 @@ __pycache__
 *.vti
 /build
 /dist
-/*.egg-info
+*.egg-info
 .cache
 _build
 /html_doc
@@ -15,12 +15,12 @@ _build
 _local_tmp
 RELEASE-VERSION
 test-report
-pystencils/boundaries/createindexlistcython.c
-pystencils/boundaries/createindexlistcython.*.so
-pystencils_tests/tmp
-pystencils_tests/var
-pystencils_tests/kerncraft_inputs/.2d-5pt.c_kerncraft/
-pystencils_tests/kerncraft_inputs/.3d-7pt.c_kerncraft/
+src/pystencils/boundaries/createindexlistcython.c
+src/pystencils/boundaries/createindexlistcython.*.so
+tests/tmp
+tests/var
+tests/kerncraft_inputs/.2d-5pt.c_kerncraft/
+tests/kerncraft_inputs/.3d-7pt.c_kerncraft/
 report.xml
 coverage_report/
 
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3680e33aa..c05cdb088 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -13,16 +13,17 @@ tests-and-coverage:
     variables:
       - $ENABLE_NIGHTLY_BUILDS
   image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full
+  before_script:
+    - pip install -e .
   script:
-    - pip install sympy --upgrade
     - env
     - pip list
     - export NUM_CORES=$(nproc --all)
     - mkdir -p ~/.config/matplotlib
     - echo "backend:template" > ~/.config/matplotlib/matplotlibrc
     - mkdir public
-    - py.test -v -n $NUM_CORES --cov-report html --cov-report xml --cov-report term --cov=. -m "not longrun" --html test-report/index.html --junitxml=report.xml
-    - python3 -m coverage xml
+    - pytest -v -n $NUM_CORES --cov-report html --cov-report xml --cov-report term --cov=. -m "not longrun" --html test-report/index.html --junitxml=report.xml
+    - python -m coverage xml
   tags:
     - docker
     - cuda11
@@ -45,8 +46,10 @@ tests-and-coverage-with-longrun:
   when: manual
   allow_failure: true
   image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full
-  script:
+  before_script:
     - pip install sympy --upgrade
+    - pip install -e .
+  script:
     - env
     - pip list
     - export NUM_CORES=$(nproc --all)
@@ -66,9 +69,12 @@ latest-python:
     variables:
       - $ENABLE_NIGHTLY_BUILDS
   image: i10git.cs.fau.de:5005/pycodegen/pycodegen/latest_python
+  before_script:
+    - pip install -e .
   script:
     - env
     - pip list
+    - pip install -e .
     - export NUM_CORES=$(nproc --all)
     - mkdir -p ~/.config/matplotlib
     - echo "backend:template" > ~/.config/matplotlib/matplotlibrc
@@ -107,18 +113,16 @@ ubuntu:
       - $ENABLE_NIGHTLY_BUILDS
   image: i10git.cs.fau.de:5005/pycodegen/pycodegen/ubuntu
   before_script:
-    - apt-get -y remove python3-sympy
     - ln -s /usr/include/locale.h /usr/include/xlocale.h
-    - pip3 install `grep -Eo 'sympy[>=]+[0-9\.]+' pyproject.toml | sed 's/>/=/g'`
-    # - pip3 install `grep -Eo 'sympy[>=]+[0-9\.]+' setup.py | sed 's/>/=/g'`
+    - pip3 install -e .
   script:
     - export NUM_CORES=$(nproc --all)
     - mkdir -p ~/.config/matplotlib
     - echo "backend:template" > ~/.config/matplotlib/matplotlibrc
     - sed -i 's/--doctest-modules //g' pytest.ini
     - env
-    - pip3 list
-    - pytest-3 -v -n $NUM_CORES -m "not longrun" --junitxml=report.xml
+    - pip list
+    - pytest -v -n $NUM_CORES -m "not longrun" --junitxml=report.xml
   tags:
     - docker
     - cuda11
@@ -134,6 +138,8 @@ ubuntu:
     variables:
       - $ENABLE_NIGHTLY_BUILDS
   before_script: &multiarch_before_script
+    # - pip3 install -v .
+    - export PYTHONPATH=src
     - python3 -c "import pystencils as ps; ps.cpu.cpujit.read_config()"
     - sed -i '/^fail_under.*/d' pytest.ini
   script:
@@ -143,7 +149,7 @@ ubuntu:
     - sed -i 's/--doctest-modules //g' pytest.ini
     - env
     - pip3 list
-    - pytest-3 -v -n $NUM_CORES --junitxml=report.xml pystencils_tests/test_*vec*.py pystencils_tests/test_random.py pystencils_tests/test_half_precision.py
+    - python3 -m pytest -v -n $NUM_CORES --junitxml=report.xml tests/test_*vec*.py tests/test_random.py tests/test_half_precision.py
   tags:
     - docker
     - AVX
@@ -199,6 +205,8 @@ minimal-conda:
     variables:
       - $ENABLE_NIGHTLY_BUILDS
   image: i10git.cs.fau.de:5005/pycodegen/pycodegen/minimal_conda
+  before_script:
+    - pip install -e .
   script:
     - python quicktest.py
   tags:
@@ -212,6 +220,8 @@ minimal-sympy-master:
     variables:
       - $ENABLE_NIGHTLY_BUILDS
   image: i10git.cs.fau.de:5005/pycodegen/pycodegen/minimal_conda
+  before_script:
+    - pip install -e .
   script:
     - python -m pip install --upgrade git+https://github.com/sympy/sympy.git
     - python quicktest.py
@@ -275,7 +285,7 @@ flake8-lint:
       - $ENABLE_NIGHTLY_BUILDS
   image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full
   script:
-    - flake8 pystencils
+    - flake8 src/pystencils
   tags:
     - docker
 
@@ -283,8 +293,9 @@ flake8-lint:
 build-documentation:
   stage: test
   image: i10git.cs.fau.de:5005/pycodegen/pycodegen/documentation
+  before_script:
+    - pip install -e .
   script:
-    - export PYTHONPATH=`pwd`
     - mkdir html_doc
     - sphinx-build -b html doc  html_doc
     - sphinx-build -W -b html doc  html_doc
diff --git a/conftest.py b/conftest.py
index 040ddf595..70f4f241f 100644
--- a/conftest.py
+++ b/conftest.py
@@ -8,7 +8,7 @@ import nbformat
 import pytest
 from nbconvert import PythonExporter
 
-from pystencils.boundaries.createindexlistcython import *  # NOQA
+from pystencils.boundaries.createindexlist import *  # NOQA
 # Trigger config file reading / creation once - to avoid race conditions when multiple instances are creating it
 # at the same time
 from pystencils.cpu import cpujit
@@ -40,48 +40,48 @@ def add_path_to_ignore(path):
 
 
 collect_ignore = [os.path.join(SCRIPT_FOLDER, "doc", "conf.py"),
-                  os.path.join(SCRIPT_FOLDER, "pystencils", "opencl", "opencl.autoinit")]
-add_path_to_ignore('pystencils_tests/benchmark')
+                  os.path.join(SCRIPT_FOLDER, "src", "pystencils", "opencl", "opencl.autoinit")]
+add_path_to_ignore('tests/benchmark')
 add_path_to_ignore('_local_tmp')
 
 
 try:
     import cupy
 except ImportError:
-    collect_ignore += [os.path.join(SCRIPT_FOLDER, "pystencils_tests/test_gpu.py")]
-    add_path_to_ignore('pystencils/gpu')
+    collect_ignore += [os.path.join(SCRIPT_FOLDER, "tests/test_gpu.py")]
+    add_path_to_ignore('src/pystencils/gpu')
 
 try:
     import waLBerla
 except ImportError:
-    collect_ignore += [os.path.join(SCRIPT_FOLDER, "pystencils_tests/test_aligned_array.py"),
-                       os.path.join(SCRIPT_FOLDER, "pystencils_tests/test_datahandling_parallel.py"),
+    collect_ignore += [os.path.join(SCRIPT_FOLDER, "tests/test_aligned_array.py"),
+                       os.path.join(SCRIPT_FOLDER, "tests/test_datahandling_parallel.py"),
                        os.path.join(SCRIPT_FOLDER, "doc/notebooks/03_tutorial_datahandling.ipynb"),
-                       os.path.join(SCRIPT_FOLDER, "pystencils/datahandling/parallel_datahandling.py"),
-                       os.path.join(SCRIPT_FOLDER, "pystencils_tests/test_small_block_benchmark.ipynb")]
+                       os.path.join(SCRIPT_FOLDER, "src/pystencils/datahandling/parallel_datahandling.py"),
+                       os.path.join(SCRIPT_FOLDER, "tests/test_small_block_benchmark.ipynb")]
 
 try:
     import blitzdb
 except ImportError:
-    add_path_to_ignore('pystencils/runhelper')
-    collect_ignore += [os.path.join(SCRIPT_FOLDER, "pystencils_tests/test_parameterstudy.py")]
-    collect_ignore += [os.path.join(SCRIPT_FOLDER, "pystencils_tests/test_json_serializer.py")]
+    add_path_to_ignore('src/pystencils/runhelper')
+    collect_ignore += [os.path.join(SCRIPT_FOLDER, "tests/test_parameterstudy.py")]
+    collect_ignore += [os.path.join(SCRIPT_FOLDER, "tests/test_json_serializer.py")]
 
 try:
     import islpy
 except ImportError:
-    collect_ignore += [os.path.join(SCRIPT_FOLDER, "pystencils/integer_set_analysis.py")]
+    collect_ignore += [os.path.join(SCRIPT_FOLDER, "src/pystencils/integer_set_analysis.py")]
 
 try:
     import graphviz
 except ImportError:
-    collect_ignore += [os.path.join(SCRIPT_FOLDER, "pystencils/backends/dot.py")]
+    collect_ignore += [os.path.join(SCRIPT_FOLDER, "src/pystencils/backends/dot.py")]
     collect_ignore += [os.path.join(SCRIPT_FOLDER, "doc/notebooks/01_tutorial_getting_started.ipynb")]
 
 try:
     import pyevtk
 except ImportError:
-    collect_ignore += [os.path.join(SCRIPT_FOLDER, "pystencils/datahandling/vtk.py")]
+    collect_ignore += [os.path.join(SCRIPT_FOLDER, "src/pystencils/datahandling/vtk.py")]
 
 collect_ignore += [os.path.join(SCRIPT_FOLDER, 'setup.py')]
 
diff --git a/pyproject.toml b/pyproject.toml
index f815ff304..44dcfbf5a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,7 +12,7 @@ authors = [
 ]
 license = { file = "COPYING.txt" }
 requires-python = ">=3.10"
-dependencies = ["sympy>=1.6,<=1.11.1", "numpy>=1.8.0", "appdirs", "joblib"]
+dependencies = ["sympy>=1.6,<=1.11.1", "numpy>=1.8.0", "appdirs", "joblib", "pyyaml"]
 classifiers = [
     "Development Status :: 4 - Beta",
     "Framework :: Jupyter",
@@ -62,12 +62,14 @@ tests = [
     'nbformat',
     'nbconvert',
     'ipython',
+    'matplotlib',
+    'py-cpuinfo',
     'randomgen>=1.18',
 ]
 
 [build-system]
 requires = [
-    "setuptools>=69",
+    "setuptools>=61",
     "versioneer>=0.29",
     "tomli; python_version < '3.11'",
     # 'Cython'
@@ -84,7 +86,7 @@ pystencils = [
 ]
 
 [tool.setuptools.packages.find]
-where = ["."]
+where = ["src"]
 include = ["pystencils", "pystencils.*"]
 namespaces = false
 
@@ -94,7 +96,7 @@ namespaces = false
 # resulting files.
 VCS = "git"
 style = "pep440"
-versionfile_source = "pystencils/_version.py"
+versionfile_source = "src/pystencils/_version.py"
 versionfile_build = "pystencils/_version.py"
 tag_prefix = "release/"
 parentdir_prefix = "pystencils-"
diff --git a/pytest.ini b/pytest.ini
index 143e8aa34..8c445bea6 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -1,4 +1,6 @@
 [pytest]
+testpaths = src tests doc/notebooks
+pythonpath = src
 python_files = test_*.py *_test.py scenario_*.py
 norecursedirs = *.egg-info .git .cache .ipynb_checkpoints htmlcov
 addopts = --doctest-modules --durations=20  --cov-config pytest.ini
@@ -17,20 +19,21 @@ filterwarnings =
 
 [run]
 branch = True
-source = pystencils
-         pystencils_tests
+source = src/pystencils
+         tests
 
 omit = doc/*
-       pystencils_tests/*
+       tests/*
        setup.py
+       quicktest.py
        conftest.py
        versioneer.py
-       pystencils/jupytersetup.py
-       pystencils/cpu/msvc_detection.py
-       pystencils/sympy_gmpy_bug_workaround.py
-       pystencils/cache.py
-       pystencils/pacxx/benchmark.py
-       pystencils/_version.py
+       src/pystencils/jupytersetup.py
+       src/pystencils/cpu/msvc_detection.py
+       src/pystencils/sympy_gmpy_bug_workaround.py
+       src/pystencils/cache.py
+       src/pystencils/pacxx/benchmark.py
+       src/pystencils/_version.py
        venv/
 
 [report]
diff --git a/quicktest.py b/quicktest.py
index 04b71cb49..804a70ce9 100644
--- a/quicktest.py
+++ b/quicktest.py
@@ -2,7 +2,7 @@
 
 from contextlib import redirect_stdout
 import io
-from pystencils_tests.test_quicktests import (
+from tests.test_quicktests import (
     test_basic_kernel,
     test_basic_blocking_staggered,
     test_basic_vectorization,
diff --git a/setup.py b/setup.py
index 8c99d7c3c..188044a46 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,12 @@
-import os
+from setuptools import setup, __version__ as setuptools_version
 
-from setuptools import Extension, setup
+if int(setuptools_version.split('.')[0]) < 61:
+    raise Exception(
+        "[ERROR] pystencils requires at least setuptools version 61 to install.\n"
+        "If this error occurs during an installation via pip, it is likely that there is a conflict between "
+        "versions of setuptools installed by pip and the system package manager. "
+        "In this case, it is recommended to install pystencils into a virtual environment instead."
+    )
 
 import versioneer
 
diff --git a/pystencils/__init__.py b/src/pystencils/__init__.py
similarity index 100%
rename from pystencils/__init__.py
rename to src/pystencils/__init__.py
diff --git a/pystencils/_version.py b/src/pystencils/_version.py
similarity index 100%
rename from pystencils/_version.py
rename to src/pystencils/_version.py
diff --git a/pystencils/alignedarray.py b/src/pystencils/alignedarray.py
similarity index 100%
rename from pystencils/alignedarray.py
rename to src/pystencils/alignedarray.py
diff --git a/pystencils/assignment.py b/src/pystencils/assignment.py
similarity index 100%
rename from pystencils/assignment.py
rename to src/pystencils/assignment.py
diff --git a/pystencils/astnodes.py b/src/pystencils/astnodes.py
similarity index 100%
rename from pystencils/astnodes.py
rename to src/pystencils/astnodes.py
diff --git a/pystencils/backends/__init__.py b/src/pystencils/backends/__init__.py
similarity index 100%
rename from pystencils/backends/__init__.py
rename to src/pystencils/backends/__init__.py
diff --git a/pystencils/backends/arm_instruction_sets.py b/src/pystencils/backends/arm_instruction_sets.py
similarity index 100%
rename from pystencils/backends/arm_instruction_sets.py
rename to src/pystencils/backends/arm_instruction_sets.py
diff --git a/pystencils/backends/cbackend.py b/src/pystencils/backends/cbackend.py
similarity index 100%
rename from pystencils/backends/cbackend.py
rename to src/pystencils/backends/cbackend.py
diff --git a/pystencils/backends/cuda_backend.py b/src/pystencils/backends/cuda_backend.py
similarity index 100%
rename from pystencils/backends/cuda_backend.py
rename to src/pystencils/backends/cuda_backend.py
diff --git a/pystencils/backends/dot.py b/src/pystencils/backends/dot.py
similarity index 100%
rename from pystencils/backends/dot.py
rename to src/pystencils/backends/dot.py
diff --git a/pystencils/backends/json.py b/src/pystencils/backends/json.py
similarity index 100%
rename from pystencils/backends/json.py
rename to src/pystencils/backends/json.py
diff --git a/pystencils/backends/ppc_instruction_sets.py b/src/pystencils/backends/ppc_instruction_sets.py
similarity index 100%
rename from pystencils/backends/ppc_instruction_sets.py
rename to src/pystencils/backends/ppc_instruction_sets.py
diff --git a/pystencils/backends/riscv_instruction_sets.py b/src/pystencils/backends/riscv_instruction_sets.py
similarity index 100%
rename from pystencils/backends/riscv_instruction_sets.py
rename to src/pystencils/backends/riscv_instruction_sets.py
diff --git a/pystencils/backends/simd_instruction_sets.py b/src/pystencils/backends/simd_instruction_sets.py
similarity index 100%
rename from pystencils/backends/simd_instruction_sets.py
rename to src/pystencils/backends/simd_instruction_sets.py
diff --git a/pystencils/backends/x86_instruction_sets.py b/src/pystencils/backends/x86_instruction_sets.py
similarity index 100%
rename from pystencils/backends/x86_instruction_sets.py
rename to src/pystencils/backends/x86_instruction_sets.py
diff --git a/pystencils/bit_masks.py b/src/pystencils/bit_masks.py
similarity index 100%
rename from pystencils/bit_masks.py
rename to src/pystencils/bit_masks.py
diff --git a/pystencils/boundaries/__init__.py b/src/pystencils/boundaries/__init__.py
similarity index 100%
rename from pystencils/boundaries/__init__.py
rename to src/pystencils/boundaries/__init__.py
diff --git a/pystencils/boundaries/boundaryconditions.py b/src/pystencils/boundaries/boundaryconditions.py
similarity index 100%
rename from pystencils/boundaries/boundaryconditions.py
rename to src/pystencils/boundaries/boundaryconditions.py
diff --git a/pystencils/boundaries/boundaryhandling.py b/src/pystencils/boundaries/boundaryhandling.py
similarity index 100%
rename from pystencils/boundaries/boundaryhandling.py
rename to src/pystencils/boundaries/boundaryhandling.py
diff --git a/pystencils/boundaries/createindexlist.py b/src/pystencils/boundaries/createindexlist.py
similarity index 100%
rename from pystencils/boundaries/createindexlist.py
rename to src/pystencils/boundaries/createindexlist.py
diff --git a/pystencils/boundaries/createindexlistcython.pyx b/src/pystencils/boundaries/createindexlistcython.pyx
similarity index 100%
rename from pystencils/boundaries/createindexlistcython.pyx
rename to src/pystencils/boundaries/createindexlistcython.pyx
diff --git a/pystencils/boundaries/inkernel.py b/src/pystencils/boundaries/inkernel.py
similarity index 100%
rename from pystencils/boundaries/inkernel.py
rename to src/pystencils/boundaries/inkernel.py
diff --git a/pystencils/cache.py b/src/pystencils/cache.py
similarity index 100%
rename from pystencils/cache.py
rename to src/pystencils/cache.py
diff --git a/pystencils/config.py b/src/pystencils/config.py
similarity index 100%
rename from pystencils/config.py
rename to src/pystencils/config.py
diff --git a/pystencils/cpu/__init__.py b/src/pystencils/cpu/__init__.py
similarity index 100%
rename from pystencils/cpu/__init__.py
rename to src/pystencils/cpu/__init__.py
diff --git a/pystencils/cpu/cpujit.py b/src/pystencils/cpu/cpujit.py
similarity index 100%
rename from pystencils/cpu/cpujit.py
rename to src/pystencils/cpu/cpujit.py
diff --git a/pystencils/cpu/kernelcreation.py b/src/pystencils/cpu/kernelcreation.py
similarity index 100%
rename from pystencils/cpu/kernelcreation.py
rename to src/pystencils/cpu/kernelcreation.py
diff --git a/pystencils/cpu/msvc_detection.py b/src/pystencils/cpu/msvc_detection.py
similarity index 100%
rename from pystencils/cpu/msvc_detection.py
rename to src/pystencils/cpu/msvc_detection.py
diff --git a/pystencils/cpu/vectorization.py b/src/pystencils/cpu/vectorization.py
similarity index 100%
rename from pystencils/cpu/vectorization.py
rename to src/pystencils/cpu/vectorization.py
diff --git a/pystencils/datahandling/__init__.py b/src/pystencils/datahandling/__init__.py
similarity index 100%
rename from pystencils/datahandling/__init__.py
rename to src/pystencils/datahandling/__init__.py
diff --git a/pystencils/datahandling/blockiteration.py b/src/pystencils/datahandling/blockiteration.py
similarity index 100%
rename from pystencils/datahandling/blockiteration.py
rename to src/pystencils/datahandling/blockiteration.py
diff --git a/pystencils/datahandling/datahandling_interface.py b/src/pystencils/datahandling/datahandling_interface.py
similarity index 100%
rename from pystencils/datahandling/datahandling_interface.py
rename to src/pystencils/datahandling/datahandling_interface.py
diff --git a/pystencils/datahandling/parallel_datahandling.py b/src/pystencils/datahandling/parallel_datahandling.py
similarity index 100%
rename from pystencils/datahandling/parallel_datahandling.py
rename to src/pystencils/datahandling/parallel_datahandling.py
diff --git a/pystencils/datahandling/serial_datahandling.py b/src/pystencils/datahandling/serial_datahandling.py
similarity index 100%
rename from pystencils/datahandling/serial_datahandling.py
rename to src/pystencils/datahandling/serial_datahandling.py
diff --git a/pystencils/datahandling/vtk.py b/src/pystencils/datahandling/vtk.py
similarity index 100%
rename from pystencils/datahandling/vtk.py
rename to src/pystencils/datahandling/vtk.py
diff --git a/pystencils/display_utils.py b/src/pystencils/display_utils.py
similarity index 100%
rename from pystencils/display_utils.py
rename to src/pystencils/display_utils.py
diff --git a/pystencils/enums.py b/src/pystencils/enums.py
similarity index 100%
rename from pystencils/enums.py
rename to src/pystencils/enums.py
diff --git a/pystencils/fast_approximation.py b/src/pystencils/fast_approximation.py
similarity index 100%
rename from pystencils/fast_approximation.py
rename to src/pystencils/fast_approximation.py
diff --git a/pystencils/fd/__init__.py b/src/pystencils/fd/__init__.py
similarity index 100%
rename from pystencils/fd/__init__.py
rename to src/pystencils/fd/__init__.py
diff --git a/pystencils/fd/derivation.py b/src/pystencils/fd/derivation.py
similarity index 100%
rename from pystencils/fd/derivation.py
rename to src/pystencils/fd/derivation.py
diff --git a/pystencils/fd/derivative.py b/src/pystencils/fd/derivative.py
similarity index 100%
rename from pystencils/fd/derivative.py
rename to src/pystencils/fd/derivative.py
diff --git a/pystencils/fd/finitedifferences.py b/src/pystencils/fd/finitedifferences.py
similarity index 100%
rename from pystencils/fd/finitedifferences.py
rename to src/pystencils/fd/finitedifferences.py
diff --git a/pystencils/fd/finitevolumes.py b/src/pystencils/fd/finitevolumes.py
similarity index 100%
rename from pystencils/fd/finitevolumes.py
rename to src/pystencils/fd/finitevolumes.py
diff --git a/pystencils/fd/spatial.py b/src/pystencils/fd/spatial.py
similarity index 100%
rename from pystencils/fd/spatial.py
rename to src/pystencils/fd/spatial.py
diff --git a/pystencils/field.py b/src/pystencils/field.py
similarity index 100%
rename from pystencils/field.py
rename to src/pystencils/field.py
diff --git a/pystencils/functions.py b/src/pystencils/functions.py
similarity index 100%
rename from pystencils/functions.py
rename to src/pystencils/functions.py
diff --git a/pystencils/gpu/__init__.py b/src/pystencils/gpu/__init__.py
similarity index 100%
rename from pystencils/gpu/__init__.py
rename to src/pystencils/gpu/__init__.py
diff --git a/pystencils/gpu/gpu_array_handler.py b/src/pystencils/gpu/gpu_array_handler.py
similarity index 100%
rename from pystencils/gpu/gpu_array_handler.py
rename to src/pystencils/gpu/gpu_array_handler.py
diff --git a/pystencils/gpu/gpujit.py b/src/pystencils/gpu/gpujit.py
similarity index 100%
rename from pystencils/gpu/gpujit.py
rename to src/pystencils/gpu/gpujit.py
diff --git a/pystencils/gpu/indexing.py b/src/pystencils/gpu/indexing.py
similarity index 100%
rename from pystencils/gpu/indexing.py
rename to src/pystencils/gpu/indexing.py
diff --git a/pystencils/gpu/kernelcreation.py b/src/pystencils/gpu/kernelcreation.py
similarity index 100%
rename from pystencils/gpu/kernelcreation.py
rename to src/pystencils/gpu/kernelcreation.py
diff --git a/pystencils/gpu/periodicity.py b/src/pystencils/gpu/periodicity.py
similarity index 100%
rename from pystencils/gpu/periodicity.py
rename to src/pystencils/gpu/periodicity.py
diff --git a/pystencils/include/PyStencilsField.h b/src/pystencils/include/PyStencilsField.h
similarity index 100%
rename from pystencils/include/PyStencilsField.h
rename to src/pystencils/include/PyStencilsField.h
diff --git a/pystencils/include/__init__.py b/src/pystencils/include/__init__.py
similarity index 100%
rename from pystencils/include/__init__.py
rename to src/pystencils/include/__init__.py
diff --git a/pystencils/include/aesni_rand.h b/src/pystencils/include/aesni_rand.h
similarity index 100%
rename from pystencils/include/aesni_rand.h
rename to src/pystencils/include/aesni_rand.h
diff --git a/pystencils/include/arm_neon_helpers.h b/src/pystencils/include/arm_neon_helpers.h
similarity index 100%
rename from pystencils/include/arm_neon_helpers.h
rename to src/pystencils/include/arm_neon_helpers.h
diff --git a/pystencils/include/gpu_defines.h b/src/pystencils/include/gpu_defines.h
similarity index 100%
rename from pystencils/include/gpu_defines.h
rename to src/pystencils/include/gpu_defines.h
diff --git a/pystencils/include/half_precision.h b/src/pystencils/include/half_precision.h
similarity index 100%
rename from pystencils/include/half_precision.h
rename to src/pystencils/include/half_precision.h
diff --git a/pystencils/include/myintrin.h b/src/pystencils/include/myintrin.h
similarity index 100%
rename from pystencils/include/myintrin.h
rename to src/pystencils/include/myintrin.h
diff --git a/pystencils/include/philox_rand.h b/src/pystencils/include/philox_rand.h
similarity index 100%
rename from pystencils/include/philox_rand.h
rename to src/pystencils/include/philox_rand.h
diff --git a/pystencils/include/ppc_altivec_helpers.h b/src/pystencils/include/ppc_altivec_helpers.h
similarity index 100%
rename from pystencils/include/ppc_altivec_helpers.h
rename to src/pystencils/include/ppc_altivec_helpers.h
diff --git a/pystencils/integer_functions.py b/src/pystencils/integer_functions.py
similarity index 100%
rename from pystencils/integer_functions.py
rename to src/pystencils/integer_functions.py
diff --git a/pystencils/integer_set_analysis.py b/src/pystencils/integer_set_analysis.py
similarity index 100%
rename from pystencils/integer_set_analysis.py
rename to src/pystencils/integer_set_analysis.py
diff --git a/pystencils/jupyter.py b/src/pystencils/jupyter.py
similarity index 100%
rename from pystencils/jupyter.py
rename to src/pystencils/jupyter.py
diff --git a/pystencils/kernel_contrains_check.py b/src/pystencils/kernel_contrains_check.py
similarity index 100%
rename from pystencils/kernel_contrains_check.py
rename to src/pystencils/kernel_contrains_check.py
diff --git a/pystencils/kernel_decorator.py b/src/pystencils/kernel_decorator.py
similarity index 100%
rename from pystencils/kernel_decorator.py
rename to src/pystencils/kernel_decorator.py
diff --git a/pystencils/kernel_wrapper.py b/src/pystencils/kernel_wrapper.py
similarity index 100%
rename from pystencils/kernel_wrapper.py
rename to src/pystencils/kernel_wrapper.py
diff --git a/pystencils/kernelcreation.py b/src/pystencils/kernelcreation.py
similarity index 100%
rename from pystencils/kernelcreation.py
rename to src/pystencils/kernelcreation.py
diff --git a/pystencils/node_collection.py b/src/pystencils/node_collection.py
similarity index 100%
rename from pystencils/node_collection.py
rename to src/pystencils/node_collection.py
diff --git a/pystencils/placeholder_function.py b/src/pystencils/placeholder_function.py
similarity index 100%
rename from pystencils/placeholder_function.py
rename to src/pystencils/placeholder_function.py
diff --git a/pystencils/plot.py b/src/pystencils/plot.py
similarity index 100%
rename from pystencils/plot.py
rename to src/pystencils/plot.py
diff --git a/pystencils/rng.py b/src/pystencils/rng.py
similarity index 100%
rename from pystencils/rng.py
rename to src/pystencils/rng.py
diff --git a/pystencils/runhelper/__init__.py b/src/pystencils/runhelper/__init__.py
similarity index 100%
rename from pystencils/runhelper/__init__.py
rename to src/pystencils/runhelper/__init__.py
diff --git a/pystencils/runhelper/db.py b/src/pystencils/runhelper/db.py
similarity index 100%
rename from pystencils/runhelper/db.py
rename to src/pystencils/runhelper/db.py
diff --git a/pystencils/runhelper/parameterstudy.py b/src/pystencils/runhelper/parameterstudy.py
similarity index 100%
rename from pystencils/runhelper/parameterstudy.py
rename to src/pystencils/runhelper/parameterstudy.py
diff --git a/pystencils/session.py b/src/pystencils/session.py
similarity index 100%
rename from pystencils/session.py
rename to src/pystencils/session.py
diff --git a/pystencils/simp/__init__.py b/src/pystencils/simp/__init__.py
similarity index 100%
rename from pystencils/simp/__init__.py
rename to src/pystencils/simp/__init__.py
diff --git a/pystencils/simp/assignment_collection.py b/src/pystencils/simp/assignment_collection.py
similarity index 100%
rename from pystencils/simp/assignment_collection.py
rename to src/pystencils/simp/assignment_collection.py
diff --git a/pystencils/simp/simplifications.py b/src/pystencils/simp/simplifications.py
similarity index 100%
rename from pystencils/simp/simplifications.py
rename to src/pystencils/simp/simplifications.py
diff --git a/pystencils/simp/simplificationstrategy.py b/src/pystencils/simp/simplificationstrategy.py
similarity index 100%
rename from pystencils/simp/simplificationstrategy.py
rename to src/pystencils/simp/simplificationstrategy.py
diff --git a/pystencils/simp/subexpression_insertion.py b/src/pystencils/simp/subexpression_insertion.py
similarity index 100%
rename from pystencils/simp/subexpression_insertion.py
rename to src/pystencils/simp/subexpression_insertion.py
diff --git a/pystencils/simplificationfactory.py b/src/pystencils/simplificationfactory.py
similarity index 100%
rename from pystencils/simplificationfactory.py
rename to src/pystencils/simplificationfactory.py
diff --git a/pystencils/slicing.py b/src/pystencils/slicing.py
similarity index 100%
rename from pystencils/slicing.py
rename to src/pystencils/slicing.py
diff --git a/pystencils/spatial_coordinates.py b/src/pystencils/spatial_coordinates.py
similarity index 100%
rename from pystencils/spatial_coordinates.py
rename to src/pystencils/spatial_coordinates.py
diff --git a/pystencils/stencil.py b/src/pystencils/stencil.py
similarity index 100%
rename from pystencils/stencil.py
rename to src/pystencils/stencil.py
diff --git a/pystencils/sympyextensions.py b/src/pystencils/sympyextensions.py
similarity index 100%
rename from pystencils/sympyextensions.py
rename to src/pystencils/sympyextensions.py
diff --git a/pystencils/timeloop.py b/src/pystencils/timeloop.py
similarity index 100%
rename from pystencils/timeloop.py
rename to src/pystencils/timeloop.py
diff --git a/pystencils/transformations.py b/src/pystencils/transformations.py
similarity index 100%
rename from pystencils/transformations.py
rename to src/pystencils/transformations.py
diff --git a/pystencils/typing/__init__.py b/src/pystencils/typing/__init__.py
similarity index 100%
rename from pystencils/typing/__init__.py
rename to src/pystencils/typing/__init__.py
diff --git a/pystencils/typing/cast_functions.py b/src/pystencils/typing/cast_functions.py
similarity index 100%
rename from pystencils/typing/cast_functions.py
rename to src/pystencils/typing/cast_functions.py
diff --git a/pystencils/typing/leaf_typing.py b/src/pystencils/typing/leaf_typing.py
similarity index 100%
rename from pystencils/typing/leaf_typing.py
rename to src/pystencils/typing/leaf_typing.py
diff --git a/pystencils/typing/transformations.py b/src/pystencils/typing/transformations.py
similarity index 100%
rename from pystencils/typing/transformations.py
rename to src/pystencils/typing/transformations.py
diff --git a/pystencils/typing/typed_sympy.py b/src/pystencils/typing/typed_sympy.py
similarity index 100%
rename from pystencils/typing/typed_sympy.py
rename to src/pystencils/typing/typed_sympy.py
diff --git a/pystencils/typing/types.py b/src/pystencils/typing/types.py
similarity index 100%
rename from pystencils/typing/types.py
rename to src/pystencils/typing/types.py
diff --git a/pystencils/typing/utilities.py b/src/pystencils/typing/utilities.py
similarity index 100%
rename from pystencils/typing/utilities.py
rename to src/pystencils/typing/utilities.py
diff --git a/pystencils/utils.py b/src/pystencils/utils.py
similarity index 100%
rename from pystencils/utils.py
rename to src/pystencils/utils.py
diff --git a/pystencils_tests/__init__.py b/tests/__init__.py
similarity index 100%
rename from pystencils_tests/__init__.py
rename to tests/__init__.py
diff --git a/pystencils_tests/test_Min_Max.py b/tests/test_Min_Max.py
similarity index 100%
rename from pystencils_tests/test_Min_Max.py
rename to tests/test_Min_Max.py
diff --git a/pystencils_tests/test_abs.py b/tests/test_abs.py
similarity index 100%
rename from pystencils_tests/test_abs.py
rename to tests/test_abs.py
diff --git a/pystencils_tests/test_address_of.py b/tests/test_address_of.py
similarity index 100%
rename from pystencils_tests/test_address_of.py
rename to tests/test_address_of.py
diff --git a/pystencils_tests/test_aligned_array.py b/tests/test_aligned_array.py
similarity index 100%
rename from pystencils_tests/test_aligned_array.py
rename to tests/test_aligned_array.py
diff --git a/pystencils_tests/test_assignment_collection.py b/tests/test_assignment_collection.py
similarity index 100%
rename from pystencils_tests/test_assignment_collection.py
rename to tests/test_assignment_collection.py
diff --git a/pystencils_tests/test_assignment_collection_dict_conversion.py b/tests/test_assignment_collection_dict_conversion.py
similarity index 100%
rename from pystencils_tests/test_assignment_collection_dict_conversion.py
rename to tests/test_assignment_collection_dict_conversion.py
diff --git a/pystencils_tests/test_assignment_from_stencil.py b/tests/test_assignment_from_stencil.py
similarity index 100%
rename from pystencils_tests/test_assignment_from_stencil.py
rename to tests/test_assignment_from_stencil.py
diff --git a/pystencils_tests/test_astnodes.py b/tests/test_astnodes.py
similarity index 100%
rename from pystencils_tests/test_astnodes.py
rename to tests/test_astnodes.py
diff --git a/pystencils_tests/test_augmented_assignment.py b/tests/test_augmented_assignment.py
similarity index 100%
rename from pystencils_tests/test_augmented_assignment.py
rename to tests/test_augmented_assignment.py
diff --git a/pystencils_tests/test_base_pointer_specification.py b/tests/test_base_pointer_specification.py
similarity index 100%
rename from pystencils_tests/test_base_pointer_specification.py
rename to tests/test_base_pointer_specification.py
diff --git a/pystencils_tests/test_bit_masks.py b/tests/test_bit_masks.py
similarity index 100%
rename from pystencils_tests/test_bit_masks.py
rename to tests/test_bit_masks.py
diff --git a/pystencils_tests/test_blocking.py b/tests/test_blocking.py
similarity index 100%
rename from pystencils_tests/test_blocking.py
rename to tests/test_blocking.py
diff --git a/pystencils_tests/test_blocking_staggered.py b/tests/test_blocking_staggered.py
similarity index 100%
rename from pystencils_tests/test_blocking_staggered.py
rename to tests/test_blocking_staggered.py
diff --git a/pystencils_tests/test_boundary.py b/tests/test_boundary.py
similarity index 100%
rename from pystencils_tests/test_boundary.py
rename to tests/test_boundary.py
diff --git a/pystencils_tests/test_boundary_indexlist_creation.py b/tests/test_boundary_indexlist_creation.py
similarity index 100%
rename from pystencils_tests/test_boundary_indexlist_creation.py
rename to tests/test_boundary_indexlist_creation.py
diff --git a/pystencils_tests/test_buffer.py b/tests/test_buffer.py
similarity index 100%
rename from pystencils_tests/test_buffer.py
rename to tests/test_buffer.py
diff --git a/pystencils_tests/test_buffer_gpu.py b/tests/test_buffer_gpu.py
similarity index 100%
rename from pystencils_tests/test_buffer_gpu.py
rename to tests/test_buffer_gpu.py
diff --git a/pystencils_tests/test_conditional_field_access.py b/tests/test_conditional_field_access.py
similarity index 100%
rename from pystencils_tests/test_conditional_field_access.py
rename to tests/test_conditional_field_access.py
diff --git a/pystencils_tests/test_conditional_vec.py b/tests/test_conditional_vec.py
similarity index 100%
rename from pystencils_tests/test_conditional_vec.py
rename to tests/test_conditional_vec.py
diff --git a/pystencils_tests/test_config.py b/tests/test_config.py
similarity index 100%
rename from pystencils_tests/test_config.py
rename to tests/test_config.py
diff --git a/pystencils_tests/test_create_kernel_config.py b/tests/test_create_kernel_config.py
similarity index 100%
rename from pystencils_tests/test_create_kernel_config.py
rename to tests/test_create_kernel_config.py
diff --git a/pystencils_tests/test_custom_backends.py b/tests/test_custom_backends.py
similarity index 100%
rename from pystencils_tests/test_custom_backends.py
rename to tests/test_custom_backends.py
diff --git a/pystencils_tests/test_data/datahandling_load_test.npz b/tests/test_data/datahandling_load_test.npz
similarity index 100%
rename from pystencils_tests/test_data/datahandling_load_test.npz
rename to tests/test_data/datahandling_load_test.npz
diff --git a/pystencils_tests/test_data/datahandling_parallel_load_test/dst.dat b/tests/test_data/datahandling_parallel_load_test/dst.dat
similarity index 100%
rename from pystencils_tests/test_data/datahandling_parallel_load_test/dst.dat
rename to tests/test_data/datahandling_parallel_load_test/dst.dat
diff --git a/pystencils_tests/test_data/datahandling_parallel_load_test/src.dat b/tests/test_data/datahandling_parallel_load_test/src.dat
similarity index 100%
rename from pystencils_tests/test_data/datahandling_parallel_load_test/src.dat
rename to tests/test_data/datahandling_parallel_load_test/src.dat
diff --git a/pystencils_tests/test_data/datahandling_parallel_save_test/dst.dat b/tests/test_data/datahandling_parallel_save_test/dst.dat
similarity index 100%
rename from pystencils_tests/test_data/datahandling_parallel_save_test/dst.dat
rename to tests/test_data/datahandling_parallel_save_test/dst.dat
diff --git a/pystencils_tests/test_data/datahandling_parallel_save_test/src.dat b/tests/test_data/datahandling_parallel_save_test/src.dat
similarity index 100%
rename from pystencils_tests/test_data/datahandling_parallel_save_test/src.dat
rename to tests/test_data/datahandling_parallel_save_test/src.dat
diff --git a/pystencils_tests/test_data/datahandling_save_test.npz b/tests/test_data/datahandling_save_test.npz
similarity index 100%
rename from pystencils_tests/test_data/datahandling_save_test.npz
rename to tests/test_data/datahandling_save_test.npz
diff --git a/pystencils_tests/test_data/lenna.png b/tests/test_data/lenna.png
similarity index 100%
rename from pystencils_tests/test_data/lenna.png
rename to tests/test_data/lenna.png
diff --git a/pystencils_tests/test_data/test_vessel2d_mask.png b/tests/test_data/test_vessel2d_mask.png
similarity index 100%
rename from pystencils_tests/test_data/test_vessel2d_mask.png
rename to tests/test_data/test_vessel2d_mask.png
diff --git a/pystencils_tests/test_datahandling.py b/tests/test_datahandling.py
similarity index 100%
rename from pystencils_tests/test_datahandling.py
rename to tests/test_datahandling.py
diff --git a/pystencils_tests/test_datahandling_parallel.py b/tests/test_datahandling_parallel.py
similarity index 99%
rename from pystencils_tests/test_datahandling_parallel.py
rename to tests/test_datahandling_parallel.py
index b5aa98324..f572cf326 100644
--- a/pystencils_tests/test_datahandling_parallel.py
+++ b/tests/test_datahandling_parallel.py
@@ -11,7 +11,7 @@ from pystencils.slicing import slice_from_direction
 
 from pystencils.datahandling.parallel_datahandling import ParallelDataHandling
 from pystencils.datahandling import create_data_handling
-from pystencils_tests.test_datahandling import (
+from tests.test_datahandling import (
     access_and_gather, kernel_execution_jacobi, reduction, synchronization, vtk_output)
 
 SCRIPT_FOLDER = Path(__file__).parent.absolute()
diff --git a/pystencils_tests/test_derivative.py b/tests/test_derivative.py
similarity index 100%
rename from pystencils_tests/test_derivative.py
rename to tests/test_derivative.py
diff --git a/pystencils_tests/test_dot_printer.ipynb b/tests/test_dot_printer.ipynb
similarity index 100%
rename from pystencils_tests/test_dot_printer.ipynb
rename to tests/test_dot_printer.ipynb
diff --git a/pystencils_tests/test_dot_printer.py b/tests/test_dot_printer.py
similarity index 100%
rename from pystencils_tests/test_dot_printer.py
rename to tests/test_dot_printer.py
diff --git a/pystencils_tests/test_dtype_check.py b/tests/test_dtype_check.py
similarity index 100%
rename from pystencils_tests/test_dtype_check.py
rename to tests/test_dtype_check.py
diff --git a/pystencils_tests/test_fast_approximation.py b/tests/test_fast_approximation.py
similarity index 100%
rename from pystencils_tests/test_fast_approximation.py
rename to tests/test_fast_approximation.py
diff --git a/pystencils_tests/test_fd_derivation.ipynb b/tests/test_fd_derivation.ipynb
similarity index 100%
rename from pystencils_tests/test_fd_derivation.ipynb
rename to tests/test_fd_derivation.ipynb
diff --git a/pystencils_tests/test_fd_derivation_via_rotation.ipynb b/tests/test_fd_derivation_via_rotation.ipynb
similarity index 100%
rename from pystencils_tests/test_fd_derivation_via_rotation.ipynb
rename to tests/test_fd_derivation_via_rotation.ipynb
diff --git a/pystencils_tests/test_fd_derivative.py b/tests/test_fd_derivative.py
similarity index 100%
rename from pystencils_tests/test_fd_derivative.py
rename to tests/test_fd_derivative.py
diff --git a/pystencils_tests/test_field.py b/tests/test_field.py
similarity index 100%
rename from pystencils_tests/test_field.py
rename to tests/test_field.py
diff --git a/pystencils_tests/test_field_access_poly.py b/tests/test_field_access_poly.py
similarity index 100%
rename from pystencils_tests/test_field_access_poly.py
rename to tests/test_field_access_poly.py
diff --git a/pystencils_tests/test_field_equality.ipynb b/tests/test_field_equality.ipynb
similarity index 100%
rename from pystencils_tests/test_field_equality.ipynb
rename to tests/test_field_equality.ipynb
diff --git a/pystencils_tests/test_finite_differences.py b/tests/test_finite_differences.py
similarity index 100%
rename from pystencils_tests/test_finite_differences.py
rename to tests/test_finite_differences.py
diff --git a/pystencils_tests/test_floor_ceil_int_optimization.py b/tests/test_floor_ceil_int_optimization.py
similarity index 100%
rename from pystencils_tests/test_floor_ceil_int_optimization.py
rename to tests/test_floor_ceil_int_optimization.py
diff --git a/pystencils_tests/test_fvm.py b/tests/test_fvm.py
similarity index 100%
rename from pystencils_tests/test_fvm.py
rename to tests/test_fvm.py
diff --git a/pystencils_tests/test_global_definitions.py b/tests/test_global_definitions.py
similarity index 100%
rename from pystencils_tests/test_global_definitions.py
rename to tests/test_global_definitions.py
diff --git a/pystencils_tests/test_gpu.py b/tests/test_gpu.py
similarity index 100%
rename from pystencils_tests/test_gpu.py
rename to tests/test_gpu.py
diff --git a/pystencils_tests/test_half_precision.py b/tests/test_half_precision.py
similarity index 100%
rename from pystencils_tests/test_half_precision.py
rename to tests/test_half_precision.py
diff --git a/pystencils_tests/test_helpful_errors.py b/tests/test_helpful_errors.py
similarity index 100%
rename from pystencils_tests/test_helpful_errors.py
rename to tests/test_helpful_errors.py
diff --git a/pystencils_tests/test_indexed_kernels.py b/tests/test_indexed_kernels.py
similarity index 100%
rename from pystencils_tests/test_indexed_kernels.py
rename to tests/test_indexed_kernels.py
diff --git a/pystencils_tests/test_jacobi_cbackend.py b/tests/test_jacobi_cbackend.py
similarity index 100%
rename from pystencils_tests/test_jacobi_cbackend.py
rename to tests/test_jacobi_cbackend.py
diff --git a/pystencils_tests/test_json_backend.py b/tests/test_json_backend.py
similarity index 100%
rename from pystencils_tests/test_json_backend.py
rename to tests/test_json_backend.py
diff --git a/pystencils_tests/test_json_serializer.py b/tests/test_json_serializer.py
similarity index 100%
rename from pystencils_tests/test_json_serializer.py
rename to tests/test_json_serializer.py
diff --git a/pystencils_tests/test_jupyter_extensions.ipynb b/tests/test_jupyter_extensions.ipynb
similarity index 100%
rename from pystencils_tests/test_jupyter_extensions.ipynb
rename to tests/test_jupyter_extensions.ipynb
diff --git a/pystencils_tests/test_logarithm.py b/tests/test_logarithm.py
similarity index 100%
rename from pystencils_tests/test_logarithm.py
rename to tests/test_logarithm.py
diff --git a/pystencils_tests/test_loop_cutting.py b/tests/test_loop_cutting.py
similarity index 100%
rename from pystencils_tests/test_loop_cutting.py
rename to tests/test_loop_cutting.py
diff --git a/pystencils_tests/test_match_subs_for_assignment_collection.py b/tests/test_match_subs_for_assignment_collection.py
similarity index 100%
rename from pystencils_tests/test_match_subs_for_assignment_collection.py
rename to tests/test_match_subs_for_assignment_collection.py
diff --git a/pystencils_tests/test_math_functions.py b/tests/test_math_functions.py
similarity index 100%
rename from pystencils_tests/test_math_functions.py
rename to tests/test_math_functions.py
diff --git a/pystencils_tests/test_modulo.py b/tests/test_modulo.py
similarity index 100%
rename from pystencils_tests/test_modulo.py
rename to tests/test_modulo.py
diff --git a/pystencils_tests/test_move_constant_before_loop.py b/tests/test_move_constant_before_loop.py
similarity index 100%
rename from pystencils_tests/test_move_constant_before_loop.py
rename to tests/test_move_constant_before_loop.py
diff --git a/pystencils_tests/test_nodecollection.py b/tests/test_nodecollection.py
similarity index 100%
rename from pystencils_tests/test_nodecollection.py
rename to tests/test_nodecollection.py
diff --git a/pystencils_tests/test_parameterstudy.py b/tests/test_parameterstudy.py
similarity index 100%
rename from pystencils_tests/test_parameterstudy.py
rename to tests/test_parameterstudy.py
diff --git a/pystencils_tests/test_phasefield_dentritic_3D.ipynb b/tests/test_phasefield_dentritic_3D.ipynb
similarity index 100%
rename from pystencils_tests/test_phasefield_dentritic_3D.ipynb
rename to tests/test_phasefield_dentritic_3D.ipynb
diff --git a/pystencils_tests/test_pickle_support.py b/tests/test_pickle_support.py
similarity index 100%
rename from pystencils_tests/test_pickle_support.py
rename to tests/test_pickle_support.py
diff --git a/pystencils_tests/test_plot.py b/tests/test_plot.py
similarity index 100%
rename from pystencils_tests/test_plot.py
rename to tests/test_plot.py
diff --git a/pystencils_tests/test_printing.py b/tests/test_printing.py
similarity index 100%
rename from pystencils_tests/test_printing.py
rename to tests/test_printing.py
diff --git a/pystencils_tests/test_quicktests.py b/tests/test_quicktests.py
similarity index 100%
rename from pystencils_tests/test_quicktests.py
rename to tests/test_quicktests.py
diff --git a/pystencils_tests/test_random.py b/tests/test_random.py
similarity index 100%
rename from pystencils_tests/test_random.py
rename to tests/test_random.py
diff --git a/pystencils_tests/test_sharedmethodcache.py b/tests/test_sharedmethodcache.py
similarity index 100%
rename from pystencils_tests/test_sharedmethodcache.py
rename to tests/test_sharedmethodcache.py
diff --git a/pystencils_tests/test_simplification_strategy.py b/tests/test_simplification_strategy.py
similarity index 100%
rename from pystencils_tests/test_simplification_strategy.py
rename to tests/test_simplification_strategy.py
diff --git a/pystencils_tests/test_simplifications.py b/tests/test_simplifications.py
similarity index 100%
rename from pystencils_tests/test_simplifications.py
rename to tests/test_simplifications.py
diff --git a/pystencils_tests/test_size_and_layout_checks.py b/tests/test_size_and_layout_checks.py
similarity index 100%
rename from pystencils_tests/test_size_and_layout_checks.py
rename to tests/test_size_and_layout_checks.py
diff --git a/pystencils_tests/test_sliced_iteration.py b/tests/test_sliced_iteration.py
similarity index 100%
rename from pystencils_tests/test_sliced_iteration.py
rename to tests/test_sliced_iteration.py
diff --git a/pystencils_tests/test_slicing.py b/tests/test_slicing.py
similarity index 100%
rename from pystencils_tests/test_slicing.py
rename to tests/test_slicing.py
diff --git a/pystencils_tests/test_small_block_benchmark.ipynb b/tests/test_small_block_benchmark.ipynb
similarity index 100%
rename from pystencils_tests/test_small_block_benchmark.ipynb
rename to tests/test_small_block_benchmark.ipynb
diff --git a/pystencils_tests/test_source_code_comment.py b/tests/test_source_code_comment.py
similarity index 100%
rename from pystencils_tests/test_source_code_comment.py
rename to tests/test_source_code_comment.py
diff --git a/pystencils_tests/test_staggered_kernel.py b/tests/test_staggered_kernel.py
similarity index 100%
rename from pystencils_tests/test_staggered_kernel.py
rename to tests/test_staggered_kernel.py
diff --git a/pystencils_tests/test_stencil_plot.ipynb b/tests/test_stencil_plot.ipynb
similarity index 100%
rename from pystencils_tests/test_stencil_plot.ipynb
rename to tests/test_stencil_plot.ipynb
diff --git a/pystencils_tests/test_stencils.py b/tests/test_stencils.py
similarity index 100%
rename from pystencils_tests/test_stencils.py
rename to tests/test_stencils.py
diff --git a/pystencils_tests/test_struct_types.py b/tests/test_struct_types.py
similarity index 100%
rename from pystencils_tests/test_struct_types.py
rename to tests/test_struct_types.py
diff --git a/pystencils_tests/test_subexpression_insertion.py b/tests/test_subexpression_insertion.py
similarity index 100%
rename from pystencils_tests/test_subexpression_insertion.py
rename to tests/test_subexpression_insertion.py
diff --git a/pystencils_tests/test_sum_prod.py b/tests/test_sum_prod.py
similarity index 100%
rename from pystencils_tests/test_sum_prod.py
rename to tests/test_sum_prod.py
diff --git a/pystencils_tests/test_sympyextensions.py b/tests/test_sympyextensions.py
similarity index 100%
rename from pystencils_tests/test_sympyextensions.py
rename to tests/test_sympyextensions.py
diff --git a/pystencils_tests/test_timeloop.py b/tests/test_timeloop.py
similarity index 100%
rename from pystencils_tests/test_timeloop.py
rename to tests/test_timeloop.py
diff --git a/pystencils_tests/test_transformations.py b/tests/test_transformations.py
similarity index 100%
rename from pystencils_tests/test_transformations.py
rename to tests/test_transformations.py
diff --git a/pystencils_tests/test_type_interference.py b/tests/test_type_interference.py
similarity index 100%
rename from pystencils_tests/test_type_interference.py
rename to tests/test_type_interference.py
diff --git a/pystencils_tests/test_types.py b/tests/test_types.py
similarity index 100%
rename from pystencils_tests/test_types.py
rename to tests/test_types.py
diff --git a/pystencils_tests/test_utils.py b/tests/test_utils.py
similarity index 100%
rename from pystencils_tests/test_utils.py
rename to tests/test_utils.py
diff --git a/pystencils_tests/test_vectorization.py b/tests/test_vectorization.py
similarity index 100%
rename from pystencils_tests/test_vectorization.py
rename to tests/test_vectorization.py
diff --git a/pystencils_tests/test_vectorization_specific.py b/tests/test_vectorization_specific.py
similarity index 100%
rename from pystencils_tests/test_vectorization_specific.py
rename to tests/test_vectorization_specific.py
diff --git a/pystencils_tests/test_version_string.py b/tests/test_version_string.py
similarity index 100%
rename from pystencils_tests/test_version_string.py
rename to tests/test_version_string.py
-- 
GitLab