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 80-20 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 325 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.

Beginners or Students contributing to an open source project that has Mercury in their test pipeline should learn and grow as a developer.

๐Ÿ“ฆ Installation

Install from PyPI (Recommended)

pip install django-mercury-performance

Install from Source

# Clone the repository
git clone https://github.com/80-20-Human-In-The-Loop/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

According to The 80-20 Three Audiences Pattern Django Mercury adapts to your needs.

๐Ÿ’ผ 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:

with monitor_django_view("admin_search") as monitor:
    response = self.admin_client.get('/api/users/search/?q=perf_user')
    
    # Performance assertions
    self.assertResponseTimeLess(monitor.metrics, 50, "Admin search should be fast")
    self.assertQueriesLess(monitor.metrics, 5, "Admin search should be optimized")
    self.assertMemoryLess(monitor.metrics, 150, "Should use reasonable memory")

๐ŸŽ“ 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

mercury-test Command

# 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

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

๐Ÿค– 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
        })

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

๐Ÿšง 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.7.tar.gz (854.4 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.7-cp312-cp312-win_amd64.whl (325.0 kB view details)

Uploaded CPython 3.12Windows x86-64

django_mercury_performance-0.0.7-cp312-cp312-manylinux_2_34_x86_64.whl (456.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

django_mercury_performance-0.0.7-cp312-cp312-macosx_11_0_arm64.whl (328.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

django_mercury_performance-0.0.7-cp312-cp312-macosx_10_13_x86_64.whl (330.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

django_mercury_performance-0.0.7-cp312-cp312-macosx_10_13_universal2.whl (383.0 kB view details)

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

django_mercury_performance-0.0.7-cp311-cp311-win_amd64.whl (324.9 kB view details)

Uploaded CPython 3.11Windows x86-64

django_mercury_performance-0.0.7-cp311-cp311-manylinux_2_34_x86_64.whl (454.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

django_mercury_performance-0.0.7-cp311-cp311-macosx_11_0_arm64.whl (328.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

django_mercury_performance-0.0.7-cp311-cp311-macosx_10_9_x86_64.whl (330.0 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

django_mercury_performance-0.0.7-cp311-cp311-macosx_10_9_universal2.whl (382.9 kB view details)

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

django_mercury_performance-0.0.7-cp310-cp310-win_amd64.whl (324.9 kB view details)

Uploaded CPython 3.10Windows x86-64

django_mercury_performance-0.0.7-cp310-cp310-manylinux_2_34_x86_64.whl (454.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

django_mercury_performance-0.0.7-cp310-cp310-macosx_11_0_arm64.whl (328.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

django_mercury_performance-0.0.7-cp310-cp310-macosx_10_9_x86_64.whl (330.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

django_mercury_performance-0.0.7-cp310-cp310-macosx_10_9_universal2.whl (382.9 kB view details)

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

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7.tar.gz
Algorithm Hash digest
SHA256 33032b0b7e28e070941817ae07e39e32371a834cb0e28c02ade54ce80307c843
MD5 64b28eb59ba9996b3c1d28f7f0694003
BLAKE2b-256 a8ba1c261b790c7cf17474787d0251170a96f7cd273da8379935337b8bed25f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3f43eaf51690235b1dda924b0aa9568ef8c0a4c00b617ae1525d3a249361fb04
MD5 523b94b020760d5630c8a0ea163114ca
BLAKE2b-256 efefb1998acd56cc48c98364311b62f39339d2d42f13470c23405cba555e7c75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4b2ba30bd864929f5fa5b0cb20ff6543c27ab528ca065bba8f20429aa48e38c4
MD5 fc5ed139944679084a0b0723ba43400f
BLAKE2b-256 3d636685bb324a78dfd383d1fbea024b9375a1e6047773a264e19ac1e2dd6e44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55b9d3b9bf835146e903afd48c66848814b29733bccc6a21fa0352a9b4a2d4e2
MD5 a639049a337c5d82c666a68ceb59fc2a
BLAKE2b-256 33c7c8aca7585bb32137333b701016cf8d58079bf9e1c56a6b03bb32576392c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b0cbe94f683f8cabd9da313e1d83c98740c694a36d7f78d63c5410cc1d3a6449
MD5 42c5b3378721408f35fa06d0cae72963
BLAKE2b-256 74cb6f0d68a5052824b7c6595663950210758279426b2a981eaf882fd35b7fff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 6b5505b9157a7b6e620fa28e965623277fa988722d78c7909ef5c0bf4eff3480
MD5 f723df08d6894331daccd1b71c93ab81
BLAKE2b-256 7bc526c85fc43708f966b7490c7aba43ba992f97d6aa4bca93c1b67ed9b197f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1a8f48304033a87633341456de5214b32ba79c427e29fb370ea50bef6280d658
MD5 7b593a4c2bc9bb114545dc5b056115ce
BLAKE2b-256 f37f270914587ec5c1ffb481f73565395ab5b5bf16e67ba2166b12084c815e1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 52558c8a00a268fb22655bcba0406453b35e85c48c19b4f95c68b3b90569206c
MD5 2918524ed09a25d196b72e7477146c06
BLAKE2b-256 ccf57f5d9b88f75931fc172f5f9a8a4092330814014801a7767277062b4e2447

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f509533e22a9e4ef68ae20a498085ff2495aae84fb76d4dc862761c1d163f543
MD5 3f4944e3f42aafbdcc4af4bf8cb713aa
BLAKE2b-256 5322102a3bb22a71495afddbc4cd95a02036b12aeeeaef29bfe6a9e1537a42fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4385e3ee85bcd6904efc6dd843ab7131cba718fa5559484f291f99977e2dd7bb
MD5 291939cbf94c561152233b152044331f
BLAKE2b-256 f861fc9343d402c8f0fdb06007b00789df3a2cb2ade2b6062d314864c6db56f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3e52392f73c82958fbd869f9504cdd5a2bb98a5792c6d05515357658d9871fad
MD5 ca4cd2a00957f53287d8eea85f3ea0cc
BLAKE2b-256 4fdcf18423a3bd5bd8619d7205c6f83d52c542861268ded88ee7a11390c90d8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5de84e7fcd2b235956d9a1aef19505fe3d2863f0a44e8dbd5e923a352c1af8f5
MD5 e3eb2113d38081962427a7bc411ba3d9
BLAKE2b-256 776098d3d434c84fd7ae9471e24bf737f6afeaaa6882dd8a11bee2b52eb67261

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7c46db4c746ff61781a9966bb1acbac854df2c5b11325528b02b7e12d231afff
MD5 6079be6e3b02fc8e0dff0d59f0c6f856
BLAKE2b-256 316f32ca12d4bac091053a10f0d6dee6c2c39dd438fd37dac139aded77b446c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0185965a4120ebb2aa778f0d4de8356a6ea3e4598ffa94ccf59f01bc7adb2b1
MD5 ec8b5e1e6d3b956a53b565dc59588e7d
BLAKE2b-256 33d49a70e7cd447bb1aca6658db58566416d97e11df5e11692084e133e6563e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6e010af33773f92ec71780245b414bcd648bc5cc96b95b4e04677197e9aa3e7a
MD5 123e2444a20193a4479b10e46e395566
BLAKE2b-256 01fc24bb756e907ed462bb70d3bb3bfa362c5a066089c0a7c1e2dcf875949df3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_mercury_performance-0.0.7-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 77eea9f7343dbb9850beeb3ef38734966ec4b1bcbc1c2d3fdaccc502b800f0a8
MD5 e89848bf791d6086f8ddca97a0d2ddcd
BLAKE2b-256 3636e5d6dd677f71d807d10b2f8460c83228f7ce1bde8af16bf099a09e90fed1

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