Skip to main content

Deploy AI Systems Yourself (DAISY) Kit. DaisyKit Python is the wrapper of DaisyKit SDK, an AI framework focusing on the ease of deployment.

Project description

DaisyKit Python

https://pypi.org/project/daisykit/

Deploy AI Systems Yourself (DAISY) Kit. DaisyKit Python is the wrapper of DaisyKit SDK, an AI framework focusing on the ease of deployment. At present, this package only has prebuilt distribution for Windows - Python 3. For other platform, you need to compile from source.

How to install ?

For Windows:

pip3 install daisykit

For Ubuntu:

  • Install dependencies
sudo apt install pybind11-dev # Pybind11 - For Python/C++ Wrapper
sudo apt install libopencv-dev # For OpenCV
sudo apt install libvulkan-dev # Optional - For GPU support
  • Install DaisyKit (compile from source)
pip3 install --upgrade pip # Ensure pip is updated
pip3 install daisykit

For other platforms:

  • Install OpenCV, Pybind11 and Vulkan development package (if you want GPU support)

  • Install DaisyKit (compile from source)

pip3 install --upgrade pip # Ensure pip is updated
pip3 install daisykit

Examples

Object detection:

import cv2
import json
from daisykit.utils import get_asset_file, to_py_type
from daisykit import ObjectDetectorFlow

config = {
    "object_detection_model": {
        "model": get_asset_file("models/object_detection/yolox-tiny.param"),
        "weights": get_asset_file("models/object_detection/yolox-tiny.bin"),
        "input_width": 416,
        "input_height": 416,
        "score_threshold": 0.5,
        "iou_threshold": 0.65,
        "use_gpu": False,
        "class_names": [
            "person", "bicycle", "car", "motorcycle", "airplane", "bus", "train", "truck", "boat", "traffic light",
            "fire hydrant", "stop sign", "parking meter", "bench", "bird", "cat", "dog", "horse", "sheep", "cow",
            "elephant", "bear", "zebra", "giraffe", "backpack", "umbrella", "handbag", "tie", "suitcase", "frisbee",
            "skis", "snowboard", "sports ball", "kite", "baseball bat", "baseball glove", "skateboard", "surfboard",
            "tennis racket", "bottle", "wine glass", "cup", "fork", "knife", "spoon", "bowl", "banana", "apple",
            "sandwich", "orange", "broccoli", "carrot", "hot dog", "pizza", "donut", "cake", "chair", "couch",
            "potted plant", "bed", "dining table", "toilet", "tv", "laptop", "mouse", "remote", "keyboard", "cell phone",
            "microwave", "oven", "toaster", "sink", "refrigerator", "book", "clock", "vase", "scissors", "teddy bear",
            "hair drier", "toothbrush"
        ]
    }
}


flow = ObjectDetectorFlow(json.dumps(config))

# Open video stream from webcam
vid = cv2.VideoCapture(0)

while(True):

    # Capture the video frame
    ret, frame = vid.read()

    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

    poses = flow.Process(frame)
    flow.DrawResult(frame, poses)

    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

    # Convert poses to Python list of dict
    poses = to_py_type(poses)

    # Display the resulting frame
    cv2.imshow('frame', frame)

    # The 'q' button is set as the
    # quitting button you may use any
    # desired button of your choice
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# After the loop release the cap object
vid.release()
# Destroy all the windows
cv2.destroyAllWindows()

Face Detection with mask recognition:

import cv2
import json
from daisykit.utils import get_asset_file, to_py_type
import daisykit

config = {
    "face_detection_model": {
        "model": get_asset_file("models/face_detection/yolo_fastest_with_mask/yolo-fastest-opt.param"),
        "weights": get_asset_file("models/face_detection/yolo_fastest_with_mask/yolo-fastest-opt.bin"),
        "input_width": 320,
        "input_height": 320,
        "score_threshold": 0.7,
        "iou_threshold": 0.5,
        "use_gpu": False
    },
    "with_landmark": True,
    "facial_landmark_model": {
        "model": get_asset_file("models/facial_landmark/pfld-sim.param"),
        "weights": get_asset_file("models/facial_landmark/pfld-sim.bin"),
        "input_width": 112,
        "input_height": 112,
        "use_gpu": False
    }
}

face_detector_flow = daisykit.FaceDetectorFlow(json.dumps(config))

# Open video stream from webcam
vid = cv2.VideoCapture(0)

while(True):

    # Capture the video frame
    ret, frame = vid.read()

    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

    faces = face_detector_flow.Process(frame)
    # for face in faces:
    #     print([face.x, face.y, face.w, face.h,
    #           face.confidence, face.wearing_mask_prob])
    face_detector_flow.DrawResult(frame, faces)

    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

    # Convert faces to Python list of dict
    faces = to_py_type(faces)

    # Display the resulting frame
    cv2.imshow('frame', frame)

    # The 'q' button is set as the
    # quitting button you may use any
    # desired button of your choice
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# After the loop release the cap object
vid.release()
# Destroy all the windows
cv2.destroyAllWindows()

Background Matting:

import cv2
import json
from daisykit.utils import get_asset_file
from daisykit import BackgroundMattingFlow

config = {
    "background_matting_model": {
        "model": get_asset_file("models/background_matting/erd/erdnet.param"),
        "weights": get_asset_file("models/background_matting/erd/erdnet.bin"),
        "input_width": 256,
        "input_height": 256,
        "use_gpu": False
    }
}

# Load background
default_bg_file = get_asset_file("images/background.jpg")
background = cv2.imread(default_bg_file)
background = cv2.cvtColor(background, cv2.COLOR_BGR2RGB)

background_matting_flow = BackgroundMattingFlow(json.dumps(config), background)

# Open video stream from webcam
vid = cv2.VideoCapture(0)

while(True):

    # Capture the video frame
    ret, frame = vid.read()

    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

    mask = background_matting_flow.Process(frame)
    background_matting_flow.DrawResult(frame, mask)

    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

    # Display the resulting frame
    cv2.imshow('frame', frame)

    # The 'q' button is set as the
    # quitting button you may use any
    # desired button of your choice
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# After the loop release the cap object
vid.release()
# Destroy all the windows
cv2.destroyAllWindows()

Human Pose Detection:

import cv2
import json
from daisykit.utils import get_asset_file, to_py_type
from daisykit import HumanPoseMoveNetFlow

config = {
    "person_detection_model": {
        "model": get_asset_file("models/human_detection/ssd_mobilenetv2.param"),
        "weights": get_asset_file("models/human_detection/ssd_mobilenetv2.bin"),
        "input_width": 320,
        "input_height": 320,
        "use_gpu": False
    },
    "human_pose_model": {
        "model": get_asset_file("models/human_pose_detection/movenet/lightning.param"),
        "weights": get_asset_file("models/human_pose_detection/movenet/lightning.bin"),
        "input_width": 192,
        "input_height": 192,
        "use_gpu": False
    }
}

human_pose_flow = HumanPoseMoveNetFlow(json.dumps(config))

# Open video stream from webcam
vid = cv2.VideoCapture(0)

while(True):

    # Capture the video frame
    ret, frame = vid.read()

    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

    poses = human_pose_flow.Process(frame)
    human_pose_flow.DrawResult(frame, poses)

    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

    # Convert poses to Python list of dict
    poses = to_py_type(poses)

    # Display the resulting frame
    cv2.imshow('frame', frame)

    # The 'q' button is set as the
    # quitting button you may use any
    # desired button of your choice
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# After the loop release the cap object
vid.release()
# Destroy all the windows
cv2.destroyAllWindows()

Barcode Detection:

import cv2
import json
from daisykit.utils import get_asset_file
from daisykit import BarcodeScannerFlow

config = {
    "try_harder": True,
    "try_rotate": True
}

barcode_scanner_flow = BarcodeScannerFlow(json.dumps(config))

# Open video stream from webcam
vid = cv2.VideoCapture(0)

while(True):

    # Capture the video frame
    ret, frame = vid.read()

    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

    result = barcode_scanner_flow.Process(frame, draw=True)

    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

    # Display the resulting frame
    cv2.imshow('frame', frame)

    # The 'q' button is set as the
    # quitting button you may use any
    # desired button of your choice
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# After the loop release the cap object
vid.release()
# Destroy all the windows
cv2.destroyAllWindows()

Hand Pose Detection:

import cv2
import json
from daisykit.utils import get_asset_file, to_py_type
from daisykit import HandPoseDetectorFlow

config = {
    "hand_detection_model": {
        "model": get_asset_file("models/hand_pose/yolox_hand_swish.param"),
        "weights": get_asset_file("models/hand_pose/yolox_hand_swish.bin"),
        "input_width": 256,
        "input_height": 256,
        "score_threshold": 0.45,
        "iou_threshold": 0.65,
        "use_gpu": False
    },
    "hand_pose_model": {
        "model": get_asset_file("models/hand_pose/hand_lite-op.param"),
        "weights": get_asset_file("models/hand_pose/hand_lite-op.bin"),
        "input_size": 224,
        "use_gpu": False
    }
}

flow = HandPoseDetectorFlow(json.dumps(config))

# Open video stream from webcam
vid = cv2.VideoCapture(0)

while(True):

    # Capture the video frame
    ret, frame = vid.read()

    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

    poses = flow.Process(frame)
    flow.DrawResult(frame, poses)

    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

    # Convert poses to Python list of dict
    poses = to_py_type(poses)

    # Display the resulting frame
    cv2.imshow('frame', frame)

    # The 'q' button is set as the
    # quitting button you may use any
    # desired button of your choice
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# After the loop release the cap object
vid.release()
# Destroy all the windows
cv2.destroyAllWindows()

Note for Python build

Current CD (continuous delivery) flow is partial, which means we only have prebuilt linux wheels for x86_64 and for Windows.

  • Prebuilt wheels for linux x86_64 are built with Github actions.
  • Windows wheels (64bit) are built manually on a local machine.
  • macOS prebuilt wheels are not available for now. However, you can install dependencies (OpenCV, Vulkan) manually, then install Daisykit with pip command.

We will be happy if you can make a pull request to make the CD build fully automated. A good choice is using Github flow for all building tasks.

Current steps for Windows build:

bash ./build_tools/py_windows/build_dk_all_pythons_windows.sh
bash ./build_tools/py_windows/build_dk_python_source_dist.sh
bash ./build_tools/upload_pypi.sh

Bug report

Please open an issue on our official repository if you find any error.

https://github.com/Daisykit-AI/daisykit

Project details


Download files

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

Source Distribution

daisykit-0.1.20211121.tar.gz (15.4 MB view details)

Uploaded Source

Built Distributions

daisykit-0.1.20211121-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

daisykit-0.1.20211121-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (47.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

daisykit-0.1.20211121-cp39-cp39-win_amd64.whl (24.0 MB view details)

Uploaded CPython 3.9 Windows x86-64

daisykit-0.1.20211121-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (47.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

daisykit-0.1.20211121-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (21.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

daisykit-0.1.20211121-cp38-cp38-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

daisykit-0.1.20211121-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (47.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

daisykit-0.1.20211121-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (21.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

daisykit-0.1.20211121-cp37-cp37m-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.7m Windows x86-64

daisykit-0.1.20211121-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (47.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

daisykit-0.1.20211121-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (21.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

daisykit-0.1.20211121-cp36-cp36m-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.6m Windows x86-64

daisykit-0.1.20211121-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (47.9 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

daisykit-0.1.20211121-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl (21.6 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686

File details

Details for the file daisykit-0.1.20211121.tar.gz.

File metadata

  • Download URL: daisykit-0.1.20211121.tar.gz
  • Upload date:
  • Size: 15.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

File hashes

Hashes for daisykit-0.1.20211121.tar.gz
Algorithm Hash digest
SHA256 8b8b7a0d12204c3be192f1e70b3b09daaeaeb115f3d8f498e36350d9310c99ae
MD5 a8c4a8fa21fdde8ddc4c7312cc099135
BLAKE2b-256 4417a5b4c462135c54b18213eae03f8261736e5843b9fa0dc04f697f16731836

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: daisykit-0.1.20211121-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

File hashes

Hashes for daisykit-0.1.20211121-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f35f6cad4c9f2ac4e74894466d4b1ac5d1a4c20299418689d24a70dca2955280
MD5 5aca6efbc986303bbebddee0deaaa7ea
BLAKE2b-256 f8cc007e629c41380761cf90371a877e7329145c60c4f03614ba75ce036d31a0

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for daisykit-0.1.20211121-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 addc563c46d7041c876515977aade9df93b7911294c1c0efa0daa7c090bce82c
MD5 b9732dad85974bb81dacabdd4282022a
BLAKE2b-256 43ec9ca874ad6619bdb17b23c533f0455b58328567e8eb25cacbf7261c4da0ad

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: daisykit-0.1.20211121-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 24.0 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

File hashes

Hashes for daisykit-0.1.20211121-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d57e1ed578c7b8ea890c66508885cdc14016c97648493dfcb26e0d95719b43cd
MD5 71def7546d2362fd414341db4e21229e
BLAKE2b-256 e41970782002ba8fb2bb39adca2314759a1170fc207d3a6c9dc7f7d85a15466d

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for daisykit-0.1.20211121-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b965f408ebaa971f75b04ddfee0082ebabd761080ad6dcfb005ea176fa1e8a5
MD5 8a0c98524c69eeab9710e75202c88b93
BLAKE2b-256 3ce479a4d1b0dbeb3029b1be09c702ecf6fd3698e695163833c1afb17af60d27

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for daisykit-0.1.20211121-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 746df71b38ac84740613e4ba8d0a7e430e5100598fbe2717300cc5e5007ea590
MD5 3add90a740dba0b1b542a0147730cefb
BLAKE2b-256 22a484a562b01ad7fad55309954a15d0760dcb1bccb54c41ec2ba618d2fe7496

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: daisykit-0.1.20211121-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

File hashes

Hashes for daisykit-0.1.20211121-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 c100a2c9ebc9392c7698827a1cd03c40ffee93f79b1e30a5f435b5d9d286d30b
MD5 52fdd1ec95e10ad14f5bdc7b36cec156
BLAKE2b-256 0d1c7e8b96306c03acd72751190e82f6537f7a4f31c9b12e8f89952f648ccf75

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for daisykit-0.1.20211121-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7cbd1e1c6c4fff30c4a5a8b837421a2cd8d19a174f81ee957006ef4054de6f8
MD5 08ddae72f31187f333f24991e6a54f6f
BLAKE2b-256 cc1365e43990909309bcbccc858ab9abbe304b223c1fee6e6402f89896903ea9

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for daisykit-0.1.20211121-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4fdc6fcd28462ba858be1252cc82796dd5ba9d6a4650ec0604c48c9518bd80cd
MD5 c4adfbfdb56f650748677b16a196c630
BLAKE2b-256 5de34f31898c2726b44efea05ecbdd84ff2d5135e483217144e88a9e30aff029

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: daisykit-0.1.20211121-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

File hashes

Hashes for daisykit-0.1.20211121-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 2dcde638be40d6f668a6b249450cd44f596b9b994c6d44453925b45d58df45f3
MD5 ee4916f97c65659aba43247df82bec6b
BLAKE2b-256 ed044a090ca074e6e390886da2b1206ba18ee20a397dcc90392ca970217acb9f

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for daisykit-0.1.20211121-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f4af5da825f55820fc9e0be73b6872a0dd45da0135f7b71418adf3177f85d8d
MD5 72096d262164be16bb20a240b700549b
BLAKE2b-256 32d5bfa8188882b407a6bdf2d1cad0949bf5482edbd78a610aeb39ba3af896ac

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for daisykit-0.1.20211121-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 18972796397623e0c01697d2319e4dfe838c2f233efc2acf0bb25324bb1f2be1
MD5 6802121b2d6b29332b5cf484f4033153
BLAKE2b-256 be5c7c318c0a04a2bd1f83f6ebfa1306f1cf78575f8d7ad73e03d437132fea03

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: daisykit-0.1.20211121-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

File hashes

Hashes for daisykit-0.1.20211121-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 1ce4f14b5c8cc6e8541298f4f5cf6fd6e58debd2724e95be9ad5b3b8afaebf00
MD5 1a36e5f82242493a4a1b34ef38d4a224
BLAKE2b-256 63918e08af1060e9ddfac4692baaf2e25f721eee0991f11f75e4e33fd8a0fa79

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for daisykit-0.1.20211121-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6a32f2417135541f8d6e0959e97ecc389ff1223b77fb1d00a280bad481f7823b
MD5 1209ae4e93ed528182b53a9e2f43b76c
BLAKE2b-256 7a20b82bbea4f1c2f81422a2f9c0ef6bc18fde2d15cca2973c3beec3ddec2827

See more details on using hashes here.

File details

Details for the file daisykit-0.1.20211121-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for daisykit-0.1.20211121-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cda25fc4a0084e51be138fc67eb07938e1a351b70df0bdce73ef3c5e006212b6
MD5 7cb050fe6b13a9e870558d44135ae15e
BLAKE2b-256 74d1c8ef3a2958f0d31ecb8d7928710041e33d0e0dee467a7b6fba53a1387595

See more details on using hashes here.

Supported by

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