Skip to main content

GRKMemory (Graph Retrieve Knowledge Memory) - A semantic graph-based memory system for AI agents developed by MonkAI team

Project description

🧠 GRKMemory - Graph Retrieve Knowledge Memory

GRKMemory = Graph Retrieve Knowledge Memory

PyPI version Python 3.10+ License: MIT

GRKMemory é um sistema de memória semântica baseado em grafos para agentes de IA, desenvolvido pelo time MonkAI. Recuperação inteligente de conhecimento com economia de 95% em tokens.

🚀 Começando

1️⃣ Instalação

pip install grkmemory

2️⃣ Obter Token de Acesso

Para utilizar o GRKMemory, você precisa de um token fornecido pelo time MonkAI:

📧 Contato: contato@monkai.com.br
🌐 Site: www.monkai.com.br

3️⃣ Configurar Token

# Configurar como variável de ambiente
export GRKMEMORY_API_KEY="grk_seu_token_aqui"

# OpenAI (padrão)
export OPENAI_API_KEY="sua_openai_key"

# OU Azure OpenAI
export USE_AZURE_OPENAI="true"
export AZURE_OPENAI_API_KEY="sua_azure_key"
export AZURE_OPENAI_ENDPOINT="https://seu-recurso.openai.azure.com"
export AZURE_OPENAI_DEPLOYMENT="gpt-4o"
export AZURE_OPENAI_EMBEDDING_DEPLOYMENT="text-embedding-3-small"

4️⃣ Autenticar e Usar

from grkmemory import GRKMemory, GRKAuth, AuthenticatedGRK

# Autenticar com token MonkAI
auth = GRKAuth.from_env()  # Usa GRKMEMORY_API_KEY
print("✅ Autenticado!")

# Inicializar GRKMemory protegido
grk = GRKMemory()
secure = AuthenticatedGRK(grk, auth.get_current_token())

# Usar!
secure.save_conversation([
    {"role": "user", "content": "Olá!"},
    {"role": "assistant", "content": "Oi! Como posso ajudar?"}
])

results = secure.search("Olá")

🎯 Quick Start (Completo)

from grkmemory import GRKMemory, GRKAuth, AuthenticatedGRK
import os

# 1. Autenticar
api_key = os.getenv("GRKMEMORY_API_KEY")
auth = GRKAuth()
auth.authenticate(api_key)

# 2. Criar GRKMemory autenticado
grk = GRKMemory()
secure = AuthenticatedGRK(grk, api_key)

# 3. Salvar conversa
secure.save_conversation([
    {"role": "user", "content": "Vamos falar sobre Python"},
    {"role": "assistant", "content": "Claro! O que você quer saber?"}
])

# 4. Buscar memórias relevantes
results = secure.search("O que discutimos sobre Python?")

# 5. Chat com contexto de memória automático
response = secure.chat("Me conte sobre nossas discussões anteriores")

🔐 Autenticação

Token MonkAI

A autenticação é uma camada de proteção fornecida pelo time MonkAI. Todos os recursos requerem um token válido.

Permissão Descrição
read Buscar e consultar memórias
write Salvar novas memórias
admin Gerenciamento completo

Métodos de Autenticação

from grkmemory import GRKAuth

# Método 1: Via variável de ambiente (recomendado)
auth = GRKAuth.from_env()  # Usa GRKMEMORY_API_KEY

# Método 2: Diretamente
auth = GRKAuth()
auth.authenticate("grk_seu_token")

# Verificar permissões
print(f"Pode ler: {auth.check_permission('read')}")
print(f"Pode escrever: {auth.check_permission('write')}")

⚠️ Importante: Tokens são fornecidos exclusivamente pelo time MonkAI.

⚙️ Configuração

from grkmemory import GRKMemory, MemoryConfig

config = MemoryConfig(
    model="gpt-4o",
    memory_file="minhas_memorias.json",
    enable_embeddings=True,
    background_memory_method="graph",  # 'graph', 'embedding', 'tags', 'entities'
    background_memory_limit=5,
    background_memory_threshold=0.3,
    storage_format="json",   # 'json' (padrão) ou 'toon'
    output_format="json"     # 'json', 'toon', 'text' ou 'raw'
)

grk = GRKMemory(config=config)

☁️ Azure OpenAI

GRKMemory suporta Azure OpenAI nativamente. Configure via variáveis de ambiente ou código:

Via Variáveis de Ambiente

export USE_AZURE_OPENAI="true"
export AZURE_OPENAI_API_KEY="sua-api-key"
export AZURE_OPENAI_ENDPOINT="https://seu-recurso.openai.azure.com"
export AZURE_OPENAI_DEPLOYMENT="gpt-4o"
export AZURE_OPENAI_EMBEDDING_DEPLOYMENT="text-embedding-3-small"
export AZURE_OPENAI_API_VERSION="2024-02-01"  # opcional

Via Código

from grkmemory import GRKMemory, MemoryConfig

# Configuração Azure OpenAI
config = MemoryConfig(
    use_azure=True,
    api_key="sua-azure-api-key",
    azure_endpoint="https://seu-recurso.openai.azure.com",
    azure_deployment="gpt-4o",
    azure_embedding_deployment="text-embedding-3-small",
    azure_api_version="2024-02-01"
)

grk = GRKMemory(config=config)

Tabela de Configurações Azure

Variável Config Descrição
USE_AZURE_OPENAI use_azure Ativar Azure (true/false)
AZURE_OPENAI_API_KEY api_key Chave da API Azure
AZURE_OPENAI_ENDPOINT azure_endpoint URL do recurso Azure
AZURE_OPENAI_DEPLOYMENT azure_deployment Nome do deployment (chat)
AZURE_OPENAI_EMBEDDING_DEPLOYMENT azure_embedding_deployment Nome do deployment (embeddings)
AZURE_OPENAI_API_VERSION azure_api_version Versão da API (default: 2024-02-01)

📦 Formatos de Armazenamento (JSON vs TOON)

GRKMemory suporta dois formatos de serialização:

Formato Vantagem Uso Recomendado
JSON Parsing 27x mais rápido Armazenamento (padrão)
TOON 25% menos tokens Contexto para LLM

Instalando TOON (opcional)

pip install toon_format

Estratégia Híbrida (Recomendada)

from grkmemory import MemoryRepository

# JSON para armazenamento (rápido) + TOON para LLM (economia de tokens)
repo = MemoryRepository(
    memory_file="memorias.json",
    storage_format="json",      # Parsing rápido
    output_format="toon"        # 25% menos tokens para LLM
)

# Buscar e formatar para LLM
results = repo.search("Python")
context = repo.format_for_llm(results)  # Retorna em TOON (~25% menos tokens)

Comparando Formatos

# Estimar economia de tokens
estimates = repo.get_token_estimate(results)
print(estimates)
# {'json': 689, 'toon': 512, 'savings_toon_vs_json': '25.7%'}

✂️ output_format="raw" — Modo enxuto de tokens

Quando o consumidor downstream só precisa do conteúdo da resposta (a mensagem do assistant) e não dos metadados de cada memória (summary, tags, entities, sentiment, etc.), use output_format="raw". Devolve apenas o content do primeiro turno de assistant de cada conversa recuperada, separado por \n\n---\n\n.

repo = MemoryRepository(
    memory_file="memorias.json",
    output_format="raw",
)

results = repo.search("capital da França")
context = repo.format_for_llm(results)
# "A capital da França é Paris."
# (sem JSON wrapper, sem metadados, sem labels)

Benchmark (issue #13)

47k chars de snapshot, 30 queries, gpt-4.1-mini + judge gpt-4.1 (rubrica 0–3):

Formato input tokens judge recall vs json
json (default) 1.705 1.47 igual
toon 1.475 1.47 igual
text 252 1.00 cai (perde conversation)
raw 640 1.47 igual

~2.7× mais barato que json com recall idêntico em consultas factuais. Use quando o LLM downstream só precisa do que o assistente respondeu antes; use json/toon quando o LLM precisa raciocinar sobre tags/sentiment/confidence.

Convertendo entre Formatos

# Exportar para TOON
repo.export("backup.toon", format="toon")

# Converter armazenamento para TOON
repo.convert_storage_format("toon")

👥 Multi-tenant (user_id / session_id)

É possível isolar memórias por usuário e/ou sessão usando os parâmetros opcionais user_id e session_id em save_conversation e search. O armazenamento continua em um único arquivo; o filtro é aplicado na busca.

# Salvar conversa para um usuário/sessão
grk.save_conversation(
    [{"role": "user", "content": "Olá!"}, {"role": "assistant", "content": "Oi!"}],
    user_id="user_123",
    session_id="sess_abc"
)

# Buscar apenas memórias desse usuário
results = grk.search("Olá", user_id="user_123")

# Ou apenas dessa sessão
results = grk.search("Olá", session_id="sess_abc")

# Chat e save também aceitam user_id/session_id
response = grk.chat("O que discutimos?", user_id="user_123")

Sem user_id/session_id, o comportamento é o mesmo de antes (todas as memórias são consideradas).

⚡ API assíncrona

Para uso em código assíncrono (ex.: AtendentePro) sem bloquear o event loop, use os métodos *_async, que executam a lógica síncrona em thread (ex.: asyncio.to_thread em Python 3.9+):

import asyncio
from grkmemory import GRKMemory

grk = GRKMemory()

async def main():
    results = await grk.search_async("IA")
    await grk.save_conversation_async([
        {"role": "user", "content": "Olá"},
        {"role": "assistant", "content": "Oi!"}
    ])
    response = await grk.chat_async("O que discutimos?")

asyncio.run(main())

Disponíveis: search_async, save_conversation_async, chat_async, chat_with_history_async. Com AuthenticatedGRK: search_async, save_conversation_async, chat_async (com checagem de permissão).

🔓 Modo Offline (Sem Token)

O modo offline usa MemoryRepository com enable_embeddings=False e serve como backend sem API key para testes ou ambientes restritos, usando apenas tags, entities e grafo semântico (sem embeddings). Você pode usar o MemoryRepository sem token/API key quando embeddings estão desabilitados:

from grkmemory import MemoryRepository

# Modo offline - não precisa de API key
repo = MemoryRepository(
    memory_file="memories.json",
    enable_embeddings=False  # ← Chave: desabilitar embeddings
)

# Funcionalidades disponíveis sem token:
# ✅ Salvar memórias
repo.save({
    "summary": "Conversa sobre Python",
    "tags": ["python", "programação"],
    "entities": ["Python"],
    "key_points": ["Linguagem interpretada"]
})

# ✅ Buscar por tags
results = repo.search("python", method="tags")

# ✅ Buscar por entities
results = repo.search("Python", method="entities")

# ✅ Buscar por grafo (sem embeddings)
results = repo.search("programação", method="graph")

# ❌ Busca por embedding requer API key
# results = repo.search("query", method="embedding")  # Retorna vazio sem API key

Nota: GRKMemory e MemoryConfig requerem API key. Apenas MemoryRepository com enable_embeddings=False funciona sem token.

💾 Salvando Conversas em JSON

O GRKMemory salva automaticamente as conversas em um arquivo JSON estruturado:

Estrutura do JSON

{
  "sessoes": [
    {
      "id": "sess_abc123",
      "timestamp": "2025-01-09T12:00:00",
      "summary": "Discussão sobre Python e IA",
      "tags": ["python", "ia", "programação"],
      "entities": ["Python", "OpenAI", "GPT"],
      "concepts": ["machine learning", "api"],
      "messages": [
        {"role": "user", "content": "..."},
        {"role": "assistant", "content": "..."}
      ]
    }
  ]
}

Estrutura do TOON (Token-Optimized Object Notation)

O mesmo conteúdo em TOON ocupa ~25% menos tokens, ideal para contexto de LLM:

sessoes[1]:
  - id: sess_abc123
    timestamp: "2025-01-09T12:00:00"
    summary: Discussão sobre Python e IA
    tags[3]: python,ia,programação
    entities[3]: Python,OpenAI,GPT
    concepts[2]: machine learning,api
    messages[2]{role,content}:
      user,Vamos falar sobre Python
      assistant,Claro! O que você quer saber?

Nota: TOON elimina chaves, colchetes e aspas redundantes, compactando listas e tabelas em notação posicional. Instale com pip install toon_format.

Usando o MemoryRepository diretamente

from grkmemory import MemoryRepository

# Inicializar repositório
repo = MemoryRepository(memory_file="minhas_memorias.json")

# Salvar memória estruturada
memoria = {
    "summary": "Conversa sobre Python",
    "tags": ["python", "programação"],
    "entities": ["Python", "VS Code"],
    "concepts": ["sintaxe", "bibliotecas"],
    "messages": [
        {"role": "user", "content": "Como instalar Python?"},
        {"role": "assistant", "content": "Baixe em python.org..."}
    ]
}
repo.save(memoria)

# Buscar memórias
resultados = repo.search("Python", method="tags")

📊 Métodos de Busca

Método Descrição
graph Grafo semântico (recomendado)
embedding Similaridade vetorial
tags Busca por tags
entities Busca por entidades
# Busca por grafo semântico
results = secure.search("IA", method="graph")

# Busca por embedding
results = secure.search("machine learning", method="embedding")

📈 Estatísticas

# Estatísticas gerais
stats = secure.get_stats()
print(f"Total de memórias: {stats['total_memories']}")

# Estatísticas do grafo
graph_stats = secure.get_graph_stats()
print(f"Nós: {graph_stats['total_nodes']}")
print(f"Arestas: {graph_stats['total_edges']}")

📁 Estrutura do Projeto

GRKMemory/
├── grkmemory/              # 📦 Pacote principal
│   ├── core/               # Classes principais
│   ├── memory/             # Repositório de memória
│   ├── graph/              # Grafo semântico
│   ├── auth/               # Autenticação
│   └── utils/              # Utilitários
├── examples/               # 💡 Exemplos de uso
├── papers/                 # 📄 Documentação técnica
└── README.md

📚 Exemplos

Veja a pasta examples/ para exemplos completos:

Exemplo Descrição
01_basic_usage.py Uso básico
02_custom_config.py Configuração personalizada
03_chatbot_with_memory.py Chatbot com memória
04_graph_analysis.py Análise do grafo
05_batch_processing.py Processamento em lote
06_authentication.py Uso com autenticação
07_storage_formats.py Formatos de armazenamento (JSON/TOON)
08_azure_openai.py Integração com Azure OpenAI
09_multi_tenant.py Multi-tenant com user_id e session_id
10_async_usage.py Uso da API assíncrona (search_async, chat_async)

🔬 Performance

Métrica Context Window GRKMemory
Tokens/query ~50.000 ~2.500
Economia - 95%
Precisão Variável 95%
Velocidade Lenta 10x mais rápido

🏅 Certificado de Qualidade

O GRKMemory v1.3.0 foi auditado e certificado pelo Claude AI Quality Auditor (Anthropic) nos pilares de Segurança, Usabilidade e Escalabilidade.

Pilar Score Status
Segurança 8.5 / 10 Aprovado
Usabilidade 9.0 / 10 Excelente
Escalabilidade 7.8 / 10 Aprovado
Score Final 8.4 / 10 Certificado

Serial Number: CQC-03E6B8B9-883CEBB9-4B6C1D38-672D37CF

Verificar autenticidade:

echo -n "GRKMemory|1.3.0|MonkAI|ArthurVaz|2026-03-01|CLAUDE-QUALITY-AUDIT" | shasum -a 256

Veja o relatório completo para detalhes da auditoria.

📞 Contato

Para obter seu token de acesso ou suporte:

📧 Email: contato@monkai.com.br
🌐 Site: www.monkai.com.br

📄 Licença

MIT License - veja LICENSE

👨‍💻 Autor

Arthur Vaz - MonkAI

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.

grkmemory-1.6.0-cp313-cp313-win_amd64.whl (622.6 kB view details)

Uploaded CPython 3.13Windows x86-64

grkmemory-1.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

grkmemory-1.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (4.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

grkmemory-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl (723.7 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

grkmemory-1.6.0-cp312-cp312-win_amd64.whl (625.7 kB view details)

Uploaded CPython 3.12Windows x86-64

grkmemory-1.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

grkmemory-1.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (4.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

grkmemory-1.6.0-cp312-cp312-macosx_11_0_arm64.whl (717.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

grkmemory-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl (727.6 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

grkmemory-1.6.0-cp311-cp311-win_amd64.whl (637.2 kB view details)

Uploaded CPython 3.11Windows x86-64

grkmemory-1.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

grkmemory-1.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (4.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

grkmemory-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl (730.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

grkmemory-1.6.0-cp310-cp310-win_amd64.whl (634.7 kB view details)

Uploaded CPython 3.10Windows x86-64

grkmemory-1.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

grkmemory-1.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

grkmemory-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl (735.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file grkmemory-1.6.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: grkmemory-1.6.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 622.6 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for grkmemory-1.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fe595859ba8ae4b8893a2ef823233c22d501bfd9aaa6b52b473c65d68a141bf2
MD5 83f45a3bdb4b14ea7d8df17bf6188a16
BLAKE2b-256 975f178a8aa5af6049f8043f4b3a4aebf9c09a5b4b5e89bb86e3140b9b631e4d

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 35a0493c851c578f78c9c0f18bf5f960fe9d630c355ab293ed9a02ba87b7678f
MD5 d92185773c94e3d595c4196d4abdfeed
BLAKE2b-256 b5da87f89f0a49a55b5d86badc33deb3155cb9f99865784558450b2470cc09ef

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 3b497fad4ae00f6ccb5c43078e75dec72aceb8abe241e716695fc94ff6df02f2
MD5 228b58c2b9280841fe412296a73f3e14
BLAKE2b-256 90bcbd7a2d55dc923e662a4296c3f038a45670462e76cbdc7421ceff813ae692

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 21373f45d67cf771eeae59cf97c22c4a383f9a28414c7820a90606c16c7e7466
MD5 ea2fde18fd224eac076b71934576240c
BLAKE2b-256 317aae49d89ea22db2220bebe2f4302564abd3ebf528c3b7c0197e56134e8f07

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: grkmemory-1.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 625.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for grkmemory-1.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 955fda50463c6046038c8eecde678628e923e6124f4912933cdb2e5254fedea2
MD5 a06486db9bfbc26d70d7037b2a10964d
BLAKE2b-256 37c57fecdd031fe5eae77d88850d8cafd97373587c866fd1c8f231cec2f3c9d5

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a919cb58223d4a2027a0625bdbd670bc888af5b5fdd1ee16b19805b28df21c97
MD5 0ea3e95c73e0ba7ce269628d773efbd2
BLAKE2b-256 de8c6e55b3fcf65ed018f2aca6505c52241f87df20562ef2bdc828a5e6a4c0ba

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 8148a6a1d6674e77c490e2d3e165ba2f731a63743e039d48f85afcddad17c643
MD5 155f0b3976cfc8d3fe868ac57759d7a4
BLAKE2b-256 f51e8c0c7b08dee2c7dd2a1825d9c65a9d9a58a85c76f32c09240dfefa3f6e6b

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6c5610dc5e78af52185d792d07f6e78ba0ea8fb545fa55609279398040d3a11b
MD5 5d1b93c4d06602229680b054f6c882d3
BLAKE2b-256 fc588df8d7da5b6ad74f3e58faf5e9ab60e5c7c7b42846cbfffa8c09e73ec161

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 66fb9386bd007d9c4535379aed5c94ee919c64c39c7c9ba4da7b0fc346b651bf
MD5 a3cc75c716a039f8c2c7fde774cf8931
BLAKE2b-256 2e120f9952a889b4f7603558ca4cc3026da71a6bdb37090f8fa076b4cb5fa18c

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: grkmemory-1.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 637.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for grkmemory-1.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 be70439128cafef9d7069c0df57b4fe896657c4519db04c152b0eb5d8f4d267b
MD5 e490d1564b00bac7e753d4c71fdab5f3
BLAKE2b-256 5ce2c0abda3364f7ffba36159d773d21667aba311dc11c002d68450204b2a1c4

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1f82d64b91151f49fe365c2f423c63abe4473c151e5e735088cca849ab48dfa6
MD5 cbf2c2b47d467156d1cabd37dfd188cf
BLAKE2b-256 3cb0d45deaadd0e0055d1c6ff30ee446ba002b5ce914364790cf86d0f9a4db92

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 7d3685d3148e412e7ad102696879fa8a3e4679c2aef782587bd8a08d99439d07
MD5 07ed672ebe5d4e5c993e07879462eefa
BLAKE2b-256 659b7be9c775433887fdd498ac8704873d3eb5130913c3e2f4234f6d0c46d71a

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1bc806e298ba673e548a1f6b7fc6f34458b46dcd6dafff70c986512f1bd3bcfa
MD5 913ac2b4cb431898d03415fb43309e6b
BLAKE2b-256 d7e825c462271ac61ba6130f7e6345f6b7153b7cd42334b6bd2211bcd2e00c17

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: grkmemory-1.6.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 634.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for grkmemory-1.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 150b6ef97a4dbb12882d7800444564065aa2cb6d1635e1fd86ff3dd85b6f86b1
MD5 9952c920a56d7c8b1b8e89f359954e58
BLAKE2b-256 4addc641bfe326d51e8913ff1142e4bd6c7deba7ca526e24ec2ca1654dea25d6

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 51f9da9124c75f6989430e58757008ef7fe93922520c8d3a6d2a3d81cc05a9ca
MD5 9ffb572211f3b9d18a38b3d9a99373c1
BLAKE2b-256 4465b34fdf5d607bfbe4ead35d517284b1a99f582fbb741a5d335bef5c87c65f

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 9117bdc061a8f62cb6ba63dedcf7f5381c7465dceb6d9364e9b72428e8b0476f
MD5 f72610543e47327eca3fd4de7736ba55
BLAKE2b-256 480d423f301d2377267ba2bad0054345238f321b884c3945b209363232a5bb2e

See more details on using hashes here.

File details

Details for the file grkmemory-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for grkmemory-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7d42d459a93047ae5401c82d06d8de3ca9303f937b1298f0f9bab70bf61d9e3c
MD5 6f79a8fdb9658df3810a3c876a1859d3
BLAKE2b-256 7a6854c6a07d882ad10e77bf3c446c8bc45591ecc34ccbba1ac3c3b2ecdf91d2

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