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.5.tar.gz (827.9 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.5-cp312-cp312-win_amd64.whl (317.4 kB view details)

Uploaded CPython 3.12Windows x86-64

django_mercury_performance-0.0.5-cp312-cp312-manylinux_2_34_x86_64.whl (448.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

django_mercury_performance-0.0.5-cp312-cp312-macosx_11_0_arm64.whl (320.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

django_mercury_performance-0.0.5-cp312-cp312-macosx_10_13_x86_64.whl (322.6 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

django_mercury_performance-0.0.5-cp312-cp312-macosx_10_13_universal2.whl (375.5 kB view details)

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

django_mercury_performance-0.0.5-cp311-cp311-win_amd64.whl (317.3 kB view details)

Uploaded CPython 3.11Windows x86-64

django_mercury_performance-0.0.5-cp311-cp311-manylinux_2_34_x86_64.whl (447.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

django_mercury_performance-0.0.5-cp311-cp311-macosx_11_0_arm64.whl (320.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

django_mercury_performance-0.0.5-cp311-cp311-macosx_10_9_x86_64.whl (322.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

django_mercury_performance-0.0.5-cp311-cp311-macosx_10_9_universal2.whl (375.3 kB view details)

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

django_mercury_performance-0.0.5-cp310-cp310-win_amd64.whl (317.3 kB view details)

Uploaded CPython 3.10Windows x86-64

django_mercury_performance-0.0.5-cp310-cp310-manylinux_2_34_x86_64.whl (446.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

django_mercury_performance-0.0.5-cp310-cp310-macosx_11_0_arm64.whl (320.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

django_mercury_performance-0.0.5-cp310-cp310-macosx_10_9_x86_64.whl (322.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

django_mercury_performance-0.0.5-cp310-cp310-macosx_10_9_universal2.whl (375.3 kB view details)

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

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5.tar.gz
Algorithm Hash digest
SHA256 6775f17fcdd01cd707390032e86dea7ee6d3d7fdbe9e0c692c574b3888c5148f
MD5 73d7b35a04177be7564655a181533bd0
BLAKE2b-256 98c1b526684b10a7ac7bc0fb0c4a97117cc64d54c0e4907578e03958a12ea54b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 64673fca54a0416b31a4bd3c225239851c26627a140c962af385b20bff657e2a
MD5 06bdb7f69a90a6bf6614145898e406bc
BLAKE2b-256 594e59b4bbc73b6b679c2e2cbae89cca45119fc6a8fc4b4a9c7ecf25f9c7ae33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 abd9119ef6737a982df5793924b055b5609c5f1cdf37847a4cd45ebc1f1d4fb0
MD5 3d79c44b350490b23e1711be219da76a
BLAKE2b-256 a7ce6b1e5559e1062b6069af00adde00020485ad2fb9d695680cc3d00e96cf67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e968088f9414d5cbf8f30c49f658edd91c6b3ca920e14c109354aa204810e42
MD5 46836d95dbbde065ba335514b8d1554c
BLAKE2b-256 6b7f334770b71e906db088ec6fcda35ffba183c2bb4dd870bbd873f942730a07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d2d63c8d755a48f6e834d8bce2173ff1e5cf5dcf9280c2cc2b779c18fda061ad
MD5 3fcf73fd64027bf4750ddc40d02a1642
BLAKE2b-256 4e57e5d2d91d9f8b74694cb9e4206aa28ce4e6efcab996be666b0d077f030a1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 bbda04de7c8c0dc48b695c72014828b1d37319ba5d16d25cf562db7f33b1a147
MD5 fda9bce9c9aef26d7111c5e41d622f23
BLAKE2b-256 4341e2184cd4bb46267854731e43b52a34d6d51de6850d626e824ae799cc9b1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b70213b2cdfbcb0b2c54f6295a09e6646700243315da3b525b9c5b1c8f9eb951
MD5 4ee0dcc34c9162b5f4b181fc0162203e
BLAKE2b-256 fa30d89bdcec07c084bba2d798fa7e707d1fcd6454ed0e9ae23bfbdf7b22fa1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d8eaa0b2d183d4a99464579b2a3403c930906b976c661f4768fd22211142d57a
MD5 b9676afc6c24428de441777a37ec0505
BLAKE2b-256 9ad1ccb14ea91a0d568997a1b51381f78d736dc5c63daf97cb484027ed192d02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb2d16c4403c9985238f1a3c3d686d58e965dd37b772535d30911d38e26f983c
MD5 4d94c8b66316123179990e252e9e9d9c
BLAKE2b-256 ffec9a1a6fef14a3179c6212f57682d33733fb0ee45c746e5d6c76081124977e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 13fc31da3daeafed6be794c03d665fa934706d181544d6b4cc10775de616a936
MD5 2c531d5171d0a1e8e23957d7e3c94f92
BLAKE2b-256 ee4b2bc154e22d72280b7e6eebc92562a13ddc4c90d293b0d0befca667ebd1a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 cc53a9fddaf6d74e136017c61e6cd6185a968ae9456f9f0c9fe761af765dcbc1
MD5 9a50f88712a84834eaea93b44dea0818
BLAKE2b-256 bb1846ec77db57f809daea31d8ca98af9379fa82c977c0008143fd610df34d4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b2219af82febd03229f6a28a6516df149440a66a757fc75ebd0bd3c2b77c6f96
MD5 67797cd9a7ade1d1522d9b2974a2b742
BLAKE2b-256 8357a345ef2ddd0b8d2dad684222342dc680d0d469c434112fbc3844f3268d60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 532416df61ab5a1cac723467915d84434e18084724fd2384afcbe1797094c068
MD5 e2de82bc96e8d2fc947c61a9633c0662
BLAKE2b-256 d647c835051cad7f23bdab307c164b794dbcdd1d24bc52e9e727f80a026001d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2fbb95d310e90ab96ec86a973d8b157114d61e080a09faedfc2640f3c1b4f911
MD5 15524f0f3553c95fb4691b95f09c3d12
BLAKE2b-256 3e6b9dab2e1c4d186c44a8370efd40fc0e9b28c9a2ccc3891f16f59ca82915a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 192a0e9e72f386adce1a2674173d5dd024a207b139724ef8cb343a02335d4d36
MD5 64f34c10142a5f681509adb13bb1aa3c
BLAKE2b-256 40f95af18e004922d2e5b8f11eec28e08423d869759e3008b2b3ce1dd6ce2a8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.5-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fc9dc751898f694d720580c82eafa2d3b6b7e033fad91155f5825e945e1d854e
MD5 500f5e9469cf81c43d690d63e30cbaac
BLAKE2b-256 04f12d54ebeb472dc0542936ca6d391372eb6abfb13ac7e22114ed9a5a98aed8

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