Skip to main content

Leap Labs Interpretability Engine

Project description

Leap Interpretability Engine

Congratulations on being a very early adopter of our interpretability engine! Not sure what's going on? Check out the FAQ.

Installation

Use the package manager pip to install leap-ie.

pip install leap-ie

Sign in and generate your API key in the leap app - you'll need this to get started.

Get started!

from leap_ie.vision import engine
from leap_ie.vision.models import get_model

preprocessing_fn, model, class_list = get_model('torchvision.resnet18')

config = {"leap_api_key": "YOUR_API_KEY"}

results_df, results_dict = engine.generate(project_name="leap!", model=model, class_list=class_list, config = config, target_classes=[1], preprocessing=preprocessing_fn)

We provide easy access to all image classification torchvision models via leap_ie.models.get_model(torchvision.[name of model]). We can also automatically pull image classification models from huggingface - just use the model id: get_model('nateraw/vit-age-classifier')

Usage

Using the interpretability engine with your own models is really easy! All you need to do is import leap_ie, and wrap your model in our generate function:

from leap_ie.vision import engine

df_results, dict_results = engine.generate(
    project_name="interpretability",
    model=your_model,
    class_list=["hotdog", "not_hotdog"],
    config={"leap_api_key": "YOUR_LEAP_API_KEY"},
)

Currently we support image classification models only. We expect the model to take a batch of images as input, and return a batch of logits (NOT probabilities). For most models this will work out of the box, but if your model returns something else (e.g. a dictionary, or probabilities) you might have to edit it, or add a wrapper before passing it to engine.generate().

class ModelWrapper(nn.Module):
    def __init__(self, model):
        super().__init__()
        self.model = model

    def forward(self, x):
        x = self.model(x)
        return x["logits"]

model = ModelWrapper(your_model)

Results

The generate function returns a pandas dataframe and a dictionary of numpy arrays. If you're in a jupyter notebook, you can view these dataframe inline using engine.display_df(df_results), but for the best experience we recommend you head to the leap app, or log directly to your weights and biases dashboard.

For more information about the data we return, see prototypes, entanglements, and feature isolations. If used with samples (see Sample Feature Isolation), the dataframe contains feature isolations for each sample, for the target classes (if provided), or for the top 3 predicted classes.

Supported Frameworks

We support both pytorch and tensorflow! Specify your package with the mode parameter, using 'tf' for tensorflow and 'pt' for pytorch.

If using pytorch, we expect the model to take images to be in channels first format, e.g. of shape [1, channels, height, width]. If tensorflow, channels last, e.g.[1, height, width, channels].

Weights and Biases Integration

We can also log results directly to your WandB projects. To do this, set project_name to the name of the WandB project where you'd like the results to be logged, and add your WandB API key and entity name to the config dictionary:

config = {
    "wandb_api_key": "YOUR_WANDB_API_KEY",
    "wandb_entity": "your_wandb_entity",
    "leap_api_key": "YOUR_LEAP_API_KEY",
}
df_results, dict_results = engine.generate(
    project_name="your_wandb_project_name",
    model=your_model,
    class_list=["hotdog", "not_hotdog"],
    config=config,
)

Prototype Generation

Given your model, we generate prototypes and entanglements We also isolate entangled features in your prototypes.

from leap_ie.vision import engine
from leap_ie.vision.models import get_model

config = {"leap_api_key": "YOUR_LEAP_API_KEY"}

# Replace this model with your own, or explore any imagenet classifier from torchvision (https://pytorch.org/vision/stable/models.html).
preprocessing_fn, model, class_list = get_model("torchvision.resnet18")

# indexes of classes to generate prototypes for. In this case, ['tench', 'goldfish', 'great white shark'].
target_classes = [0, 1, 2]

# generate prototypes
df_results, dict_results = engine.generate(
    project_name="resnet18",
    model=model,
    class_list=class_list,
    config=config,
    target_classes=target_classes,
    preprocessing=preprocessing_fn,
    samples=None,
    device=None,
    mode="pt",
)

# For the best experience, head to https://app.leap-labs.com/ to explore your prototypes and feature isolations in the browser!
# Or, if you're in a jupyter notebook, you can display your results inline:
engine.display_df(df_results)

Sample Feature Isolation

Given some input image, we can show you which features your model thinks belong to each class. If you specify target classes, we'll isolate features for those, or if not, we'll isolate features for the three highest probability classes.

from torchvision import transforms
from leap_ie.vision import engine
from leap_ie.vision.models import get_model
from PIL import Image

config = {"leap_api_key": "YOUR_LEAP_API_KEY"}

# Replace this model with your own, or explore any imagenet classifier from torchvision (https://pytorch.org/vision/stable/models.html).
preprocessing_fn, model, class_list = get_model("torchvision.resnet18")

# load an image
image_path = "tools.jpeg"
tt = transforms.ToTensor()
image = preprocessing_fn[0](tt(Image.open(image_path)).unsqueeze(0))

# to isolate features:
df_results, dict_results = engine.generate(
    project_name="resnet18",
    model=model,
    class_list=class_list,
    config=config,
    target_classes=None,
    preprocessing=preprocessing_fn,
    samples=image,
    mode="pt",
)

# For the best experience, head to https://app.leap-labs.com/ to explore your prototypes and feature isolations in the browser!
# Or, if you're in a jupyter notebook, you can display your results inline:
engine.display_df(df_results)

engine.generate()

The generate function is used for both prototype generation directly from the model, and for feature isolation on your input samples.

leap_ie.vision.engine.generate(
    project_name,
    model,
    class_list,
    config,
    target_classes=None,
    preprocessing=None,
    samples=None,
    device=None,
    mode="pt",
)
  • project_name (str): Name of your project. Used for logging.

    • Required: Yes
    • Default: None
  • model (object): Model for interpretation. Currently we support image classification models only. We expect the model to take a batch of images as input, and return a batch of logits (NOT probabilities). If using pytorch, we expect the model to take images to be in channels first format, e.g. of shape [1, channels, height, width]. If tensorflow, channels last, e.g.[1, height, width, channels].

    • Required: Yes
    • Default: None
  • class_list (list): List of class names corresponding to your model's output classes, e.g. ['hotdog', 'not hotdog', ...].

    • Required: Yes
    • Default: None
  • config (dict or str): Configuration dictionary, or path to a json file containing your configuration. At minimum, this must contain {"leap_api_key": "YOUR_LEAP_API_KEY"}.

    • Required: Yes
    • Default: None
  • target_classes (list, optional): List of target class indices to generate prototypes or isolations for, e.g. [0,1]. If None, prototypes will be generated for the class at output index 0 only, e.g. 'hotdog', and feature isolations will be generated for the top 3 predicted classes.

    • Required: No
    • Default: None
  • preprocessing (function, optional): Preprocessing function to be used for generation. This can be None, but for best results, use the preprocessing function used on inputs for inference.

    • Required: No
    • Default: None
  • samples (array, optional): None, or a batch of images to perform feature isolation on. If provided, only feature isolation is performed (not prototype generation). We expect samples to be of shape [num_images, height, width, channels] if using tensorflow, or [1, channels, height, width] if using pytorch.

    • Required: No
    • Default: None
  • device (str, optional): Device to be used for generation. If None, we will try to find a device.

    • Required: No
    • Default: None
  • mode (str, optional): Framework to use, either 'pt' for pytorch or 'tf' for tensorflow. Default is 'pt'.

    • Required: No
    • Default: pt

Config

Leap provides a number of configuration options to fine-tune the interpretability engine's performance with your models. You can provide it as a dictionary or a path to a .json file.

  • hf_weight (int): How much to penalise high-frequency patterns in the input. If you are generating very blurry and indistinct prototypes, decrease this. If you are getting very noisy prototypes, increase it. This depends on your model architecture and is hard for us to predict, so you might want to experiment. It's a bit like focussing a microscope. Best practice is to start with zero, and gradually increase.

    • Default: 0
  • input_dim (list): The dimensions of the input that your model expects.

    • Default: [224, 224, 3] if mode is "tf" else [3, 224, 224]
  • isolation (bool): Whether to isolate features for entangled classes. Set to False if you want prototypes only.

    • Default: True
  • find_lr_steps (int): How many steps to tune the learning rate over at the start of the generation process. We do this automatically for you, but if you want to tune the learning rate manually, set this to zero and provide a learning rate with lr.

    • Default: 500
  • max_steps (int): How many steps to run the prototype generation/feature isolation process for. If you get indistinct prototypes or isolations, try increasing this number.

    • Default: 1500

Here are all of the config options currently available:

config = {
    alpha_mask: bool = False
    alpha_only: bool = False
    alpha_weight: int = 1
    baseline_init: int = 0
    diversity_weight: int = 0
    find_lr_steps: int = 500
    hf_weight: int = 0
    input_dim: tuple = [3, 224, 224]
    isolate_classes: list = None
    isolation: bool = True
    isolation_hf_weight: int = 1
    isolation_lr: float = 0.05
    log_freq: int = 100
    lr: float = 0.05
    max_isolate_classes: int = 3
    max_lr: float = 1.0
    max_steps: int = 1500
    min_lr: float = 0.0001
    mode: str = "pt"
    num_lr_windows: int = 50
    project_name: str
    samples: list = None
    seed: int = 0
    stop_lr_early: bool = True
    transform: str = "xl"
    use_alpha: bool = False
    use_baseline: bool = False
    use_hipe: bool = False
    }
  • alpha_mask (bool): If True, applies a mask during prototype generation which encourages the resulting prototypes to be minimal, centered and concentrated. Experimental.

    • Default: False
  • alpha_only (bool): If True, during the prototype generation process, only an alpha channel is optimised. This results in generation prototypical shapes and textures only, with no colour information.

    • Default: False
  • baseline_init (int or str): How to initialise the input. A sensible option is the mean of your expected input data, if you know it. Use 'r' to initialise with random noise for more varied results with different random seeds.

    • Default: 0
  • diversity_weight (int): When generating multiple prototypes for the same class, we can apply a diversity objective to push for more varied inputs. The higher this number, the harder the optimisation process will push for different inputs. Experimental.

    • Default: 0
  • find_lr_steps (int): How many steps to tune the learning rate over at the start of the generation process. We do this automatically for you, but if you want to tune the learning rate manually, set this to zero and provide a learning rate with lr.

    • Default: 500
  • hf_weight (int): How much to penalise high-frequency patterns in the input. If you are generating very blurry and indistinct prototypes, decrease this. If you are getting very noisy prototypes, increase it. This depends on your model architecture and is hard for us to predict, so you might want to experiment. It's a bit like focussing binoculars. Best practice is to start with zero, and gradually increase.

    • Default: 1
  • input_dim (list): The dimensions of the input that your model expects.

    • Default: [224, 224, 3] if mode is "tf" else [3, 224, 224]
  • isolate_classes (list): If you'd like to isolate features for specific classes, rather than the top n, specify their indices here for EACH target, e.g. [[2,7,8], [2,3]].

    • Default: None
  • isolation (bool): Whether to isolate features for entangled classes. Set to False if you want prototypes only.

    • Default: True
  • isolation_hf_weight (int): How much to penalise high-frequency patterns in the feature isolation mask. See hf_weight.

    • Default: 1
  • isolation_lr (float): How much to update the isolation mask at each step during the feature isolation process.

    • Default: 0.05
  • log_freq (int): Interval at which to log images.

    • Default: 100
  • lr (float): How much to update the prototype at each step during the prototype generation process. We find this for you automatically between max_lr and min_lr, but if you would like to tune it manually, set find_lr_steps to zero and provide it here.

    • Default: 0.05
  • max_isolate_classes (int): How many classes to isolate features for, if isolate_classes is not provided.

    • Default: min(3, len(class_list))
  • max_lr (float): Maximum learning rate for learning rate finder.

  • Default: 1.0

  • max_steps (int): How many steps to run the prototype generation/feature isolation process for. If you get indistinct prototypes or isolations, try increasing this number.

    • Default: 1000
  • min_lr (float): Minimum learning rate for learning rate finder.

  • Default: 0.0001

  • seed (int): Random seed for initialisation.

    • Default: 0
  • transform (str): Random affine transformation to guard against adversarial noise. You can also experiment with the following options: ['s', 'm', 'l', 'xl']. You can also set this to None and provide your own transformation in `engine.generate(preprocessing=your transformation).

    • Default: xl
  • use_alpha (bool): If True, adds an alpha channel to the prototype. This results in the prototype generation process returning semi-transparent prototypes, which allow it to express ambivalence about the values of pixels that don't change the model prediction.

    • Default: False
  • use_baseline (bool): Whether to generate an equidistant baseline input prior to the prototype generation process. It takes a bit longer, but setting this to True will ensure that all prototypes generated for a model are not biased by input initialisation.

    • Default: False
  • wandb_api_key (str): Provide your weights and biases API key here to enable logging results directly to your WandB dashboard.

    • Default: None
  • wandb_entity (str): If logging to WandB, make sure to provide your WandB entity name here.

    • Default: None

FAQ

What is a prototype?

Prototype generation is a global interpretability method. It provides insight into what a model has learned without looking at its performance on test data, by extracting learned features directly from the model itself. This is important, because there's no guarantee that your test data covers all potential failure modes. It's another way of understanding what your model has learned, and helping you to predict how it will behave in deployment, on unseen data.

So what is a prototype? For each class that your model has been trained to predict, we can generate an input that maximises the probability of that output – this is the model's prototype for that class. It's a representation of what the model 'thinks' that class is.

For example, if you have a model trained to diagnose cancer from biopsy slides, prototype generation can show you what the model has learned to look for - what it 'thinks' malignant cells look like. This means you can check to see if it's looking for the right stuff, and ensure that it hasn't learned any spurious correlations from its training data that would cause dangerous mistakes in deployment (e.g. looking for lab markings on the slides, rather than at cell morphology).

What is entanglement?

During the prototype generation process we extract a lot of information from the model, including which other classes share features with the class prototype that we're generating. Depending on your domain, some entanglement may be expected - for example, an animal classifier is likely to have significant entanglement between 'cat' and 'dog', because those classes share (at least) the 'fur' feature. However, entanglement - especially unexpected entanglement, that doesn't make sense in your domain - can also be a very good indicator of where your model is likely to make misclassifications in deployment.

What is feature isolation?

Feature isolation does what it says on the tin - it isolates which features in the input the model is using to make its prediction.

We can apply feature isolation in two ways:

    1. On a prototype that we've generated, to isolate which features are shared between entangled classes, and so help explain how those classes are entangled; and
    1. On some input data, to explain individual predictions that your model makes, by isolating the features in the input that correspond to the predicted class (similar to saliency mapping).

So, you can use it to both understand properties of your model as a whole, and to better understand the individual predictions it makes.

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.

leap_ie-0.0.24-cp312-cp312-win_arm64.whl (803.1 kB view details)

Uploaded CPython 3.12Windows ARM64

leap_ie-0.0.24-cp312-cp312-win_amd64.whl (969.3 kB view details)

Uploaded CPython 3.12Windows x86-64

leap_ie-0.0.24-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

leap_ie-0.0.24-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

leap_ie-0.0.24-cp312-cp312-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

leap_ie-0.0.24-cp311-cp311-win_arm64.whl (818.4 kB view details)

Uploaded CPython 3.11Windows ARM64

leap_ie-0.0.24-cp311-cp311-win_amd64.whl (979.7 kB view details)

Uploaded CPython 3.11Windows x86-64

leap_ie-0.0.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

leap_ie-0.0.24-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

leap_ie-0.0.24-cp311-cp311-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

leap_ie-0.0.24-cp310-cp310-win_arm64.whl (815.5 kB view details)

Uploaded CPython 3.10Windows ARM64

leap_ie-0.0.24-cp310-cp310-win_amd64.whl (977.4 kB view details)

Uploaded CPython 3.10Windows x86-64

leap_ie-0.0.24-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

leap_ie-0.0.24-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

leap_ie-0.0.24-cp310-cp310-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

leap_ie-0.0.24-cp39-cp39-win_arm64.whl (817.5 kB view details)

Uploaded CPython 3.9Windows ARM64

leap_ie-0.0.24-cp39-cp39-win_amd64.whl (977.9 kB view details)

Uploaded CPython 3.9Windows x86-64

leap_ie-0.0.24-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

leap_ie-0.0.24-cp39-cp39-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

leap_ie-0.0.24-cp39-cp39-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

leap_ie-0.0.24-cp38-cp38-win_amd64.whl (998.6 kB view details)

Uploaded CPython 3.8Windows x86-64

leap_ie-0.0.24-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

leap_ie-0.0.24-cp38-cp38-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

leap_ie-0.0.24-cp38-cp38-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

Details for the file leap_ie-0.0.24-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: leap_ie-0.0.24-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 803.1 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for leap_ie-0.0.24-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 44279803eec2337623dbb6ca0da38d9635f2f1fded86fe055cfce0c3e85c663b
MD5 9a1e9a9784ee58b3496134130033d517
BLAKE2b-256 e1fc04efb190ea36f756d66876695e517d926b9412b674c1c5769aac076ec51f

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: leap_ie-0.0.24-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 969.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for leap_ie-0.0.24-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fc16104e1d5af34b39637b2ebf8effd9f5691c131615b935ae804cd15526db86
MD5 947b6f0a6509a1907da492006c3809a4
BLAKE2b-256 30fa0165805a371e49ed12b3ee993b67e3edfed0ab9c8897078d86c964338ddf

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2b4258002bcb90efe63e1175988a8a48238acf5f5079baceecf1180417d7b70
MD5 33659e0657fa1b78ed45be35cd037fa0
BLAKE2b-256 aef33fea35b98758d02ea84ad234a6f26706333bdcc60bfc3d512358a9ee4259

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0991354f4c804354ca812cb6a9bbe23e76aef8c7be98ca344ed77d91564ad517
MD5 ff4e5b0a5bb8aa3e357cf667e7d93d08
BLAKE2b-256 04afa99cf69dc39a8f1b3f62c4f7ea211c79ebff31a559f6eca917565a1de93d

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4948bc5945a0a17ec94542901236d02af3010567e36a848ef7882199ef4ef520
MD5 7873bcd9fe7ebb47299f3d5abf225463
BLAKE2b-256 ef1b5043e1fc2d79b981dbc54afd1cc9274346ba3067d57741cda51f233f0512

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: leap_ie-0.0.24-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 818.4 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for leap_ie-0.0.24-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 12bb73e5ee49a1b18a933738b3d1415e555d90cb23a8b158b0894832c66f64a0
MD5 fd97d8ccd93911810762de8a1e522cf5
BLAKE2b-256 db8211a175da990f3cd106148f19408b43f3f7c0f6d3b390039f7d033d6cde2a

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: leap_ie-0.0.24-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 979.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for leap_ie-0.0.24-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 507657afad8781b152b919d18b3aae92e90f102a6639f2ff2ff5ed4f3f6b7f4e
MD5 3d1f22b89a574796fc5fd0ebc8b09b3f
BLAKE2b-256 e2d0370932ab9cb11a6c1e7ed313926eed026510751f2d93c41d5f9f1c516ef5

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 109393de7882fd7e71d071ed969ccfe343e8ca2731f2e764ea720b52f51cbabd
MD5 232839511537be50c10263661fcce1e5
BLAKE2b-256 0bf30c050fa8e8767e5828a634c569b6279577f68090edbc4061eb8c6438e98d

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 524319d07190f9ccad7463fb716e85763a19c7fb31ed17064213d62543e831c4
MD5 e8ae2c0e587f0864a98af26cd27c814a
BLAKE2b-256 2b269fad2ef22939c00ea4652f22c1b9f9e997437fc23e314ce862820bb59cab

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3f745c856d5867bdd7a46b052cd21ac69a21442bb31956944895d434f796d86d
MD5 b3c8bfd8d15013560f135abbd9985096
BLAKE2b-256 b57db246a7f3378c52ae5fd7b95b06acb4bdb09184b1a6f59fb5b098b1adf43d

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: leap_ie-0.0.24-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 815.5 kB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for leap_ie-0.0.24-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 47a457d558f444c9a51e5c56ae5633245f587e877292e92c06bc38ae4eb03a6e
MD5 ef172c3e4b24ccdf0f3cf7eea1979d6f
BLAKE2b-256 71a33e17eb072c2e8c9591c2852073722fb3fe9d18c3cbe5ec4d177788484e37

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: leap_ie-0.0.24-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 977.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for leap_ie-0.0.24-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 437fe22585a3b7b9ec51cb855fd54cf1ce387b5822147a0dd5472512a35bfafa
MD5 c62465aa99132420765255b8e7783ebc
BLAKE2b-256 27450e85960fcc1653ef6c7b5e5e1dde0158e85d1d77f05d3dd143a2c4392e5e

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fcf53a3e4f7b966bdf4d1657b40ecfe725567c4516620a12e1b6b9c59634b830
MD5 8aae4c9d269f3a354c14e15335ffc4d1
BLAKE2b-256 ae26df0ba2921e5b1eec1fc064febe55fdddd546a689b51bc0a2369e5008074f

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41b76350eef81d227231d8b04f3361121e4b8a33ce0552a51e790d1fa36dde13
MD5 7fbfc0b029e16ea0ec075e81fc26b44e
BLAKE2b-256 67dce17c6dac147f27ecca45007ce3ff7af3e5835446b1e6a84c7493da780b30

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3848ce9baf3e1e5b24c11805893c2f4c127cec6dadff7cf92db00c806e27857b
MD5 219f0cf54e3036c579ea001251b30396
BLAKE2b-256 df33e3e9531f691d8be9298da1088facb43a4d3691a15a4b3ceed16ff763c73f

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp39-cp39-win_arm64.whl.

File metadata

  • Download URL: leap_ie-0.0.24-cp39-cp39-win_arm64.whl
  • Upload date:
  • Size: 817.5 kB
  • Tags: CPython 3.9, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for leap_ie-0.0.24-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 694a0020e1bd0aa2d776a75d06413378bd0f2a9e2bb9b6ca3c9cdc332ab6aace
MD5 6089f011afc1ed568cfbdd5d470821dc
BLAKE2b-256 e46c07a8c6246b3aadd18415328b24f307209a8088b4418b9b2d02b6cf99334a

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: leap_ie-0.0.24-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 977.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for leap_ie-0.0.24-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 769cb97abac89235c1c13a671dc2a814cb7d4ea0c4c7e245fcb7d4cba7b39b61
MD5 cd9c71de605701a092a490447f5fa362
BLAKE2b-256 001aa302625067c98b8b71f079a62deae70dc6a0a9cc668bcbc9c063449972bf

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 780469a8ea185fa61b2645e05757be05ee5efa8dfe995f48b598c9f2d960fe4a
MD5 e48fa323face3b5bc110af85c68c6be0
BLAKE2b-256 d77c9abed65889352c29adf1bfe88021076a17d63890592104737b47a105c432

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 385c3c4f8d7636bb4644c43b638733d8e4037025b186f90175f1ea092a87e376
MD5 464e09a1d4e1d1f4e044e6c9bfa50107
BLAKE2b-256 e1ee592f6a97e5e386a8dd402a0944a4d78ae0a8f77d13ff91042b0d9babc54a

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9860f05f735860be9959b47f705b13c692968843659f6c897a0ce9014b93eb46
MD5 6fbaaccfc05fc42d8eb94e5ece4b1235
BLAKE2b-256 7e5be8f3812a158ad375db2f7faf78df9bbc3ec48778aa034c87c982d3bb21bc

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: leap_ie-0.0.24-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 998.6 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for leap_ie-0.0.24-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 24ad59c9adddcf6fa1ab8f46a13a69a423d7f1d1f1e62cb22050eb21eac394f2
MD5 7328837f6d0258a0e1bf8f2a02214c04
BLAKE2b-256 975ba849383b4f4bbca28726d8f6fdac98d6c14767b87fcfa92a381242f791b1

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bf8c924c90b9ded5cbcbd0d448d3d27ad9d3af39db1e75108d80ec7159f48039
MD5 72fee1662bf92e59ea27cfc2b04f8a00
BLAKE2b-256 23a9f9408f14a3797491ef555ef29dfd21f146f24ae8ca011c466c270f45bb89

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e427cf7ccf308e45d921f1c477c18ba359b3c4b667680e711b72f066a88f9a4b
MD5 000ef2a1fcb3fefe1663c4407743d04a
BLAKE2b-256 04a5a1887b98f051558de366b8ac084446067465a1809fa0201a69af81bd3bc5

See more details on using hashes here.

File details

Details for the file leap_ie-0.0.24-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for leap_ie-0.0.24-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1cf620206a3e9b3f4d1505db7aee5d5b2023116a7dcc1ffb5203f9a4a7ec4ed9
MD5 c94a721d4cf6446731f06b2ca4d716fc
BLAKE2b-256 eca0f35dec451c4918c29cb34df32c731c59f43c26a1ea7e489da20b689147c4

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