Skip to main content

Ultrasound Acquisition Configuration file format C++ implementation and wrapping in Python and Matlab

Project description

UAC

Description

The Ultrasound Acquisition Configuration file format is a structure of data to configure ultrasound acquisition.

You may use it with various languages (C++, Python and MATLAB).

Get more informations in the Wiki about class diagram.

Requirements

To use Uac library, you need to have Urx library installed.

Table of Contents

  • Common installation and usage in C++, MATLAB, Python.
  • Build it yourself for C++, MATLAB, Python with CMake.

Use it with C++

C++/CMake

C++ installer

There is no installer for C++ user. You need to build it yourself. If you don't need to read / write file, uac library is header-only.

Installed files

All CMake files will be installed in INSTALL_PATH/lib/cmake/Uac-XXXYYY/ with:

  • XXX: the version of the Uac library (i.e. 1.1.0),
  • YYY: empty if library has been built in shared mode, _static if library is static.

Configuration

First, you need to get Uac package with find_package. If package is not found, set Uac_DIR=INSTALL_PATH/lib/cmake/Urx-XXXYYY.

find_package(Uac REQUIRED)

If package is not found, set Uac_DIR=INSTALL_PATH/lib/cmake/Uac-XXXYYY.

You don't need to find_package(Urx). The Uac library will do it.

You will have access to targets:

  • Uac::Uac: header-only library of the uac struct.
  • Uac::UacUtils: library with helper to manipulate uac struct, including read / write in hdf5 file format.

Examples

add_executable(UacTestIo ${SRCS_FILES})
target_link_libraries(
  UacTestIo PRIVATE Uac::Uac Uac::UacUtils ${HDF5_CXX_LIBRARIES})

Uac::UacUtils is only needed if you use helpers. If you only need the uac file format, only Uac::Uac is needed.

HDF5_CXX_LIBRARIES is only needed if the library has been built with HDF5 support.

You may found a complete example of CMakeLists.txt in test/uac or in test/io folders.

C++ code

Installed files

All files will be installed in :

  • INSTALL_PATH/include/Uac-XXXYYY/ (headers),
  • INSTALL_PATH/lib (dynamic libraries for Linux and static libraries for all operating system),
  • INSTALL_PATH/bin (dynamic libraries for Windows and executables for all operating system).

Examples

All dynamic memory allocation should be stored in a shared_ptr.

#include <memory>

#include <uac/dataset.h>
#include <uac/probe.h>
#include <uac/utils/io/reader.h>
#include <uac/utils/io/writer.h>

auto dataset = std::make_shared<uac::Dataset>();

auto probe = std::make_shared<uac::Probe>();
probe->description = "Probe 1";
dataset->acquisition.probes.push_back(probe);

uac::utils::io::writer::saveToFile("file.uac", *dataset);

auto dataset_loaded = uac::utils::io::reader::loadFromFile("file.uac");

You may found an example for all C++ classes in file uac/utils/io/test/io.h in function generateFakeDataset.

Use it with MATLAB

MATLAB installer

Uac MATLAB homepage is hosted in MATLAB File Exchange but binaries are hosted in Github releases. Be sure to click on Show all 25 assets, download your toolbox (uac-X.Y.Z-linux-amd64.mltbx for Linux or uac-X.Y.Z-win-amd64.mltbx for Windows) then open the toolbox with MATLAB.

You also need to install Urx toolbox from Github releases.

Requirements

MATLAB needs a C compiler to load the C library in Uac toolbox.

If you have an error like MATLAB:mex:NoCompilerFound_link_Win64 / No supported compiler was found / Output from preprocessor is:'cl' is not recognized as an internal or external command, operable program or batch file., run mex -setup c -v and mex -setup c++ -v.

Example of full error message
... Looking for compiler 'Intel Parallel Studio XE 2015 for C++ with Microsoft Visual Studio 2015' ...
... Looking for environment variable 'ICPP_COMPILER15' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2015 for C++ with Microsoft Visual Studio 2015'.
... Looking for compiler 'Intel Parallel Studio XE 2016 for C++ with Microsoft Visual Studio 2015' ...
... Looking for environment variable 'ICPP_COMPILER16' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2016 for C++ with Microsoft Visual Studio 2015'.
... Looking for compiler 'Intel Parallel Studio XE 2017 for C++ with Microsoft Visual Studio 2015' ...
... Looking for environment variable 'ICPP_COMPILER17' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2017 for C++ with Microsoft Visual Studio 2015'.
... Looking for compiler 'Intel Parallel Studio XE 2017 for C++ with Microsoft Visual Studio 2017' ...
... Looking for environment variable 'ICPP_COMPILER17' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2017 for C++ with Microsoft Visual Studio 2017'.
... Looking for compiler 'Intel Parallel Studio XE 2018 for C++ with Microsoft Visual Studio 2015' ...
... Looking for environment variable 'ICPP_COMPILER18' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2018 for C++ with Microsoft Visual Studio 2015'.
... Looking for compiler 'Intel Parallel Studio XE 2018 for C++ with Microsoft Visual Studio 2017' ...
... Looking for environment variable 'ICPP_COMPILER18' ...No.
Did not find installed compiler 'Intel Parallel Studio XE 2018 for C++ with Microsoft Visual Studio 2017'.
... Looking for compiler 'MinGW64 Compiler (C++)' ...
... Looking for environment variable 'MW_MINGW64_LOC' ...No.
Did not find installed compiler 'MinGW64 Compiler (C++)'.
... Looking for compiler 'MinGW64 Compiler with Windows 10 SDK or later (C++)' ...
... Looking for environment variable 'MW_MINGW64_LOC' ...No.
Did not find installed compiler 'MinGW64 Compiler with Windows 10 SDK or later (C++)'.
... Looking for compiler 'Microsoft Visual C++ 2013' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 12.0 ...No.
Did not find installed compiler 'Microsoft Visual C++ 2013'.
... Looking for compiler 'Microsoft Visual C++ 2015' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7' 14.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7' 14.0 ...No.
Did not find installed compiler 'Microsoft Visual C++ 2015'.
... Looking for compiler 'Microsoft Visual C++ 2017' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 15.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 15.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 15.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 15.0 ...No.
Did not find installed compiler 'Microsoft Visual C++ 2017'.
... Looking for compiler 'MinGW64 Compiler (C++)' ...
... Looking for environment variable 'MW_MINGW64_LOC' ...No.
Did not find installed compiler 'MinGW64 Compiler (C++)'.
Error using mex
No supported compiler was found. You can install the freely
available MinGW-w64 C/C++ compiler; see Install MinGW-w64
Compiler. For more options, visit
https://www.mathworks.com/support/compilers.

Use MinGW

If you want to use a free compiler, follow the next steps:

  • Download MinGW-w64 from https://www.mingw-w64.org/downloads. You may use LLVM-MinGW at Github https://github.com/mstorsjo/llvm-mingw/releases and get the latest release from the file llvm-mingw-YYYYMMDD-msvcrt-x86_64.zip.
  • Extract it and install it on c:\llvm-mingw-YYYYMMDD-msvcrt-x86_64 (path c:\llvm-mingw-YYYYMMDD-msvcrt-x86_64\bin must exist) or anywhere but don't use path with space inside.
  • In MATLAB, run:
setenv('MW_MINGW64_LOC', 'C:/llvm-mingw-YYYYMMDD-msvcrt-x86_64')
mex -setup c -v
mex -setup c++ -v

Check you have a message Found installed compiler 'MinGW64 Compiler (C++)'..

Installed files

All MATLAB files will be installed in C:\Users\CURRENT_USER\AppData\Roaming\MathWorks\MATLAB Add-Ons\Toolboxes\uac :

  • +uac (all MATLAB script),
  • include (C++ header, needed to get symbols in C++ library),
  • UacMatlabBinding.dll (main C++ library).

Configuration

If you are using Uac from MATLAB toolbox, you just have to enable Unicode if you need it (feature('DefaultCharacterSet','UTF-8');).

If you want to enable logging, set UAC_DEBUG environment variable to:

  • COUT to display message to the standard output or,
  • the filename where you want to store log messages.

If you built Uac from source, before using Uac in MATLAB, you first need to:

  • allow utf-8 caracters,
  • load the uac library.
addpath([pwd 'INSTALL_PATH/share/Urx-XXXYYY/matlab']);
addpath([pwd 'INSTALL_PATH/share/Uac-XXXYYY/matlab']);
feature('DefaultCharacterSet','UTF-8');
urx.LibBinding.getInstance([path to libUrxMatlabBinding.so], [path to INSTALL_PATH/include/Urx-XXXYYY/urx/matlab/bindings.h], {[path to INSTALL_PATH/include/Urx-XXXYYY]}, {});
uac.LibBinding.getInstance([path to libUacMatlabBinding.so], [path to INSTALL_PATH/include/Uac-XXXYYY/uac/matlab/bindings.h], {[path to INSTALL_PATH/include/Urx-XXXYYY], [path to INSTALL_PATH/include/Uac-XXXYYY]}, {});

⚠ When invoking uac.LibBinding.getInstance the first time, environment variable HDF5_DISABLE_VERSION_CHECK is set. MATLAB have it's own version of HDF5 library. Under Linux it will conflict with the one from Uac.

If you try to use uac.saveToFile(...) or uac.loadFromFile(...) without setting HDF5_DISABLE_VERSION_CHECK, MATLAB will crash with error: Headers are 1.8.23, library is 1.8.12.

Example of full error message
Warning! ***HDF5 library version mismatched error***
The HDF5 header files used to compile this application do not match
the version used by the HDF5 library to which this application is linked.
Data corruption or segmentation faults may occur if the application continues.
This can happen when an application was compiled by one version of HDF5 but
linked with a different version of static or shared HDF5 library.
You should recompile the application or check your shared library related
settings such as 'LD_LIBRARY_PATH'.
'HDF5_DISABLE_VERSION_CHECK' environment variable is set to 1, application will
continue at your own risk.
Headers are 1.8.23, library is 1.8.12
      SUMMARY OF THE HDF5 CONFIGURATION
      =================================
General Information:
-------------------
  	   HDF5 Version: 1.8.12
  	  Configured on: Mon May 10 15:29:10 EDT 2021
  	  Configured by: batserve@bat1062601glnxa64 at The MathWorks, Inc., Natick, MA 01760
  	 Configure mode: production
  	    Host system: x86_64-pc-linux-gnu
        Uname information: Linux bat1062601glnxa64 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux
  	       Byte sex: little-endian
  	      Libraries: shared
       Installation point: /mathworks/devel/bat/B3p3/build/3p/install/7215999/glnxa64/hdf5-1.8
Compiling Options:
------------------
             Compilation Mode: production
                   C Compiler: /mathworks/hub/3rdparty/internal/3349624/glnxa64/gcc-6.3.0/bin/gcc ( gcc (MW GCC 6.3.0-GLIBC2.12-gold) 6.3.0)
                       CFLAGS: -O2 -pipe -pthread -fdebug-prefix-map=/mathworks/devel/bat/B3p3/build= -fPIC 
                    H5_CFLAGS:   -ansi -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -O -fomit-frame-pointer -finline-functions
                    AM_CFLAGS: 
                     CPPFLAGS: 
                  H5_CPPFLAGS: -D_POSIX_C_SOURCE=199506L   -DNDEBUG -UH5_DEBUG_API
                  AM_CPPFLAGS: -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_BSD_SOURCE 
             Shared C Library: yes
             Static C Library: no
Statically Linked Executables: no
                      LDFLAGS: -Wl,--as-needed -fuse-ld=gold -Wl,--disable-new-dtags -Wl,--hash-style=both -Wl,--version-script=/mathworks/devel/bat/B3p3/build/3p/sources/hdf5-1.8//hdf5_linux_exported_symbol.map
                   H5_LDFLAGS: 
                   AM_LDFLAGS: 
   	Extra libraries:  -lz -ldl -lm 
  	       Archiver: ar
  	 	 Ranlib: ranlib
        Debugged Packages: 
  	    API Tracing: no
Languages:
----------
                      Fortran: no
                          C++: no
Features:
---------
                Parallel HDF5: no
           High Level library: yes
                 Threadsafety: no
          Default API Mapping: v18
With Deprecated Public Symbols: yes
       I/O filters (external): deflate(zlib)
       I/O filters (internal): shuffle,fletcher32,nbit,scaleoffset
                          MPE: no
                   Direct VFD: no
                      dmalloc: no
Clear file buffers before write: yes
         Using memory checker: no
       Function Stack Tracing: no
                         GPFS: no
    Strict File Format Checks: no
 Optimization Instrumentation: no
     Large File Support (LFS): yes

Uac must use the same version (at least major / minor number) than the one from MATLAB (here 1.8).

Why is there a problem? Under Linux, the same symbol from two differents libraries are merged. So you can't know which one will be used. By setting HDF5_DISABLE_VERSION_CHECK to 1, you are disabling version check. Under Windows, the operating system keeps symbols from different libraries separate.

Examples

dataset = uac.Dataset();

probe1 = uac.Probe();
probe1.description = 'Probe 1';
dataset.acquisition.excitations = [excitation1];

uac.saveToFile('test.uac', dataset);

dataset2 = uac.loadFromFile('test.uac');

You may found a complete example in file test/matlab/+uac/+UnitTests/CreateUff.m.

Important note

Some field are optional or can be empty (see C++ UML diagram). If you want to unassign a value, don't use [] but use empty method of the class (i.e. uac.ElementGeometry.empty).

Use it with Python

Python wheel

Uac MATLAB homepage is hosted in Pypi. Binaries are hosted in Pypi and Github releases. Be sure to click on Show all 25 assets, download the wheel of your python version (i.e. ultrasound_acquisition_configuration-1.1.0-cp312-cp312-win32.whl) then run pip install ultrasound_acquisition_configuration-1.1.0-cp312-cp312-win32.whl.

Examples

import ultrasound_acquisition_configuration as uac;

dataset = uac.Dataset()

probe1 = uac.Probe()
probe1.description = 'Probe 1'
dataset.acquisition.excitations = [excitation1]

uac.saveToFile('test.uac', dataset)

dataset2 = uac.loadFromFile('test.uac')

You may found a basic example in folder test/python.

Build it with CMake

You can use CMake to build urx for C++ / MATLAB / Python user.

See .gitlab-ci.yml file for various examples.

Build for Windows

Requirements:

Under Windows, you need to explicitly set Visual Studio generator.

cmake.exe -S root_path -B CI -G "Visual Studio 17 2022" -A x64

Full example with urx already built in git-bash console:

git clone https://github.com/moduleus/uac.git
cd uac
git clone https://github.com/microsoft/vcpkg.git
vcpkg/bootstrap-vcpkg.bat
git clone https://github.com/moduleus/vcpkg-registry.git
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake -DBUILD_SHARED_LIBS=OFF -DURX_SRC=../urx -DVCPKG_TARGET_TRIPLET=x64-wsmep -DVCPKG_HOST_TRIPLET=x64-wsmep -DVCPKG_OVERLAY_TRIPLETS=vcpkg-registry/triplets -DWITH_PYTHON:BOOL=ON -DWITH_PYTHON_WHL:BOOL=ON -DWITH_HDF5:BOOL=ON -DWITH_MATLAB:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DENABLE_PCH:BOOL=OFF -DCMAKE_INSTALL_PREFIX=install
cmake --build build --config Release --parallel 4

Build for Linux

cmake -S . -B CI

Full example with urx already built:

git clone https://github.com/moduleus/uac.git
cd uac
git clone https://github.com/microsoft/vcpkg.git
vcpkg/bootstrap-vcpkg.sh
git clone https://github.com/moduleus/vcpkg-registry.git
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DURX_SRC=../urx -DVCPKG_TARGET_TRIPLET=x64-lsrp -DVCPKG_HOST_TRIPLET=x64-lsrp -DVCPKG_OVERLAY_TRIPLETS=vcpkg-registry/triplets -DWITH_PYTHON:BOOL=ON -DWITH_PYTHON_WHL:BOOL=ON -DWITH_HDF5:BOOL=ON -DWITH_MATLAB:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DENABLE_PCH:BOOL=OFF -DCMAKE_INSTALL_PREFIX=install
cmake --build build --parallel 4

Common features

  • Install path

Set -DCMAKE_INSTALL_PREFIX= variable to define the installation path.

  • Debug or Release

If you use a single build type generator (like Makefile in Linux), you need to set CMAKE_BUILD_TYPE to Debug or Release.

  • Static or dynamic libraries

Set BUILD_SHARED_LIBS to OFF or ON.

Note that you should set BUILD_SHARED_LIBS to OFF if you want to build MATLAB or Python buiding.

Be sure to use a vcpkg triplet with the same shared / static link option. For example:

  • Windows and static: x64-wsmep
  • Windows and shared: x64-wdrep
  • Linux and static: x64-lsrp
  • Linux and shared: x64-ldr
  • Use external 3rd party with vcpkg

vcpkg is a package manager. You first need to clone it with git clone https://github.com/microsoft/vcpkg.git.

Also, clone vcpkg-registry with git clone https://github.com/moduleus/vcpkg-registry.git.

Then pass the arguments below. ⚠ If you use cmake-gui, be sure to set these variables BEFORE running configure once. Otherwise, you need to reset cache.

Windows:

-DCMAKE_TOOLCHAIN_FILE="vcpkg_path/scripts/buildsystems/vcpkg.cmake"
-DVCPKG_TARGET_TRIPLET=x64-wsmep -DVCPKG_HOST_TRIPLET=x64-wsmep
-DVCPKG_OVERLAY_TRIPLETS=vcpkg-registry/triplets"

Linux with static libraries (make sure that BUILD_SHARED_LIBS is set to OFF).

-DCMAKE_TOOLCHAIN_FILE="vcpkg_path/scripts/buildsystems/vcpkg.cmake"
-DVCPKG_TARGET_TRIPLET=x64-linux -DVCPKG_HOST_TRIPLET=x64-linux
-DVCPKG_OVERLAY_TRIPLETS=vcpkg-registry/triplets

We provide various triplet with following syntax:

  • w for Windows,
  • l for Linux,
  • d for Linux dynamic (will be static otherwise),
  • sm for Windows static with /MD option (will be dynamic otherwise). See VCPKG_CRT_LINKAGE,
  • e to pass environment variable for Windows. See VCPKG_ENV_PASSTHROUGH,
  • p to pass Python3_EXECUTABLE to vcpkg via VCPKG_Python3_EXECUTABLE environment variable.
  • Urx from vcpkg

If you want to have urx from vcpkg, you need to set WITH_VCPKG_URX:BOOL=ON CMake variable. See various examples in .gitlab-ci.yml.

If you want to have urx from submodule, you need to set URX_SRC=urx CMake variable. URX_SRC is the path of the urx folder. See build:ubuntu-without-3rd-party in .gitlab-ci.yml.

If you want to have urx from find_package, you need to set Urx_DIR CMake variable. Urx_DIR is the path of the CMake files in the Urx install path.

  • Enable HDF5

This feature is needed to read / write uac structure to file.

Set WITH_HDF5 to OFF or ON.

  • Enable Python binding

Set WITH_PYTHON to OFF or ON.

You can also set WITH_PYTHON_WHL to ON if you want to generate wheel package without using pip wheel.

  • Enable MATLAB binding

Set WITH_MATLAB to OFF or ON.

You don't need to have MATLAB installed on your computer to build the MATLAB binding.

  • Build with Clang

You need to set lots of CMake variables and use CMake 3.29 if you want to use CMAKE_LINKER_TYPE variable.

-DCMAKE_C_COMPILER=/usr/bin/clang-17
-DCMAKE_CXX_COMPILER=/usr/bin/clang++-17
-DCMAKE_AR=/usr/bin/llvm-ar-17
-DCMAKE_AS=/usr/bin/llvm-as-17
-DCMAKE_RANLIB=/usr/bin/llvm-ranlib-17
-DCMAKE_LINKER_TYPE=LLD

You may found various command to build Uac in file .gitlab-ci.yml.

Build Python module with pip wheel

Using vcpkg

You may generate wheel archive by launching pip wheel . from the root directory of the project.

The setup.py file support the following options:

  • CMAKE_TOOLCHAIN_FILE to set vcpkg path (repository cloned if option is not given),
  • cmake_build_type to set CMAKE_BUILD_TYPE in CMake (Release by default),
  • vcpkg_triplet to set vcpkg triplet (guessed if omited),

You can also set CMake variable with -DVARIABLE=VALUE.

Example:

python.exe -m pip install .
--config-settings="--global-option=CMAKE_TOOLCHAIN_FILE=vcpkg_path/scripts/buildsystems/vcpkg.cmake"
--config-settings="--global-option=cmake_build_type=RelWithDebInfo"
--config-settings="--global-option=vcpkg_triplet=x64-wsmrep"
--config-settings="--global-option=-DBUILD_SHARED_LIBS=OFF"
--config-settings="--global-option=-DWITH_HDF5=ON"
-v

See build:windows-python and build:ubuntu-python in .gitlab-ci.yml file for real examples.

Without vcpkg

If you want to disable vcpkg and use you own 3rd party library (that you already built), you can set DISABLE_VCPKG to ON and set all XXX_DIR CMake variable (path of the CMake files of the 3rd party).

See CMake target UacPythonWheel in python/CMakeLists.txt file for real example.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

ultrasound_acquisition_configuration-1.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl (8.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64manylinux: glibc 2.34+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp313-cp313-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.13Windows x86-64

ultrasound_acquisition_configuration-1.2.0-cp313-cp313-win32.whl (1.8 MB view details)

Uploaded CPython 3.13Windows x86

ultrasound_acquisition_configuration-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.34+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp312-cp312-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.12Windows x86-64

ultrasound_acquisition_configuration-1.2.0-cp312-cp312-win32.whl (1.8 MB view details)

Uploaded CPython 3.12Windows x86

ultrasound_acquisition_configuration-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.34+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp311-cp311-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.11Windows x86-64

ultrasound_acquisition_configuration-1.2.0-cp311-cp311-win32.whl (1.8 MB view details)

Uploaded CPython 3.11Windows x86

ultrasound_acquisition_configuration-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.34+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp310-cp310-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.10Windows x86-64

ultrasound_acquisition_configuration-1.2.0-cp310-cp310-win32.whl (1.8 MB view details)

Uploaded CPython 3.10Windows x86

ultrasound_acquisition_configuration-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.34+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp39-cp39-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.9Windows x86-64

ultrasound_acquisition_configuration-1.2.0-cp39-cp39-win32.whl (1.8 MB view details)

Uploaded CPython 3.9Windows x86

ultrasound_acquisition_configuration-1.2.0-cp39-cp39-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.34+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp38-cp38-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.8Windows x86-64

ultrasound_acquisition_configuration-1.2.0-cp38-cp38-win32.whl (1.8 MB view details)

Uploaded CPython 3.8Windows x86

ultrasound_acquisition_configuration-1.2.0-cp38-cp38-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

ultrasound_acquisition_configuration-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64manylinux: glibc 2.34+ x86-64

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 cd107a9718532814c9d11346361c3fa1d4a406cabe57a9d9390f328e7294ae39
MD5 65eb60cd40949ad749300322d3525906
BLAKE2b-256 0c4d9709e61822df771c6fa3a2f7eeee0b98f68711b78804cb6fd3af4a6b9423

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7689187a911c1419809c9fec6cfbd373d3ae264017085f0310266dc9d182e69a
MD5 a4b870f83fe7c673270bc87f41221cc8
BLAKE2b-256 dc2ae0995120619a0a2e46a6c741e0d53c7867a7c1eb7e742db31676adc5feb7

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 8742246233e513fc4e82fddfc88800a5ac4465a9e401c8c698ba7dbc51bd7846
MD5 7ea7294479d4c07bb4700bb4c446f978
BLAKE2b-256 edc43b9ca2860eadee748835898e2381ab6526e1525fa0a2dd186085e94d8d91

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 cec55dd4fe18b078104e2bb65e20904623869838685272826ffa2cefd366ecd6
MD5 f798530718e42b48a39241090e3a0b74
BLAKE2b-256 b8d0b3b0042369d8708bcb83cb62e36c15bab2d5549ab0741d83295d3ea2dc7f

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 11a2a716082913bafa16e24f364e08dd91262446831fbc2649bd85a365f69730
MD5 abde307b3f2e526b356b79f75dc0ed35
BLAKE2b-256 4ba512b020d11a2d434bac3723e981e9f2844f4aec71ca5eb180c9c4c888be24

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 6579684fae354a699294036fd19a3f732dd41cad97d7546b2dd37a32bc35793a
MD5 67e03e50744c85e164452317271682d6
BLAKE2b-256 0f6a6d3aa4d4846467e8f2b6ce60ad99d62c116ff9d5461a93238fb396ded0f5

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7044425a48e5af22fc8cf3c213e4758c2471054ed9373de41cfa1702e0132a6b
MD5 eb74b5d14e92c0f773aa9be7cb71bdd4
BLAKE2b-256 99443f99d276a0e75b00804452080696776b05729a7697d58ca68dd7ab5a6d1d

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 cc173bff93cb836f1a60e218525ba6d0a83cfd0df1576f465524d8ac949a3e01
MD5 c933d02a8b8e3ae475d24de054291067
BLAKE2b-256 fe0851bda5719c566b49f97238047c29068a72bf455c15d822c36a6adaa6174a

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4835a42b6226d89316c883bb3a39ac43d21b393a5480d1ebf3f0dcd0e9bc9b08
MD5 15cceb2b6e1b296b6bcd2a6febc246e1
BLAKE2b-256 c009f27312d2436dbc1328e03e3b3b208e43c9b417f76658fcef544463c04e69

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 cd2d3219d536959239928c520b7ff027a430ba7868a28042e2feb1f5db89eaec
MD5 d3ad80b978e84baf3df25941d076538c
BLAKE2b-256 46dc65a36aa4fa6903ab14f158fa268cadd61725af63d285fc853075399deb00

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 67d3bf61a3c5a258a9ea660aa08b4e6beff3acd9bcf58f1b0b57d7816848bc96
MD5 48d9ad1fb05c5cd7c50a4b4f43fc610f
BLAKE2b-256 16a176eb5e9a2eed951b5fde93631fd37d7e0315815366ac8093c6fd6fe8df6f

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d96b35f2627875d28eec9cf09d562ffdbe1d5f6a39ab3731345d3723deab8a4b
MD5 99cfea231fdf7d44f347c8a9c566fe19
BLAKE2b-256 a088bd7dc8e37749976d94df841f48ef312dbd05eb82407284feffec8ec19d58

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 37c3f8d543dba8277ba29fd62380b74860b3602ecda02a2a28cb8a6d2ea4c370
MD5 394ac86c30368c8ecf65c7dcc859ba3e
BLAKE2b-256 0f3b6c0599ad835e39ae20dcfbd448e95bd5759a2ae3af2704b4107a62779737

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 7497a9615bb59e9f645b3eb0c41bc4637c499ff8d0aea2731397cd29597eb6da
MD5 f97867cd6d70ae12330d50abb679c890
BLAKE2b-256 1f8b22474d22e279e90f6ba2b4216a88b48bf3a4a38cd4d390ffd79a6bce3ac6

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 92a9ef6b613f281d3fb0eba756117d3c8da23c45da5339b7a6a5970139a07737
MD5 90b7cd95526eff1a4dc4fe78c707e819
BLAKE2b-256 dd36a99ce25e151436db843be7e66d70a0cb3b73fee3ec737e609a061187cc23

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 68dddfbd775eacf243e2700edc12f79b60b071539b21907fd33d17a2803bf55c
MD5 cfbba307502783acc34af19eb36a3004
BLAKE2b-256 22262977de5a6167ec5a5a6460e4af6663b0329a9cddc2474d14e6193c95b0ac

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4c3a6d08ff0b548cf0c8c2b4d067598a3bca519e0c46c2e8bb4ee7c22648dd57
MD5 e707ca1768bd14cd75dbda895a534e76
BLAKE2b-256 6b3289195f39064457e1a0d381651909ef401b5b8d18b0921c9b3f8e4acaef79

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 90c340a7f905135dd82871bfa67161c9502bb978d0b2c0b8e79a601ec6e46a15
MD5 7930cefe9700033beaabac535d6b2c62
BLAKE2b-256 a7ce53780c8741f07366b21c16bd1f194d3d37aa57b9582b219fb0fd799efa8e

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a38587baddb36410977cbfc14256bb145ded9e9d6dfe2943b6013819d2ff8b52
MD5 f0d049c0d764eaab5271e1b2a4b34b41
BLAKE2b-256 afe910f16869758d810e5eec764058f68cb6d2a766f32ba7a6b1e4154fff3116

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 53aa930aef2f83d4468f09f8bd917893bef348de9872ede38485d564c0e13786
MD5 ad515da8c26ca18b823872ef4178da0a
BLAKE2b-256 ed99b89c5503de4255f34a5584f46125ebc79a5f9eb0e08ba2c51bc9a1199a28

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a7ce9d28dfd14e7eb2e7fbf963b9e9c32b53ecafe20d734376876da205c2f446
MD5 17fcf821b547ecb14d6b511143028a57
BLAKE2b-256 b7f3bf483204b416a03f36a21b477d606db9ff02a6a224bebc0fa53a537f0d2d

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp39-cp39-win32.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 d0626a08edd08a85ac5fdcc38e5155e68667cb8b32997452021b9b304dca2141
MD5 1896f1091ac02c064b0dfaa0d4daba45
BLAKE2b-256 98128f3f1b03e7952de3318efac98aecde62cbe8e321cb21f07cf6d840d3b6e3

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8ca95f39df1500e50c8ab0f9c50fb81342515629ed102454abacb10fbb2ec92c
MD5 7273978c2f399a34f9adf324da655844
BLAKE2b-256 cc86545dd8eb726e74a66596f16826d679786dc95ee34dea1a5af942b4507cb5

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 047feeb5138c608963d43a6b7a3c19e27b68f7844e0dad03205566cc2457fef0
MD5 6e3c363083d5109c28be6a9079de87e8
BLAKE2b-256 bac00de57e9fe869db1f4cee06cd7999b223ea39b1bfedd4562c577bc221e472

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b910fb71a4c07d5b961be52ed1745f8c08f5ecb2a625efe7a4caa946ab3e5b6f
MD5 9959a509ca6002fc0166484ccaeea20e
BLAKE2b-256 551ebda3fc4442278863408e0a05a7b7357ccabcbcfcec44cc7bd56e6c2e07f1

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp38-cp38-win32.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 4b2ed58cfbbaeb8af2823c3b7f2c8146b3848974c215ed0d9057f7e94772e40e
MD5 814c57e98b684975739b05e86e7494f6
BLAKE2b-256 1a95386aec531dcc254415d015ac433f02d61c927efddb7d64fb84b39d0b8b08

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9ad41c841120429911f7ff7955d4e80b10d99c60b8d600f6ff1b22bd418733f2
MD5 eb1ce3f0b8fa00bc32bbb9f8d6fb5a12
BLAKE2b-256 9481f254e0485dc50d019b8864b4c5fabfbf8ac0f4077cd3f85ff48ba1a57880

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8e914871969c75e37240517c1a764a1deabe52fc8074fc1d2840f58d742bbbea
MD5 7cd6b983a9db36060f45d9d07f8d818b
BLAKE2b-256 55456f92631bdb64671c58ceebd00ad2fcc9959cdb1880a6fc6061f0f22518b5

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