Skip to main content

Python SDK is designed to facilitate the development of scalable vector search applications on PostgreSQL databases.

Project description

Open Source Alternative for Building End-to-End Vector Search Applications without OpenAI & Pinecone

Table of Contents

Overview

Python SDK is designed to facilitate the development of scalable vector search applications on PostgreSQL databases. With this SDK, you can seamlessly manage various database tables related to documents, text chunks, text splitters, LLM (Language Model) models, and embeddings. By leveraging the SDK's capabilities, you can efficiently index LLM embeddings using PgVector for fast and accurate queries.

Documentation: PostgresML SDK Docs

Examples Folder: Examples

Key Features

  • Automated Database Management: With the SDK, you can easily handle the management of database tables related to documents, text chunks, text splitters, LLM models, and embeddings. This automated management system simplifies the process of setting up and maintaining your vector search application's data structure.

  • Embedding Generation from Open Source Models: The Python SDK provides the ability to generate embeddings using hundreds of open source models. These models, trained on vast amounts of data, capture the semantic meaning of text and enable powerful analysis and search capabilities.

  • Flexible and Scalable Vector Search: The Python SDK empowers you to build flexible and scalable vector search applications. The Python SDK seamlessly integrates with PgVector, a PostgreSQL extension specifically designed for handling vector-based indexing and querying. By leveraging these indices, you can perform advanced searches, rank results by relevance, and retrieve accurate and meaningful information from your database.

Use Cases

Embeddings, the core concept of the Python SDK, find applications in various scenarios, including:

  • Search: Embeddings are commonly used for search functionalities, where results are ranked by relevance to a query string. By comparing the embeddings of query strings and documents, you can retrieve search results in order of their similarity or relevance.

  • Clustering: With embeddings, you can group text strings by similarity, enabling clustering of related data. By measuring the similarity between embeddings, you can identify clusters or groups of text strings that share common characteristics.

  • Recommendations: Embeddings play a crucial role in recommendation systems. By identifying items with related text strings based on their embeddings, you can provide personalized recommendations to users.

  • Anomaly Detection: Anomaly detection involves identifying outliers or anomalies that have little relatedness to the rest of the data. Embeddings can aid in this process by quantifying the similarity between text strings and flagging outliers.

  • Classification: Embeddings are utilized in classification tasks, where text strings are classified based on their most similar label. By comparing the embeddings of text strings and labels, you can classify new text strings into predefined categories.

How the Python SDK Works

The Python SDK streamlines the development of vector search applications by abstracting away the complexities of database management and indexing. Here's an overview of how the SDK works:

  • Automatic Document and Text Chunk Management: The SDK provides a convenient interface to manage documents and pipelines, automatically handling chunking and embedding for you. You can easily organize and structure your text data within the PostgreSQL database.

  • Open Source Model Integration: With the SDK, you can seamlessly incorporate a wide range of open source models to generate high-quality embeddings. These models capture the semantic meaning of text and enable powerful analysis and search capabilities.

  • Embedding Indexing: The Python SDK utilizes the PgVector extension to efficiently index the embeddings generated by the open source models. This indexing process optimizes search performance and allows for fast and accurate retrieval of relevant results.

  • Querying and Search: Once the embeddings are indexed, you can perform vector-based searches on the documents and text chunks stored in the PostgreSQL database. The SDK provides intuitive methods for executing queries and retrieving search results.

Quickstart

Follow the steps below to quickly get started with the Python SDK for building scalable vector search applications on PostgresML databases.

Prerequisites

Before you begin, make sure you have the following:

  • PostgresML Database: Ensure you have a PostgresML database version >= 2.7.7 You can spin up a database using Docker or sign up for a free GPU-powered database.

  • Set the DATABASE_URL environment variable to the connection string of your PostgresML database.

  • Python version >=3.8.1

Installation

To install the Python SDK, use pip:

pip install pgml

Sample Code

Once you have the Python SDK installed, you can use the following sample code as a starting point for your vector search application:

from pgml import Collection, Model, Splitter, Pipeline
from datasets import load_dataset
from time import time
from dotenv import load_dotenv
from rich.console import Console
import asyncio

async def main():
        load_dotenv()
    console = Console()

    # Initialize collection
    collection = Collection("quora_collection")

Explanation:

  • The code imports the necessary modules and packages, including pgml, datasets, time, and rich.
  • It creates an instance of the Collection class which we will add pipelines and documents onto

Continuing within async def main():

    # Create a pipeline using the default model and splitter
    model = Model()
    splitter = Splitter()
    pipeline = Pipeline("quorav1", model, splitter)
    await collection.add_pipeline(pipeline)

Explanation

  • The code creates an instance of Model and Splitter using their default arguments.
  • Finally, the code constructs a pipeline called "quroav1" and add it to the collection we Initialized above. This pipeline automatically generates chunks and embeddings for every upserted document.

Continuing with async def main():

    # Prep documents for upserting
    data = load_dataset("squad", split="train")
    data = data.to_pandas()
    data = data.drop_duplicates(subset=["context"])
    documents = [
        {"id": r["id"], "text": r["context"], "title": r["title"]}
        for r in data.to_dict(orient="records")
    ]

    # Upsert documents
    await collection.upsert_documents(documents[:200])

Explanation

  • The code loads the "squad" dataset, converts it to a pandas DataFrame, and drops any duplicate context values.
  • It creates a list of dictionaries representing the documents to be indexed, with each dictionary containing the document's id, text, and title.
  • Finally, they are upserted. As mentioned above, the pipeline added earlier automatically runs and generates chunks and embeddings for each document.

Continuing within async def main():

    # Query
    query = "Who won 20 grammy awards?"
    results = await collection.query().vector_recall(query, pipeline).limit(5).fetch_all()
    console.print(results)
    # Archive collection
    await collection.archive()

Explanation:

  • The query method is called to perform a vector-based search on the collection. The query string is Who won more than 20 grammy awards?, and the top 5 results are requested.
  • The search results are printed.
  • Finally, the archive method is called to archive the collection and free up resources in the PostgresML database.

Call main function in an async loop.

asyncio.run(main())

Running the Code

Open a terminal or command prompt and navigate to the directory where the file is saved.

Execute the following command:

python vector_search.py

You should see the search results printed in the terminal. As you can see, our vector search engine found the right text chunk with the answer we are looking for.

[
    (
        0.8423336495860181,
        'Beyoncé has won 20 Grammy Awards, both as a solo artist and member of Destiny\'s Child, making her the second most honored female artist by the Grammys, behind Alison Krauss and the most nominated woman in Grammy Award history with 52 nominations. "Single Ladies (Put a Ring on It)" won Song of the Year in 2010 while "Say My Name" and 
"Crazy in Love" had previously won Best R&B Song. Dangerously in Love, B\'Day and I Am... Sasha Fierce have all won Best Contemporary R&B Album. Beyoncé set the record for the most Grammy awards won by a female artist in one night in 2010 when she won six awards, breaking the tie she previously held with Alicia Keys, Norah Jones, Alison Krauss, 
and Amy Winehouse, with Adele equaling this in 2012. Following her role in Dreamgirls she was nominated for Best Original Song for "Listen" and Best Actress at the Golden Globe Awards, and Outstanding Actress in a Motion Picture at the NAACP Image Awards. Beyoncé won two awards at the Broadcast Film Critics Association Awards 2006; Best Song for 
"Listen" and Best Original Soundtrack for Dreamgirls: Music from the Motion Picture.',
        {'id': '56becc903aeaaa14008c949f', 'title': 'Beyoncé'}
    ),
    (
        0.8210567582713351,
        'A self-described "modern-day feminist", Beyoncé creates songs that are often characterized by themes of love, relationships, and monogamy, as well as female sexuality and empowerment. On stage, her dynamic, highly choreographed performances have led to critics hailing her as one of the best entertainers in contemporary popular music. 
Throughout a career spanning 19 years, she has sold over 118 million records as a solo artist, and a further 60 million with Destiny\'s Child, making her one of the best-selling music artists of all time. She has won 20 Grammy Awards and is the most nominated woman in the award\'s history. The Recording Industry Association of America recognized 
her as the Top Certified Artist in America during the 2000s decade. In 2009, Billboard named her the Top Radio Songs Artist of the Decade, the Top Female Artist of the 2000s and their Artist of the Millennium in 2011. Time listed her among the 100 most influential people in the world in 2013 and 2014. Forbes magazine also listed her as the most 
powerful female musician of 2015.',
        {'id': '56be88473aeaaa14008c9080', 'title': 'Beyoncé'}
    )
]

Upgrading

Changes between SDK versions are not necessarily backwards compatible. We provide a migrate function to help transition smoothly.

from pgml import migrate
await migrate()

This will migrate all collections to be compatible with the latest SDK version.

Developer Setup

This Python library is generated from our core rust-sdk. Please check rust-sdk documentation for developer setup.

Roadmap

  • Enable filters on document metadata in vector_search. Issue
  • text_search functionality on documents using Postgres text search. Issue
  • hybrid_search functionality that does a combination of vector_search and text_search. Issue
  • Ability to call and manage OpenAI embeddings for comparison purposes. Issue
  • Perform chunking on the DB with multiple langchain splitters. Issue
  • Save vector_search history for downstream monitoring of model performance. Issue

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

pgml-1.1.1.tar.gz (255.7 kB view details)

Uploaded Source

Built Distributions

pgml-1.1.1-cp312-none-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.12 Windows x86-64

pgml-1.1.1-cp312-cp312-manylinux_2_34_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.34+ x86-64

pgml-1.1.1-cp312-cp312-manylinux_2_34_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.34+ ARM64

pgml-1.1.1-cp312-cp312-manylinux_2_31_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.31+ x86-64

pgml-1.1.1-cp312-cp312-macosx_11_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pgml-1.1.1-cp311-none-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.11 Windows x86-64

pgml-1.1.1-cp311-cp311-manylinux_2_34_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.34+ x86-64

pgml-1.1.1-cp311-cp311-manylinux_2_34_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.34+ ARM64

pgml-1.1.1-cp311-cp311-manylinux_2_31_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.31+ x86-64

pgml-1.1.1-cp311-cp311-macosx_11_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pgml-1.1.1-cp310-none-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.10 Windows x86-64

pgml-1.1.1-cp310-cp310-manylinux_2_34_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.34+ x86-64

pgml-1.1.1-cp310-cp310-manylinux_2_34_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.34+ ARM64

pgml-1.1.1-cp310-cp310-manylinux_2_31_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.31+ x86-64

pgml-1.1.1-cp310-cp310-macosx_11_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pgml-1.1.1-cp39-none-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.9 Windows x86-64

pgml-1.1.1-cp39-cp39-manylinux_2_34_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.34+ x86-64

pgml-1.1.1-cp39-cp39-manylinux_2_34_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.34+ ARM64

pgml-1.1.1-cp39-cp39-manylinux_2_31_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.31+ x86-64

pgml-1.1.1-cp39-cp39-macosx_11_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pgml-1.1.1-cp38-none-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

pgml-1.1.1-cp38-cp38-manylinux_2_34_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.34+ x86-64

pgml-1.1.1-cp38-cp38-manylinux_2_34_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.34+ ARM64

pgml-1.1.1-cp38-cp38-manylinux_2_31_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.31+ x86-64

pgml-1.1.1-cp38-cp38-macosx_11_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pgml-1.1.1-cp37-cp37m-manylinux_2_34_x86_64.whl (8.9 MB view details)

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

pgml-1.1.1-cp37-cp37m-manylinux_2_34_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.34+ ARM64

pgml-1.1.1-cp37-cp37m-manylinux_2_31_x86_64.whl (8.9 MB view details)

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

File details

Details for the file pgml-1.1.1.tar.gz.

File metadata

  • Download URL: pgml-1.1.1.tar.gz
  • Upload date:
  • Size: 255.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.5.1

File hashes

Hashes for pgml-1.1.1.tar.gz
Algorithm Hash digest
SHA256 aaa377cf363c65e4e31a78bcb20e59b799376c668bf5f3f9195071466716d080
MD5 145fbbe15017d5857e8d51f84809a80c
BLAKE2b-256 bf3c86f0618f71b4343cbd58ae87e6b43157c19d422b2712c42daeb87b6a93c0

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp312-none-win_amd64.whl.

File metadata

  • Download URL: pgml-1.1.1-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.6.0

File hashes

Hashes for pgml-1.1.1-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 78ef28a9aeb5c02997070ad452a9d3b4d93faf0aa5684c5c0a4a129910f02085
MD5 683f93767c8efa49b6e167844bb38835
BLAKE2b-256 90916f006e09992fb190d3602216bbb58e04914ab5ee2476f46711686d741fc8

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8455b0f941e503c5c3ba66d7eb1bf487bd824ca95b483babdd4e9e5321f0f20f
MD5 f3af1650f748245ffa0e2a3a828e4a19
BLAKE2b-256 c8cd9f754d2a31ee95a7019f9eb7b9185b17779cdf3191fa832660987c5e432e

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 af7ef9280349545115980cac2770701b08235d798df13add788e390d25a30c49
MD5 ce19260388919cff952306e5fbba58e7
BLAKE2b-256 02a01c8d7c9676afc19abe29c229b4aef780f97b953469d2f2c2471462c1996f

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp312-cp312-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 85b83ee66eac5813062f65c13f6a34ebcef46a707e0fda63319077713fcf30d2
MD5 190dde619e4089df275a5a1ee5fe6c92
BLAKE2b-256 3e8c7a3332d8dd6d22609e76fa5f923bee87e8a147fcd59d243b7027990c8eb1

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 613693f8a3f562493e3c7c3483f433b7aa9712b4ec78b5cfab5e497c7292dc76
MD5 92c298e7cd1404c08036ab58d7cf8288
BLAKE2b-256 2949d8d07e5cf904860e0e7e2f9b2a2df6fa65a4d3e3844a6c5eaaa06b02f2ad

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp311-none-win_amd64.whl.

File metadata

  • Download URL: pgml-1.1.1-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.6.0

File hashes

Hashes for pgml-1.1.1-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 82c79665b1ea2558f9b910222668d55197d97be4f322726a3b9a322057ce93cd
MD5 645bc93d06e3ca79ade23c9f2f6c4dee
BLAKE2b-256 b4980b05925c19a38ad2b8c6dca78bdf86505b2f0454932a86634823ab1b50f6

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4aa235c5faac760a38931709255f1ace1a22eef7598406e259c1b9c71466269e
MD5 9846e6880a5baab311e8595c20efe705
BLAKE2b-256 81262f24f05ebd5357e4a5a88cecf3e15fd8c708304737320a396fb4697e9b37

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f445b30d3d18235eae2ee6c3e4e2d7798ecd0fe2f862b7919676714758b49149
MD5 3401e62626824a59fa2fedfd4ccec7b0
BLAKE2b-256 e68f3eed772cdee092c6e28377a066c25daa63034ff5f8baf493088e42c51f98

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp311-cp311-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 82b312971a0fcb86298c9e9523a2aa4626d87a175c60ad52d49a90c236bc44c1
MD5 92bbcb186a4724ede676eb10815f0eba
BLAKE2b-256 e8eec1dcae11776a5b9a79bfafb96503b08c87db6681bccf91c11cf411f04fa3

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e45f8859abfc838025573e1a3c981a703016ad319ab9e2eca59bfeec0ac7426e
MD5 d3c8f92852df3a2aed574c8ddc1c524b
BLAKE2b-256 f65013046b8bd7c0aad0466ac3f9eded70b7aa09383e54f319c273e08d0b63d3

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp310-none-win_amd64.whl.

File metadata

  • Download URL: pgml-1.1.1-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.6.0

File hashes

Hashes for pgml-1.1.1-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 d567421971728724c0606243fea008a177137cdb8a2466ef4aba1b9c90927a64
MD5 61d6c2dd859ce01cce908a963670d788
BLAKE2b-256 2eeaff074a9f80ac3b728b4ccd6638a167a881c0dfbf6b9a4a3ec00188734c81

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 19f149d10787fd02905940ec88ca5bd8ccf2f9aafe920a5982a9c8c92302250c
MD5 b018926cbe50dbe72e8063148ba3a1bd
BLAKE2b-256 714905b8e9efb134e093e18d1c7e4e565e0f9d78a699dffe946e75e64e0dcdbe

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp310-cp310-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 729fb7454dd887c80b11007e7360802a8c9504f6e08f619dc33be599bdf4e9de
MD5 a9aa0f0ca6570a7052a8292c1d2c92e4
BLAKE2b-256 575b1df56c867d1a5ef079c484fe798b0971f906e29bc049796b99c1d12aecb1

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp310-cp310-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 76fe3ee465e3fdd86facdc1c333f42fbd4e0c657654d8a643f67540af5f41254
MD5 c143fba0a357afd6452b4ec13201d4f6
BLAKE2b-256 7e92ca63fcb957525cc361386fb1f2f15eb32995943f2d258eb7e0b91cca539b

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23688dcdae6ddcef5d8de94127d8ae7003bb8bdb21de8f31238a998c781612e7
MD5 0a01e675319e05dba938a729b4d4084e
BLAKE2b-256 77ee711f792e477cf1af80d748aff0e25d110ece55625b4f47593c95d5caff59

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp39-none-win_amd64.whl.

File metadata

  • Download URL: pgml-1.1.1-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.6.0

File hashes

Hashes for pgml-1.1.1-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 14414ea1f050621ce42329e7aa2c6654f5af21fa6958897261ab4bf6f01d298e
MD5 15797b1856141a105f4a306d146ea3b0
BLAKE2b-256 2ed6f88d876e3281a5ac44131b2bbedb469483b0844d02aa37f87f63c3e7b860

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 03deabbadc7c79bcabd7f7a3afd06addafa38492aea04b68425bf4ae70252763
MD5 04b0589567a0e48339790f669c0914d5
BLAKE2b-256 1092bbca60c3e6182b57e3100643e5703f24968c5ca77f8979474223e9195dc6

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp39-cp39-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp39-cp39-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 75980a2bd9cf6c77425f5fa1db4bf73e4c660e40dada65914228a564ac6a770d
MD5 3daca30ce24b2fc7636b0604ca72ccff
BLAKE2b-256 10ee9da6c28728ba2b53f025ff0cb367a0b0e82a34e319d2a16ebfe48611cd87

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp39-cp39-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp39-cp39-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 672a20357108af9e7ce6afb6139f3df7bd6e5c5bc2c68d5c70d42cf1a6700587
MD5 c553ed88bde9ab95b7bc1684eccba74c
BLAKE2b-256 a98c49378e1877f0ce730da564202464f1f3a8cd8663262309537a5dc03a6e8b

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5474313f68fa9be8494d9b79afbd0e2a80786e17ebb908bbc83baae6574fa105
MD5 dc1e90183d20c0004a2839059ffa427a
BLAKE2b-256 a5cd9d5cdd6f360ff56597ca44759664e6ea38a3a477f5b405c38b878dd41393

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp38-none-win_amd64.whl.

File metadata

  • Download URL: pgml-1.1.1-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.6.0

File hashes

Hashes for pgml-1.1.1-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 ccd9c42d125729f693c82aad59393c4acf2c6d03c0438e5b4c72d565a3d76151
MD5 2e381c912901ce1d0912517be059a2b4
BLAKE2b-256 e3cc265267d0e2e89ddb678338bb48ca7be08da51d7a7230c3afebbd937ea721

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp38-cp38-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp38-cp38-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 26af429f4b9fa7e6f0442684b9997824b61760599da1dd251e34ca607e829371
MD5 2a9d625c8f0f0bc9865c4ea69c2493e1
BLAKE2b-256 3dd29491e37ff722990c164d823bdcfc90b082d1cfa1cbf9ffb243aa86dc9f6a

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp38-cp38-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp38-cp38-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 728ce27a3bb5dec2d2d96958e4c22429c076b53f6d03ef0af9db830162588f15
MD5 ba42989066407cefeef85ae1b72d2efe
BLAKE2b-256 87f9607a950213f8ab8a7b01734a3dadc70a661d9c13a0729d634793484d213c

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp38-cp38-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp38-cp38-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 1b2cff59bcfff8330d21d5f9b0f8f2d589207b1c1846c1643f5282b2aeee8b99
MD5 8dc028985b076cabe187b760e3c7d2c0
BLAKE2b-256 49d4545126f286553f77f88ee2143229c1219324701e535b42f521ab71ee841f

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 47c3aa13bdd11ba5c288e6f04f7d2b9b0b2fb03edd732e67852996378bc04185
MD5 37d63e4a07504ab44027d2ad5f07065a
BLAKE2b-256 f2464549dfbfd0778b9c3039ceb9e57956eabb76628de7fd149bf920bf8ff0b9

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp37-cp37m-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp37-cp37m-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 01243a74b1abc1e1d6be99ba1d2a933334e1aa73b5f369af287b80d9ab0b0f12
MD5 5db5ba94d3284c640da485e91f5512c8
BLAKE2b-256 46db7ebe65d99f3f5387021232dd2086636fe485f3d27945f0f1259c2a00c2c7

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp37-cp37m-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp37-cp37m-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 497fe468f7cc905e6bf61fc2f813b59b33e2a41b0653053a3a909f240923880a
MD5 adf3bcd0fa01868448297e57dfd49f50
BLAKE2b-256 fa7ce62a17939bcfd2c70ebdd7d0eec3b318a2b31c9fd682c5033af3beeaf486

See more details on using hashes here.

File details

Details for the file pgml-1.1.1-cp37-cp37m-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pgml-1.1.1-cp37-cp37m-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 f442e650855128494e706c05ff01a11274142675aea4b7390484cdf66d1f8ff9
MD5 5ff25c204f315bd9602d5bd110419aa7
BLAKE2b-256 f2b864e7cc6317a657e96829d4e4860489a4bf0f01361a336f32495b70634180

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