sweet-data


Namesweet-data JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryAn interactive console application for data manipulation
upload_time2025-08-04 04:28:01
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License Copyright (c) 2025 Richard Iannone Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords data-engineering textual polars cli interactive data-manipulation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Sweet: Interactive Data Engineering CLI](sweet-logo.png)

_Fun, interactive data manipulation in your terminal_

Sweet is a speedy and fun terminal-based data manipulation tool that transforms how you work with tabular data. With its intuitive interface and real-time feedback, you can quickly explore, transform, and manipulate data using interactive Polars expressions.

Whether you're a data scientist, data engineer, or analyst, Sweet helps you bridge the gap between spreadsheet-like exploration and code-based data workflows.

## See Sweet in Action

### Loading Data and Making Changes
![Sweet: Loading data and editing values](sweet-open-load-data-change-values.gif)

### Modifying Rows and Columns
![Sweet: Modifying rows and columns](sweet-modify-rows-and-columns.gif)

### Working with Column Types and Saving
![Sweet: Changing column types and saving data](change-column-type-save-data.gif)

### Polars Data Manipulation
![Sweet: Loading data and modifying with Polars](load-data-modify-with-polars.gif)

### Copy-Paste from Web Sources
![Sweet: Copy-paste data from Wikipedia](copy-paste-from-wikipedia.gif)

## Getting Started in 30 Seconds

```python
# Launch Sweet from the command line
sweet

# Or load data directly
sweet --file data.csv

# Or pipe data in
echo "data.csv" | sweet
cat data.csv | sweet
```

Once in Sweet's interactive interface:

1. Load your data using the file browser or paste tabular data directly
2. Write Polars expressions with syntax highlighting: `df = df.filter(pl.col("age") > 25)`
3. See results instantly in the data preview
4. Track your transformation history for reproducible workflows

## Why Choose Sweet?

- **Interactive terminal interface**: Modern TUI with syntax highlighting and real-time feedback
- **Intuitive navigation**: Use keyboard shortcuts or mouse/pointer interactions for seamless control
- **Reproducible workflows**: Track transformation history for repeatable data exploration
- **Flexible data loading**: Files, stdin piping, or paste data directly from spreadsheets/web tables
- **Multiple export formats**: Save your transformed data as CSV, TSV, Parquet, JSON, or JSONL
- **Fast operations**: Built on Polars for high-performance data processing
- **Accessible**: Perfect for both small datasets and quick exploration tasks

## Real-World Example

```bash
# Start with a CSV file
sweet --file sales_data.csv

# In Sweet's interface, build transformations step by step:
# 1. Filter recent sales
df = df.filter(pl.col("date") > pl.date(2024, 1, 1))

# 2. Calculate revenue
df = df.with_columns((pl.col("price") * pl.col("quantity")).alias("revenue"))

# 3. Group by category
df = df.group_by("category").agg([
    pl.col("revenue").sum().alias("total_revenue"),
    pl.col("quantity").sum().alias("total_quantity")
])

# See results immediately in the data preview
```

Sweet tracks your transformation history, making it easy to understand and reproduce your data exploration workflow. The interactive interface lets you experiment with different approaches and see results instantly.

## Installation

You can install Sweet by cloning the repository and installing in development mode:

```bash
# Clone the repository
git clone https://github.com/rich-iannone/sweet-data.git
cd sweet-data

# Install in development mode
pip install -e ".[dev]"
```

Once published to PyPI, you'll be able to install with:

```bash
# Install from PyPI (coming soon)
pip install sweet-data
```

## Usage

```bash
# Launch the interactive application
sweet

# Load a specific data file
sweet --file data.csv

# Pipe filename as a string (note the echo command)
echo "data.csv" | sweet

# Or pipe file content directly
cat data.csv | sweet
```

## Features That Set Sweet Apart

- **Complete exploration workflow**: From data loading to transformation to results visualization in a single interface
- **Built for experimentation**: Interactive environment perfect for data exploration and hypothesis testing
- **Practical outputs**: Get exactly what you need: transformed data, clear results, and transformation tracking
- **Flexible deployment**: Use for quick exploration or as a foundation for building data workflows
- **Modern interface**: Terminal-based UI with syntax highlighting, keyboard shortcuts, and mouse support for intuitive navigation
- **No vendor lock-in**: Uses standard Polars expressions that work in any Python environment

## Technical Details

Sweet is built on modern Python libraries for optimal performance and developer experience:

- **Textual**: Provides the modern terminal UI framework for interactive components
- **Polars**: High-performance DataFrame library for fast data operations
- **Rich**: Terminal formatting and beautiful display components
- **Click**: Command-line interface for seamless CLI integration

The application architecture separates data models from UI components, making it extensible and maintainable.

## Contributing to Sweet

There are many ways to contribute to the ongoing development of Sweet. Some contributions can be simple (like fixing typos, improving documentation, filing issues for feature requests or problems, etc.) and others might take more time and care (like answering questions and submitting PRs with code changes). Just know that anything you can do to help would be very much appreciated!

## Roadmap

We're actively working on enhancing Sweet with:

1. **Automatic code generation**: Export transformation history as clean Python/Polars scripts
2. Additional data format support (Excel, JSON, Arrow, etc.)
3. Advanced transformation templates and snippets
4. Integration with cloud data sources
5. Export to multiple formats and destinations
6. Enhanced branching and workflow management
7. LLM-powered transformation suggestions

If you have any ideas for features or improvements, don't hesitate to share them with us! We are always looking for ways to make Sweet better.

## Code of Conduct

Please note that the sweet-data project is released with a [contributor code of conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). <br>By participating in this project you agree to abide by its terms.

## 📄 License

sweet-data is licensed under the MIT license.

© sweet-data authors

## 🏛️ Governance

This project is primarily maintained by
[Rich Iannone](https://bsky.app/profile/richmeister.bsky.social). Other authors may occasionally
assist with some of these duties.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sweet-data",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "data-engineering, textual, polars, cli, interactive, data-manipulation",
    "author": null,
    "author_email": "Richard Iannone <riannone@me.com>",
    "download_url": "https://files.pythonhosted.org/packages/ce/ba/9a64cbb28950070d2c2512c9da18589b763d5b21658068383abea88c4c5f/sweet_data-0.1.0.tar.gz",
    "platform": null,
    "description": "![Sweet: Interactive Data Engineering CLI](sweet-logo.png)\n\n_Fun, interactive data manipulation in your terminal_\n\nSweet is a speedy and fun terminal-based data manipulation tool that transforms how you work with tabular data. With its intuitive interface and real-time feedback, you can quickly explore, transform, and manipulate data using interactive Polars expressions.\n\nWhether you're a data scientist, data engineer, or analyst, Sweet helps you bridge the gap between spreadsheet-like exploration and code-based data workflows.\n\n## See Sweet in Action\n\n### Loading Data and Making Changes\n![Sweet: Loading data and editing values](sweet-open-load-data-change-values.gif)\n\n### Modifying Rows and Columns\n![Sweet: Modifying rows and columns](sweet-modify-rows-and-columns.gif)\n\n### Working with Column Types and Saving\n![Sweet: Changing column types and saving data](change-column-type-save-data.gif)\n\n### Polars Data Manipulation\n![Sweet: Loading data and modifying with Polars](load-data-modify-with-polars.gif)\n\n### Copy-Paste from Web Sources\n![Sweet: Copy-paste data from Wikipedia](copy-paste-from-wikipedia.gif)\n\n## Getting Started in 30 Seconds\n\n```python\n# Launch Sweet from the command line\nsweet\n\n# Or load data directly\nsweet --file data.csv\n\n# Or pipe data in\necho \"data.csv\" | sweet\ncat data.csv | sweet\n```\n\nOnce in Sweet's interactive interface:\n\n1. Load your data using the file browser or paste tabular data directly\n2. Write Polars expressions with syntax highlighting: `df = df.filter(pl.col(\"age\") > 25)`\n3. See results instantly in the data preview\n4. Track your transformation history for reproducible workflows\n\n## Why Choose Sweet?\n\n- **Interactive terminal interface**: Modern TUI with syntax highlighting and real-time feedback\n- **Intuitive navigation**: Use keyboard shortcuts or mouse/pointer interactions for seamless control\n- **Reproducible workflows**: Track transformation history for repeatable data exploration\n- **Flexible data loading**: Files, stdin piping, or paste data directly from spreadsheets/web tables\n- **Multiple export formats**: Save your transformed data as CSV, TSV, Parquet, JSON, or JSONL\n- **Fast operations**: Built on Polars for high-performance data processing\n- **Accessible**: Perfect for both small datasets and quick exploration tasks\n\n## Real-World Example\n\n```bash\n# Start with a CSV file\nsweet --file sales_data.csv\n\n# In Sweet's interface, build transformations step by step:\n# 1. Filter recent sales\ndf = df.filter(pl.col(\"date\") > pl.date(2024, 1, 1))\n\n# 2. Calculate revenue\ndf = df.with_columns((pl.col(\"price\") * pl.col(\"quantity\")).alias(\"revenue\"))\n\n# 3. Group by category\ndf = df.group_by(\"category\").agg([\n    pl.col(\"revenue\").sum().alias(\"total_revenue\"),\n    pl.col(\"quantity\").sum().alias(\"total_quantity\")\n])\n\n# See results immediately in the data preview\n```\n\nSweet tracks your transformation history, making it easy to understand and reproduce your data exploration workflow. The interactive interface lets you experiment with different approaches and see results instantly.\n\n## Installation\n\nYou can install Sweet by cloning the repository and installing in development mode:\n\n```bash\n# Clone the repository\ngit clone https://github.com/rich-iannone/sweet-data.git\ncd sweet-data\n\n# Install in development mode\npip install -e \".[dev]\"\n```\n\nOnce published to PyPI, you'll be able to install with:\n\n```bash\n# Install from PyPI (coming soon)\npip install sweet-data\n```\n\n## Usage\n\n```bash\n# Launch the interactive application\nsweet\n\n# Load a specific data file\nsweet --file data.csv\n\n# Pipe filename as a string (note the echo command)\necho \"data.csv\" | sweet\n\n# Or pipe file content directly\ncat data.csv | sweet\n```\n\n## Features That Set Sweet Apart\n\n- **Complete exploration workflow**: From data loading to transformation to results visualization in a single interface\n- **Built for experimentation**: Interactive environment perfect for data exploration and hypothesis testing\n- **Practical outputs**: Get exactly what you need: transformed data, clear results, and transformation tracking\n- **Flexible deployment**: Use for quick exploration or as a foundation for building data workflows\n- **Modern interface**: Terminal-based UI with syntax highlighting, keyboard shortcuts, and mouse support for intuitive navigation\n- **No vendor lock-in**: Uses standard Polars expressions that work in any Python environment\n\n## Technical Details\n\nSweet is built on modern Python libraries for optimal performance and developer experience:\n\n- **Textual**: Provides the modern terminal UI framework for interactive components\n- **Polars**: High-performance DataFrame library for fast data operations\n- **Rich**: Terminal formatting and beautiful display components\n- **Click**: Command-line interface for seamless CLI integration\n\nThe application architecture separates data models from UI components, making it extensible and maintainable.\n\n## Contributing to Sweet\n\nThere are many ways to contribute to the ongoing development of Sweet. Some contributions can be simple (like fixing typos, improving documentation, filing issues for feature requests or problems, etc.) and others might take more time and care (like answering questions and submitting PRs with code changes). Just know that anything you can do to help would be very much appreciated!\n\n## Roadmap\n\nWe're actively working on enhancing Sweet with:\n\n1. **Automatic code generation**: Export transformation history as clean Python/Polars scripts\n2. Additional data format support (Excel, JSON, Arrow, etc.)\n3. Advanced transformation templates and snippets\n4. Integration with cloud data sources\n5. Export to multiple formats and destinations\n6. Enhanced branching and workflow management\n7. LLM-powered transformation suggestions\n\nIf you have any ideas for features or improvements, don't hesitate to share them with us! We are always looking for ways to make Sweet better.\n\n## Code of Conduct\n\nPlease note that the sweet-data project is released with a [contributor code of conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). <br>By participating in this project you agree to abide by its terms.\n\n## \ud83d\udcc4 License\n\nsweet-data is licensed under the MIT license.\n\n\u00a9 sweet-data authors\n\n## \ud83c\udfdb\ufe0f Governance\n\nThis project is primarily maintained by\n[Rich Iannone](https://bsky.app/profile/richmeister.bsky.social). Other authors may occasionally\nassist with some of these duties.\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2025 Richard Iannone\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "An interactive console application for data manipulation",
    "version": "0.1.0",
    "project_urls": {
        "homepage": "https://github.com/rich-iannone/sweet-data"
    },
    "split_keywords": [
        "data-engineering",
        " textual",
        " polars",
        " cli",
        " interactive",
        " data-manipulation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e1b5b34eda837333ee29a99a330f5345d70b4e7da8da5967b32a4ca3f433bcfd",
                "md5": "41787464fd1f1a5899302f4a1d30a5eb",
                "sha256": "103b88236c9b8bd63ea6b5f7074825072be1537acf2f029dba1949d232b93c63"
            },
            "downloads": -1,
            "filename": "sweet_data-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "41787464fd1f1a5899302f4a1d30a5eb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 62668,
            "upload_time": "2025-08-04T04:28:00",
            "upload_time_iso_8601": "2025-08-04T04:28:00.555484Z",
            "url": "https://files.pythonhosted.org/packages/e1/b5/b34eda837333ee29a99a330f5345d70b4e7da8da5967b32a4ca3f433bcfd/sweet_data-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ceba9a64cbb28950070d2c2512c9da18589b763d5b21658068383abea88c4c5f",
                "md5": "9a1adfa9c6cfdc29c59d1f1a597abb51",
                "sha256": "6321daa94ad58c4ff093741edc89ec98bcb5422c657e125a2afd613183754650"
            },
            "downloads": -1,
            "filename": "sweet_data-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9a1adfa9c6cfdc29c59d1f1a597abb51",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 13552773,
            "upload_time": "2025-08-04T04:28:01",
            "upload_time_iso_8601": "2025-08-04T04:28:01.886323Z",
            "url": "https://files.pythonhosted.org/packages/ce/ba/9a64cbb28950070d2c2512c9da18589b763d5b21658068383abea88c4c5f/sweet_data-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-04 04:28:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rich-iannone",
    "github_project": "sweet-data",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "sweet-data"
}
        
Elapsed time: 0.80564s