Skip to main content

A performance testing framework for Django that helps you understand and fix performance issues, not just detect them

Project description

[warning] I am in the process of getting the CI/CD to build a proper Windows version, for now Windows uses python fallbacks which are 900x slower.

Django Mercury ๐Ÿš€

PyPI version Python 3.10+ Django 3.2-5.1 License: GPL v3 Built for: EduLite Values: Open

Part of the Human in the Loop ecosystem

Test Django app speed. Learn why it's slow. Fix it.

๐Ÿš€ Quick Install

pip install django-mercury-performance

Then in your test files:

from django_mercury import DjangoMercuryAPITestCase

class MyPerformanceTest(DjangoMercuryAPITestCase):
    def test_api_performance(self):
        response = self.client.get('/api/endpoint/')
        # Performance is automatically monitored and reported!

๐ŸŒŸ Origin Story

Mercury started at EduLite. EduLite helps students learn with slow internet. We found our UserSearchView made 825 database queries to show one page!

We built Mercury to find these problems and teach you how to fix them. Mercury follows EduLite's values: Fair, Free, and Open. Everyone can use it and learn.

๐ŸŽฏ Current Status: v0.0.2 on PyPI! ๐ŸŽ‰

What Works Now:

  • โœ… Install from PyPI - pip install django-mercury-performance
  • โœ… NEW: Educational Mode (--edu) - Interactive learning while testing
  • โœ… Finds N+1 query problems
  • โœ… Grades speed (S, A+, A, B, C, D, F)
  • โœ… Two test types: DjangoMercuryAPITestCase and DjangoPerformanceAPITestCase
  • โœ… Knows what type of code runs
  • โœ… Teaches when tests fail
  • โœ… Fast C code for speed
  • โœ… Tracks time, queries, and memory

What We Actually Found:

๐Ÿšจ POTENTIAL N+1 QUERY PROBLEM! ๐Ÿšจ
Severity: CRITICAL (825 queries)

Coming Soon:

  • ๐Ÿค– AI Agent Mode (--agent) for smart automation
  • ๐Ÿ“Š Track speed changes over time
  • ๐ŸŽฏ Test all Django view types
  • ๐Ÿ” Find exactly when code gets slower
  • ๐Ÿ› ๏ธ Better testing tools

๐Ÿ“ฆ Installation

Install from PyPI (Recommended)

pip install django-mercury-performance

Install from Source

# Clone the repository
git clone https://github.com/Django-Mercury/Performance-Testing.git
cd Django-Mercury-Performance-Testing

# Install in development mode
pip install -e .

# If you want to modify the C extensions
cd django_mercury/c_core
make clean && make

Choose Your Mode

Django Mercury adapts to your needs. Pick the mode that fits you:

๐ŸŽ“ Educational Mode - For Learning & Understanding

Learn while you test! Mercury becomes your performance tutor.

What it does:

  • โธ๏ธ Pauses when it finds problems to teach you
  • ๐Ÿ“š Explains issues in simple language
  • ๐ŸŽฎ Interactive quizzes test your understanding
  • ๐Ÿ“ˆ Tracks your learning progress
  • ๐Ÿ”ง Shows step-by-step fixes

Three Ways to Enable (Choose Your Favorite):

Option 1: mercury-test Command (Easiest! ๐ŸŒŸ)

# Just use mercury-test instead of python manage.py test
mercury-test

# Run specific tests
mercury-test users.tests

# Set difficulty level
mercury-test --level advanced

# Run without pauses (for CI)
mercury-test --no-pause

Option 2: Environment Variable (Great for CI/CD ๐Ÿค–)

# Set the environment variable
export MERCURY_EDU=1
export MERCURY_EDU_LEVEL=intermediate  # optional

# Then run tests normally
python manage.py test

Option 3: Python Configuration (For manage.py ๐Ÿ“)

# Add to your manage.py or settings.py
from django_mercury import enable_educational_testing

# Enable educational mode
enable_educational_testing('beginner')  # or 'intermediate', 'advanced'

# Then run tests normally
python manage.py test

Example experience:

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿšจ Learning Opportunity โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                                                  โ”‚
โ”‚  โš ๏ธ  Performance Issue Detected!                 โ”‚
โ”‚                                                  โ”‚
โ”‚  Test: test_user_list_api                       โ”‚
โ”‚  Issue: N+1 Queries                             โ”‚
โ”‚  Queries executed: 230 | Response time: 450ms   โ”‚
โ”‚                                                  โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿ“š What's happening?
When you fetch users without their related data, 
Django makes a new query for each relationship.

๐Ÿค” Quick Check: Which method would fix this?
  [1] filter()
  [2] select_related()
  [3] annotate()
  [4] values()

Your answer: _

๐Ÿ“– Full Educational Mode Documentation

๐Ÿ’ผ Professional Mode (Default) - For Experts

Fast, efficient, no hand-holding. You know what you're doing.

What it does:

  • โœ… Automatic performance monitoring
  • ๐Ÿ“Š Detailed reports and grades (S, A+, A, B, C, D, F)
  • โšก Fast execution without interruptions
  • ๐ŸŽฏ Precise performance metrics
  • ๐Ÿ” N+1 query detection

How to use:

from django_mercury import DjangoMercuryAPITestCase

class MyTest(DjangoMercuryAPITestCase):
    def test_api_performance(self):
        response = self.client.get('/api/endpoint/')
        # Automatically monitored!

๐Ÿค– Agent Mode (--agent) - Coming Soon!

Let AI help optimize your code while you keep control.

What will it do:

  • ๐Ÿ”„ Auto-fix level 1-2 complexity issues
  • ๐Ÿ“ Generate optimization suggestions
  • ๐Ÿšจ Flag critical issues for human review
  • ๐Ÿ“Š Structured JSON output for tool integration
  • ๐Ÿง  Preserve human decision points

Future usage:

python manage.py test --agent
{
  "auto_fix_immediately": ["missing_select_related", "unused_imports"],
  "requires_human_review": ["architecture_change", "security_update"],
  "complexity_breakdown": {
    "1/5_trivial": 12,
    "2/5_routine": 8,
    "3/5_moderate": 3,
    "4/5_complex": 2,
    "5/5_critical": 1
  }
}

๐Ÿš€ Quick Start

Step 1: Choose Your Experience

  1. ๐ŸŽ“ Student/Beginner? Use --edu for interactive learning
  2. ๐Ÿ’ผ Expert? Use default mode for fast results
  3. ๐Ÿค– AI Agent? --agent mode coming soon!

Step 2: Run Your Tests

๐ŸŽ“ Educational Mode - Learn While Testing

# Enable in settings.py
import sys
if '--edu' in sys.argv:
    TEST_RUNNER = 'django_mercury.test_runner.EducationalTestRunner'

# Run with learning
python manage.py test --edu

Mercury will pause at performance issues to teach you!

๐Ÿ’ผ Professional Mode - Automatic Monitoring (Default)

from django_mercury import DjangoMercuryAPITestCase

class UserSearchPerformanceTest(DjangoMercuryAPITestCase):
    """Mercury monitors every test automatically."""
    
    def test_user_search(self):
        # Write your normal test
        response = self.client.get('/api/users/search/?q=test')
        self.assertEqual(response.status_code, 200)
        # Mercury checks performance automatically

What Mercury does:

  • Counts database queries
  • Measures response time
  • Tracks memory usage
  • Finds N+1 problems
  • Shows clear reports

๐Ÿ’ผ Advanced: Manual Control

You control when to monitor. Good for specific performance checks.

from django_mercury import DjangoPerformanceAPITestCase
from django_mercury import monitor_django_view

class AdvancedPerformanceTest(DjangoPerformanceAPITestCase):
    """Control exactly what you test."""
    
    def test_with_assertions(self):
        with monitor_django_view("search") as monitor:
            response = self.client.get('/api/users/search/')
        
        # Check specific limits
        self.assertResponseTimeLess(monitor, 100)  # Under 100ms
        self.assertQueriesLess(monitor, 10)         # Under 10 queries
        self.assertNoNPlusOne(monitor)              # No N+1 problems

You control:

  • When monitoring starts
  • What to check
  • Your performance limits

๐Ÿ“Š Real Output from Mercury

This is actual output from testing EduLite:

๐ŸŽจ MERCURY PERFORMANCE DASHBOARD - UserSearchPerformanceTest
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ ๐Ÿš€ Overall Status: NEEDS IMPROVEMENT                          โ”‚
โ”‚ ๐ŸŽ“ Overall Grade: F (20.5/100)                               โ”‚
โ”‚ ๐Ÿ“Š Tests Executed: 12                                        โ”‚
โ”‚ โฑ๏ธ  Avg Response Time: 105.6ms                                โ”‚
โ”‚ ๐Ÿง  Avg Memory Usage: 91.7MB                                  โ”‚
โ”‚ ๐Ÿ—ƒ๏ธ  Total Queries: 2761 (230.1 avg)                          โ”‚
โ”‚ ๐Ÿšจ N+1 Issues: 10/12 tests affected                          โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿ“ˆ Your Learning Journey

Start Here โ†’ Master Performance โ†’ Help Others

๐ŸŽ“ Educational Mode          ๐Ÿ’ผ Professional Mode         ๐Ÿค– Agent Mode
Learn the basics      โ†’      Apply your skills      โ†’     Automate wisely
Interactive lessons          Fast, efficient testing      AI-assisted optimization
Quizzes & progress          Expert-level control         (Coming soon!)

Your Path:

  1. Begin with --edu mode to understand concepts
  2. Practice with real projects in professional mode
  3. Master performance optimization patterns
  4. Contribute improvements back to the community
  5. Future: Use AI agents to scale your expertise

๐ŸŽ“ How Mercury Works

Mercury follows the Human in the Loop philosophy:

80% Computer Help:

  • Watches performance automatically
  • Finds N+1 problems
  • Grades your code speed
  • Manages limits

20% Human Control:

  • You understand WHY speed matters
  • You choose how to fix problems
  • You learn from the guides
  • You make design choices

Example: How Mercury Teaches

When a test fails, Mercury helps you learn:

๐Ÿ“š MERCURY EDUCATIONAL GUIDANCE
============================================================
๐ŸŽฏ Test: test_user_list_view
โš ๏ธ  Default thresholds exceeded

๐Ÿ—ƒ๏ธ  Query Count: 230 (limit: 10)
   โ†’ 220 extra queries (2200% exceeded)

๐Ÿ’ก SOLUTION: N+1 Query Pattern Detected
   Your code is likely missing select_related() or prefetch_related()
   
   Try: User.objects.select_related('profile').prefetch_related('groups')

๐Ÿ› ๏ธ  Quick Fix for Testing:
   cls.set_performance_thresholds({'query_count_max': 250})
   
   But the REAL fix is optimizing your queries!
============================================================

๐Ÿ› ๏ธ Performance Checks

Test Methods You Can Use

# Check response time
self.assertResponseTimeLess(monitor, 100)    # Must be under 100ms
self.assertPerformanceFast(monitor)          # Must be fast
self.assertPerformanceNotSlow(monitor)       # Must not be slow

# Check database queries  
self.assertQueriesLess(monitor, 10)          # Must use less than 10 queries
self.assertNoNPlusOne(monitor)               # Must not have N+1 problems

# Check memory use
self.assertMemoryLess(monitor, 50)           # Must use less than 50MB
self.assertMemoryEfficient(monitor)          # Must use memory well

# Check cache use
self.assertGoodCachePerformance(monitor, 0.8) # Must hit cache 80% of time

๐Ÿ”ง Setup Options

class MyTest(DjangoMercuryAPITestCase):
    @classmethod
    def setUpClass(cls):
        super().setUpClass()
        
        # Turn Mercury features on or off
        cls.configure_mercury(
            enabled=True,               # Turn on Mercury
            auto_scoring=True,          # Grade tests automatically
            verbose_reporting=False,    # Show less detail
            educational_guidance=True   # Show help messages
        )
        
        # Set your speed limits
        cls.set_performance_thresholds({
            'response_time_ms': 100,    # Max time: 100ms
            'query_count_max': 10,      # Max queries: 10
            'memory_overhead_mb': 20,   # Max extra memory: 20MB
        })

๐Ÿงช Testing Django Mercury

We provide two test runners to help you test the framework.

What Our Tests Do

Tests make sure Django Mercury works correctly. They check:

  • Python code works as expected
  • C extensions compile and run fast
  • Performance monitoring catches problems
  • Everything works together

Two Test Runners

1. Python Test Runner: test_runner.py

Tests all Python code with performance timing.

Features:

  • Shows test speed with colors (๐ŸŸข fast, ๐ŸŸก medium, ๐Ÿ”ด slow, ๐Ÿ’€ very slow)
  • Coverage reports (how much code is tested)
  • Finds slow tests automatically
  • Groups results by module

2. C Test Runner: c_test_runner.sh

Tests all C extensions for speed and correctness.

Features:

  • Builds C libraries
  • Runs unit tests
  • Checks memory safety
  • Generates coverage reports

How to Run Tests

Quick Start (Test Everything)

# Test Python code
python test_runner.py

# Test C code  
./c_test_runner.sh test

Detailed Testing

# Python tests with coverage report
python test_runner.py --coverage --verbose

# C tests with coverage analysis
./c_test_runner.sh coverage

# Test everything
python test_runner.py --all
./c_test_runner.sh all

Understanding Test Output

Python Test Colors

Your tests show timing with colors:

Color Time Meaning
๐ŸŸข Green <0.1s Fast - Great!
๐ŸŸก Yellow 0.1-0.5s Medium - OK
๐Ÿ”ด Red 0.5-2s Slow - Needs work
๐Ÿ’€ Purple >2s Very slow - Problem!

Example Output

๐Ÿš€ Starting Timed Test Run
==================================================
Legend: ๐ŸŸข <0.1s | ๐ŸŸก 0.1-0.5s | ๐Ÿ”ด >0.5s | ๐Ÿ’€ >2s
==================================================

๐Ÿƒ Running: tests.monitor.test_django_base ... ๐ŸŸข 0.045s โœ…
๐Ÿƒ Running: tests.monitor.test_metrics ... ๐ŸŸก 0.234s โœ…
๐Ÿƒ Running: tests.integration.test_api ... ๐Ÿ”ด 0.678s โœ…

๐Ÿ“Š PERFORMANCE SUMMARY
Total time: 0.957s
Average per test: 0.319s

Common Testing Tasks

Run Specific Tests

# Test only monitor module
python test_runner.py --module monitor

# List all test modules
python test_runner.py --list-modules

Build and Clean

# Clean everything
./c_test_runner.sh clean

# Rebuild C libraries
./c_test_runner.sh build

# Run benchmarks
./c_test_runner.sh benchmark

Before You Commit

Always run these commands:

# 1. Check Python tests pass
python test_runner.py

# 2. Check C tests pass
./c_test_runner.sh test

# 3. Check code style
black django_mercury/
ruff check django_mercury/

Adding Your Own Tests

Python Tests

Create a file in tests/ directory:

# tests/test_my_feature.py
import unittest
from django_mercury import DjangoMercuryAPITestCase

class TestMyFeature(DjangoMercuryAPITestCase):
    def test_feature_works(self):
        # Your test here
        response = self.client.get('/api/test/')
        self.assertEqual(response.status_code, 200)

C Tests

Create a file in django_mercury/c_core/tests/:

// simple_test_myfeature.c
#include <stdio.h>
#include <assert.h>

int main() {
    printf("Testing my feature...\n");
    // Your test here
    assert(1 == 1);
    printf("โœ… Test passed!\n");
    return 0;
}

Getting Help

  • Test failures? Check the error message first
  • Slow tests? Look for time.sleep() or database queries
  • C compilation errors? Run ./c_test_runner.sh clean then build
  • Still stuck? Open an issue with your test output

๐Ÿ“š Documentation

๐ŸŽฏ Real Results at EduLite

Before Mercury:

  • UserSearchView used 825 queries to show one page
  • We could not see speed problems
  • Students with slow internet could not use the app

After Mercury:

  • Found the exact problem
  • Fixed it to use only 12 queries
  • Now we check speed on every code change

๐Ÿšง Future Plans

Phase 1: Foundation โœ…

  • โœ… Performance monitoring
  • โœ… N+1 query detection
  • โœ… Educational guidance
  • โœ… PyPI availability
  • โœ… Educational Mode (--edu)

Phase 2: Enhancement (In Progress)

  • ๐Ÿ”จ Improve test stability
  • ๐Ÿ”จ Support all Django view types
  • ๐Ÿ”จ Track performance trends
  • ๐Ÿ”จ Better learning materials

Phase 3: AI Agent Mode (Coming Soon)

  • ๐Ÿค– Agent Mode (--agent) with structured output
  • ๐Ÿค– Auto-fix level 1-2 complexity issues
  • ๐Ÿค– Generate optimization suggestions
  • ๐Ÿค– Preserve human decision points for level 4-5 issues
  • ๐Ÿค– Integration with AI development tools

๐Ÿค Contributing

Mercury is part of EduLite and Human in the Loop. We welcome everyone.

Our Values

  • Education First: Tools should teach, not just find problems
  • Human Understanding: You control your code
  • Open Source: Built together, shared with everyone

How You Can Help

  1. Test Mercury - Try it on your Django project
  2. Report Problems - Tell us what doesn't work
  3. Share Ideas - Suggest improvements
  4. Write Code - Fix bugs or add features
  5. Improve Docs - Make them clearer
  6. Help Others - Answer questions

Getting Started

See CONTRIBUTING.md for details.

New to open source? Start here:

  • Look for "good first issue" labels
  • Ask questions - we're here to help
  • Small fixes matter too

๐Ÿซ Made for Learning

Mercury was made for EduLite. EduLite helps students learn even with slow internet. Mercury helps by:

  • Working on slow computers
  • Teaching as it tests
  • Helping developers learn
  • Making apps work for everyone

๐Ÿ“„ License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).

Why GPL-3.0?

We use GPL-3.0 because it matches our values:

  • ๐ŸŒ Open: Code stays open for everyone
  • ๐Ÿ†“ Free: You can use, study, share, and improve it
  • โš–๏ธ Fair: Improvements must be shared
  • ๐Ÿค Copyleft: Stays free forever

If you share a changed version, you must:

  • Share your code
  • Use GPL-3.0 license
  • Keep all notices
  • List your changes

This keeps knowledge open for all.

For the full license text, see LICENSE.txt or visit GNU GPL v3.0.

๐Ÿ™ Thanks To


Mercury: Making performance testing simple for everyone.

Built with โค๏ธ by developers who believe people should understand their code.

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

django_mercury_performance-0.0.6.tar.gz (829.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

django_mercury_performance-0.0.6-cp312-cp312-win_amd64.whl (318.2 kB view details)

Uploaded CPython 3.12Windows x86-64

django_mercury_performance-0.0.6-cp312-cp312-manylinux_2_34_x86_64.whl (449.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

django_mercury_performance-0.0.6-cp312-cp312-macosx_11_0_arm64.whl (321.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

django_mercury_performance-0.0.6-cp312-cp312-macosx_10_13_x86_64.whl (323.4 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

django_mercury_performance-0.0.6-cp312-cp312-macosx_10_13_universal2.whl (376.3 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

django_mercury_performance-0.0.6-cp311-cp311-win_amd64.whl (318.2 kB view details)

Uploaded CPython 3.11Windows x86-64

django_mercury_performance-0.0.6-cp311-cp311-manylinux_2_34_x86_64.whl (447.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

django_mercury_performance-0.0.6-cp311-cp311-macosx_11_0_arm64.whl (321.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

django_mercury_performance-0.0.6-cp311-cp311-macosx_10_9_x86_64.whl (323.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

django_mercury_performance-0.0.6-cp311-cp311-macosx_10_9_universal2.whl (376.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

django_mercury_performance-0.0.6-cp310-cp310-win_amd64.whl (318.2 kB view details)

Uploaded CPython 3.10Windows x86-64

django_mercury_performance-0.0.6-cp310-cp310-manylinux_2_34_x86_64.whl (447.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

django_mercury_performance-0.0.6-cp310-cp310-macosx_11_0_arm64.whl (321.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

django_mercury_performance-0.0.6-cp310-cp310-macosx_10_9_x86_64.whl (323.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

django_mercury_performance-0.0.6-cp310-cp310-macosx_10_9_universal2.whl (376.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file django_mercury_performance-0.0.6.tar.gz.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6.tar.gz
Algorithm Hash digest
SHA256 1230fa3bebb99464f8ee8ed5ef9dc9c3c3ea3ca9fecce63515e35ef04c87b164
MD5 669a4e73b446658a094939ef06f5b5ee
BLAKE2b-256 6b830d0f9769538c39428fb39ddfaf625414ceae298bdbff6adbf6ac31d74698

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 badd3ff01d554eb005721dc7dcef8459a2c7916aa445ff0868229445c527905a
MD5 494f18c500994d5d150f7f909eff4aea
BLAKE2b-256 9d604f4325495f620d11048be6885475225a965dfcda10d3ecee8b1589448deb

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 652294371abd15c03e0ea1aa29fcd0d1283f3f3d23c723f426d504a95dfbc3ff
MD5 588dc9da90f414d9adaf4adc7f2ae012
BLAKE2b-256 7c0528ee6a67f4dc170f25d029a4e56529277ba43d02496fdddb9e7bb94f6645

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96841705e458eec85052e8469bf40d9bddbdf19ef22eeb9faa5c1429c1805acb
MD5 b32cc89ea1d04bdceb2067c4e5c66a97
BLAKE2b-256 9d654072b9e0acb07d803bf04c3d6414252801c4c4c78526171da08258af97a8

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 475da24112d80d61d505683d92d7b9e91d14da621d426754ca7b7cef9bb671c7
MD5 100a5f44d1bbd55197dee03d87ca4941
BLAKE2b-256 c8d67815756fe1e52e07d0fb9b29381797fd901308c9515fc9e37a374c90793b

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 73fe69063d5e6c5f39dc36420f55826fc05d02b8fc87be8677ec6dc73c4fd838
MD5 9a9034d7837c1f22219f4252a5ac6656
BLAKE2b-256 199c025e90e02ced8886c293a2d31880936ac5fe42219c209a35baf38b082e5d

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ce074b89974f9caeb2f12adeae1a0e3aa37115aa131a705884ba0fb847adaccf
MD5 66f0ba8cebcbf5708dccc9d5d18625f1
BLAKE2b-256 cf42c9c1d0ea631af76c070603951ea5c3cb25b587ea94c481fbf096ac8899fc

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b83afc99dc3f729351728d4c1b241b343c25c8bf3e7a6947f1805e8c9a1e884f
MD5 d92cbfeb89d16a14396add95bcd42501
BLAKE2b-256 093c1e8296f2f5afcd2362ee0c3314366d24be97020eec6ec8ea1968458b574c

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a6aadba9ddc936cafea18436aaf1cfbf1f50cb93f3003e87b29b22b90592d91
MD5 cf8101bdaadd38ebadf47a5d92523927
BLAKE2b-256 da44c25d40f0470dace1e53c21804f06b9f21ac4e71c25ab22836ccca91c63a0

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9f2472d7d63392100bcfe48ff81342096e03417cb5d49df16ec98ed288b618dd
MD5 52ba1d1b21785f4428ffcc1a43bcb99d
BLAKE2b-256 1b794bed65aa846be8d299bf93927a0d6dfcbf6227d5248999a7cb56753565f8

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e0b7f0359ed882d7e08228ff27cf66bc1143891d7a8457ef1bc80276c85d35bd
MD5 6551430e88fa161d0a8f9b087f15ca7f
BLAKE2b-256 7aa7cf8a1bcad53e08bace87939ef8e1054b03e3c600d55be5608790d455d192

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e91542355784935d803a88c01e23a653dcf16b9f80cd1cf247037c3c43e9b31b
MD5 817e5ade68c74b254b59a6085e9c4b90
BLAKE2b-256 1ffcd1d8b4c45b9536cc02a87f904d76dbd415987ddf44fbb6dc06c86ffb5749

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0e36aa133086a3bb291e84372d4e125c07ca5e6d615164250e61c7c7ca3789d3
MD5 c34793a36ae4e71f7f6af0d776187893
BLAKE2b-256 1c11c37462fcc4f5e2db233068b934302b16aa1683e3fd5318d8581daf12dac7

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 15c97c95e903a3685cb94d83b09b94c4e4e692957a6dd218cf3cd50a0f849edf
MD5 fbc6713520bdb5f7fe753991d9845dec
BLAKE2b-256 71521a3e001e6ec471f44b28c21be92cb495430f8ee214cee5b2059e81b381b0

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4d69b1a86f43174836719ca72696ade5a29247614a4231c38f4c29a7103b3037
MD5 f31148e746c25a6c75f28d62dd68835e
BLAKE2b-256 10f8fa006c58bc287bd06bd79dbf03baec084bf0a6dbb321469b329b7249ee60

See more details on using hashes here.

File details

Details for the file django_mercury_performance-0.0.6-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for django_mercury_performance-0.0.6-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 4d3f28666124c8a49e4c9df63fe141d85de87315de8aa05e689ef09f2f2ad8ec
MD5 818302e7a5d1ad53ccc8d13f66f24083
BLAKE2b-256 4783ef586bd0ab571c89ed1927774accd2ed4e28c7434ca41329b2e1d96c4524

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