Metadata-Version: 2.4
Name: json-scout
Version: 0.1.0
Summary: Scout JSON structure and navigate data safely with intuitive exploration tools.
Author-email: Chathura Jayalath <chathura@example.com>
Maintainer-email: Chathura Jayalath <chathura@example.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/deamonpog/json-scout
Project-URL: Documentation, https://deamonpog.github.io/json-scout/
Project-URL: Repository, https://github.com/deamonpog/json-scout
Project-URL: Bug Tracker, https://github.com/deamonpog/json-scout/issues
Project-URL: Changelog, https://github.com/deamonpog/json-scout/releases
Keywords: json,schema,structure,introspection,navigation,analysis,exploration,data-science,api
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Topic :: Text Processing
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Typing :: Typed
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: isort; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.4.0; extra == "docs"
Requires-Dist: mkdocs-material>=8.0.0; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.18.0; extra == "docs"
Dynamic: license-file

# JSON Scout

[![Documentation](https://img.shields.io/badge/docs-live-brightgreen)](https://deamonpog.github.io/json-scout/)
[![Python](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](./LICENSE)

**Scout JSON structure and navigate data safely with intuitive exploration tools.**

JSON Scout provides a robust suite of tools designed for developers and data professionals who need to introspect, analyze, and safely navigate complex JSON data structures. Whether you're working with APIs, configuration files, or large datasets, JSON Scout offers both low-level utilities and high-level abstractions to make JSON exploration intuitive and error-free.

## ✨ Key Features

- **🔍 Structural Analysis**: Automatic schema discovery and hierarchy inspection
- **🛡️ Safe Navigation**: Exception-free access with monadic-style `Maybe` wrapper
- **🔧 Comprehensive Utilities**: File operations, XML integration, and unified interface
- **📊 Enterprise Ready**: Type safety, performance optimization, and comprehensive documentation

## 🚀 Quick Start

### Installation

```bash
pip install json-scout
```

### Basic Usage

```python
import jsonscout as js

# Sample data
data = {
    "users": [
        {"name": "Alice", "age": 30, "email": "alice@example.com"},
        {"name": "Bob", "age": 25},
        {"name": "Charlie", "age": 35, "email": "charlie@example.com"}
    ],
    "metadata": {"version": "1.0", "created": "2024-01-01"}
}

# Safe navigation with automatic error handling
explorer = js.Xplore(data)
user_name = explorer['users'][0]['name'].value()  # Returns: "Alice"
missing_field = explorer['users'][1]['email'].value()  # Returns: None (no exception)

# Structural analysis
explore = js.Explore(data['users'])
field_frequency = explore.field_counts()
print(field_frequency)  # {'name': 3, 'age': 3, 'email': 2}

# File operations
json_files = js.get_json_file_paths('/path/to/data', '*.json')
for file_path in json_files:
    data = js.read_json_file(file_path)
    explorer = js.Xplore(data)
    # Process safely...
```

## 📚 Documentation

- **[Complete Documentation](https://deamonpog.github.io/json-scout/)**: Comprehensive guides and examples
- **[API Reference](https://deamonpog.github.io/json-scout/api/)**: Detailed API documentation with examples

## 🏗️ Core Components

- **`Explore`**: Lightweight structural analysis and schema discovery
- **`Maybe`**: Monadic wrapper for safe, chainable data access
- **`SimpleXML`**: Efficient XML-to-dictionary conversion utilities
- **`Xplore`**: Unified facade combining all functionality

## 🎯 Use Cases

- **API Response Analysis**: Schema evolution tracking and data validation
- **Configuration Management**: Safe navigation of complex configuration hierarchies
- **Data Pipeline Processing**: ETL operations with robust error handling
- **Research and Analysis**: Dataset exploration and statistical analysis

## 🤝 Contributing

We welcome contributions! Please see our [contributing guidelines](CONTRIBUTING.md) for details on how to submit bug reports, feature requests, and code contributions.

## 📄 License

JSON Scout is licensed under the [Apache License 2.0](./LICENSE).  
© 2025 Chathura Jayalath. See the [NOTICE](./NOTICE) file for more details.
