Name | json-compare-pro JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | Advanced JSON comparison library with flexible validation rules, schema support, and comprehensive testing capabilities |
upload_time | 2025-08-23 18:05:39 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
keywords |
comparison
diff
json
schema
testing
validation
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# JSON Compare Pro π
[](https://badge.fury.io/py/json-compare-pro)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/psf/black)
[](https://github.com/harshitgoel09/json-compare-pro/actions)
**Advanced JSON comparison library with flexible validation rules, schema support, and comprehensive testing capabilities.**
JSON Compare Pro is a powerful, production-ready Python library designed for comparing JSON objects with advanced features like custom validation rules, schema validation, JSONPath support, tolerance checks, and detailed diff reporting. Perfect for API testing, data validation, and automated testing workflows.
## β¨ Features
### π **Advanced Comparison**
- **Flexible key ignoring** - Exclude specific keys from comparison
- **Key existence validation** - Check for key presence without comparing values
- **Custom validation rules** - Regex, patterns, ranges, and more
- **Numeric tolerance** - Handle floating-point precision issues
- **Case sensitivity options** - Configurable string comparison
- **Whitespace handling** - Ignore or preserve whitespace in strings
- **Array order control** - Compare arrays with or without order consideration
### π‘οΈ **Schema Validation**
- **JSON Schema support** - Validate against JSON Schema specifications
- **Schema builder** - Programmatically create schemas
- **Pre-built schemas** - Common patterns for users, products, API responses
- **Detailed validation reports** - Comprehensive error reporting
### πΊοΈ **JSONPath Support**
- **Advanced querying** - Extract and compare specific JSON paths
- **Path filtering** - Focus comparison on specific data subsets
- **Query builder** - Fluent API for building JSONPath expressions
- **Common patterns** - Pre-built queries for typical use cases
### π **Detailed Diff Reporting**
- **Multiple output formats** - JSON, text, markdown, HTML, rich terminal
- **Categorized differences** - Added, removed, changed, type changes
- **Path-based reporting** - Exact location of differences
- **Summary statistics** - Quick overview of comparison results
### π― **Production Ready**
- **Comprehensive testing** - 100% test coverage with edge cases
- **Type hints** - Full type annotation support
- **Error handling** - Robust exception handling with detailed messages
- **Performance optimized** - Efficient algorithms for large JSON objects
- **CLI interface** - Command-line tool for quick comparisons
## π Quick Start
### Installation
```bash
pip install json-compare-pro
```
### Basic Usage
```python
from json_compare_pro import compare_jsons
# Simple comparison
json1 = {"name": "John", "age": 30}
json2 = {"name": "John", "age": 30}
result = compare_jsons(json1, json2)
print(result) # True
```
### Advanced Configuration
```python
from json_compare_pro import compare_jsons_with_config, JSONCompareConfig
# Advanced comparison with configuration
config = JSONCompareConfig(
keys_to_ignore=["id", "timestamp"],
check_keys_only=["status"],
case_sensitive=False,
ignore_order=True,
numeric_tolerance=0.1
)
result = compare_jsons_with_config(json1, json2, config)
print(f"Equal: {result.is_equal}")
print(f"Differences: {len(result.differences)}")
print(f"Execution time: {result.execution_time:.4f}s")
```
### Custom Validation
```python
# Custom validation rules
custom_validations = {
"email": {"type": "endswith", "expected": "@example.com"},
"phone": {"type": "regex", "expected": r"\d{3}-\d{3}-\d{4}"},
"score": {"type": "range", "min": 0, "max": 100}
}
result = compare_jsons(json1, json2, custom_validations=custom_validations)
```
### Schema Validation
```python
from json_compare_pro import JSONSchemaValidator, create_user_schema
# Create and use schema
schema = create_user_schema()
validator = JSONSchemaValidator(schema)
validation_result = validator.validate(json_data)
if validation_result.is_valid:
print("β
Data is valid!")
else:
print(f"β Validation failed: {len(validation_result.errors)} errors")
```
### JSONPath Extraction
```python
from json_compare_pro import JSONPathExtractor
# Extract values using JSONPath
extractor = JSONPathExtractor()
result = extractor.find(json_data, "$.users[*].email")
print(f"Found {result.count} email addresses:")
for value, path in zip(result.values, result.paths):
print(f" {path}: {value}")
```
### Detailed Diff Report
```python
from json_compare_pro import JSONDiffReporter, DiffFormatter
# Generate detailed diff
reporter = JSONDiffReporter()
diff_report = reporter.generate_diff(json1, json2)
# Format as markdown
markdown_diff = DiffFormatter.to_markdown(diff_report)
print(markdown_diff)
```
## π₯οΈ Command Line Interface
### Basic Comparison
```bash
# Compare two JSON files
json-compare file1.json file2.json
# With options
json-compare file1.json file2.json \
--ignore-keys id timestamp \
--check-keys-only status \
--case-sensitive false \
--output-format markdown \
--output-file diff_report.md
```
### Generate Diff Report
```bash
# Generate detailed diff
json-compare diff file1.json file2.json \
--output-format html \
--output-file diff_report.html
```
### Extract with JSONPath
```bash
# Extract values using JSONPath
json-compare extract data.json "$.users[*].email" \
--output-format json
```
### Schema Validation
```bash
# Validate against schema
json-compare validate data.json schema.json
# Generate schema
json-compare generate-schema --type user --output-file user_schema.json
```
## π Advanced Examples
### API Testing Workflow
```python
import requests
from json_compare_pro import compare_jsons_with_config, JSONCompareConfig
# Test API response
def test_api_response():
# Expected response structure
expected = {
"status": "success",
"data": {
"users": [
{"id": "1", "name": "John", "email": "john@example.com"}
]
}
}
# Actual API response
response = requests.get("https://api.example.com/users")
actual = response.json()
# Compare with configuration
config = JSONCompareConfig(
keys_to_ignore=["data.users[0].id"], # Ignore dynamic ID
custom_validations={
"data.users[*].email": {"type": "endswith", "expected": "@example.com"}
},
ignore_order=True # Array order doesn't matter
)
result = compare_jsons_with_config(expected, actual, config)
if result.is_equal:
print("β
API response matches expected structure")
else:
print("β API response differs:")
for diff in result.differences:
print(f" - {diff['message']}")
return result.is_equal
```
### Data Migration Validation
```python
from json_compare_pro import JSONPathExtractor, compare_jsons
def validate_migration(old_data, new_data):
# Extract specific fields for comparison
extractor = JSONPathExtractor()
# Compare user data
old_users = extractor.find(old_data, "$.users[*]")
new_users = extractor.find(new_data, "$.users[*]")
# Validate each user
for old_user, new_user in zip(old_users.values, new_users.values):
result = compare_jsons(
old_user, new_user,
keys_to_ignore=["id", "created_at"], # These change during migration
custom_validations={
"email": {"type": "contains", "expected": "@"},
"status": {"type": "equals", "expected": "active"}
}
)
if not result:
print(f"β User migration validation failed")
return False
print("β
All users migrated successfully")
return True
```
### Configuration Management
```python
from json_compare_pro import JSONCompareConfig, ComparisonMode
# Different comparison modes for different scenarios
configs = {
"strict": JSONCompareConfig(
comparison_mode=ComparisonMode.STRICT,
case_sensitive=True,
ignore_order=False
),
"lenient": JSONCompareConfig(
comparison_mode=ComparisonMode.LENIENT,
case_sensitive=False,
ignore_order=True,
numeric_tolerance=0.1
),
"tolerance": JSONCompareConfig(
comparison_mode=ComparisonMode.TOLERANCE,
numeric_tolerance=0.01,
ignore_whitespace=True
)
}
# Use appropriate config based on context
def compare_with_context(json1, json2, context="strict"):
config = configs[context]
return compare_jsons_with_config(json1, json2, config)
```
## π§ͺ Testing
### Run Tests
```bash
# Install development dependencies
pip install -e ".[dev]"
# Run all tests
pytest
# Run with coverage
pytest --cov=json_compare_pro --cov-report=html
# Run specific test categories
pytest -m "not slow"
pytest tests/test_core.py::TestBasicComparison
```
### Test Examples
```python
import pytest
from json_compare_pro import compare_jsons
class TestMyData:
def test_user_data_consistency(self):
"""Test that user data maintains consistency across operations."""
original = {"name": "John", "age": 30, "email": "john@example.com"}
processed = {"name": "John", "age": 30, "email": "john@example.com"}
assert compare_jsons(original, processed)
def test_api_response_structure(self):
"""Test API response structure validation."""
expected = {"status": "success", "data": {"users": []}}
actual = {"status": "success", "data": {"users": []}}
# Ignore dynamic fields
result = compare_jsons(
expected, actual,
keys_to_ignore=["data.users[*].id", "data.users[*].created_at"]
)
assert result
```
## π Documentation
- **[Full Documentation](https://json-compare-pro.readthedocs.io)** - Comprehensive API reference and guides
- **[Examples Gallery](https://json-compare-pro.readthedocs.io/en/latest/examples.html)** - Real-world usage examples
- **[Migration Guide](https://json-compare-pro.readthedocs.io/en/latest/migration.html)** - Upgrading from other libraries
## π€ Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
### Development Setup
```bash
# Clone the repository
git clone https://github.com/harshitgoel09/json-compare-pro.git
cd json-compare-pro
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -e ".[dev]"
# Run pre-commit hooks
pre-commit install
# Run tests
pytest
```
### Code Quality
```bash
# Format code
black src tests
isort src tests
# Lint code
flake8 src tests
mypy src
# Run all quality checks
tox
```
## π License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## π Acknowledgments
- Inspired by the need for robust JSON comparison in API testing
- Built with modern Python best practices
- Thanks to the open-source community for excellent dependencies
## π Support
- **Issues**: [GitHub Issues](https://github.com/harshitgoel09/json-compare-pro/issues)
- **Discussions**: [GitHub Discussions](https://github.com/harshitgoel09/json-compare-pro/discussions)
- **Documentation**: [Read the Docs](https://json-compare-pro.readthedocs.io)
---
**Made with β€οΈ by Harshit Goel for the Python community**
Raw data
{
"_id": null,
"home_page": null,
"name": "json-compare-pro",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Harshit Goel <harshitgoel96@gmail.com>",
"keywords": "comparison, diff, json, schema, testing, validation",
"author": null,
"author_email": "Harshit Goel <harshitgoel96@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/26/a8/be7acf64ae226de197271936b936e93f027a370bb5545d01c9ba3c15962b/json_compare_pro-0.1.0.tar.gz",
"platform": null,
"description": "# JSON Compare Pro \ud83d\ude80\n\n[](https://badge.fury.io/py/json-compare-pro)\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[](https://github.com/psf/black)\n[](https://github.com/harshitgoel09/json-compare-pro/actions)\n\n**Advanced JSON comparison library with flexible validation rules, schema support, and comprehensive testing capabilities.**\n\nJSON Compare Pro is a powerful, production-ready Python library designed for comparing JSON objects with advanced features like custom validation rules, schema validation, JSONPath support, tolerance checks, and detailed diff reporting. Perfect for API testing, data validation, and automated testing workflows.\n\n## \u2728 Features\n\n### \ud83d\udd0d **Advanced Comparison**\n- **Flexible key ignoring** - Exclude specific keys from comparison\n- **Key existence validation** - Check for key presence without comparing values\n- **Custom validation rules** - Regex, patterns, ranges, and more\n- **Numeric tolerance** - Handle floating-point precision issues\n- **Case sensitivity options** - Configurable string comparison\n- **Whitespace handling** - Ignore or preserve whitespace in strings\n- **Array order control** - Compare arrays with or without order consideration\n\n### \ud83d\udee1\ufe0f **Schema Validation**\n- **JSON Schema support** - Validate against JSON Schema specifications\n- **Schema builder** - Programmatically create schemas\n- **Pre-built schemas** - Common patterns for users, products, API responses\n- **Detailed validation reports** - Comprehensive error reporting\n\n### \ud83d\uddfa\ufe0f **JSONPath Support**\n- **Advanced querying** - Extract and compare specific JSON paths\n- **Path filtering** - Focus comparison on specific data subsets\n- **Query builder** - Fluent API for building JSONPath expressions\n- **Common patterns** - Pre-built queries for typical use cases\n\n### \ud83d\udcca **Detailed Diff Reporting**\n- **Multiple output formats** - JSON, text, markdown, HTML, rich terminal\n- **Categorized differences** - Added, removed, changed, type changes\n- **Path-based reporting** - Exact location of differences\n- **Summary statistics** - Quick overview of comparison results\n\n### \ud83c\udfaf **Production Ready**\n- **Comprehensive testing** - 100% test coverage with edge cases\n- **Type hints** - Full type annotation support\n- **Error handling** - Robust exception handling with detailed messages\n- **Performance optimized** - Efficient algorithms for large JSON objects\n- **CLI interface** - Command-line tool for quick comparisons\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install json-compare-pro\n```\n\n### Basic Usage\n\n```python\nfrom json_compare_pro import compare_jsons\n\n# Simple comparison\njson1 = {\"name\": \"John\", \"age\": 30}\njson2 = {\"name\": \"John\", \"age\": 30}\n\nresult = compare_jsons(json1, json2)\nprint(result) # True\n```\n\n### Advanced Configuration\n\n```python\nfrom json_compare_pro import compare_jsons_with_config, JSONCompareConfig\n\n# Advanced comparison with configuration\nconfig = JSONCompareConfig(\n keys_to_ignore=[\"id\", \"timestamp\"],\n check_keys_only=[\"status\"],\n case_sensitive=False,\n ignore_order=True,\n numeric_tolerance=0.1\n)\n\nresult = compare_jsons_with_config(json1, json2, config)\nprint(f\"Equal: {result.is_equal}\")\nprint(f\"Differences: {len(result.differences)}\")\nprint(f\"Execution time: {result.execution_time:.4f}s\")\n```\n\n### Custom Validation\n\n```python\n# Custom validation rules\ncustom_validations = {\n \"email\": {\"type\": \"endswith\", \"expected\": \"@example.com\"},\n \"phone\": {\"type\": \"regex\", \"expected\": r\"\\d{3}-\\d{3}-\\d{4}\"},\n \"score\": {\"type\": \"range\", \"min\": 0, \"max\": 100}\n}\n\nresult = compare_jsons(json1, json2, custom_validations=custom_validations)\n```\n\n### Schema Validation\n\n```python\nfrom json_compare_pro import JSONSchemaValidator, create_user_schema\n\n# Create and use schema\nschema = create_user_schema()\nvalidator = JSONSchemaValidator(schema)\n\nvalidation_result = validator.validate(json_data)\nif validation_result.is_valid:\n print(\"\u2705 Data is valid!\")\nelse:\n print(f\"\u274c Validation failed: {len(validation_result.errors)} errors\")\n```\n\n### JSONPath Extraction\n\n```python\nfrom json_compare_pro import JSONPathExtractor\n\n# Extract values using JSONPath\nextractor = JSONPathExtractor()\nresult = extractor.find(json_data, \"$.users[*].email\")\n\nprint(f\"Found {result.count} email addresses:\")\nfor value, path in zip(result.values, result.paths):\n print(f\" {path}: {value}\")\n```\n\n### Detailed Diff Report\n\n```python\nfrom json_compare_pro import JSONDiffReporter, DiffFormatter\n\n# Generate detailed diff\nreporter = JSONDiffReporter()\ndiff_report = reporter.generate_diff(json1, json2)\n\n# Format as markdown\nmarkdown_diff = DiffFormatter.to_markdown(diff_report)\nprint(markdown_diff)\n```\n\n## \ud83d\udda5\ufe0f Command Line Interface\n\n### Basic Comparison\n\n```bash\n# Compare two JSON files\njson-compare file1.json file2.json\n\n# With options\njson-compare file1.json file2.json \\\n --ignore-keys id timestamp \\\n --check-keys-only status \\\n --case-sensitive false \\\n --output-format markdown \\\n --output-file diff_report.md\n```\n\n### Generate Diff Report\n\n```bash\n# Generate detailed diff\njson-compare diff file1.json file2.json \\\n --output-format html \\\n --output-file diff_report.html\n```\n\n### Extract with JSONPath\n\n```bash\n# Extract values using JSONPath\njson-compare extract data.json \"$.users[*].email\" \\\n --output-format json\n```\n\n### Schema Validation\n\n```bash\n# Validate against schema\njson-compare validate data.json schema.json\n\n# Generate schema\njson-compare generate-schema --type user --output-file user_schema.json\n```\n\n## \ud83d\udcda Advanced Examples\n\n### API Testing Workflow\n\n```python\nimport requests\nfrom json_compare_pro import compare_jsons_with_config, JSONCompareConfig\n\n# Test API response\ndef test_api_response():\n # Expected response structure\n expected = {\n \"status\": \"success\",\n \"data\": {\n \"users\": [\n {\"id\": \"1\", \"name\": \"John\", \"email\": \"john@example.com\"}\n ]\n }\n }\n \n # Actual API response\n response = requests.get(\"https://api.example.com/users\")\n actual = response.json()\n \n # Compare with configuration\n config = JSONCompareConfig(\n keys_to_ignore=[\"data.users[0].id\"], # Ignore dynamic ID\n custom_validations={\n \"data.users[*].email\": {\"type\": \"endswith\", \"expected\": \"@example.com\"}\n },\n ignore_order=True # Array order doesn't matter\n )\n \n result = compare_jsons_with_config(expected, actual, config)\n \n if result.is_equal:\n print(\"\u2705 API response matches expected structure\")\n else:\n print(\"\u274c API response differs:\")\n for diff in result.differences:\n print(f\" - {diff['message']}\")\n \n return result.is_equal\n```\n\n### Data Migration Validation\n\n```python\nfrom json_compare_pro import JSONPathExtractor, compare_jsons\n\ndef validate_migration(old_data, new_data):\n # Extract specific fields for comparison\n extractor = JSONPathExtractor()\n \n # Compare user data\n old_users = extractor.find(old_data, \"$.users[*]\")\n new_users = extractor.find(new_data, \"$.users[*]\")\n \n # Validate each user\n for old_user, new_user in zip(old_users.values, new_users.values):\n result = compare_jsons(\n old_user, new_user,\n keys_to_ignore=[\"id\", \"created_at\"], # These change during migration\n custom_validations={\n \"email\": {\"type\": \"contains\", \"expected\": \"@\"},\n \"status\": {\"type\": \"equals\", \"expected\": \"active\"}\n }\n )\n \n if not result:\n print(f\"\u274c User migration validation failed\")\n return False\n \n print(\"\u2705 All users migrated successfully\")\n return True\n```\n\n### Configuration Management\n\n```python\nfrom json_compare_pro import JSONCompareConfig, ComparisonMode\n\n# Different comparison modes for different scenarios\nconfigs = {\n \"strict\": JSONCompareConfig(\n comparison_mode=ComparisonMode.STRICT,\n case_sensitive=True,\n ignore_order=False\n ),\n \n \"lenient\": JSONCompareConfig(\n comparison_mode=ComparisonMode.LENIENT,\n case_sensitive=False,\n ignore_order=True,\n numeric_tolerance=0.1\n ),\n \n \"tolerance\": JSONCompareConfig(\n comparison_mode=ComparisonMode.TOLERANCE,\n numeric_tolerance=0.01,\n ignore_whitespace=True\n )\n}\n\n# Use appropriate config based on context\ndef compare_with_context(json1, json2, context=\"strict\"):\n config = configs[context]\n return compare_jsons_with_config(json1, json2, config)\n```\n\n## \ud83e\uddea Testing\n\n### Run Tests\n\n```bash\n# Install development dependencies\npip install -e \".[dev]\"\n\n# Run all tests\npytest\n\n# Run with coverage\npytest --cov=json_compare_pro --cov-report=html\n\n# Run specific test categories\npytest -m \"not slow\"\npytest tests/test_core.py::TestBasicComparison\n```\n\n### Test Examples\n\n```python\nimport pytest\nfrom json_compare_pro import compare_jsons\n\nclass TestMyData:\n def test_user_data_consistency(self):\n \"\"\"Test that user data maintains consistency across operations.\"\"\"\n original = {\"name\": \"John\", \"age\": 30, \"email\": \"john@example.com\"}\n processed = {\"name\": \"John\", \"age\": 30, \"email\": \"john@example.com\"}\n \n assert compare_jsons(original, processed)\n \n def test_api_response_structure(self):\n \"\"\"Test API response structure validation.\"\"\"\n expected = {\"status\": \"success\", \"data\": {\"users\": []}}\n actual = {\"status\": \"success\", \"data\": {\"users\": []}}\n \n # Ignore dynamic fields\n result = compare_jsons(\n expected, actual,\n keys_to_ignore=[\"data.users[*].id\", \"data.users[*].created_at\"]\n )\n \n assert result\n```\n\n## \ud83d\udcd6 Documentation\n\n- **[Full Documentation](https://json-compare-pro.readthedocs.io)** - Comprehensive API reference and guides\n- **[Examples Gallery](https://json-compare-pro.readthedocs.io/en/latest/examples.html)** - Real-world usage examples\n- **[Migration Guide](https://json-compare-pro.readthedocs.io/en/latest/migration.html)** - Upgrading from other libraries\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n### Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/harshitgoel09/json-compare-pro.git\ncd json-compare-pro\n\n# Create virtual environment\npython -m venv venv\nsource venv/bin/activate # On Windows: venv\\Scripts\\activate\n\n# Install dependencies\npip install -e \".[dev]\"\n\n# Run pre-commit hooks\npre-commit install\n\n# Run tests\npytest\n```\n\n### Code Quality\n\n```bash\n# Format code\nblack src tests\nisort src tests\n\n# Lint code\nflake8 src tests\nmypy src\n\n# Run all quality checks\ntox\n```\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- Inspired by the need for robust JSON comparison in API testing\n- Built with modern Python best practices\n- Thanks to the open-source community for excellent dependencies\n\n## \ud83d\udcde Support\n\n- **Issues**: [GitHub Issues](https://github.com/harshitgoel09/json-compare-pro/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/harshitgoel09/json-compare-pro/discussions)\n- **Documentation**: [Read the Docs](https://json-compare-pro.readthedocs.io)\n\n---\n\n**Made with \u2764\ufe0f by Harshit Goel for the Python community** ",
"bugtrack_url": null,
"license": "MIT",
"summary": "Advanced JSON comparison library with flexible validation rules, schema support, and comprehensive testing capabilities",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/harshitgoel09/json-compare-pro/issues",
"Changelog": "https://github.com/harshitgoel09/json-compare-pro/blob/main/CHANGELOG.md",
"Documentation": "https://json-compare-pro.readthedocs.io",
"Homepage": "https://github.com/harshitgoel09/json-compare-pro",
"Repository": "https://github.com/harshitgoel09/json-compare-pro.git"
},
"split_keywords": [
"comparison",
" diff",
" json",
" schema",
" testing",
" validation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "827fc9e2ddddff51fb0acc67cf116fc6d98b5b5e39cb589910facd624dd7e229",
"md5": "8065065b83890a8bc2a48af5b1df919d",
"sha256": "74fd7086355be0b0e003a906d24d02411289575b9bd54a15ad80eedda23e4f24"
},
"downloads": -1,
"filename": "json_compare_pro-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8065065b83890a8bc2a48af5b1df919d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 27263,
"upload_time": "2025-08-23T18:05:37",
"upload_time_iso_8601": "2025-08-23T18:05:37.900343Z",
"url": "https://files.pythonhosted.org/packages/82/7f/c9e2ddddff51fb0acc67cf116fc6d98b5b5e39cb589910facd624dd7e229/json_compare_pro-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "26a8be7acf64ae226de197271936b936e93f027a370bb5545d01c9ba3c15962b",
"md5": "05dda43dc3e934fddbdd53b66f6d9c20",
"sha256": "e5d03fcedce8fe422f7e06484f1d6f599317ec8b6d77a629370c371c434d1cf5"
},
"downloads": -1,
"filename": "json_compare_pro-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "05dda43dc3e934fddbdd53b66f6d9c20",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 37229,
"upload_time": "2025-08-23T18:05:39",
"upload_time_iso_8601": "2025-08-23T18:05:39.989081Z",
"url": "https://files.pythonhosted.org/packages/26/a8/be7acf64ae226de197271936b936e93f027a370bb5545d01c9ba3c15962b/json_compare_pro-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-23 18:05:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "harshitgoel09",
"github_project": "json-compare-pro",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "json-compare-pro"
}