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.
@@ -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
@@ -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 {} +
@@ -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
@@ -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"]
@@ -0,0 +1,5 @@
1
+ pyodbc
2
+ reportlab
3
+ openpyxl
4
+ mysql-connector-python
5
+ psycopg2-binary
@@ -0,0 +1,3 @@
1
+ """SQLBench - A multi-database SQL workbench."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,7 @@
1
+ """Entry point for sqlbench."""
2
+
3
+ from sqlbench.app import main
4
+
5
+
6
+ if __name__ == "__main__":
7
+ main()