nabu 2024.1.1__tar.gz → 2024.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nabu-2024.1.1/nabu.egg-info → nabu-2024.1.2}/PKG-INFO +2 -22
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/__init__.py +1 -1
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/cast_volume.py +11 -2
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/multicor.py +24 -2
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/cast_volume.py +3 -3
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/utils.py +2 -2
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/tests/test_z_stitching.py +0 -1
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/z_stitching.py +3 -3
- nabu-2024.1.2/nabu/thirdparty/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2/nabu.egg-info}/PKG-INFO +2 -22
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu.egg-info/SOURCES.txt +1 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu.egg-info/requires.txt +1 -1
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu.egg-info/top_level.txt +1 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/pyproject.toml +1 -1
- {nabu-2024.1.1 → nabu-2024.1.2}/LICENSE +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/README.md +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/doc/conf.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/doc/create_conf_doc.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/doc/get_mathjax.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/bootstrap.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/bootstrap_stitching.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/cli_configs.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/compare_volumes.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/composite_cor.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/correct_rot.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/create_distortion_map_from_poly.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/diag_to_pix.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/diag_to_rot.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/double_flatfield.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/generate_header.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/histogram.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/nx_z_splitter.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/parse_reconstruction_log.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/prepare_weights_double.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/reconstruct.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/reconstruct_helical.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/reduce_dark_flat.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/rotate.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/shrink_dataset.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/stitching.py +0 -0
- {nabu-2024.1.1/nabu/cuda → nabu-2024.1.2/nabu/app/tests}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/tests/test_reduce_dark_flat.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/utils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/app/validator.py +0 -0
- {nabu-2024.1.1/nabu/estimation/tests → nabu-2024.1.2/nabu/cuda}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/convolution.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/fft.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/kernel.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/medfilt.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/padding.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/processing.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/ElementOp.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/backproj.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/backproj_polar.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/boundary.h +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/convolution.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/dfi_fftshift.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/flatfield.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/fourier_wavelets.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/halftomo.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/helical_padding.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/histogram.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/interpolation.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/medfilt.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/normalization.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/padding.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/proj.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/rotation.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/src/transpose.cu +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/tests/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/cuda/utils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/alignment.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/cor.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/cor_sino.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/distortion.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/focus.py +0 -0
- {nabu-2024.1.1/nabu/io → nabu-2024.1.2/nabu/estimation}/tests/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/tests/test_alignment.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/tests/test_cor.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/tests/test_focus.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/tests/test_tilt.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/tests/test_translation.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/tilt.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/translation.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/estimation/utils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/detector_distortion.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/reader.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/reader_helical.py +0 -0
- {nabu-2024.1.1/nabu/misc → nabu-2024.1.2/nabu/io/tests}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/tests/test_cast_volume.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/tests/test_detector_distortion.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/tests/test_writers.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/tiffwriter_zmm.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/io/writer.py +0 -0
- {nabu-2024.1.1/nabu/opencl → nabu-2024.1.2/nabu/misc}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/binning.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/fftshift.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/filters.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/fourier_filters.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/histogram.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/histogram_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/kernel_base.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/padding.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/padding_base.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/processing_base.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/rotation.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/rotation_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/tests/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/tests/test_binning.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/tests/test_interpolation.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/transpose.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/unsharp.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/unsharp_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/unsharp_opencl.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/misc/utils.py +0 -0
- {nabu-2024.1.1/nabu/opencl/tests → nabu-2024.1.2/nabu/opencl}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/fft.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/kernel.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/memcpy.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/padding.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/processing.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/src/ElementOp.cl +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/src/backproj.cl +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/src/fftshift.cl +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/src/halftomo.cl +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/src/padding.cl +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/src/roll.cl +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/src/transpose.cl +0 -0
- {nabu-2024.1.1/nabu/pipeline → nabu-2024.1.2/nabu/opencl/tests}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/opencl/utils.py +0 -0
- {nabu-2024.1.1/nabu/pipeline/fullfield → nabu-2024.1.2/nabu/pipeline}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/config.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/config_validators.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/datadump.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/dataset_validator.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/detector_distortion_provider.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/estimators.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/fallback_utils.py +0 -0
- {nabu-2024.1.1/nabu/pipeline/helical → nabu-2024.1.2/nabu/pipeline/fullfield}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/fullfield/chunked.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/fullfield/chunked_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/fullfield/computations.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/fullfield/dataset_validator.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/fullfield/nabu_config.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/fullfield/processconfig.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/fullfield/reconstruction.py +0 -0
- {nabu-2024.1.1/nabu/pipeline/helical/tests → nabu-2024.1.2/nabu/pipeline/helical}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/dataset_validator.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/fbp.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/filtering.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/gridded_accumulator.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/helical_chunked_regridded.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/helical_reconstruction.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/helical_utils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/nabu_config.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/processconfig.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/span_strategy.py +0 -0
- {nabu-2024.1.1/nabu/pipeline/xrdct → nabu-2024.1.2/nabu/pipeline/helical/tests}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/tests/test_accumulator.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/tests/test_strategy.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/utils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/helical/weight_balancer.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/params.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/processconfig.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/tests/test_chunk_reader.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/tests/test_estimators.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/utils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/pipeline/writer.py +0 -0
- {nabu-2024.1.1/nabu/processing → nabu-2024.1.2/nabu/pipeline/xrdct}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/alignment.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/ccd.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/ccd_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/ctf.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/ctf_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/distortion.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/double_flatfield.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/double_flatfield_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/double_flatfield_variable_region.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/flatfield.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/flatfield_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/flatfield_variable_region.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/phase.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/phase_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/shift.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/shift_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/tests/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/tests/test_ccd_corr.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/tests/test_ctf.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/tests/test_double_flatfield.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/tests/test_flatfield.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/tests/test_paganin.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/preproc/tests/test_vshift.py +0 -0
- {nabu-2024.1.1/nabu/processing/tests → nabu-2024.1.2/nabu/processing}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/convolution_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/fft_base.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/fft_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/fft_opencl.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/fftshift.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/histogram.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/histogram_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/kernel_base.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/medfilt_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/muladd.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/muladd_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/padding_base.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/padding_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/padding_opencl.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/processing_base.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/roll_opencl.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/rotation.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/rotation_cuda.py +0 -0
- {nabu-2024.1.1/nabu/resources → nabu-2024.1.2/nabu/processing/tests}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/tests/test_fft.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/tests/test_fftshift.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/tests/test_histogram.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/tests/test_medfilt.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/tests/test_muladd.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/tests/test_padding.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/tests/test_roll.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/tests/test_rotation.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/tests/test_transpose.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/tests/test_unsharp.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/transpose.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/unsharp.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/unsharp_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/processing/unsharp_opencl.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/cone.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/fbp.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/fbp_base.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/fbp_opencl.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/filtering.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/filtering_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/filtering_opencl.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/projection.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/reconstructor.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/reconstructor_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/rings.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/rings_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/sinogram.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/sinogram_cuda.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/sinogram_opencl.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/tests/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/tests/test_cone.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/tests/test_deringer.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/tests/test_fbp.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/tests/test_filtering.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/tests/test_halftomo.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/tests/test_projector.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/tests/test_reconstructor.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/reconstruction/tests/test_sino_normalization.py +0 -0
- {nabu-2024.1.1/nabu/resources/cli → nabu-2024.1.2/nabu/resources}/__init__.py +0 -0
- {nabu-2024.1.1/nabu/resources/templates → nabu-2024.1.2/nabu/resources/cli}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/cor.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/dataset_analyzer.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/gpu.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/logger.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/nxflatfield.py +0 -0
- {nabu-2024.1.1/nabu/resources/tests → nabu-2024.1.2/nabu/resources/templates}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/templates/bm05_pag.conf +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/templates/id16_ctf.conf +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/templates/id16_holo.conf +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/templates/id19_pag.conf +0 -0
- {nabu-2024.1.1/nabu/stitching → nabu-2024.1.2/nabu/resources/tests}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/tests/test_nxflatfield.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/tests/test_units.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/resources/utils.py +0 -0
- {nabu-2024.1.1/nabu/stitching/tests → nabu-2024.1.2/nabu/stitching}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/alignment.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/config.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/definitions.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/frame_composition.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/overlap.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/sample_normalization.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/slurm_utils.py +0 -0
- {nabu-2024.1.1/nabu/thirdparty → nabu-2024.1.2/nabu/stitching/tests}/__init__.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/tests/test_alignment.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/tests/test_config.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/tests/test_frame_composition.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/tests/test_overlap.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/tests/test_sample_normalization.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/tests/test_slurm_utils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/tests/test_utils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/stitching/utils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/tests.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/testutils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/thirdparty/algotom_convert_sino.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/thirdparty/pore3d_deringer_munch.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/thirdparty/tomocupy_remove_stripe.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/thirdparty/tomopy_phase.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/thirdparty/tomwer_load_flats_darks.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu/utils.py +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu.egg-info/dependency_links.txt +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/nabu.egg-info/entry_points.txt +0 -0
- {nabu-2024.1.1 → nabu-2024.1.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: nabu
|
3
|
-
Version: 2024.1.
|
3
|
+
Version: 2024.1.2
|
4
4
|
Summary: Nabu - Tomography software
|
5
5
|
Author-email: Pierre Paleo <pierre.paleo@esrf.fr>, Henri Payno <henri.payno@esrf.fr>, Alessandro Mirone <mirone@esrf.fr>, Jérôme Lesaint <jerome.lesaint@esrf.fr>
|
6
6
|
Maintainer-email: Pierre Paleo <pierre.paleo@esrf.fr>
|
@@ -48,29 +48,9 @@ Classifier: Topic :: Scientific/Engineering :: Physics
|
|
48
48
|
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
49
49
|
Requires-Python: >=3.7
|
50
50
|
Description-Content-Type: text/markdown
|
51
|
-
License-File: LICENSE
|
52
|
-
Requires-Dist: numpy>1.9.0
|
53
|
-
Requires-Dist: scipy
|
54
|
-
Requires-Dist: h5py>=3.0
|
55
|
-
Requires-Dist: silx>=0.15.0
|
56
|
-
Requires-Dist: tomoscan>=2.0.0a7
|
57
|
-
Requires-Dist: psutil
|
58
|
-
Requires-Dist: pytest
|
59
|
-
Requires-Dist: tifffile
|
60
51
|
Provides-Extra: full
|
61
|
-
Requires-Dist: scikit-image; extra == "full"
|
62
|
-
Requires-Dist: PyWavelets; extra == "full"
|
63
|
-
Requires-Dist: glymur; extra == "full"
|
64
|
-
Requires-Dist: pycuda; extra == "full"
|
65
|
-
Requires-Dist: scikit-cuda; extra == "full"
|
66
|
-
Requires-Dist: pycudwt; extra == "full"
|
67
|
-
Requires-Dist: sluurp>=0.3; extra == "full"
|
68
|
-
Requires-Dist: pyvkfft; extra == "full"
|
69
52
|
Provides-Extra: doc
|
70
|
-
|
71
|
-
Requires-Dist: cloud_sptheme; extra == "doc"
|
72
|
-
Requires-Dist: myst-parser; extra == "doc"
|
73
|
-
Requires-Dist: nbsphinx; extra == "doc"
|
53
|
+
License-File: LICENSE
|
74
54
|
|
75
55
|
# Nabu
|
76
56
|
|
@@ -228,11 +228,20 @@ def main(argv=None):
|
|
228
228
|
|
229
229
|
# get rescale_min_percentile and rescale_min_percentile
|
230
230
|
rescale_min_percentile = options.rescale_min_percentile
|
231
|
+
|
232
|
+
def clean_percentiles_str(percentile):
|
233
|
+
# remove ' char
|
234
|
+
percentile = percentile.rstrip("'").lstrip("'")
|
235
|
+
# remove " char
|
236
|
+
percentile = percentile.rstrip('"').lstrip('"')
|
237
|
+
# remove % char
|
238
|
+
return percentile.rstrip("%")
|
239
|
+
|
231
240
|
if isinstance(rescale_min_percentile, str):
|
232
|
-
rescale_min_percentile = float(rescale_min_percentile
|
241
|
+
rescale_min_percentile = float(clean_percentiles_str(rescale_min_percentile))
|
233
242
|
rescale_max_percentile = options.rescale_max_percentile
|
234
243
|
if isinstance(rescale_min_percentile, str):
|
235
|
-
rescale_max_percentile = float(rescale_max_percentile
|
244
|
+
rescale_max_percentile = float(clean_percentiles_str(rescale_max_percentile))
|
236
245
|
assert rescale_min_percentile is not None, "rescale_min_percentile should be an int"
|
237
246
|
assert rescale_max_percentile is not None, "rescale_max_percentile should be an int"
|
238
247
|
|
@@ -60,12 +60,12 @@ def main():
|
|
60
60
|
cors = get_user_cors(args["cor"])
|
61
61
|
|
62
62
|
all_recs = []
|
63
|
+
rec_instance = pipeline.reconstruction
|
63
64
|
|
64
65
|
for cor in cors:
|
65
66
|
# Re-configure with new CoR
|
66
67
|
pipeline.processing_options["reconstruction"]["rotation_axis_position"] = cor
|
67
68
|
pipeline.processing_options["save"]["file_prefix"] = file_prefix + "_%.03f" % cor
|
68
|
-
pipeline.reconstruction.reset_rot_center(cor)
|
69
69
|
pipeline._init_writer(create_subfolder=False, single_output_file_initialized=False)
|
70
70
|
|
71
71
|
# Get sinogram into contiguous array
|
@@ -73,8 +73,30 @@ def main():
|
|
73
73
|
# For now: transfer to host... not optimal
|
74
74
|
sino = pipeline._d_radios[:, pipeline._d_radios.shape[1] // 2, :].get() # pylint: disable=E1136
|
75
75
|
|
76
|
+
if pipeline.process_config.do_halftomo:
|
77
|
+
# re-initialize FBP object, because in half-tomography the output slice size is a function of CoR
|
78
|
+
options = pipeline.processing_options["reconstruction"]
|
79
|
+
rec_instance = pipeline.FBPClass(
|
80
|
+
sino.shape,
|
81
|
+
angles=options["angles"],
|
82
|
+
rot_center=cor,
|
83
|
+
filter_name=options["fbp_filter_type"] or "none",
|
84
|
+
halftomo=options["enable_halftomo"],
|
85
|
+
# slice_roi=self.process_config.rec_roi,
|
86
|
+
padding_mode=options["padding_type"],
|
87
|
+
extra_options={
|
88
|
+
"scale_factor": 1.0 / options["voxel_size_cm"][0],
|
89
|
+
"axis_correction": options["axis_correction"],
|
90
|
+
"centered_axis": options["centered_axis"],
|
91
|
+
"clip_outer_circle": options["clip_outer_circle"],
|
92
|
+
"filter_cutoff": options["fbp_filter_cutoff"],
|
93
|
+
},
|
94
|
+
)
|
95
|
+
else:
|
96
|
+
pipeline.reconstruction.reset_rot_center(cor)
|
97
|
+
|
76
98
|
# Run reconstruction
|
77
|
-
rec =
|
99
|
+
rec = rec_instance.fbp(sino)
|
78
100
|
# if return_all_recs:
|
79
101
|
# all_recs.append(rec)
|
80
102
|
rec_3D = view_as_images_stack(rec) # writer wants 3D data
|
@@ -74,7 +74,7 @@ def get_default_output_volume(
|
|
74
74
|
volume_basename=input_volume.get_volume_basename(),
|
75
75
|
)
|
76
76
|
else:
|
77
|
-
raise NotImplementedError
|
77
|
+
raise NotImplementedError(f"output volume format {output_type} is not handled")
|
78
78
|
elif isinstance(input_volume, (HDF5Volume, MultiTIFFVolume)):
|
79
79
|
if output_type == "hdf5":
|
80
80
|
data_file_parent_path, data_file_name = os.path.split(input_volume.data_url.file_path())
|
@@ -121,9 +121,9 @@ def get_default_output_volume(
|
|
121
121
|
)
|
122
122
|
)
|
123
123
|
else:
|
124
|
-
raise NotImplementedError
|
124
|
+
raise NotImplementedError(f"output volume format {output_type} is not handled")
|
125
125
|
else:
|
126
|
-
raise NotImplementedError
|
126
|
+
raise NotImplementedError(f"input volume format {input_volume} is not handled")
|
127
127
|
|
128
128
|
|
129
129
|
def cast_volume(
|
@@ -201,7 +201,7 @@ class EntryReader(_BaseReader):
|
|
201
201
|
"""Context manager used to read a bliss node"""
|
202
202
|
|
203
203
|
def __enter__(self):
|
204
|
-
self._file_handler = HDF5File(
|
204
|
+
self._file_handler = HDF5File(self._url.file_path(), mode="r")
|
205
205
|
if self._url.data_path() == "":
|
206
206
|
entry = self._file_handler
|
207
207
|
else:
|
@@ -215,7 +215,7 @@ class DatasetReader(_BaseReader):
|
|
215
215
|
"""Context manager used to read a bliss node"""
|
216
216
|
|
217
217
|
def __enter__(self):
|
218
|
-
self._file_handler = HDF5File(
|
218
|
+
self._file_handler = HDF5File(self._url.file_path(), mode="r")
|
219
219
|
entry = self._file_handler[self._url.data_path()]
|
220
220
|
if not isinstance(entry, h5py.Dataset):
|
221
221
|
raise ValueError("Data path ({}) should point to a dataset (h5py.Dataset)".format(self._url.path()))
|
@@ -1258,7 +1258,7 @@ class PreProcessZStitcher(ZStitcher):
|
|
1258
1258
|
|
1259
1259
|
output_dtype = get_output_data_type()
|
1260
1260
|
# append frames ("instrument/detactor/data" dataset)
|
1261
|
-
with HDF5File(
|
1261
|
+
with HDF5File(self.configuration.output_file_path, mode="a") as h5f:
|
1262
1262
|
# note: nx_tomo.save already handles the possible overwrite conflict by removing
|
1263
1263
|
# self.configuration.output_file_path or raising an error
|
1264
1264
|
|
@@ -1834,7 +1834,7 @@ class PostProcessZStitcher(ZStitcher):
|
|
1834
1834
|
def __enter__(self):
|
1835
1835
|
# handle the specific case of HDF5. Goal: avoid getting the full stitched volume in memory
|
1836
1836
|
if isinstance(self._volume, HDF5Volume):
|
1837
|
-
self.__file_handler = HDF5File(
|
1837
|
+
self.__file_handler = HDF5File(self._volume.data_url.file_path(), mode="a")
|
1838
1838
|
# if need to delete an existing dataset
|
1839
1839
|
if self._volume.overwrite and self._volume.data_path in self.__file_handler:
|
1840
1840
|
try:
|
@@ -1902,7 +1902,7 @@ class PostProcessZStitcher(ZStitcher):
|
|
1902
1902
|
if volume.data is not None:
|
1903
1903
|
data = volume.data
|
1904
1904
|
elif isinstance(volume, HDF5Volume):
|
1905
|
-
file_handler = HDF5File(
|
1905
|
+
file_handler = HDF5File(volume.data_url.file_path(), mode="r")
|
1906
1906
|
dataset = file_handler[volume.data_url.data_path()]
|
1907
1907
|
data = dataset
|
1908
1908
|
self.__file_handlers.append(file_handler)
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: nabu
|
3
|
-
Version: 2024.1.
|
3
|
+
Version: 2024.1.2
|
4
4
|
Summary: Nabu - Tomography software
|
5
5
|
Author-email: Pierre Paleo <pierre.paleo@esrf.fr>, Henri Payno <henri.payno@esrf.fr>, Alessandro Mirone <mirone@esrf.fr>, Jérôme Lesaint <jerome.lesaint@esrf.fr>
|
6
6
|
Maintainer-email: Pierre Paleo <pierre.paleo@esrf.fr>
|
@@ -48,29 +48,9 @@ Classifier: Topic :: Scientific/Engineering :: Physics
|
|
48
48
|
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
49
49
|
Requires-Python: >=3.7
|
50
50
|
Description-Content-Type: text/markdown
|
51
|
-
License-File: LICENSE
|
52
|
-
Requires-Dist: numpy>1.9.0
|
53
|
-
Requires-Dist: scipy
|
54
|
-
Requires-Dist: h5py>=3.0
|
55
|
-
Requires-Dist: silx>=0.15.0
|
56
|
-
Requires-Dist: tomoscan>=2.0.0a7
|
57
|
-
Requires-Dist: psutil
|
58
|
-
Requires-Dist: pytest
|
59
|
-
Requires-Dist: tifffile
|
60
51
|
Provides-Extra: full
|
61
|
-
Requires-Dist: scikit-image; extra == "full"
|
62
|
-
Requires-Dist: PyWavelets; extra == "full"
|
63
|
-
Requires-Dist: glymur; extra == "full"
|
64
|
-
Requires-Dist: pycuda; extra == "full"
|
65
|
-
Requires-Dist: scikit-cuda; extra == "full"
|
66
|
-
Requires-Dist: pycudwt; extra == "full"
|
67
|
-
Requires-Dist: sluurp>=0.3; extra == "full"
|
68
|
-
Requires-Dist: pyvkfft; extra == "full"
|
69
52
|
Provides-Extra: doc
|
70
|
-
|
71
|
-
Requires-Dist: cloud_sptheme; extra == "doc"
|
72
|
-
Requires-Dist: myst-parser; extra == "doc"
|
73
|
-
Requires-Dist: nbsphinx; extra == "doc"
|
53
|
+
License-File: LICENSE
|
74
54
|
|
75
55
|
# Nabu
|
76
56
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|