jupyterlab-parquet-viewer-extension


Namejupyterlab-parquet-viewer-extension JSON
Version 1.0.12 PyPI version JSON
download
home_pageNone
SummaryJupyterlab extension to allow simple browsing of the parquet files with basic data filtering capabilities
upload_time2025-11-02 11:23:45
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseBSD 3-Clause License Copyright (c) 2025, Stellars Henson All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords jupyter jupyterlab jupyterlab-extension
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # jupyterlab_parquet_viewer_extension

![GitHub Actions](https://github.com/stellarshenson/jupyterlab_parquet_viewer_extension/actions/workflows/build.yml/badge.svg)
[![npm version](https://badge.fury.io/js/jupyterlab_parquet_viewer_extension.svg)](https://www.npmjs.com/package/jupyterlab_parquet_viewer_extension)
[![PyPI version](https://badge.fury.io/py/jupyterlab-parquet-viewer-extension.svg)](https://pypi.org/project/jupyterlab-parquet-viewer-extension/)
[![Total PyPI downloads](https://static.pepy.tech/badge/jupyterlab-parquet-viewer-extension)](https://pepy.tech/project/jupyterlab-parquet-viewer-extension)
![JL4 Ready](https://img.shields.io/badge/Jupyterlab%204-ready-blue)

View and browse Parquet files directly in JupyterLab. Double-click any .parquet file to open it in a simple, spreadsheet-like table view - no code required. Navigate through your data, inspect values, and explore the structure of your columnar data files.

![Parquet Viewer](.resources/screenshot.png)

## Features

**Core viewing and navigation:**
- Simple table display showing your Parquet data in familiar spreadsheet format
- Column headers with field names and simplified datatype indicators
- Progressive loading - starts with 500 rows, automatically loads more as you scroll
- Automatic column width optimization for readability
- File statistics (column count, row count, file size) at a glance
- Handles large files efficiently with server-side processing

**Advanced filtering and sorting:**
- Column sorting with three-state toggle (ascending, descending, off)
- Per-column filtering with substring or regex pattern matching
- Case-insensitive search option
- Numerical filters supporting comparison operators (`>`, `<`, `>=`, `<=`, `=`)
- Clear filters functionality to reset all active filters
- Multiple filters work together to narrow down results

## Installation

Requires JupyterLab 4.0.0 or higher.

```bash
pip install jupyterlab_parquet_viewer_extension
```

Uninstall:
```bash
pip uninstall jupyterlab_parquet_viewer_extension
```

## Troubleshooting

Verify both extension components are enabled if the extension doesn't work:

```bash
# Check server extension
jupyter server extension list

# Check frontend extension
jupyter labextension list
```

Both commands should show `jupyterlab_parquet_viewer_extension` as enabled. Reinstall if either is missing or disabled.

## Development Setup

Requires NodeJS for building TypeScript frontend. Uses `jlpm` (JupyterLab's pinned yarn version) for consistency.

**Initial setup:**

```bash
# Create virtual environment
python -m venv .venv
source .venv/bin/activate

# Install in editable mode
pip install --editable ".[dev,test]"

# Link frontend and enable server extension
jupyter labextension develop . --overwrite
jupyter server extension enable jupyterlab_parquet_viewer_extension
```

**Development workflow:**

Use two terminals for efficient development:
- Terminal 1: `jlpm watch` (auto-rebuild on file changes)
- Terminal 2: `jupyter lab` (run development instance)

Refresh browser after changes to see updates. Build generates source maps for debugging.

Enable deeper debugging with unminimized JupyterLab build:
```bash
jupyter lab build --minimize=False
```

**Removing development installation:**

```bash
jupyter server extension disable jupyterlab_parquet_viewer_extension
pip uninstall jupyterlab_parquet_viewer_extension
```

Then delete the `jupyterlab_parquet_viewer_extension` symlink from your `labextensions` directory (find with `jupyter labextension list`).

## Testing

Three-tier testing strategy: Python backend, TypeScript frontend, and integration tests.

**Python tests** (pytest with coverage):
```bash
pip install -e ".[test]"
jupyter labextension develop . --overwrite
pytest -vv -r ap --cov jupyterlab_parquet_viewer_extension
```

**TypeScript tests** (Jest):
```bash
jlpm
jlpm test
```

**Integration tests** (Playwright + Galata):
Simulates real user interactions to validate complete workflows. See [ui-tests README](./ui-tests/README.md) for detailed instructions.

## Packaging and Release

See [RELEASE.md](RELEASE.md) for instructions on building distributable packages and publishing releases.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "jupyterlab-parquet-viewer-extension",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "jupyter, jupyterlab, jupyterlab-extension",
    "author": null,
    "author_email": "Stellars Henson <konrad.jelen@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/15/ec/5cd25a511cb2321fee7652e81971655e49d1710376c2033cc545a5e6a991/jupyterlab_parquet_viewer_extension-1.0.12.tar.gz",
    "platform": null,
    "description": "# jupyterlab_parquet_viewer_extension\n\n![GitHub Actions](https://github.com/stellarshenson/jupyterlab_parquet_viewer_extension/actions/workflows/build.yml/badge.svg)\n[![npm version](https://badge.fury.io/js/jupyterlab_parquet_viewer_extension.svg)](https://www.npmjs.com/package/jupyterlab_parquet_viewer_extension)\n[![PyPI version](https://badge.fury.io/py/jupyterlab-parquet-viewer-extension.svg)](https://pypi.org/project/jupyterlab-parquet-viewer-extension/)\n[![Total PyPI downloads](https://static.pepy.tech/badge/jupyterlab-parquet-viewer-extension)](https://pepy.tech/project/jupyterlab-parquet-viewer-extension)\n![JL4 Ready](https://img.shields.io/badge/Jupyterlab%204-ready-blue)\n\nView and browse Parquet files directly in JupyterLab. Double-click any .parquet file to open it in a simple, spreadsheet-like table view - no code required. Navigate through your data, inspect values, and explore the structure of your columnar data files.\n\n![Parquet Viewer](.resources/screenshot.png)\n\n## Features\n\n**Core viewing and navigation:**\n- Simple table display showing your Parquet data in familiar spreadsheet format\n- Column headers with field names and simplified datatype indicators\n- Progressive loading - starts with 500 rows, automatically loads more as you scroll\n- Automatic column width optimization for readability\n- File statistics (column count, row count, file size) at a glance\n- Handles large files efficiently with server-side processing\n\n**Advanced filtering and sorting:**\n- Column sorting with three-state toggle (ascending, descending, off)\n- Per-column filtering with substring or regex pattern matching\n- Case-insensitive search option\n- Numerical filters supporting comparison operators (`>`, `<`, `>=`, `<=`, `=`)\n- Clear filters functionality to reset all active filters\n- Multiple filters work together to narrow down results\n\n## Installation\n\nRequires JupyterLab 4.0.0 or higher.\n\n```bash\npip install jupyterlab_parquet_viewer_extension\n```\n\nUninstall:\n```bash\npip uninstall jupyterlab_parquet_viewer_extension\n```\n\n## Troubleshooting\n\nVerify both extension components are enabled if the extension doesn't work:\n\n```bash\n# Check server extension\njupyter server extension list\n\n# Check frontend extension\njupyter labextension list\n```\n\nBoth commands should show `jupyterlab_parquet_viewer_extension` as enabled. Reinstall if either is missing or disabled.\n\n## Development Setup\n\nRequires NodeJS for building TypeScript frontend. Uses `jlpm` (JupyterLab's pinned yarn version) for consistency.\n\n**Initial setup:**\n\n```bash\n# Create virtual environment\npython -m venv .venv\nsource .venv/bin/activate\n\n# Install in editable mode\npip install --editable \".[dev,test]\"\n\n# Link frontend and enable server extension\njupyter labextension develop . --overwrite\njupyter server extension enable jupyterlab_parquet_viewer_extension\n```\n\n**Development workflow:**\n\nUse two terminals for efficient development:\n- Terminal 1: `jlpm watch` (auto-rebuild on file changes)\n- Terminal 2: `jupyter lab` (run development instance)\n\nRefresh browser after changes to see updates. Build generates source maps for debugging.\n\nEnable deeper debugging with unminimized JupyterLab build:\n```bash\njupyter lab build --minimize=False\n```\n\n**Removing development installation:**\n\n```bash\njupyter server extension disable jupyterlab_parquet_viewer_extension\npip uninstall jupyterlab_parquet_viewer_extension\n```\n\nThen delete the `jupyterlab_parquet_viewer_extension` symlink from your `labextensions` directory (find with `jupyter labextension list`).\n\n## Testing\n\nThree-tier testing strategy: Python backend, TypeScript frontend, and integration tests.\n\n**Python tests** (pytest with coverage):\n```bash\npip install -e \".[test]\"\njupyter labextension develop . --overwrite\npytest -vv -r ap --cov jupyterlab_parquet_viewer_extension\n```\n\n**TypeScript tests** (Jest):\n```bash\njlpm\njlpm test\n```\n\n**Integration tests** (Playwright + Galata):\nSimulates real user interactions to validate complete workflows. See [ui-tests README](./ui-tests/README.md) for detailed instructions.\n\n## Packaging and Release\n\nSee [RELEASE.md](RELEASE.md) for instructions on building distributable packages and publishing releases.\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License\n        \n        Copyright (c) 2025, Stellars Henson\n        All rights reserved.\n        \n        Redistribution and use in source and binary forms, with or without\n        modification, are permitted provided that the following conditions are met:\n        \n        1. Redistributions of source code must retain the above copyright notice, this\n           list of conditions and the following disclaimer.\n        \n        2. Redistributions in binary form must reproduce the above copyright notice,\n           this list of conditions and the following disclaimer in the documentation\n           and/or other materials provided with the distribution.\n        \n        3. Neither the name of the copyright holder nor the names of its\n           contributors may be used to endorse or promote products derived from\n           this software without specific prior written permission.\n        \n        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
    "summary": "Jupyterlab extension to allow simple browsing of the parquet files with basic data filtering capabilities",
    "version": "1.0.12",
    "project_urls": {
        "Bug Tracker": "https://github.com/stellarshenson/jupyterlab_parquet_viewer_extension/issues",
        "Homepage": "https://github.com/stellarshenson/jupyterlab_parquet_viewer_extension",
        "Repository": "https://github.com/stellarshenson/jupyterlab_parquet_viewer_extension.git"
    },
    "split_keywords": [
        "jupyter",
        " jupyterlab",
        " jupyterlab-extension"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d9d139b0918e0b0914890c29cb7de4332d63d952a4f163c1883e7be28ed57c86",
                "md5": "9de948b6acd0e3e3de6ff40286653ae0",
                "sha256": "c2998235a8c5160ebbcbc09eb11c28bd110b53469312c663b3f78696b45ad7b9"
            },
            "downloads": -1,
            "filename": "jupyterlab_parquet_viewer_extension-1.0.12-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9de948b6acd0e3e3de6ff40286653ae0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 40667,
            "upload_time": "2025-11-02T11:23:43",
            "upload_time_iso_8601": "2025-11-02T11:23:43.448144Z",
            "url": "https://files.pythonhosted.org/packages/d9/d1/39b0918e0b0914890c29cb7de4332d63d952a4f163c1883e7be28ed57c86/jupyterlab_parquet_viewer_extension-1.0.12-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "15ec5cd25a511cb2321fee7652e81971655e49d1710376c2033cc545a5e6a991",
                "md5": "18ed9c1d764b749753a3c4e5ff2eff63",
                "sha256": "60e0d6678466e2f727727e2ca6eba170e5c91cff89a0beb380a2cc1297b57928"
            },
            "downloads": -1,
            "filename": "jupyterlab_parquet_viewer_extension-1.0.12.tar.gz",
            "has_sig": false,
            "md5_digest": "18ed9c1d764b749753a3c4e5ff2eff63",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 443692,
            "upload_time": "2025-11-02T11:23:45",
            "upload_time_iso_8601": "2025-11-02T11:23:45.030680Z",
            "url": "https://files.pythonhosted.org/packages/15/ec/5cd25a511cb2321fee7652e81971655e49d1710376c2033cc545a5e6a991/jupyterlab_parquet_viewer_extension-1.0.12.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-02 11:23:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "stellarshenson",
    "github_project": "jupyterlab_parquet_viewer_extension",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "jupyterlab-parquet-viewer-extension"
}
        
Elapsed time: 2.36778s