Skip to main content

No project description provided

Project description

libicsneo

The Intrepid Control Systems Open Source Cross-Platform Device Communication API

An open source solution to integrate Intrepid Control Systems vehicle networking hardware with your application.

Read the Full Documentation

Getting Started

There are two major ways to write a new application using libicsneo. You can use the C++ interface, which will be compiled with your project and statically linked, or you can use the C interface, which can be either statically or dynamically linked.

Integration with CMake (Static Linking)

Integrating the library with your current CMake project is extremely easy.

  1. Checkout the library (or add as a submodule) into a subdirectory of your project.
  2. Within your CMakeLists.txt you can add the line add_subdirectory("third-party/libicsneo") to bring in the libicsneo targets. Replace third-party with any subdirectory you choose.
  3. The libicsneo library include paths should automatically be added to your include path.
  4. Link the library with your target by adding target_link_libraries(libicsneocpp-example icsneocpp) after your target, substituting libicsneocpp-example with your target application.

You can now include either the C++ API with #include <icsneo/icsneocpp.h> or the C API with #include <icsneo/icsneoc.h>

DLL / SO / DYLIB Releases (Dynamic Linking)

It is also possible to use the precompiled binaries with runtime linking. It is not recommended or supported to attempt to use the C++ interface with dynamic linking due to the complexities of C++ compilers.

  1. Add this repository's /include to your include path
  2. Add #define ICSNEOC_DYNAMICLOAD to the top of your source file
  3. Add #import <icsneo/icsneoc.h> below that line
  4. Call icsneo_init(); to import the library before using any other libicsneo functions.
  5. Use the library as normal.
  6. Call icsneo_close(); to unload the library.

Usage

Using the C++ API

The C++ API is designed to be modern and easy to use. All library functions and classes are in the namespace icsneo. Most applications will start by calling icsneo::FindAllDevices(). This will return an std::vector of std::shared_ptr<icsneo::Device> objects. You will want to keep a copy of the shared_ptr to any devices you want to use, as allowing it to go out of scope will automatically close the device and free all memory associated with it.

Any time you get bus traffic from the API, you will receive it as an std::shared_ptr<icsneo::Message>. The message will be valid as long as the shared_ptr stays in scope. Checking the type of the message allows you to cast it accordingly and access extra data for certain protocols. For instance, casting an icsneo::Message to an icsneo::CANMessage allows you to access the arbitration ID.

A barebones example is provided. For a more complete example, check the included examples.

std::vector<std::shared_ptr<icsneo::Device>> devices = icsneo::FindAllDevices();
std::cout << devices.size() << " found!" << std::endl;
for(auto& device : devices)
    std::cout << "Found " << device->describe() << std::endl; // "Found neoVI FIRE 2 CY2345"
std::shared_ptr<icsneo::Device> myDevice = devices[0];

if(!myDevice->open()) // Device tried and failed to open, print the last error
    std::cout << icsneo::GetLastError() << std::endl;

myDevice->goOnline(); // Start receiving messages
myDevice->enableMessagePolling(); // Allow the use of myDevice->getMessages() later
// Alternatively, assign a callback for new messages
std::this_thread::wait_for(std::chrono::seconds(5));
std::vector<std::shared_ptr<icsneo::Message>> messages = myDevice->getMessages();
std::cout << "We got " << messages.size() << " messages!" << std::endl;
for(auto& msg : messages) {
    switch(msg->network.getType()) {
        case icsneo::Network::Type::CAN:
        case icsneo::Network::Type::SWCAN:
        case icsneo::Network::Type::LSFTCAN: {
            // A message of type CAN is guaranteed to be a CANMessage, so we can static cast safely
            auto canmsg = std::static_pointer_cast<icsneo::CANMessage>(msg);
            // canmsg->arbid is valid here
            // canmsg->data is an std::vector<uint8_t>, you can check .size() for the DLC of the message
            // canmsg->timestamp is the time recorded by the hardware in nanoseconds since (1/1/2007 12:00:00 GMT)
        }
        default:
            // Handle others
    }
}
myDevice->close();

Using the C API

The C API is designed to be a robust and fault tolerant interface which allows easy integration with other languages as well as existing C applications. When calling icsneo_findAllDevices() you will provide a buffer of neodevice_t structures, which will be written with the found devices. These neodevice_t structures can be uses to interface with the API from then on. Once you call icsneo_close() with a device, that device and all associated memory will be freed. You will need to run icsneo_findAllDevices() again to reconnect.

Messages are passed in the form of neomessage_t structures when calling icsneo_getMessages(). These structures contain a uint8_t* to the payload data, and this pointer will be valid until the next call to icsneo_getMessages() or the device is closed.

A barebones example is provided. For a more complete example, check the included examples.

size_t deviceCount = 10; // Pre-set to the size of your buffer before the icsneo_findAllDevices() call
neodevice_t devices[10];
icsneo_findAllDevices(devices, &deviceCount);
printf("We found %ull devices\n", deviceCount);
for(size_t i = 0; i < deviceCount; i++) {
    neodevice_t* myDevice = &devices[i];
    char desc[ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION];
    size_t sz = ICSNEO_DEVICETYPE_LONGEST_DESCRIPTION;
    icsneo_describeDevice(myDevice, desc, &sz);
    printf("Found %s\n", desc); // "Found neoVI FIRE 2 CY2345"
}

neodevice_t* myDevice = &devices[0];
if(!icsneo_openDevice(myDevice)) {
    neoevent_t error;
    if(icsneo_getLastError(&error))
        printf("Error! %s\n", error.description);
}
icsneo_goOnline(myDevice); // Start receiving messages
icsneo_enableMessagePolling(myDevice); // Allow the use of icsneo_getMessages() later
sleep(5);
neomessage_t messages[50];
size_t messageCount = 50;
icsneo_getMessages(myDevice, messages, &messageCount, 0 /* non-blocking */);
printf("We got %ull messages!\n", messageCount);
for(size_t i = 0; i < messageCount; i++) {
    if(messages[i].type == ICSNEO_NETWORK_TYPE_CAN) {
        // A message of type CAN should be interperated a neomessage_can_t, so we can cast safely
        neomessage_can_t* canmsg = (neomessage_can_t*)&messages[i];
        // canmsg->arbid is valid here
        // canmsg->data is an uint8_t*, you can check canmsg->length for the length of the payload
        // canmsg->timestamp is the time recorded by the hardware in nanoseconds since (1/1/2007 12:00:00 GMT)
    }
}
icsneo_closeDevice(myDevice);

Debugging

To enable debug printing set the LIBICSNEO_PRINT_EVENTS environmental variable to the desired APIEvent::Severity level, all Events greater than or equal to that level will be printed to stderr. For example, to print all warnings and errors: LIBICSNEO_PRINT_EVENTS=32.

Building from Source

FTD3XX

Some devices require FTD3XX for USB communication so the FTDI D3XX library will be automatically downloaded and included. If you would like to use a system copy of D3XX instead you can set FTD3XX_ROOT to the path containing f3d3xx.h (-DFTD3XX_ROOT=<path to directory containing ftd3xx.h>).

Windows

  • Open a terminal and install the following:
winget install Microsoft.VisualStudio.2022.Community
winget install Kitware.CMake
winget install Git.Git
winget install Ninja-build.Ninja
  • Reboot so cmake is in the system path
  • Open a developer Powershell for VS2022 and run the following:
git clone https://github.com/intrepidcs/libicsneo
cd libicsneo
cmake -S . -B build -G "Ninja"
cmake --build build
# All dlls and libs are now inside the build directory

Building will require MSVC 2017 version 15.7 or newer and CMake to be installed.

macOS

Getting the dependencies is easiest with the Homebrew package manager. You will also need XCode installed. You can then install CMake, an up-to-date version of GCC or Clang, and libusb-1.0.

Linux

General Dependencies

  • CMake 3.12 or above
  • GCC 7 or above
  • libusb-1.0-0-dev
  • libpcap0.8-dev
  • build-essential is recommended

Fedora

dnf install git @development-tools gcc-c++ libpcap-devel libusb1-devel cmake

Debian/Ubuntu

apt install git build-essential libpcap0.8-dev libusb-1.0-0-dev cmake

Building

git clone https://github.com/intrepidcs/libicsneo
cd libicsneo
cmake -S . -B build
cmake --build build
# Optional: Install globally:
cp *.so /usr/local/lib/

udev

If you'd like to be able to run programs that use this library without being root, consider using the included udev rules:

cp 99-intrepidcs.rules /etc/udev/rules.d/
udevadm control --reload-rules && udevadm trigger

Project details


Release history Release notifications | RSS feed

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.

icsneopy-0.2.0.post1.dev441-pp310-pypy310_pp73-win_amd64.whl (339.5 kB view details)

Uploaded PyPyWindows x86-64

icsneopy-0.2.0.post1.dev441-pp310-pypy310_pp73-macosx_11_0_arm64.whl (564.1 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-win_amd64.whl (339.4 kB view details)

Uploaded PyPyWindows x86-64

icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (956.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-macosx_11_0_arm64.whl (564.1 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

icsneopy-0.2.0.post1.dev441-cp313-cp313-win_amd64.whl (342.4 kB view details)

Uploaded CPython 3.13Windows x86-64

icsneopy-0.2.0.post1.dev441-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (956.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

icsneopy-0.2.0.post1.dev441-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (907.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

icsneopy-0.2.0.post1.dev441-cp313-cp313-macosx_11_0_arm64.whl (565.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

icsneopy-0.2.0.post1.dev441-cp312-cp312-win_amd64.whl (342.3 kB view details)

Uploaded CPython 3.12Windows x86-64

icsneopy-0.2.0.post1.dev441-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (956.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

icsneopy-0.2.0.post1.dev441-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (907.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

icsneopy-0.2.0.post1.dev441-cp312-cp312-macosx_11_0_arm64.whl (565.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

icsneopy-0.2.0.post1.dev441-cp311-cp311-win_amd64.whl (341.7 kB view details)

Uploaded CPython 3.11Windows x86-64

icsneopy-0.2.0.post1.dev441-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (959.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

icsneopy-0.2.0.post1.dev441-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (908.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

icsneopy-0.2.0.post1.dev441-cp311-cp311-macosx_11_0_arm64.whl (564.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

icsneopy-0.2.0.post1.dev441-cp310-cp310-win_amd64.whl (340.2 kB view details)

Uploaded CPython 3.10Windows x86-64

icsneopy-0.2.0.post1.dev441-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (957.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

icsneopy-0.2.0.post1.dev441-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (907.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

icsneopy-0.2.0.post1.dev441-cp310-cp310-macosx_11_0_arm64.whl (563.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

icsneopy-0.2.0.post1.dev441-cp39-cp39-win_amd64.whl (332.6 kB view details)

Uploaded CPython 3.9Windows x86-64

icsneopy-0.2.0.post1.dev441-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (958.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

icsneopy-0.2.0.post1.dev441-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (907.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

icsneopy-0.2.0.post1.dev441-cp39-cp39-macosx_11_0_arm64.whl (563.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file icsneopy-0.2.0.post1.dev441-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 ee3114cef302545e51cdfa028b21b48600724e7745188da7c4a36879520c9543
MD5 381a9aee9c4273477f669b70610c8b65
BLAKE2b-256 559e34f6790f83029820309b3c9222604eb19f32b05b4bc6f997ee23169c102f

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 70943a813736e1128779c4e93426b9104de19346016766e79a3cf720af5eb0bc
MD5 87e8607be714bce1ebd5e5a7d14016f1
BLAKE2b-256 e0e53f249b5ab8b4c06b01212a1a9d2808cb76cc3dc2284975a24fec7c7f0947

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 59850141465247fd646d01f050e4d3ecc480578549051077bde87470e69ea664
MD5 21fbf04ecb9e07d9ebf7e25ff2631833
BLAKE2b-256 dbb136b7ac6a8688e6e5efd61dc92dc31444f4d9688f38bdaea960e4cccc2dcb

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0ece46a6c57b304f059d51994bbc5cd83b9c6efe0cd23cc5f8cd6f9ed70ba9b
MD5 7c53d03834b130bd8b7fce0647b142a3
BLAKE2b-256 c3b37b086c27617763fcc9031d2af05c96853a6c39b7b080dcf8545b51b11c1c

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 76c9ed1d3757ca5b87579420f5b2938ccf65301d37b245a60f4fdebf3631cc2f
MD5 15ace6af38e51adef879a991d2b06d64
BLAKE2b-256 7119dff2f7f06807daadb0ed5b56eb5698e0c972e6645f111b7059f99b4ffac0

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 18b68b49a04dc569e8f0e7928a574a5df505a56a36ac7eba8726463c80d593d4
MD5 8333a5f55125db96676dc535d8ae3d12
BLAKE2b-256 a0882852b89af07a4f5b9dfd839e0af32397be75b25e9bc910259f011490ece7

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eb4d180aa569d87f7ca753094c508ecce1d27dd3f2586360fb8b409e6b15b8fd
MD5 cd1fffad3ba8cdddf2e069eaf41607f0
BLAKE2b-256 53112626ab3f3906fec597f77401b6dfbc6f842f1b25a133e9200b2071c6e03d

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 527f1db586945a2a02d99535c4ebfb2667263eb8a066c08e09cec70ae49faac4
MD5 327545cbdbe374dfe04f52ffcf7969fd
BLAKE2b-256 e5428ef4a9a70e7364aadc32832c3c6208db7254febd79e5417f698bf51b4d41

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8c38e8aac24ab2f4444eb3e5017370e0c5d8aefbba2753637ca39b3b3cdbcc4b
MD5 3f7ce9ce20fba97076d65032bf294993
BLAKE2b-256 80917f906849589da24b859bfecd0fc4be4c4a34a8c8fb640004974ae72f0377

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c4f3d17816697bf68bc0c864aaa5b986d10dc3ee3bdded9a2c11f1db121fcbaa
MD5 1d4b5344768f03fbce4b3e97dfc004e1
BLAKE2b-256 e39db388bf3375edeb816e23d929a8dab7a6ac492bca2d7fa5f291fc51c89681

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ee93c51f19c788a7dc992cb43f9507c0a6da3de7fb6cdf69dddb2fb008417de6
MD5 218f823a5dfbf300205c7f733b4752ac
BLAKE2b-256 14921a633514941220a31252bc2a7cd1fc6d8e11854fdfdecf6c29578dcc7464

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce438d8308bbb0d84fb30374a0669995b21cc9a47bd22d0b9935b38e4eb5f242
MD5 6d7509061d0a784541748664b32eb707
BLAKE2b-256 f83544b4924f067bc2eeb1cd0d5e227276b7b65d9f4d226928a5f388034ab549

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 25c348ca75c2d4df256d4affa4c0e0f16b5340535a60aa97cf3c328feacf1a39
MD5 e0f3c6e382a0fae5158908bec9bf3ffd
BLAKE2b-256 7e54a6fdfdda8e9ccfce313ca39a02ee7dd2f502c0581c53d7e73d109bb21f3b

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 850de685a517b8b2cac179853550bb464b825dd2ec9b4f68818847e885d599a4
MD5 29b93ac2b41e3cf8741a560e95b4cda8
BLAKE2b-256 4640a4559a976fd1280184644ce5190212b215938a377c1794c5a9600814d76b

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f48fed966381b9b253ab63d262f0c177e25a0f67478252bb9de5f09d9b73f103
MD5 5b800e7188eefcec9cb0c6ca39f5a4a8
BLAKE2b-256 71bf7138ccc83e3625dac5b1a6a980688ff1a6a8de46207ae7d8fb09b41c409f

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a62af69c8baccd10bf2698bec6ef93186bda9756c4d1b306f6f91b4104fd5322
MD5 bb6f9a410826532890dc9219e245b6c3
BLAKE2b-256 221827060ef9a52756d06a9c5bf63f12bfbc24aafafd73f6535864e76f4fb96c

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1197276a13427359543925248ab6e3aded13452b823e832699dcd4814353b457
MD5 18a8f546d9ecdfe375695ffb523aaffb
BLAKE2b-256 fdc5b4ca01b0c0031a639b8f4ae42d7fb0a0fdc6cff08daf9b599c637d7eedbd

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fc91ab37f459bbe02fc578bfef6cde1881b3f290ff7da73fe9c3648e0881e292
MD5 b17d8f4bd3ca44000746afa122fb2ac6
BLAKE2b-256 b721744d58bd23c6193af108cd89bbdb6c8ac49dcf6230e7b50ff1d1fdc23b09

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9b9c58bf0743f8b49d9807c9110725c44c8d8ec54c1a39affd410e55c709abed
MD5 5b6041eac682c7af774dc42e30eb6ec1
BLAKE2b-256 58adac96e1a5d93b044f42fd176cee96710ce2333a3d738a6ef0c6cc940b0fd2

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73bb774d3aee84711d708dd78f502ecc34714c3e0459459759b539ad362db12f
MD5 3c17fcd8d331fe22c48a2233821b9594
BLAKE2b-256 93f53dd71dea4a1d2f175e5a177e23ea9c51f470e6952a7cc31351e10f3c3ce8

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b48989899be178d3b9f43893d4096aa97c88ec9e255984ba95b0986e814319f3
MD5 733c71b8713284d54e240f379df8e9f3
BLAKE2b-256 e69adef624446d787a65a56b4aa693fd887de48115aa57b684b1681c32b301a5

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6bcd403e175e331133dfaa7d39b6d808456d3cd3cab737faa520cd3cda56611a
MD5 77a5d28c8bf3732975f2259296b7a67a
BLAKE2b-256 32dbed28f651c63bc3703ce27aafb156c92d186753db7bb2d4800d98101bb135

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6592db237bcc4454ec2c108971fab28a669e87d8f155683452e150cd551d0794
MD5 f969f5c2271dcfaefd1f4e204d905ae9
BLAKE2b-256 95fb70e6caaf0e7cbd1ed1c6f16034fb7dfaa7169c2f48399ee62658eca7a1c2

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 92efcaad05c278d1c9e91117c1cb40019bf8ac89c7a7581645133e1fe02ec525
MD5 2a15d14d454c52458438e4bcf5c78511
BLAKE2b-256 41c4adb378e2963c225e4bc3b2cb6912350840ac2ab4907f3804a80a13e8e6a6

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3e7cbed44d159bba9c7271a97782e9076e7593dfd11e6bc00612e7d1311d77c7
MD5 d20c8b97ba59356f24f404b413391841
BLAKE2b-256 a309c3da4a087b05c2fcd3cb67ef51dfc789730b0c615447daf3b15b61bdc97e

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02fa62ccdc3fd95ea881ad49da5f838cdacbce33d3f7879bbff7dade4303165c
MD5 550a1e62db7cf49547d836d96c4025c7
BLAKE2b-256 3055c1672e532a2ac1266d9c4baafb310c94255fbd70434c67a316c5b88d5028

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 965df62622d1600095e8eac3dd5ee564643b2ba686130444a1cd5c9ed72f74f8
MD5 33d486bac08e63264f0abc0d284049b8
BLAKE2b-256 e847a330f060827b05db219b3b96c1c82a39f4f4bb76e2c6022208186d3bba1e

See more details on using hashes here.

File details

Details for the file icsneopy-0.2.0.post1.dev441-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for icsneopy-0.2.0.post1.dev441-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb443b3300f6dc6f368e960e364efc8b588318a773b7b590c4a8038b3da0c508
MD5 c1b4c206a1d7555e892c7d39571871a4
BLAKE2b-256 b01ff620a349aee45fa151eb1d03d2e2277dba3f3964e65a50a7eb525a10165b

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