sqlbench 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sqlbench-0.1.0/.github/workflows/pypi-publish.yml +41 -0
- sqlbench-0.1.0/.gitignore +43 -0
- sqlbench-0.1.0/Makefile +20 -0
- sqlbench-0.1.0/PKG-INFO +91 -0
- sqlbench-0.1.0/README.md +45 -0
- sqlbench-0.1.0/pyproject.toml +74 -0
- sqlbench-0.1.0/requirements.txt +5 -0
- sqlbench-0.1.0/sqlbench/__init__.py +3 -0
- sqlbench-0.1.0/sqlbench/__main__.py +7 -0
- sqlbench-0.1.0/sqlbench/adapters.py +383 -0
- sqlbench-0.1.0/sqlbench/app.py +1398 -0
- sqlbench-0.1.0/sqlbench/database.py +215 -0
- sqlbench-0.1.0/sqlbench/dialogs/__init__.py +1 -0
- sqlbench-0.1.0/sqlbench/dialogs/connection_dialog.py +356 -0
- sqlbench-0.1.0/sqlbench/dialogs/regex_builder_dialog.py +542 -0
- sqlbench-0.1.0/sqlbench/tabs/__init__.py +1 -0
- sqlbench-0.1.0/sqlbench/tabs/spool_tab.py +572 -0
- sqlbench-0.1.0/sqlbench/tabs/sql_tab.py +1827 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*.*.*'
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
id-token: write # required for PyPI Trusted Publishing (OIDC)
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
deploy:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- name: Check out source
|
|
18
|
+
uses: actions/checkout@v4
|
|
19
|
+
with:
|
|
20
|
+
ref: ${{ github.ref }}
|
|
21
|
+
|
|
22
|
+
- name: Set up Python
|
|
23
|
+
uses: actions/setup-python@v5
|
|
24
|
+
with:
|
|
25
|
+
python-version: '3.x'
|
|
26
|
+
|
|
27
|
+
- name: Install build tooling
|
|
28
|
+
run: |
|
|
29
|
+
python -m pip install --upgrade pip
|
|
30
|
+
pip install build twine
|
|
31
|
+
|
|
32
|
+
- name: Build distributions
|
|
33
|
+
run: python -m build
|
|
34
|
+
|
|
35
|
+
- name: Verify metadata (twine check)
|
|
36
|
+
run: python -m twine check dist/*
|
|
37
|
+
|
|
38
|
+
- name: Publish to PyPI (Trusted Publishing)
|
|
39
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
40
|
+
with:
|
|
41
|
+
verbose: true
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Virtual environment
|
|
2
|
+
venv/
|
|
3
|
+
.venv/
|
|
4
|
+
|
|
5
|
+
# Python
|
|
6
|
+
__pycache__/
|
|
7
|
+
*.py[cod]
|
|
8
|
+
*$py.class
|
|
9
|
+
*.so
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
|
|
27
|
+
# SQLite database
|
|
28
|
+
*.db
|
|
29
|
+
|
|
30
|
+
# IDE
|
|
31
|
+
.idea/
|
|
32
|
+
.vscode/
|
|
33
|
+
*.swp
|
|
34
|
+
*.swo
|
|
35
|
+
*~
|
|
36
|
+
|
|
37
|
+
# OS
|
|
38
|
+
.DS_Store
|
|
39
|
+
Thumbs.db
|
|
40
|
+
|
|
41
|
+
# Environment variables
|
|
42
|
+
.env
|
|
43
|
+
.env.local
|
sqlbench-0.1.0/Makefile
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.PHONY: run install clean
|
|
2
|
+
|
|
3
|
+
VENV := venv
|
|
4
|
+
PYTHON := $(VENV)/bin/python
|
|
5
|
+
PIP := $(VENV)/bin/pip
|
|
6
|
+
|
|
7
|
+
run: $(VENV)
|
|
8
|
+
$(PYTHON) -m sqlbench
|
|
9
|
+
|
|
10
|
+
install: $(VENV)
|
|
11
|
+
|
|
12
|
+
$(VENV): requirements.txt
|
|
13
|
+
python3 -m venv $(VENV)
|
|
14
|
+
$(PIP) install -r requirements.txt
|
|
15
|
+
touch $(VENV)
|
|
16
|
+
|
|
17
|
+
clean:
|
|
18
|
+
rm -rf $(VENV)
|
|
19
|
+
rm -f sqlbench.db
|
|
20
|
+
find . -type d -name __pycache__ -exec rm -rf {} +
|
sqlbench-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sqlbench
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A multi-database SQL workbench with support for IBM i, MySQL, and PostgreSQL
|
|
5
|
+
Project-URL: Homepage, https://github.com/jpsteil/sqlbench
|
|
6
|
+
Project-URL: Repository, https://github.com/jpsteil/sqlbench
|
|
7
|
+
Project-URL: Issues, https://github.com/jpsteil/sqlbench/issues
|
|
8
|
+
Author: Jim
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
Keywords: database,gui,ibmi,mysql,postgresql,sql,workbench
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: X11 Applications
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: System Administrators
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Database
|
|
23
|
+
Classifier: Topic :: Database :: Front-Ends
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Requires-Dist: sqlparse>=0.5.0
|
|
26
|
+
Provides-Extra: all
|
|
27
|
+
Requires-Dist: mysql-connector-python>=8.0.0; extra == 'all'
|
|
28
|
+
Requires-Dist: openpyxl>=3.1.0; extra == 'all'
|
|
29
|
+
Requires-Dist: psycopg2-binary>=2.9.0; extra == 'all'
|
|
30
|
+
Requires-Dist: pyodbc>=4.0.0; extra == 'all'
|
|
31
|
+
Requires-Dist: reportlab>=4.0.0; extra == 'all'
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: black>=23.0.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
36
|
+
Provides-Extra: export
|
|
37
|
+
Requires-Dist: openpyxl>=3.1.0; extra == 'export'
|
|
38
|
+
Requires-Dist: reportlab>=4.0.0; extra == 'export'
|
|
39
|
+
Provides-Extra: ibmi
|
|
40
|
+
Requires-Dist: pyodbc>=4.0.0; extra == 'ibmi'
|
|
41
|
+
Provides-Extra: mysql
|
|
42
|
+
Requires-Dist: mysql-connector-python>=8.0.0; extra == 'mysql'
|
|
43
|
+
Provides-Extra: postgresql
|
|
44
|
+
Requires-Dist: psycopg2-binary>=2.9.0; extra == 'postgresql'
|
|
45
|
+
Description-Content-Type: text/markdown
|
|
46
|
+
|
|
47
|
+
# SQLBench
|
|
48
|
+
|
|
49
|
+
A multi-database SQL workbench with support for IBM i (AS/400), MySQL, and PostgreSQL.
|
|
50
|
+
|
|
51
|
+
## Features
|
|
52
|
+
|
|
53
|
+
- Connect to multiple databases simultaneously
|
|
54
|
+
- Browse schemas, tables, and columns
|
|
55
|
+
- Execute SQL queries with syntax highlighting
|
|
56
|
+
- Export results to CSV, Excel, and PDF
|
|
57
|
+
- Save and manage database connections
|
|
58
|
+
- Right-click context menus for quick actions
|
|
59
|
+
|
|
60
|
+
## Supported Databases
|
|
61
|
+
|
|
62
|
+
- **IBM i (AS/400)** - via ODBC
|
|
63
|
+
- **MySQL** - via mysql-connector-python
|
|
64
|
+
- **PostgreSQL** - via psycopg2
|
|
65
|
+
|
|
66
|
+
## Installation
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Clone the repository
|
|
70
|
+
git clone https://github.com/jsteil/sqlbench.git
|
|
71
|
+
cd sqlbench
|
|
72
|
+
|
|
73
|
+
# Install dependencies
|
|
74
|
+
make install
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Usage
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
make run
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Requirements
|
|
84
|
+
|
|
85
|
+
- Python 3.8+
|
|
86
|
+
- tkinter (usually included with Python)
|
|
87
|
+
- For IBM i: IBM i Access ODBC Driver
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
|
|
91
|
+
MIT
|
sqlbench-0.1.0/README.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# SQLBench
|
|
2
|
+
|
|
3
|
+
A multi-database SQL workbench with support for IBM i (AS/400), MySQL, and PostgreSQL.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Connect to multiple databases simultaneously
|
|
8
|
+
- Browse schemas, tables, and columns
|
|
9
|
+
- Execute SQL queries with syntax highlighting
|
|
10
|
+
- Export results to CSV, Excel, and PDF
|
|
11
|
+
- Save and manage database connections
|
|
12
|
+
- Right-click context menus for quick actions
|
|
13
|
+
|
|
14
|
+
## Supported Databases
|
|
15
|
+
|
|
16
|
+
- **IBM i (AS/400)** - via ODBC
|
|
17
|
+
- **MySQL** - via mysql-connector-python
|
|
18
|
+
- **PostgreSQL** - via psycopg2
|
|
19
|
+
|
|
20
|
+
## Installation
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Clone the repository
|
|
24
|
+
git clone https://github.com/jsteil/sqlbench.git
|
|
25
|
+
cd sqlbench
|
|
26
|
+
|
|
27
|
+
# Install dependencies
|
|
28
|
+
make install
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
make run
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Requirements
|
|
38
|
+
|
|
39
|
+
- Python 3.8+
|
|
40
|
+
- tkinter (usually included with Python)
|
|
41
|
+
- For IBM i: IBM i Access ODBC Driver
|
|
42
|
+
|
|
43
|
+
## License
|
|
44
|
+
|
|
45
|
+
MIT
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "sqlbench"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "A multi-database SQL workbench with support for IBM i, MySQL, and PostgreSQL"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
requires-python = ">=3.9"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Jim" }
|
|
14
|
+
]
|
|
15
|
+
keywords = ["sql", "database", "gui", "ibmi", "mysql", "postgresql", "workbench"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 3 - Alpha",
|
|
18
|
+
"Environment :: X11 Applications",
|
|
19
|
+
"Intended Audience :: Developers",
|
|
20
|
+
"Intended Audience :: System Administrators",
|
|
21
|
+
"License :: OSI Approved :: MIT License",
|
|
22
|
+
"Operating System :: OS Independent",
|
|
23
|
+
"Programming Language :: Python :: 3",
|
|
24
|
+
"Programming Language :: Python :: 3.9",
|
|
25
|
+
"Programming Language :: Python :: 3.10",
|
|
26
|
+
"Programming Language :: Python :: 3.11",
|
|
27
|
+
"Programming Language :: Python :: 3.12",
|
|
28
|
+
"Topic :: Database",
|
|
29
|
+
"Topic :: Database :: Front-Ends",
|
|
30
|
+
]
|
|
31
|
+
dependencies = [
|
|
32
|
+
"sqlparse>=0.5.0",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
[project.optional-dependencies]
|
|
36
|
+
mysql = ["mysql-connector-python>=8.0.0"]
|
|
37
|
+
postgresql = ["psycopg2-binary>=2.9.0"]
|
|
38
|
+
ibmi = ["pyodbc>=4.0.0"]
|
|
39
|
+
export = ["reportlab>=4.0.0", "openpyxl>=3.1.0"]
|
|
40
|
+
all = [
|
|
41
|
+
"mysql-connector-python>=8.0.0",
|
|
42
|
+
"psycopg2-binary>=2.9.0",
|
|
43
|
+
"pyodbc>=4.0.0",
|
|
44
|
+
"reportlab>=4.0.0",
|
|
45
|
+
"openpyxl>=3.1.0",
|
|
46
|
+
]
|
|
47
|
+
dev = [
|
|
48
|
+
"pytest>=7.0.0",
|
|
49
|
+
"black>=23.0.0",
|
|
50
|
+
"ruff>=0.1.0",
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
[project.scripts]
|
|
54
|
+
sqlbench = "sqlbench.__main__:main"
|
|
55
|
+
|
|
56
|
+
[project.urls]
|
|
57
|
+
Homepage = "https://github.com/jpsteil/sqlbench"
|
|
58
|
+
Repository = "https://github.com/jpsteil/sqlbench"
|
|
59
|
+
Issues = "https://github.com/jpsteil/sqlbench/issues"
|
|
60
|
+
|
|
61
|
+
[tool.hatch.build.targets.wheel]
|
|
62
|
+
packages = ["sqlbench"]
|
|
63
|
+
|
|
64
|
+
[tool.ruff]
|
|
65
|
+
line-length = 100
|
|
66
|
+
target-version = "py39"
|
|
67
|
+
|
|
68
|
+
[tool.ruff.lint]
|
|
69
|
+
select = ["E", "F", "W", "I"]
|
|
70
|
+
ignore = ["E501"]
|
|
71
|
+
|
|
72
|
+
[tool.black]
|
|
73
|
+
line-length = 100
|
|
74
|
+
target-version = ["py39"]
|