Metadata-Version: 2.4
Name: dietnb
Version: 0.1.2
Summary: Save matplotlib figures as external files and link them, keeping notebooks tiny.
Author: JinLover
License: MIT
Project-URL: Homepage, https://github.com/JinLover/dietnb
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ipython>=8
Requires-Dist: matplotlib>=3.5
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-mock>=3.10; extra == "dev"
Dynamic: license-file

# `dietnb` (v0.1.2)

[![PyPI version](https://badge.fury.io/py/dietnb.svg)](https://badge.fury.io/py/dietnb)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

`dietnb` addresses the issue of large `.ipynb` file sizes caused by `matplotlib` figures being embedded as Base64 data. By saving plots as external PNG files and embedding only image links, `dietnb` keeps your notebooks lightweight and improves manageability.

---

## Key Features

*   **Minimized Notebook Size:** Significantly reduces `.ipynb` file bulk by storing `matplotlib` figures as external PNG files.
*   **Automatic Image Folder Management:** Creates and manages image storage directories (e.g., `[NotebookFileName]_dietnb_imgs`) relative to the notebook's location. (Applies when path detection is successful, e.g., in VS Code; defaults to `dietnb_imgs` in the current working directory if detection fails.)
*   **Automatic Image Updates:** When a notebook cell is re-executed, image files generated from its previous run are automatically deleted, ensuring only the latest output is retained.
*   **Image Cleanup Function:** The `dietnb.clean_unused()` function allows easy removal of unreferenced image files from the current session.
*   **Simple Auto-Activation:** The `dietnb install` command configures `dietnb` to activate automatically when IPython and Jupyter environments start.

---

## Installation and Activation

**1. Install the `dietnb` package**

Execute the following command in your terminal:
```bash
pip install dietnb
```

**2. Choose an Activation Method**

   **A. Automatic Activation (Recommended)**
   Run the following command in your terminal once:
   ```bash
   dietnb install
   ```
   After restarting your Jupyter kernel, `dietnb` will be activated automatically. Images will be saved to a folder based on the notebook's path or to the default `dietnb_imgs` directory.

   **B. Manual Activation (Per Notebook)**
   If you prefer to use `dietnb` only for specific notebooks or do not want automatic activation, add the following code at the top of your notebook to activate it manually:
   ```python
   import dietnb
   dietnb.activate()
   ```

---

## Example Usage

With `dietnb` active, use your `matplotlib` code as usual.

```python
import matplotlib.pyplot as plt
import numpy as np

# Create a plot
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x), label='sin(x)')
plt.plot(x, np.cos(x), label='cos(x)')
plt.title("Trigonometric Functions")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.legend()

plt.show() # On show(), the image is saved to a file, and a link is displayed in the notebook.
```
Generated images can be found in the `[NotebookFileName]_dietnb_imgs` folder alongside your notebook, or in the `dietnb_imgs` folder.

---

## Cleaning Unused Image Files

To remove image files that are no longer in use, execute the following function in a notebook cell:

```python
import dietnb
dietnb.clean_unused()
```

---

## License

MIT License. See [LICENSE](LICENSE) for details.

---
[한국어 README (Korean README)](README_ko.md) 
