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.

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
Installed 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 urx.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, be sure that submodule vcpkg-registry is initialized with git submodule update --init --recursive.

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=Release"
--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.1.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.1.0-cp313-cp313-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.13Windows x86-64

ultrasound_acquisition_configuration-1.1.0-cp313-cp313-win32.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86

ultrasound_acquisition_configuration-1.1.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.1.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.1.0-cp312-cp312-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.12Windows x86-64

ultrasound_acquisition_configuration-1.1.0-cp312-cp312-win32.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86

ultrasound_acquisition_configuration-1.1.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.1.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.1.0-cp311-cp311-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.11Windows x86-64

ultrasound_acquisition_configuration-1.1.0-cp311-cp311-win32.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86

ultrasound_acquisition_configuration-1.1.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.1.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.1.0-cp310-cp310-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.10Windows x86-64

ultrasound_acquisition_configuration-1.1.0-cp310-cp310-win32.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86

ultrasound_acquisition_configuration-1.1.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.1.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.1.0-cp39-cp39-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.9Windows x86-64

ultrasound_acquisition_configuration-1.1.0-cp39-cp39-win32.whl (1.6 MB view details)

Uploaded CPython 3.9Windows x86

ultrasound_acquisition_configuration-1.1.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.1.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.1.0-cp38-cp38-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.8Windows x86-64

ultrasound_acquisition_configuration-1.1.0-cp38-cp38-win32.whl (1.6 MB view details)

Uploaded CPython 3.8Windows x86

ultrasound_acquisition_configuration-1.1.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.1.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.1.0-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 201a496cf87aada4b2932147a52706b9793348184391de82e0069b07542818e4
MD5 85f7c7e0a1430e85b78daa4787e5ef25
BLAKE2b-256 964157dca96340578e6a86552b423d4775e91c1286747e575dd78989a759deb9

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.1.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.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4eea5d83ecf747ded85367dceb25bb803d9d199921a9e6e1ed34b4f02b4e786a
MD5 0f9eeda2f1ebc15483e15520a6dfdde1
BLAKE2b-256 4813b47ace2e996bde3e1b4aaf7813c275d2a91f8c16e856fd2e58e3df17512c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 3497f74ab81fde771e2a1e351fc1bc90b24a947a62a4c3bec3d6b9bfdd2e6839
MD5 addd1861525f77198dce4f036c7828b3
BLAKE2b-256 e26ccc9aad831ee61ccfeb4d05cf5b9f35a052eaa6e3c9d01bb28f2e6e0c74ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3a35f8b1998280496fc6c0067e78d8eb67f10ba78c6e6fe11b3da71f14bff270
MD5 1f916bc1494606fff3e97b62206d1aeb
BLAKE2b-256 78aada0aa42f8d45b2e209abdded464433263e8d8fd91370b71a1201aa49dfc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 ffdf9b0c2204cab75ae085be7dd5675b338aaff789a32ca485a910feed2c1bca
MD5 eedba0be5202dfe0a81c58812c86b29b
BLAKE2b-256 8929455c698a01f9a8613a5e14ccbd46bdfc7fcf6db97fdc2393d585a5a638d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 57e4bce24e61a60e1007ff4898a802bd88f9f3552fc7ddb8e2f63ec76fc5f8d5
MD5 0293472229f4ba3897ea40cb3ac7eafd
BLAKE2b-256 a2909b6ea5c2310fa84b7665d071147fa361da93453ef07df55be0c92539a5be

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.1.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.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 55bdb4dceccbb64c46c7e7d15e645e6becc194f39a8da2949a382a6a3d26a9e3
MD5 8749e0ba0961bfb5b36120009a298ad4
BLAKE2b-256 cad70610b3db7145f00ab7f0217ee911da968e3a5fc92c597fff731df924ad45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 196aa31743b2d293bb6ea064d5beec0c56360c5e9e971609c750dd77fca08dcf
MD5 4c276726b1f796f35fe2e20062183914
BLAKE2b-256 91b25d6cc82df270f77240db86bac97f172f03bf89214af954e1e34e9b463153

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 bd89845b49bb6d7883153b96440e318f9e60afee69104740726e8be682c082e5
MD5 fe7fdc117ab51434d47e10cd90bd9b45
BLAKE2b-256 517175527181be0c5ea30f29cc4ca09aa315f05bbec93b4cc5056bd051f5cc80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bd272c68e030cd3ea26dd98db07a5cdcb367a5d5c28dfd1c877cfbc32dcc999d
MD5 9e2e4245f0e42965faae7abede11e0fb
BLAKE2b-256 6c14853bfaa1a970c7fd6dcd4077d2e58f4ace1de3057d965bf9cadf181e2883

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.1.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.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dc4ea7b61be3430bbf7a3798301ee4b19511a00652e89ea0b6d98cd421be4c20
MD5 ccb39303f4939486778fafe297b2f324
BLAKE2b-256 07dcb559dd1d6212cc5bba88a29b4a1313bb1345f013e52f4ee9f80c7990578c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ee37d69b4de045892b250f496c678441d27d18c5413b6d808ef11f9e483c16e7
MD5 55129e47ba184e94366b8f4f633d3011
BLAKE2b-256 4b780c32064ea11a5bb6fd3f61ca73e12737368917aa2638c30cbd9f26b8c844

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 2becc7cfe6e732480fff923e5801b429277c64fe3adf0bd78ef5a7d419790972
MD5 4411d71c4b126e7bb3d54e878381c969
BLAKE2b-256 b856490fd43926a2afc6adb788485458f414482d3c2fa40d650e59adb00657b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e827d2f34e0c686e6c00480c153604b59ab95967ea3148e67919c5f9053bbf62
MD5 151d0aa0c26ae3e3df6529128b5162ed
BLAKE2b-256 d7357e06f31b8085f151dea7da0eb95a85187083ce325a8ad3de39bb053626f9

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.1.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.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1d1a9b4224e825ce0d0c8aa5a1a859428b86534e502c84ce476e37a1284dc9db
MD5 d8d7f746a0c3ec28a05a118b40a710d6
BLAKE2b-256 8b94283bcf9ea7a0b18a7f92896a666e5e2fcd66088f5561e3c91f02a2bf7ae8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 46b090be33d28236a83a551f137aeb4b527ede69fe01066612fb782b9d9f403d
MD5 c571ce2f31ed569360b096385943a9ef
BLAKE2b-256 74cc8714adabb1dd7cd8f9cdc2c912eea7f7e45c7590761b1ac25d90eef81452

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 e4398a4e9b3fc5990163344d541d75c4755d0b0121c3fa16ce40ba2936875eb5
MD5 687ffc3a2bc60b1dd9924ba958f9b275
BLAKE2b-256 73f91dab8d390247c77adc03eed26beab8bd1684e67de54566f9c50b34a7e250

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a10d4609a1f81540aa0b72423cf35b50b4c38640a25543577eb1eb57c2032195
MD5 72218af9434e7ac6ae7f796f3fcf8a11
BLAKE2b-256 860263af75e4d7cc176d8ead172a301c55b5f2a3d17ed4c7ef3075c1edcb29d2

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.1.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.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ab941b92f1a8ba8cc4cac99f2bcec490370d35cf9d030ce141c3418ae8837348
MD5 9b478de0a3e092630217d654b47a5bff
BLAKE2b-256 0c2b87af56c282ced358c499f6e82c8acefb0ccf6aaecc52506907f503d1c5bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 be637b96731849dc48483f9a6cbc886c36c30e0222593ab6c9b440ee29f8f214
MD5 cd9cc12ccbfd7157e6596ee70c64b140
BLAKE2b-256 fc3957d27c130422bf3a867116778666c13a85454d5e36324709be388b1e655a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 50c5afcf0b19051fbe18dc809c60386b3dfe5c9bf2567998425dbeb4afae7aec
MD5 8f4ddad0684c67391f40ddbbe0996451
BLAKE2b-256 399bf4e26a66be0f56da0cca7f0af41ef4bc03f28ee9b9a8b06b1b3a2a2e1c1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f82273421ac10ed99bfc8a63bca7d0b8082f9b3ba46e2e7cd48303bc7240f40f
MD5 375cf85e5b6915b7b9f80a9eef500e47
BLAKE2b-256 0a55dcf5165ff925258d2e8cebcc7464c8d169e930543b0ee5154a29b704d6d1

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.1.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.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d79205bd12b948dfa01917bc74ae480d64d8e3ac51bb7bc38b2424a6c356b68b
MD5 66b6dcff17ade8a8c8918929987f3714
BLAKE2b-256 151a371092d4c11e891c815ee3fab953b7bf5700b3c4156bd2e29dee25edafa9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d88837ba1c57e272a46737585b9911f822fd58ef239b28d7439a669ddbafcbc9
MD5 837907797c6c5992997c7f44387715cb
BLAKE2b-256 d4e23e74f6611a04dc466165d7671af618f3f7141cb16669a8e9cd0ee78a780c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 2e5f6144ae4423dbae34f76af6799d9110e4b6951e2e226821d76a5ac9d0c8f7
MD5 df10c9fcc2671fdebf9527ea2f0724cb
BLAKE2b-256 d2fc9bb3c20e53eaf4411b72cfb3d963b436575eebebf4e8b54b7b07596b971d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ultrasound_acquisition_configuration-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 eccde30ce3e67ea065eb25008fa15514c6acf77d2da99c229b2306480c7faf08
MD5 30eb2426613bace65839d8f72ac2b719
BLAKE2b-256 7ec81d4a91b761fae3d04433c8e7615967a71a503a01bb0221d773e447e870c6

See more details on using hashes here.

File details

Details for the file ultrasound_acquisition_configuration-1.1.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.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6f3bdd394dc5a99d44f6c9dea28c164a91ef56a34d67d63ac2474699c48e3633
MD5 15e63fe519206c99f2ce88b57e5146a3
BLAKE2b-256 522685bd77673e5d57ebef45ae85404958503779425f56359c0e7d57b908d725

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