semvec/pypi-packages huggingface dataset:
check-json-format 1.0.1
Validate JSON files for format correctness and duplicate keys.
Requires Python: >=3.6
Keywords: json, validation, lint, format, duplicate-keys

# check_json_format

A Python tool to validate JSON files for format correctness and duplicate keys.

**Repository:** [https://github.com/pandiyarajk/check_json_format](https://github.com/pandiyarajk/check_json_format)  
**PyPI:** [check-json-format](https://pypi.org/project/check-json-format/)

## Author

**Pandiyaraj Karuppasamy**  
Email: [pandiyarajk@live.com](mailto:pandiyarajk@live.com)

## Install

From PyPI (recommended):

```bash
pip install check-json-format
```

From source:

```bash
git clone https://github.com/pandiyarajk/check_json_format.git
cd check_json_format
pip install .
```

## Requirements

- Python 3.6+
- No external dependencies (uses standard library only)

## Usage

After installing from PyPI:

```bash
check-json-format <json_file_path>
```

Or run as a module:

```bash
python -m check_json_format <json_file_path>
```

When running from a source checkout:

```bash
python check_json_format.py <json_file_path>
```

### Example

```bash
check-json-format config.json
```

## What it does

- **Format validation:** Checks if the file is valid JSON (syntax, brackets, commas, etc.).
- **Duplicate keys:** Reports duplicate keys at the same object level (when detectable).
- **File handling:** Handles missing files, permission errors, and encoding issues.
- **Exit behavior:** Prints `SUCCESS: Valid JSON format` and optional duplicate-key messages; exits with non-zero on validation failure.

## Output

- **Valid JSON:** `SUCCESS: Valid JSON format` and `[SUCCESS] No duplicate keys found`.
- **Invalid JSON:** Error details from the JSON parser.
- **File issues:** Clear messages for file not found, permission denied, or encoding errors.

## Publishing to PyPI

Build and upload (requires `build` and `twine`):

```bash
pip install build twine
python -m build
twine upload dist/*
```

## License

See [LICENSE](LICENSE) in this repository.
weegit 0.0.21
Weegit - electrophysiology marking application
Requires Python: >=3.9
Keywords: Weegit, EEG, electrophysiology, signal

# Weegit

[![PyPI](https://img.shields.io/pypi/v/weegit?color=blue)](https://pypi.org/project/weegit/)
[![Downloads](https://static.pepy.tech/badge/weegit)](https://pepy.tech/project/weegit)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/weegit)](https://pypi.org/project/weegit/)


# Introduction

**Weegit** is a cross-platform application for electrophysiology marking. Works with Windows/Mac/Linux.

It uses specific filesystem architecture that is maintained by the application.
```
$EXPERIMENT_weegit
├── header.json
├── lfp
│   ├── $CH_IDX.lfp
├── sessions
│   ├── $SESSION_NAME.json
```


# Weegit GUI

Run *weegit* through terminal to start GUI.

```bash
$ weegit
```


# Developers
**Weegit** has a convenient interface to work with its data.

### Convert your experiment data to weegit format
```python
from pathlib import Path
from weegit.converter.weegit_io import WeegitIO

PATH_TO_EXP_PARENT_DIR = Path("/path/to/parent/dir/")
EXP_NAME = "20252222"
EXP_DIR = PATH_TO_EXP_PARENT_DIR / EXP_NAME
OUT_WEEGIT_FOLDER = PATH_TO_EXP_PARENT_DIR / (EXP_NAME + "_weegit")
for progress in WeegitIO.convert_from_source_to_weegit(EXP_DIR):
    print(f"\rProgress: {progress}%", end='', flush=True)

print(list(OUT_WEEGIT_FOLDER.glob("*")))
```

***Note: This requires separate $EXPERIMENT folder. Current supported formats are: old Weegit, rhs (XDAQ)***


### Work with the weegit data
```python
from pathlib import Path
from weegit.core.weegit_session import WeegitSessionManager, UserSession

# Init session
session = WeegitSessionManager()
session.init_from_folder(Path(OUT_WEEGIT_FOLDER))

# Work with data
print(session.experiment_data.header)
sweep_idx, start_point, end_point = 0, 0, 10_000
for ch_idx in range(session.experiment_data.header.number_of_channels):
    channel_data = session.experiment_data.data_memmaps[ch_idx][sweep_idx][start_point:end_point]
    print(f"Channel {session.experiment_data.header.channel_info.name[ch_idx]} max voltage val: ",
          max(session.experiment_data.from_int16_to_voltage_val(channel_data, ch_idx)))

# Work with GUI session
session_filename = UserSession.session_name_to_filename("your_session")
session.switch_sessions(session_filename)
print(session.current_user_session.gui_setup)

# Work with events
for event in session.user_session.events_table:
    # skip events in period
    if "PERIOD_NAME" in event.periods:
        continue

# Work with spikes
for sweep_idx, spikes in session.user_session.cached_spikes.items():
    print("Sweep", sweep_idx, "spikes:", spikes)
```


# License

The code and data files in this distribution are licensed under the terms of the GNU General Public License version 3 
as published by the Free Software Foundation. See https://www.gnu.org/licenses/ for a copy of this license.