Metadata-Version: 2.1
Name: ip-object-browser
Version: 0.3.0
Summary: Browse big nested data structures in ipython with keyboard
Home-page: https://github.com/roee30/ip_object_browser
License: MIT
Keywords: urwid,json,tui,ipython
Author: Roee Nizan
Author-email: roeen30@gmail.com
Requires-Python: >=3.7,<4.0
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT 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
Requires-Dist: boltons (>=20.2.1,<21.0.0)
Requires-Dist: ipython (>=7.21.0,<8.0.0)
Requires-Dist: urwid (>=2.1.2,<3.0.0)
Project-URL: Repository, https://github.com/roee30/ip_object_browser
Description-Content-Type: text/markdown

# ip_object_browser
Using IPython? Did a REST endpoint return 5 MB of JSON data? Can't bother to save the response to a file?
Browse it with your keyboard straight from the console!

## Usage

In IPython, press `<C-T>` to browse the last output object (`_`).

Use vi-like `hjkl` or arrow keys to navigate. 

Press `/` to begin a textual search.
Confirm with enter.
Jump to next occurrence with `n`.

Press `<C-C>` or `q` to exit.

### Usage from code
```python
from ip_object_browser import view
view({})
```

## Installation
```bash
pip install ip-object-browser
cat <<EOF >>~/.ipython/profile_default/ipython_config.py
c = get_config()
c.InteractiveShellApp.exec_lines.append(
    "try:\n    %load_ext ip_object_browser\nexcept ImportError: pass"
)
EOF
```

## Implementation
Based on the [urwid](https://github.com/urwid/urwid) library,
adapted from the [treesample example](https://github.com/urwid/urwid/blob/master/examples/treesample.py).

## TODO
- [x] textual search functionality
    - [ ] fix jump to previous (`N`)
- [x] status line with current path in object
- [ ] path-based navigation
- [x] output current path on exit

