semvec/pypi-packages huggingface dataset:
esprit 0.2.3
A minimal terminal-based spreadsheet editor
License: MIT
Requires Python: >=3.12
Keywords: spreadsheet, terminal

# Esprit

A minimal terminal-based spreadsheet editor built with Python and Textual. Create, edit, and manage structured data tables with typed columns directly in your terminal.

Sometimes you want to take notes in a table.

## Features

- **Terminal UI**: Fast, keyboard-driven interface
- **Typed Columns**: String, Number, Boolean, and URL column types
- **Row Operations**: Insert, delete, and move rows with keyboard shortcuts
- **JSON Storage**: Simple, readable JSON file format


## Installation

Install esprit from PyPI:

```bash
pip install esprit
```

Or install from source:

```bash
git clone https://github.com/mkaz/esprit.git
cd esprit
pip install .
```

## Requirements

- Python 3.10 or higher


## Usage

### Starting Esprit

Launch with a new or existing file:

```bash
# Create or open a spreadsheet
esprit mydata.json

# Start with default empty spreadsheet
esprit
```

On first launch with a new file, you'll see the initialization dialog where you can:
- Set the spreadsheet title
- Define columns with names and types
- Add or remove columns as needed

### Column Types

- **String**: Plain text values
- **Number**: Numeric values with comma formatting
- **Boolean**: True/False values displayed as ✓/✗
- **URL**: Links with title and URL (format: `Title | https://example.com`)

### Keyboard Shortcuts

#### Navigation
- **Arrow Keys**: Move between cells

#### Editing
- **Enter**: Edit current cell
- **Escape**: Cancel editing

#### Row Operations
- **Ctrl+I**: Insert empty row above current
- **Ctrl+K**: Delete current row
- **Alt+Up**: Move current row up
- **Alt+Down**: Move current row down

#### File Operations
- **Ctrl+S**: Save spreadsheet
- **Ctrl+Q**: Quit (prompts to save if unsaved changes)

#### Special
- **Ctrl+Enter**: Open URL in browser (when on URL column cell)


## File Format

Esprit saves spreadsheets as JSON files:

```json
{
  "metadata": {
    "title": "My Spreadsheet",
    "columns": [
      {"name": "Name", "type": "string"},
      {"name": "Amount", "type": "number"},
      {"name": "Active", "type": "boolean"},
      {"name": "Website", "type": "url"}
    ]
  },
  "rows": 20,
  "cols": 4,
  "cells": {
    "0,0": "Alice",
    "0,1": 1500,
    "0,2": true,
    "0,3": {"title": "Example", "url": "https://example.com"}
  }
}
```

## License

MIT License - see LICENSE file for details

## Contributing

Contributions welcome! Please open an issue or pull request on GitHub.

## Links

- **GitHub**: https://github.com/mkaz/esprit
- **PyPI**: https://pypi.org/project/esprit/
- **Issues**: https://github.com/mkaz/esprit/issues
sciexplorer 0.1.0
A Python package for scientific exploration
License: MIT
Requires Python: >=3.8.1
Keywords: science, exploration, research

# sciexplorer

A Python package for scientific exploration.

## Installation

You can install sciexplorer using pip:

```bash
pip install sciexplorer
```

For development installation:

```bash
pip install -e ".[dev]"
```

## Usage

```python
import sciexplorer

# Your code here
```

## Features

- Feature 1
- Feature 2
- Feature 3

## Development

### Setup

1. Clone the repository:
```bash
git clone https://github.com/yourusername/sciexplorer.git
cd sciexplorer
```

2. Install development dependencies:
```bash
pip install -e ".[dev]"
```

### Running Tests

```bash
pytest
```

### Code Formatting

```bash
black sciexplorer tests
```

### Type Checking

```bash
mypy sciexplorer
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Publishing to PyPI

To publish this package to PyPI:

1. Install build tools:
```bash
pip install build twine
```

2. Build the package:
```bash
python -m build
```

3. Upload to TestPyPI (optional, for testing):
```bash
python -m twine upload --repository testpypi dist/*
```

4. Upload to PyPI:
```bash
python -m twine upload dist/*
```

Make sure you have a PyPI account and have configured your credentials before publishing.