Metadata-Version: 2.4
Name: notepadb
Version: 0.2.0
Summary: A notepad, but only for databases — SQL with schema-aware autocomplete for SQL Server, PostgreSQL, MySQL/MariaDB, Oracle and SQLite.
Author: Dror Maor
License-Expression: GPL-2.0-only
Project-URL: Homepage, https://notepadb.com
Project-URL: Source, https://github.com/DrorMaor/notepadb
Project-URL: Issues, https://github.com/DrorMaor/notepadb/issues
Project-URL: Changelog, https://github.com/DrorMaor/notepadb/blob/main/CHANGELOG.md
Project-URL: Funding, https://ko-fi.com/drormaor
Keywords: sql,database,scratchpad,notepad,autocomplete,query-editor,sql-server,postgresql,mysql,mariadb,oracle,sqlite,tkinter
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications
Classifier: Environment :: MacOS X
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Database
Classifier: Topic :: Database :: Front-Ends
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyodbc>=5.0
Requires-Dist: psycopg2-binary>=2.9
Requires-Dist: mysql-connector-python>=8.0
Requires-Dist: oracledb>=2.0
Requires-Dist: tksheet>=7.6
Requires-Dist: sqlparse>=0.5
Requires-Dist: platformdirs>=4.0
Dynamic: license-file

# notepaDB

A notepad/scratchpad, but only for databases.

Type SQL, get autocomplete for real table and column names from the server you're
connected to, run it, see results. No project setup, no saved connections you have
to manage in some other tool — just open it and start querying, the way you'd open
Notepad for text.

Tabs are independent sessions (like SSMS query windows): each tab has its own
connection, schema browser, and results grid.

## Features

- **Multi-engine**: SQL Server, PostgreSQL, MySQL/MariaDB, Oracle, and SQLite,
  all behind one consistent interface.
- **Schema-aware autocomplete** for real table and column names pulled live from
  the connected server — not just generic SQL keywords.
- **Independent tabs**, each with its own connection, schema browser, and results
  grid, similar to query windows in SSMS.
- **Results grid** with per-cell coloring (e.g. gray NULLs), CSV export, and a
  schema-browser right-click menu (select top 1000 rows, script `CREATE TABLE`,
  copy column list, export table to CSV).
- **Query tools**: run (`F5`, or `Ctrl+Enter` for just the statement at the
  caret), cancel, explain plan, SQL formatting, and searchable query history.
- **Editor basics**: inline find/replace, line numbers, word wrap, toggle
  comment, move lines, zoom, and session restore across restarts.
- **A native-feeling UI**: light and dark themes that follow the desktop (or
  your choice), the desktop's own fonts, HiDPI-aware, a command palette
  (`Ctrl+Shift+P`) over every command and table, and `F1` for the full list of
  keyboard shortcuts.

## Installation

**Windows:** download the latest `notepadb.exe` from
[Releases](https://github.com/DrorMaor/notepadb/releases) and run it — no
Python install needed.

**From source** (any OS, or if you want to modify the code):

```bash
git clone https://github.com/DrorMaor/notepadb.git
cd notepadb
pip install -r requirements.txt
python -m notepadb
```

Or install it properly via pip:

```bash
pip install notepadb
notepadb
```

Note: `requirements.txt` installs drivers for every supported engine. If you
only need one or two (e.g. PostgreSQL and SQLite), you can skip the others —
each backend only fails at *connect time* if its driver is missing, not at
startup.

## Usage

Open a tab, pick **Connection → Connect…** (`Ctrl+K`), choose your engine,
and start typing SQL. Run with `F5` (everything, or the selection) or
`Ctrl+Enter` (the statement at the caret). `Ctrl+Shift+P` opens the command
palette and `F1` lists every shortcut.

## Supported databases

| Engine | Driver |
|---|---|
| SQL Server | `pyodbc` |
| PostgreSQL | `psycopg2-binary` |
| MySQL / MariaDB | `mysql-connector-python` |
| Oracle | `oracledb` (thin mode — no Instant Client needed) |
| SQLite | stdlib `sqlite3` |

## Contributing

Bug reports, feature requests, and pull requests are welcome — see
[CONTRIBUTING.md](CONTRIBUTING.md).

## License

GPL-2.0-only. See [LICENSE](LICENSE).

## Support

If notepaDB is useful to you, consider [buying me a coffee](https://ko-fi.com/drormaor).
