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

During installation leap-ie does not modify any dependencies related to PyTorch or Tensorflow in order to preserve your development environment. However, leap-ie requires that the following version requirements are met:

PyTorch

Library Version
torch >=1.13.0
torchvision >=0.14.0

Tensorflow

Library Version
tensorflow >=2.12.0

If you do not have the required libraries installed, you can quickly install them by specifying them as extras:

PyTorch

pip install leap-ie[with-torch]

Tensorflow

pip install leap-ie[with-tensorflow]

Generating an API Key

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.25-cp312-cp312-win_arm64.whl (806.3 kB view details)

Uploaded CPython 3.12Windows ARM64

leap_ie-0.0.25-cp312-cp312-win_amd64.whl (973.3 kB view details)

Uploaded CPython 3.12Windows x86-64

leap_ie-0.0.25-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.25-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

leap_ie-0.0.25-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.25-cp311-cp311-win_arm64.whl (823.7 kB view details)

Uploaded CPython 3.11Windows ARM64

leap_ie-0.0.25-cp311-cp311-win_amd64.whl (985.8 kB view details)

Uploaded CPython 3.11Windows x86-64

leap_ie-0.0.25-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.25-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

leap_ie-0.0.25-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.25-cp310-cp310-win_arm64.whl (828.5 kB view details)

Uploaded CPython 3.10Windows ARM64

leap_ie-0.0.25-cp310-cp310-win_amd64.whl (984.6 kB view details)

Uploaded CPython 3.10Windows x86-64

leap_ie-0.0.25-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.25-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

leap_ie-0.0.25-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.25-cp39-cp39-win_arm64.whl (822.8 kB view details)

Uploaded CPython 3.9Windows ARM64

leap_ie-0.0.25-cp39-cp39-win_amd64.whl (985.2 kB view details)

Uploaded CPython 3.9Windows x86-64

leap_ie-0.0.25-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.25-cp39-cp39-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

leap_ie-0.0.25-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.25-cp38-cp38-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.8Windows x86-64

leap_ie-0.0.25-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.25-cp38-cp38-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

leap_ie-0.0.25-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.25-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: leap_ie-0.0.25-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 806.3 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.25-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 5afd7f084cab29a10a90d84ecbb4bde5ca49376ab5f01e895b4a307019403ecc
MD5 6d833f0dc660434b92d22e6377398c25
BLAKE2b-256 8cf635d8b6b3f8ddf529366a37f518d5f39c4518feb9e8279d988d0398f5a69d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: leap_ie-0.0.25-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 973.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.25-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 599039fdadce8064a0979cf57080b8eb99039788feff07f5c46bc085c0b3ec2a
MD5 332eecd5f03a0d82bc0138736ccb3872
BLAKE2b-256 764c3ac34526dce9219cea63d727e3209a624b21505657dc605149ee04cc55f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1d8d9a005e82cab58f1efbb3cf15b9bfcc1324f9a3ebe6ffec19e8e112ffba88
MD5 97b059e0f6145004d4b1a555a09bdc63
BLAKE2b-256 3b77a1f6eefe01a09df94159df0deae1984e6ba9741edc53c6a729c468f017ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3afb846dd8cc20b02044587d0d8c5f83825b6bc262a7df48176b54289ffd7dbe
MD5 21d86ff32345cc71c9079432c1faac0b
BLAKE2b-256 cb8a87ac57d3b609ee32207f8a4b198ed5e078570ef351a0f069d6f552731ca1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e3d993c4376793354283b16662ab12591563c34c4967430d8c90ac34504de609
MD5 90a2f45e8c3a066889a8bfc3267abe22
BLAKE2b-256 0e0c378d33538fc3c1d863d5e7674dd571847b66af4c75468154bf683f7e49ca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: leap_ie-0.0.25-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 823.7 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.25-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 8fd6522c8a81c2a151209205fe441acbf8f0a4796df693b7005b23caaba8b383
MD5 e89189da65efbe6b62e575c62ac6db83
BLAKE2b-256 9874037f1fd1b6fbdfbb888fecebf1ff4a8f42ca6de8528dfcab2a69d773f0df

See more details on using hashes here.

File details

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

File metadata

  • Download URL: leap_ie-0.0.25-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 985.8 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.25-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 407370c4886af8458818579fae7d663542e434db04ead44460b930444f841677
MD5 5aba494714b5063e877d07664aa5316e
BLAKE2b-256 343b569c9dd4c62b29d921daa1b0216468bb5008884c90a0e7248c38687f899a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5b3296e7590ce600a1cbdc422869302f58f190a6ea22d4811b099bc541859e2a
MD5 248552adbe30eca2515e6856e3d692d6
BLAKE2b-256 cfaaa1f4b87841210de37de12df031204898748f981dd7b1862aaf81b9dccaa7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2f878c5a4e2c38be32b9f5f0a66cc360c02439bb385162147ca464a3a9a3c34
MD5 322ba6c3c349359e9f36367597a51fde
BLAKE2b-256 64961da42154e78f09be99d64b65c8d50b17216ba5dd0038ad7e93998b0f506d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a1cf816d1144fc66994cdde90772a982d31e59e6cc4a7d1a6cc7540f02441523
MD5 6b7eaed6dcdda1e178430a0aa2535ba7
BLAKE2b-256 37669a799fc85a09777a4693258e6b5b241f861b88e2de82c57212e7f3917d19

See more details on using hashes here.

File details

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

File metadata

  • Download URL: leap_ie-0.0.25-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 828.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.25-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 3bf30f9e34dab8288c7be52e5fd847197026c3c0b8008240ad42f62ba13f260e
MD5 03a19471a3fd2e9e586a318b0dfb7f3e
BLAKE2b-256 9a7b0c65b81f5fa5adf8dc7f935b892fedff9ea971b9508fa89b57ed1822e09e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: leap_ie-0.0.25-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 984.6 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.25-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 57dcce331292122fd0553c8fcb17a4d87b023490c2be457906ef5fbcefcb8415
MD5 f78e44b18c661316a4aae365c835de71
BLAKE2b-256 a29bb2dff569fe6e231f15a3a23b4a83600091b7886cf165d4ba92e561c32907

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc43cfef1ad608830fa0c0a7c77b562863cfa8e1472c6320faa91bed0f1b43e5
MD5 82991a434bc3200f1bdb2500c73359df
BLAKE2b-256 387f16b11a1aff4da8053d6d1afc7393d611c03b752bc17543898b4a0d989ca7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 781b525982fe5a0f1b94a359122ec6db75c6e94e23b7736cf4ccf26a663da3d7
MD5 06ba4246a654b74c0afd811645a44012
BLAKE2b-256 1de95b298fdd82a8e8860efc5ca7039e1b924e00bfc0ba439976d0e1fff16f47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1193e95057ca70fa135f79155671cd75fc1cf448a5ed1c8240d75ad790db1961
MD5 8425c8c1b6871749ac9c90037f2a9600
BLAKE2b-256 f121ed56363f6308517ea86d17f7b855f41d5185611a137d0c1350a57d7ce22c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: leap_ie-0.0.25-cp39-cp39-win_arm64.whl
  • Upload date:
  • Size: 822.8 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.25-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 be6f740d11da95cf367c9914a39509169fe1ece9606a5acf1666167f8c593c08
MD5 cfc2089f0544fc1f1e6495f6560ac3c6
BLAKE2b-256 3f8da587daafca2eb3a8d59d4104530682c7e5b4877a2bdcb1ee109d6cd590b2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: leap_ie-0.0.25-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 985.2 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.25-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b569b398b036d9efdc9456d2a6a2932d60c45f46c3b9eea4b9ea323693690a3d
MD5 e52c0d57dca48ee78de5ae3dc86c2d03
BLAKE2b-256 ec34effd2ddd02fc1f6eaa24e20c621bff93040d3204eb555589b208ba425e7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b1e38d88ff100f3f41d9ea4189a4561fc4f5fa6b82773bd02c6157ee18c5b9f
MD5 474c673d559087c4157da066e93ea91f
BLAKE2b-256 4fd9147a255de85d33dcda7e5c225a328ad2d07ad30812af4f7f165b85425b85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 531887745ad48aa1911e0a50a246e58b113087c055f91cc570915bfd11700269
MD5 7fe5938672a964dd4f336ae279345035
BLAKE2b-256 105e511875e3a59b0fb3fce43b583157e00175a8da058841518f0e0fcf47173e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dab3a5ba7708eb4f11b9276e61609f8b9937c9cefef63d85233f589573b522ec
MD5 13246e6922e6507ec68abcac4453f259
BLAKE2b-256 25ae5e6fdf2cf404c03c78add71f3c53d84aa68bf94ccb97d1a87e79d5d4d65d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: leap_ie-0.0.25-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • 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.25-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 898998921d709c4e7b01817745fa73e8a4833e27de03acd579a50f57410a10e3
MD5 986f4e4ce714424b3ee6f2fd937791c9
BLAKE2b-256 8e68934f972d62e2c83fe306e4cb8b479fd1c347f73ff0dd66ebcdab92f116df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 18fd686bc7804aad2042c2e7ae6bc76f231ddfc43f994c3031fab08449faaff5
MD5 b9d09ff086415a281d188efab9fe7c6f
BLAKE2b-256 ac4e4e960a4a368aa3db18ce856ee2c848e215f37f4907f3fdcad133983b7b87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6c0603fac75cf63c36924f4daf12e7b79a888ca7baefafea191e1e29420cb14
MD5 61937406562270710c837839ef96d687
BLAKE2b-256 fbcef0a0e88df27b550b899a4dfa9462849b7103ba56e452122e8b13e567df4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for leap_ie-0.0.25-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 001052db8dd79d7dd19088522c21e6822d07e615e84963daaf814a2767fadf78
MD5 789dcc79a6a75d8546fa768e9ea2db0c
BLAKE2b-256 d7639dabe48d160dc75fc6405ab604816b6e522364e351b8e3f8df86aab7ff5a

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