Metadata-Version: 2.4
Name: shovl
Version: 0.2.0
Summary: A lightweight terminal-based database and S3 client built with Textual.
Author: Max Brixner
License: Copyright 2026 Max Brixner
        
        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.
        
Project-URL: Source, https://codeberg.org/maxbrixner/shovl
Project-URL: Issues, https://codeberg.org/maxbrixner/shovl/issues
Keywords: database,AWS,S3,terminal,TUI,textual,sqlalchemy,boto3
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12.9
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: textual>=0.41.0
Requires-Dist: textual[syntax]>=0.41.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-dotenv>=1.2.1
Requires-Dist: typer>=0.21.1
Provides-Extra: dev
Requires-Dist: build>=1.4.0; extra == "dev"
Requires-Dist: setuptools>=80.10.2; extra == "dev"
Requires-Dist: twine>=6.2.0; extra == "dev"
Provides-Extra: database
Requires-Dist: sqlalchemy>=2.0.0; extra == "database"
Provides-Extra: bucket
Requires-Dist: boto3>=1.42.44; extra == "bucket"
Provides-Extra: sqlite
Requires-Dist: sqlalchemy>=2.0.0; extra == "sqlite"
Provides-Extra: postgresql
Requires-Dist: psycopg2-binary>=2.9.11; extra == "postgresql"
Requires-Dist: sqlalchemy>=2.0.0; extra == "postgresql"
Provides-Extra: oracle
Requires-Dist: oracledb>=3.4.2; extra == "oracle"
Requires-Dist: sqlalchemy>=2.0.0; extra == "oracle"
Provides-Extra: mysql
Requires-Dist: PyMySQL>=1.1.2; extra == "mysql"
Requires-Dist: sqlalchemy>=2.0.0; extra == "mysql"
Provides-Extra: snowflake
Requires-Dist: snowflake-sqlalchemy>=1.8.2; extra == "snowflake"
Requires-Dist: sqlalchemy>=2.0.0; extra == "snowflake"
Provides-Extra: duckdb
Requires-Dist: duckdb>=1.4.4; extra == "duckdb"
Requires-Dist: sqlalchemy>=2.0.0; extra == "duckdb"
Provides-Extra: ibmdb
Requires-Dist: ibm-db-sa>=0.4.3; extra == "ibmdb"
Requires-Dist: sqlalchemy>=2.0.0; extra == "ibmdb"
Provides-Extra: all
Requires-Dist: sqlalchemy>=2.0.0; extra == "all"
Requires-Dist: boto3>=1.42.44; extra == "all"
Requires-Dist: psycopg2-binary>=2.9.11; extra == "all"
Requires-Dist: oracledb>=3.4.2; extra == "all"
Requires-Dist: PyMySQL>=1.1.0; extra == "all"
Requires-Dist: snowflake-sqlalchemy>=1.5.0; extra == "all"
Requires-Dist: duckdb>=0.9.0; extra == "all"
Requires-Dist: ibm-db-sa>=0.4.3; extra == "all"
Dynamic: license-file

# Shovl

A lightweight terminal-based database and S3 client built with Textual.

## Installation

Install Shovle using pip:

```bash
pip install shovl
```

### Database-Specific Dependencies

Shovl requires additional drivers depending on your target database systems. Install the appropriate extras for your use case:

```bash
# Individual database support
pip install shovl[sqlite]        # SQLite support
pip install shovl[postgresql]    # PostgreSQL support
pip install shovl[mysql]         # MySQL support
pip install shovl[mariadb]       # MariaDB support
pip install shovl[oracle]        # Oracle Database support
pip install shovl[snowflake]     # Snowflake support
pip install shovl[duckdb]        # DuckDB support
pip install shovl[ibmdb]         # IBM DB2 support

# General database support (SQLAlchemy only)
pip install shovl[database]

# S3 and cloud storage support
pip install shovl[bucket]

# Complete installation with all features
pip install shovl[all]
```

**Note**: Shovl leverages SQLAlchemy's extensive database support. You may install additional SQLAlchemy-compatible drivers as needed for other database systems.

## Configuration

Shovl uses a hierarchical configuration system to manage connection details and application settings. The configuration file is loaded in the following priority order:

1. Path specified via the `--config` command-line option
2. Local configuration file (`.shovl` in the current directory)
3. Global user configuration file (`~/.shovl` or `%USERPROFILE%\.shovl` on Windows)
4. Default configuration (fallback)

### Generating Configuration Files

Create a sample configuration file:

```bash
# Local configuration
shovl --sample-config > .shovl

# Global configuration
shovl --sample-config > ~/.shovl
```

View the complete configuration schema with detailed parameter descriptions:

```bash
shovl --config-schema
```

### Security Best Practices

**Important**: Never store credentials in plain text within configuration files. Shovl supports environment variable substitution using double curly bracket syntax: `{{VARIABLE_NAME}}`.

Load environment variables from a `.env` file using the `--env` option.

## Usage

### Basic Usage

Launch Shovl with default settings:

```bash
shovl
```

### Advanced Options

Load credentials from an environment file:

```bash
shovl --env .env
```

Specify a custom configuration file:

```bash
shovl --config /path/to/custom/config.json
```

Display all available command-line options:

```bash
shovl --help
```

## System Requirements

- Python 3.12 or higher
- Terminal with Unicode support
- Network connectivity for database and S3 operations

## License

This project is distributed under the terms specified in the LICENSE.md file.

## Contributing

Shovl is an open-source project. For bug reports, feature requests, or contributions, please visit the [project repository](https://codeberg.org/maxbrixner/shovl).

## Support

For issues and support requests, please use the [project's issue tracker](https://codeberg.org/maxbrixner/shovl/issues).
