framedisplay


Nameframedisplay JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://github.com/nsarang/framedisplay
SummaryPost-mortem debugging tools for Python
upload_time2025-07-20 20:02:12
maintainerNone
docs_urlNone
authorNima Sarang
requires_python>=3.7
licenseNone
keywords debugging post-mortem traceback exception development
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FrameDisplay: Beautiful DataFrame Display

<div align="center">

[![PyPI](https://img.shields.io/pypi/v/framedisplay?logoSize=auto)](https://pypi.org/project/framedisplay/)
[![Python Versions](https://img.shields.io/pypi/pyversions/framedisplay?logoSize=auto)](https://pypi.org/project/framedisplay/)
![License](https://img.shields.io/pypi/l/framedisplay?logo=auto)
[![Codecov](https://codecov.io/gh/nsarang/framedisplay/branch/main/graph/badge.svg)](https://codecov.io/gh/nsarang/framedisplay)

<br/>
<img alt="DataFrame" src="https://raw.githubusercontent.com/nsarang/framedisplay/refs/heads/main/assets/dataframe.png" width="500px" style="max-width: 100%;">

<br/>
<br/>
</div>

FrameDisplay is a lightweight python package that enhances the display of Pandas DataFrames in Jupyter Notebooks. It provides interactive and visually appealing HTML tables with resizable columns, sticky headers and index, and type and null value handling.

Live demo: [CodePen](https://codepen.io/B-L-A-Z-E/pen/empJPKV)

## Installation

```bash
pip install framedisplay
```

## Features

- **Resizable Columns**: Interactive column resizing
- **No Size Limit**: Display DataFrames of any size (but be aware of performance)
- **Column type icons**: Icons indicating column types (e.g., numeric, string)
- **Sticky Headers**: Headers stay visible during scrolling
- **Sticky Index**: Index column remains visible while scrolling
- **Null Handling**: Null values are elegantly styled

**To Do:**
- Virtual scrolling for large DataFrames
- Sortable columns

## Usage

```python
import pandas as pd
import numpy as np
import framedisplay as fd

df = pd.DataFrame({
    'Name': ['Alice', 'Bob', np.nan],
    'Age': [25, np.nan, 35],
    'Score': [95.5, 87.2, np.nan]
})

fd.frame_display(df)
```

You can also configure the JS script in Jupyter Notebooks before displaying the DataFrame:

```python
from IPython.display import display, HTML

display(HTML("""
<script>
window.FrameDisplayConfig = {
    minColumnWidth: 30,
    resizerWidth: 8,
    resizerHoverColor: 'rgba(0,0,0,0.1)',
    showHoverEffect: true,
    autoInit: true,
    allowReInit: true
};
</script>
"""))
```

## License

MIT

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/nsarang/framedisplay",
    "name": "framedisplay",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "debugging, post-mortem, traceback, exception, development",
    "author": "Nima Sarang",
    "author_email": "contact@nimasarang.com",
    "download_url": "https://files.pythonhosted.org/packages/24/04/de741982a7cd86c1850e92abe6901476183de55ab0982109b64fae9845a7/framedisplay-1.1.0.tar.gz",
    "platform": null,
    "description": "# FrameDisplay: Beautiful DataFrame Display\n\n<div align=\"center\">\n\n[![PyPI](https://img.shields.io/pypi/v/framedisplay?logoSize=auto)](https://pypi.org/project/framedisplay/)\n[![Python Versions](https://img.shields.io/pypi/pyversions/framedisplay?logoSize=auto)](https://pypi.org/project/framedisplay/)\n![License](https://img.shields.io/pypi/l/framedisplay?logo=auto)\n[![Codecov](https://codecov.io/gh/nsarang/framedisplay/branch/main/graph/badge.svg)](https://codecov.io/gh/nsarang/framedisplay)\n\n<br/>\n<img alt=\"DataFrame\" src=\"https://raw.githubusercontent.com/nsarang/framedisplay/refs/heads/main/assets/dataframe.png\" width=\"500px\" style=\"max-width: 100%;\">\n\n<br/>\n<br/>\n</div>\n\nFrameDisplay is a lightweight python package that enhances the display of Pandas DataFrames in Jupyter Notebooks. It provides interactive and visually appealing HTML tables with resizable columns, sticky headers and index, and type and null value handling.\n\nLive demo: [CodePen](https://codepen.io/B-L-A-Z-E/pen/empJPKV)\n\n## Installation\n\n```bash\npip install framedisplay\n```\n\n## Features\n\n- **Resizable Columns**: Interactive column resizing\n- **No Size Limit**: Display DataFrames of any size (but be aware of performance)\n- **Column type icons**: Icons indicating column types (e.g., numeric, string)\n- **Sticky Headers**: Headers stay visible during scrolling\n- **Sticky Index**: Index column remains visible while scrolling\n- **Null Handling**: Null values are elegantly styled\n\n**To Do:**\n- Virtual scrolling for large DataFrames\n- Sortable columns\n\n## Usage\n\n```python\nimport pandas as pd\nimport numpy as np\nimport framedisplay as fd\n\ndf = pd.DataFrame({\n    'Name': ['Alice', 'Bob', np.nan],\n    'Age': [25, np.nan, 35],\n    'Score': [95.5, 87.2, np.nan]\n})\n\nfd.frame_display(df)\n```\n\nYou can also configure the JS script in Jupyter Notebooks before displaying the DataFrame:\n\n```python\nfrom IPython.display import display, HTML\n\ndisplay(HTML(\"\"\"\n<script>\nwindow.FrameDisplayConfig = {\n    minColumnWidth: 30,\n    resizerWidth: 8,\n    resizerHoverColor: 'rgba(0,0,0,0.1)',\n    showHoverEffect: true,\n    autoInit: true,\n    allowReInit: true\n};\n</script>\n\"\"\"))\n```\n\n## License\n\nMIT\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Post-mortem debugging tools for Python",
    "version": "1.1.0",
    "project_urls": {
        "Documentation": "https://github.com/nsarang/framedisplay#readme",
        "Homepage": "https://github.com/nsarang/framedisplay",
        "Issues": "https://github.com/nsarang/framedisplay/issues"
    },
    "split_keywords": [
        "debugging",
        " post-mortem",
        " traceback",
        " exception",
        " development"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "98406f19ea335f1bfc5d1be1c33e66043e6d2a043f49b96c64e243865ac5a2bc",
                "md5": "9b6b26bbbb7830b909a4c06d01a0c3f7",
                "sha256": "5c4bf6db0ee11e7b4093edfcb3acd65b9d3a334915c21583c3873837a4c4a1be"
            },
            "downloads": -1,
            "filename": "framedisplay-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9b6b26bbbb7830b909a4c06d01a0c3f7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 4999,
            "upload_time": "2025-07-20T20:02:11",
            "upload_time_iso_8601": "2025-07-20T20:02:11.297502Z",
            "url": "https://files.pythonhosted.org/packages/98/40/6f19ea335f1bfc5d1be1c33e66043e6d2a043f49b96c64e243865ac5a2bc/framedisplay-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2404de741982a7cd86c1850e92abe6901476183de55ab0982109b64fae9845a7",
                "md5": "e6ba0c06b2e23caca8dcb43e0eca0d4d",
                "sha256": "57fcef7891505b41d2864ec2a866a9d4884471a142129f58cbf416c4cc4fcacc"
            },
            "downloads": -1,
            "filename": "framedisplay-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e6ba0c06b2e23caca8dcb43e0eca0d4d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 7584,
            "upload_time": "2025-07-20T20:02:12",
            "upload_time_iso_8601": "2025-07-20T20:02:12.623131Z",
            "url": "https://files.pythonhosted.org/packages/24/04/de741982a7cd86c1850e92abe6901476183de55ab0982109b64fae9845a7/framedisplay-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-20 20:02:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nsarang",
    "github_project": "framedisplay",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "framedisplay"
}
        
Elapsed time: 0.78252s