Skip to main content

No project description provided

Project description

deform

deform is an implementation of an efficient graph-cut based method for dense deformable image registration. If you find this useful, please cite https://arxiv.org/abs/1810.08427.

The method can be used either as a module through Python (recommended) or a standalone executable. Currently no pre-built binaries for the standalone executable are provided, but the Python module (excluding GPU support) can be installed through pip.

Install

To download and install the pre-compiled Python module from pip:

pip install pydeform

Note: to enable GPU-supported registration you're required to compile the software yourself. See the section below.

Building

Prerequisites

Optional

Download

Retrieve the repository and associated dependencies by running

$ git clone https://github.com/simeks/deform.git
$ cd deform
$ git submodule update --init --recursive

Python

# python setup.py install

Flags accepted by setup.py:

  • --use-cuda: build with CUDA support
  • --use-ispc: build with ISPC support
  • --use-itk: build with ITK support
  • --debug: build with debug symbols

Additional flags starting with -D are also recognised and forwarded to CMake. See C++ section for available build options.

C++

Use CMake (>=3.8) to generate build options of your own choosing.

If CMake cannot find the ISPC executable on your installation, it is possible to hint the installation directory with -DISPC_DIR_HINTS, or to specify the full path to the executable with -DISPC_EXECUTABLE.

Build options

The build can be configured with the following CMake boolean options:

  • DF_BUILD_TESTS: Build unit tests (default: OFF)
  • DF_BUILD_DOCS: Build Sphinx docs (default: OFF)
  • DF_BUILD_EXECUTABLE: Build registration executable (default: ON)
  • DF_BUILD_PYTHON_WRAPPER: Build Python wrapper (default: OFF)
  • DF_USE_CUDA: Enable CUDA support (default: OFF)
  • DF_USE_ISPC: Enable ISPC support (default: OFF)
  • DF_WARNINGS_ARE_ERRORS: Warnings are treated as errors (default: OFF)
  • DF_BUILD_WITH_DEBUG_INFO: Include debug info in release builds (default: OFF)
  • DF_ENABLE_FAST_MATH: Enable fast math (default: OFF)
  • DF_ITK_BRIDGE: Add support to interoperate with ITK (default: OFF)
  • DF_STACK_TRACE: Print a stack trace on errors (default: OFF)
  • DF_ENABLE_MICROPROFILE: Enable microprofile profiler (default: OFF)
  • DF_ENABLE_NVTOOLSEXT: Enable nvtoolsext profiler (default: OFF)

Run

Examples

Examples on how to run the registration can be found in the examples subfolder.

Python

Everything needed for a simple registration setup is located in the pydeform package. The package provides two APIs; first uses pydeform.Volume for handling images and the second uses SimpleITK.

pydeform API

This API uses pydeform.Volume which is a direct wrapper around the internal Volume class used within deform.

import pydeform

fixed = pydeform.read_volume('fixed_file.nrrd')
moving = pydeform.read_volume('moving_file.nrrd')
affine_transform = pydeform.read_affine_transform('affine.txt')

settings = {
  'pyramid_levels': 4
}

df = pydeform.register(
  fixed,
  moving,
  settings=settings,
  affine_transform=affine_transform
)
pydeform.write_volume('result.nrrd', df)

SimpleITK API

SimpleITK is a simplified layer built on top of ITK that provides a wide array of different filters and supports a larger variety of image formats compared to the pydeform API.

The API itself is similar to the pydeform API with the exception that it takes SimpleITK.Image as input for images and SimpleITK.AffineTransform as input for affine transforms. To use this API simply use import pydeform.sitk_api as pydeform.

import SimpleITK as sitk
import pydeform.sitk_api as pydeform

fixed = sitk.ReadImage('fixed_file.nrrd')
moving = sitk.ReadImage('moving_file.nrrd')
affine_transform = sitk.ReadTransform('affine.txt')

settings = {
  'pyramid_levels': 4
}

df = pydeform.register(
  fixed,
  moving,
  settings=settings,
  affine_transform=sitk.AffineTransform(affine_transform)
)
sitk.WriteImage(df, 'result.nrrd')

Settings

The Python API provides the same parameters as the command-line interface. However, rather the specifying the parameters in a YAML-document, the parameters are set by passing a dict object to the registration.

settings = {
  'pyramid_levels': 4,

  'levels': {
    '0': {'max_iteration_count': 20}
  }

  'image_slots': [
    {'cost_function': 'ncc'}
  ]
}
pydeform.register(fixed, moving, settings=settings)

Command-line

To perform a registration using the standalone executable

deform registration -p <param file> -f0 <fixed_0> ... -f<i> <fixed_i> -m0 <moving_0> ... -m<i> <moving_i>

Argument
-f<i> <file> Filename of the i:th fixed image.†
-m<i> <file> Filename of the i:th moving image.†
-fm <file> Filename of the fixed mask.‡
-mm <file> Filename of the moving mask.‡
-fp <file> Filename for the fixed landmarks.
-mp <file> Filename for the moving landmarks.
-d0 <file> Filename for initial deformation field.
-a <file> Filename for initial affine transformation
-constraint_mask <file> Filename for constraint mask.
-constraint_values <file> Filename for constraint values.
-rm <file> Filename for regularization weight map
-p <file> Filename of the parameter file.
-o <file> Filename of the resulting deformation field
-j <file> Filename of the resulting jacobian map
-t <file> Filename of the transformed moving volume
--gpu Enables GPU assisted registration.

† Requires a matching number of fixed and moving images.

‡ Fuzzy masks in floating point format, whose values denote the confidence on the image intensity at each point.

Parameter file example

pyramid_levels: 6
pyramid_stop_level: 0
solver: gco
update_rule: additive
constraints_weight: 1000.0
landmarks_weight: 1.0
landmarks_decay: 2.0
landmarks_stop_level: 0
block_size: [16, 16, 16]
block_energy_epsilon: 1e-7
max_iteration_count: -1
step_size: 0.5
regularization_weight: 0.1
regularization_scale: 1.0
regularization_exponent: 2.0

levels:
  0:
    regularization_weight: 0.1
  1:
    regularization_weight: 0.2
    step_size: 0.01

image_slots:

  # water
  - resampler: gaussian
    normalize: true
    cost_function:
      - function: ssd
        weight: 0.3
      - function: ncc
        weight: 0.4
        radius: 2
        window: cube
      - function: mi
        weight: 0.6
        sigma: 4.5
        bins: 256
        update_interval: 1
        interpolator: nearest
      - function: gradient_ssd
        weight: 0.7
        sigma: 1.0

  # sfcm
  - resampler: gaussian
    normalize: true
    cost_function: ssd

First two parameters, pyramid_levels and pyramid_stop_level, defines the size of the pyramid and at which level to stop the registration. Each level halves the resolution of the input volumes. Setting pyramid_stop_level to > 0 specifies that the registration should not be run on the original resolution (level 0).

solver selects which solver to use for the energy minimization. Available solvers are gco, gridcut, and icm. Note: deform needs to be compiled with DF_ENABLE_GCO and DF_ENABLE_GRIDCUT for gco and gridcut to be enabled.

update_rule specifies the update rule for updating the displacement field. This can be either additive or compositive. The first option updates the displacement field according to u(x) = u(x) + delta, while the second uses composition, i.e., u(x) = u(x+delta) + delta. Compositive updates should produce a more diffeomorphic transformation. Note: compositive updates are still considered an experimental feature.

constraints_weight sets the weight that is applied for constrained voxels. A really high value means hard constraints while a lower value may allow constraints to move a certain amount. Cost for constrained voxels are applied as constraint_weight * squared_distance, where squared_distance is the distance from the constraint target. See cost function for more info.

landmarks_weight sets the weight for the landmark cost term when performing landmark-based registration. In order to perform landmark-based registration, a set of fixed and moving landmarks must be supplied. The implementation of the landmark-based unary energy term is inspired to [2], but the cost in each term of the sum is also proportional to the distance between the current displacement and the landmark displacement. It is possible to limit the usage of the landmarks up to a certain height of the resolution pyramid by assigning to landmarks_stop_level a value greater than zero. landmarks_decay controls the exponential decay of the landmarks effect with respect to distance in image space: higher values correspond to faster decay.

block_size size of the block (in voxels) for the block-wise solver. A block size of (0,0,0) will result in a single block for the whole volume.

block_energy_epsilon, minimum percentage decrease of the block energy required to accept a solution. Higher epsilon will result in lower run time but also lower quality.

max_iteration_count, maximum number of iterations run on each registration level. Setting this to -1 (default) allows an unlimited number of iterations.

step_size, this is the step size in mm that the solver will use. Can be a single float value, in that case the same step size will be used in all directions, or a sequence [sx, sy, sz] of three float specifying the size for each direction.

regularization_weight, regularization_scale, and regularization_exponent control the importance of the regularization term. The cost function is specified as cost = D + a*((b*R)^c), where D = Σw_i*C_i is the data term given by the cost functions C_i with weights w_i, R is the regularization term, a is the regularization weight, b the regularization scale, and c the regularization exponent.

levels, specifies parameters on a per-level basis. The key indicates which level the parameters apply to, where 0 is the bottom of the resolution pyramid (last level). The level identifier can not exceed pyramid_levels. Parameters available on a per-level basis are: constraints_weight, landmarks_weight, block_size, block_energy_epsilon, max_iteration_count, step_size, and regularization_weight.

image_slots, specifies how to use the input images. resampler only supports gaussian for now, normalize specifies whether the volumes should be normalized before the registration, and cost_function allows to provide one or more cost functions to use. Its value can be the name of a single function (ssd for squared distance, ncc for normalized cross correlation, mi for mutual information, gradient_ssd for squared distance of the gradients), in which case its weight is assumed to be 1.0, otherwise one or multiple weighted components can be specified by listing each function and its weight. Each function can accept a set of parameters.

The parameters available for each function are:

  • ssd: no parameters available
  • ncc:
    • window (string): shape of the correlation window, either sphere or cube (default: spere). Note that cube is available only if the program is built with ISPC support. For a given number of samples, the sphere has a better spatial distribution of the samples, yielding a slightly superior quality. When running on the CPU, for the same number of samples (e.g., roughly, a sphere of radius 2 and a cube of radius 1) the cube can be significantly faster to compute.
    • radius (int): radius of the cross-correlation kernel (default: 2). For window=sphere, given a point where NCC is evaluated, samples are taken in all the voxels such that the Euclidean distance of each sample from the point is lesser or equal to radius. For window=cube, samples are taken on all voxels within a cube centred on the point and with side 2×radius + 1.
  • mi:
    • bins (int): number of histogram bins used in the approximation of probability densities (default: 255)
    • sigma (float): standard deviation of the Gaussian kernel used to approximate probability densities (default: 4.5)
    • update_interval (int): interval (in iterations) between updates of the entropy estimates (default: 1). If 0, updates are disabled.
    • interpolator ('linear' or 'nearest'): interpolator used in the update the entropy estimates (default: 'nearest')
  • gradient_ssd:
    • sigma (float): Gaussian smoothing applied to the images before computing the Sobel operator (default: 0.0)

GPU

GPU assisted registration is supported on newer CUDA supported hardware. First step to enable GPU registration is to compile with the DF_USE_CUDA=1 flag, this is set when generating the project with CMake. When both these prerequisites are met, you simply add the --gpu flag to the command-line.

As for now the GPU implementation is considered a pre-release and not all cost functions and features from the original registration implementation are supported. Currently the only two supported cost functions are ssd and ncc.

Logging

The file name for the log file can be specified through the environment variable DF_LOG_FILE. The minimum level for log messages to be reported can be set through the environment variable DF_LOG_LEVEL, and the possible values are Verbose, Info, Warning, Error, and Fatal.

Masks

It is possible to optionally specify fuzzy masks for the fixed and moving image space. The two masks can be set independently, and it is possible to use no mask, only one of the two (either fixed or moving) or both. The masks should be given in floating point format, and they denote the level of confidence on image intensity at each voxel. If the mask value m(x, y, z) at a certain location (x, y, z) is lesser than or equal to zero, then samples taken at that location will not contribute to the matching cost. If m(x, y, z) is greater than zero, then the sample will contribute and its cost given at that location by the image metric will by multiplied by m(x, y, z).

The fixed mask allows to denote a ROI in reference space, formed by all voxels with strictly positive mask values; for all samples outside such ROI the cost function will not be computed at all, having the side effect of making the registration process faster. If a sample belongs to a valid region, then its mapping through the displacement will be computed and, if a mask for the moving image is specified, the sample will contribute only if it falls within a valid ROI in the moving image space, otherwise it will be discarded. The regularisation term is not weighted by the masks, and it will be always computed over all the volume, regardless of the mask values.

The moving mask should be used carefully because it can affect the quality of the result, since there is no penalty for mapping from valid samples in reference space to regions outside of the moving image mask.

Regularization weight maps

It is possible to impose voxel-wise regularization weights in the registration by providing a regularization weight map. This is a map of scalar values the same size as the fixed image. In the standard case the binary term is computed a a|u(v)-u(w)|, where a is the regularization weight. Using a regularization weight map, the weight a is computed as a = 0.5*(W(v) - W(w)), where W is the weight map.

References

  • [1] Junhwan Kim, Vladimir Kolmogorov, Ramin Zabih: Visual correspondence using energy minimization and mutual information. Proceedings of the Ninth IEEE International Conference on Computer Vision, 1033-1040, 2003.

  • [2] Herve Lombaert, Yiyong Sun, Farida Cheriet: Landmark-based non-rigid registration via graph cuts, International Conference Image Analysis and Recognition, 166–175, 2007

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydeform-0.5.1.tar.gz (8.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pydeform-0.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (997.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.5+ x86-64

pydeform-0.5.1-cp38-cp38-win_amd64.whl (540.9 kB view details)

Uploaded CPython 3.8Windows x86-64

pydeform-0.5.1-cp38-cp38-manylinux1_x86_64.whl (996.9 kB view details)

Uploaded CPython 3.8

pydeform-0.5.1-cp38-cp38-macosx_10_13_x86_64.whl (601.7 kB view details)

Uploaded CPython 3.8macOS 10.13+ x86-64

pydeform-0.5.1-cp37-cp37m-win_amd64.whl (543.8 kB view details)

Uploaded CPython 3.7mWindows x86-64

pydeform-0.5.1-cp37-cp37m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.7m

pydeform-0.5.1-cp37-cp37m-macosx_10_9_x86_64.whl (626.2 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

pydeform-0.5.1-cp36-cp36m-win_amd64.whl (543.7 kB view details)

Uploaded CPython 3.6mWindows x86-64

pydeform-0.5.1-cp36-cp36m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.6m

pydeform-0.5.1-cp36-cp36m-macosx_10_6_intel.whl (1.2 MB view details)

Uploaded CPython 3.6mmacOS 10.6+ Intel (x86-64, i386)

pydeform-0.5.1-cp35-cp35m-win_amd64.whl (543.7 kB view details)

Uploaded CPython 3.5mWindows x86-64

pydeform-0.5.1-cp35-cp35m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.5m

pydeform-0.5.1-cp35-cp35m-macosx_10_6_intel.whl (1.2 MB view details)

Uploaded CPython 3.5mmacOS 10.6+ Intel (x86-64, i386)

pydeform-0.5.1-cp34-cp34m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.4m

File details

Details for the file pydeform-0.5.1.tar.gz.

File metadata

  • Download URL: pydeform-0.5.1.tar.gz
  • Upload date:
  • Size: 8.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1.tar.gz
Algorithm Hash digest
SHA256 383bf7a5b91b539504ef04b75d86d6ed0f35c24716fed4a3fe7d4120642cedc0
MD5 920c41bd08aa26b07600d6d1d0c124fa
BLAKE2b-256 e80c3051363af7caac17541506b9f8ecde27b399cb805c70a6d183b18ad8ae88

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
  • Upload date:
  • Size: 997.0 kB
  • Tags: CPython 3.9, manylinux: glibc 2.5+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.5

File hashes

Hashes for pydeform-0.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b95027e9ec474ca8209f70d5cc56ea69d65b5310fc7e3bd2e0462df8978aaa35
MD5 9b359c1ce6db23defc839f84a8366ed1
BLAKE2b-256 60476800dc9b605d2029164ad909e7ca0dbcd2bc4354d1bd9777c2d398499d96

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 540.9 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for pydeform-0.5.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8f58639ef5b359029eed6a1e8bcb27364c5c1e343265bb6eb8c4658f2f5981e8
MD5 7a9117501d1085aaf162ec2f64b0f52c
BLAKE2b-256 a19cd2c317977b375404261de367d152c2dea66ceba365e86270e5a1b0becc93

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 996.9 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for pydeform-0.5.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e4d80ed0eddd5b15935518e10c5daf73208f607f4c9111b245c66fa8fc2fadfc
MD5 0de7e36d63a8b655d00e3c5659729cc4
BLAKE2b-256 aa6bceda0a53a90c832453c362d9c2b3a4d84e37924bbba4a0d7c48cb0467313

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp38-cp38-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp38-cp38-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 601.7 kB
  • Tags: CPython 3.8, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for pydeform-0.5.1-cp38-cp38-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7b4fe190c4ee153d3f221beb3cce82f5cd7106625806f2388af7e818fd7dadde
MD5 c8e65762f968c97676d53f49d58175d5
BLAKE2b-256 255e71a32c77b166591e91dc2a26cda18ddd12a61e020b5e691ecf41393438d9

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 543.8 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 1ebac29662b5651b1a7dc3b17d47f4a82fe93e2d83bec491bcc115065f029f8f
MD5 7543dbcece9d1396b6384f2c088a0d67
BLAKE2b-256 e3044dd57d25aa809032ad2f5f483a810761ddb5ba0b3040cb29a9e5a7fa7c77

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8d05dea0857aaea310a3b983b558e1d6e46992442faefa2352c8c9185a705d59
MD5 dc76ff98262490575dc836fbb16df1c9
BLAKE2b-256 1b9fd4c899c3197fafc028346213b3642c3df346c5ad1ed758ce624f55904920

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 626.2 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 590bbd2460bb789f61032ee691454d22131602c0102d1fd2a13da30941b1cd34
MD5 09501c690d63d83f675f69d2b84668e3
BLAKE2b-256 d813ecfe560fa6d4262fe22bcfad0ff4cead772492ac974cf01f8d82099ece67

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 543.7 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 74f88255879d29ca418f3f819d8d2d2deab04ab553f02d613dce78d5af890dd9
MD5 590257401655a1cd769035a299799ed7
BLAKE2b-256 320b9e4d8e24e2b2abc4da310a6459f51120d3b7d45bed5283d9ece5a5c4b34a

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6800831e5e2634349fb18495eb2b20fec1615067c12d36b088d97904a9b294ba
MD5 b81dc5b6da14946a49f7cf17c07e441c
BLAKE2b-256 5e982433c4af682b4417d249ccaa07a43848ba4a40f7d681b1e78b71dec598a0

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp36-cp36m-macosx_10_6_intel.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp36-cp36m-macosx_10_6_intel.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.6m, macOS 10.6+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 68776492dc0bb1f0aaac00f49e7ade6f5d83009e6cafcda7582012674677a72c
MD5 67cab318aa87d00d54cde3a272a14478
BLAKE2b-256 6627fcf637c5831af916aa4dd456b9b7eee928a9becbf55a02243058e6a5b942

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 543.7 kB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 1bf81c34a4c48e106d6c1ab4da581262789b9b44b4625aa02aeb655494f40b99
MD5 726233f37214a3283000101bcec44131
BLAKE2b-256 66a24c98360ce6d4a7b04111d924935a3f913158187d9be8531df1f3ceb0c4ff

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c743cdf4ad837f3bf4bef774eb6c79bfc6bdfe2da39b0059cec1692d4ecccfd3
MD5 c1644b3add9ed26897133a9b86d873c8
BLAKE2b-256 78eae6afbd36e3b87f01e7c4364979a31135a5f927935246e71c9725b66ee32d

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp35-cp35m-macosx_10_6_intel.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp35-cp35m-macosx_10_6_intel.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.5m, macOS 10.6+ Intel (x86-64, i386)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 28e8c9cfca417e5e46331adbf351ddb1c62dc72dc5ef186eeb32b93c964f6ea1
MD5 5f5d02bc4433735197a184cd6172da2f
BLAKE2b-256 429de1c7728f2ffc65fa68ba7819f641e820a20c9f01a1bd912a7505b8b54715

See more details on using hashes here.

File details

Details for the file pydeform-0.5.1-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

  • Download URL: pydeform-0.5.1-cp34-cp34m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.4m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.4

File hashes

Hashes for pydeform-0.5.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a1a604aa73df5218f33369908e48b42fac85c5ff8ba36da22b4deae367d3c1c4
MD5 bc2eea2fd5745abfe0bdab18cb34a1fb
BLAKE2b-256 7dac369671dfd846bc6e6bce4d6bd4dfd5af04d1c166f50f95b1587f00f1ac5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page