openduck-cli 0.1.0__tar.gz → 0.1.2__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.
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/PKG-INFO +39 -13
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/README.md +37 -11
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/__init__.py +2 -2
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/app.py +1 -1
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck_cli.egg-info/PKG-INFO +39 -13
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/pyproject.toml +2 -2
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/__main__.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/core/__init__.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/core/clipboard.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/core/config.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/core/error_classifier.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/core/sql_utils.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/__init__.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/dialogs/__init__.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/dialogs/add_connection_dialog.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/dialogs/export_dialog.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/dialogs/save_query_dialog.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/screens/__init__.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/screens/about.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/screens/matrix.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/styles.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/widgets/__init__.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/widgets/database_tree.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/widgets/file_tree.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/widgets/query_tab.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/widgets/resize_handle.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/widgets/results_table.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/gui/widgets/sql_editor.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck/main.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck_cli.egg-info/SOURCES.txt +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck_cli.egg-info/dependency_links.txt +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck_cli.egg-info/entry_points.txt +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck_cli.egg-info/requires.txt +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/openduck_cli.egg-info/top_level.txt +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/setup.cfg +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/tests/test.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/tests/test_all_errors.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/tests/test_save_load.py +0 -0
- {openduck_cli-0.1.0 → openduck_cli-0.1.2}/tests/test_unit.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openduck-cli
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: A flat file SQL client based on DuckDB
|
|
5
5
|
Author: Bertatron
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Requires-Python: >=3.10
|
|
@@ -19,7 +19,7 @@ Requires-Dist: pymssql; extra == "db"
|
|
|
19
19
|
# 🦆 OpenDuck
|
|
20
20
|
|
|
21
21
|
<p align="center">
|
|
22
|
-
<b>
|
|
22
|
+
<b>A flat file SQL client based on DuckDB</b>
|
|
23
23
|
</p>
|
|
24
24
|
|
|
25
25
|
<p align="center">
|
|
@@ -35,7 +35,7 @@ Requires-Dist: pymssql; extra == "db"
|
|
|
35
35
|
<img width="100%" alt="OpenDuck Interface" src="https://github.com/user-attachments/assets/4aea9df6-6f00-494d-a171-d76a9a3b8133" />
|
|
36
36
|
</p>
|
|
37
37
|
|
|
38
|
-
**OpenDuck**
|
|
38
|
+
**OpenDuck** is a terminal-based flat file SQL client based on DuckDB. Effortlessly browse files, inspect datasets, write queries with full syntax highlighting, sort and filter millions of rows in milliseconds, and export results — all without leaving your shell.
|
|
39
39
|
|
|
40
40
|
---
|
|
41
41
|
|
|
@@ -82,33 +82,59 @@ OpenDuck automatically recognises and formats queries for:
|
|
|
82
82
|
|
|
83
83
|
### 1. Installation
|
|
84
84
|
|
|
85
|
-
**
|
|
85
|
+
**Recommended: Install via `pip3` from PyPI**
|
|
86
86
|
```bash
|
|
87
|
-
|
|
87
|
+
pip3 install openduck-cli
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
> **Tip:** If your system manages Python externally (e.g., Debian/Ubuntu PEP 668), install into a virtual environment or use `pipx`:
|
|
91
|
+
> ```bash
|
|
92
|
+
> python3 -m venv ~/.openduck-venv
|
|
93
|
+
> ~/.openduck-venv/bin/pip3 install openduck-cli
|
|
94
|
+
> # Create a symlink to run it from anywhere:
|
|
95
|
+
> sudo ln -s ~/.openduck-venv/bin/openduck /usr/local/bin/openduck
|
|
96
|
+
> ```
|
|
97
|
+
|
|
98
|
+
**Via Docker (Zero local setup):**
|
|
99
|
+
```bash
|
|
100
|
+
# Run directly with Docker mounting your current data directory:
|
|
101
|
+
docker run -it --rm -v "$(pwd):/data" python:3.12-slim sh -c "pip3 install --no-cache-dir openduck-cli && openduck"
|
|
102
|
+
|
|
103
|
+
# Or build the included Dockerfile:
|
|
104
|
+
docker build -t openduck .
|
|
105
|
+
docker run -it --rm -v "$(pwd):/data" openduck
|
|
88
106
|
```
|
|
89
107
|
|
|
90
108
|
**From source:**
|
|
91
109
|
```bash
|
|
92
110
|
git clone https://github.com/klandermans/openduck.git
|
|
93
111
|
cd openduck
|
|
94
|
-
|
|
95
|
-
# or
|
|
112
|
+
pip3 install -r requirements.txt
|
|
113
|
+
# or install in editable mode:
|
|
114
|
+
pip3 install -e .
|
|
96
115
|
```
|
|
97
116
|
|
|
98
117
|
> **Note:** `textual[syntax]` installs the required `tree-sitter` and `tree-sitter-sql` engines for syntax highlighting out of the box.
|
|
99
118
|
|
|
119
|
+
---
|
|
120
|
+
|
|
100
121
|
### 2. Run OpenDuck
|
|
101
122
|
|
|
123
|
+
After installing with `pip3`, run it directly from any directory:
|
|
124
|
+
|
|
102
125
|
```bash
|
|
103
|
-
|
|
126
|
+
openduck
|
|
104
127
|
```
|
|
128
|
+
*(or `openduck-cli`)*
|
|
105
129
|
|
|
106
|
-
|
|
130
|
+
If you cloned the source repository:
|
|
107
131
|
|
|
108
132
|
```bash
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
openduck
|
|
133
|
+
python3 openduck.py
|
|
134
|
+
# or
|
|
135
|
+
python3 -m openduck
|
|
136
|
+
# or with the shell wrapper:
|
|
137
|
+
./openduck.sh
|
|
112
138
|
```
|
|
113
139
|
|
|
114
140
|
---
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# 🦆 OpenDuck
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
<b>
|
|
4
|
+
<b>A flat file SQL client based on DuckDB</b>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<img width="100%" alt="OpenDuck Interface" src="https://github.com/user-attachments/assets/4aea9df6-6f00-494d-a171-d76a9a3b8133" />
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
|
-
**OpenDuck**
|
|
20
|
+
**OpenDuck** is a terminal-based flat file SQL client based on DuckDB. Effortlessly browse files, inspect datasets, write queries with full syntax highlighting, sort and filter millions of rows in milliseconds, and export results — all without leaving your shell.
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
@@ -64,33 +64,59 @@ OpenDuck automatically recognises and formats queries for:
|
|
|
64
64
|
|
|
65
65
|
### 1. Installation
|
|
66
66
|
|
|
67
|
-
**
|
|
67
|
+
**Recommended: Install via `pip3` from PyPI**
|
|
68
68
|
```bash
|
|
69
|
-
|
|
69
|
+
pip3 install openduck-cli
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
> **Tip:** If your system manages Python externally (e.g., Debian/Ubuntu PEP 668), install into a virtual environment or use `pipx`:
|
|
73
|
+
> ```bash
|
|
74
|
+
> python3 -m venv ~/.openduck-venv
|
|
75
|
+
> ~/.openduck-venv/bin/pip3 install openduck-cli
|
|
76
|
+
> # Create a symlink to run it from anywhere:
|
|
77
|
+
> sudo ln -s ~/.openduck-venv/bin/openduck /usr/local/bin/openduck
|
|
78
|
+
> ```
|
|
79
|
+
|
|
80
|
+
**Via Docker (Zero local setup):**
|
|
81
|
+
```bash
|
|
82
|
+
# Run directly with Docker mounting your current data directory:
|
|
83
|
+
docker run -it --rm -v "$(pwd):/data" python:3.12-slim sh -c "pip3 install --no-cache-dir openduck-cli && openduck"
|
|
84
|
+
|
|
85
|
+
# Or build the included Dockerfile:
|
|
86
|
+
docker build -t openduck .
|
|
87
|
+
docker run -it --rm -v "$(pwd):/data" openduck
|
|
70
88
|
```
|
|
71
89
|
|
|
72
90
|
**From source:**
|
|
73
91
|
```bash
|
|
74
92
|
git clone https://github.com/klandermans/openduck.git
|
|
75
93
|
cd openduck
|
|
76
|
-
|
|
77
|
-
# or
|
|
94
|
+
pip3 install -r requirements.txt
|
|
95
|
+
# or install in editable mode:
|
|
96
|
+
pip3 install -e .
|
|
78
97
|
```
|
|
79
98
|
|
|
80
99
|
> **Note:** `textual[syntax]` installs the required `tree-sitter` and `tree-sitter-sql` engines for syntax highlighting out of the box.
|
|
81
100
|
|
|
101
|
+
---
|
|
102
|
+
|
|
82
103
|
### 2. Run OpenDuck
|
|
83
104
|
|
|
105
|
+
After installing with `pip3`, run it directly from any directory:
|
|
106
|
+
|
|
84
107
|
```bash
|
|
85
|
-
|
|
108
|
+
openduck
|
|
86
109
|
```
|
|
110
|
+
*(or `openduck-cli`)*
|
|
87
111
|
|
|
88
|
-
|
|
112
|
+
If you cloned the source repository:
|
|
89
113
|
|
|
90
114
|
```bash
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
openduck
|
|
115
|
+
python3 openduck.py
|
|
116
|
+
# or
|
|
117
|
+
python3 -m openduck
|
|
118
|
+
# or with the shell wrapper:
|
|
119
|
+
./openduck.sh
|
|
94
120
|
```
|
|
95
121
|
|
|
96
122
|
---
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openduck-cli
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: A flat file SQL client based on DuckDB
|
|
5
5
|
Author: Bertatron
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Requires-Python: >=3.10
|
|
@@ -19,7 +19,7 @@ Requires-Dist: pymssql; extra == "db"
|
|
|
19
19
|
# 🦆 OpenDuck
|
|
20
20
|
|
|
21
21
|
<p align="center">
|
|
22
|
-
<b>
|
|
22
|
+
<b>A flat file SQL client based on DuckDB</b>
|
|
23
23
|
</p>
|
|
24
24
|
|
|
25
25
|
<p align="center">
|
|
@@ -35,7 +35,7 @@ Requires-Dist: pymssql; extra == "db"
|
|
|
35
35
|
<img width="100%" alt="OpenDuck Interface" src="https://github.com/user-attachments/assets/4aea9df6-6f00-494d-a171-d76a9a3b8133" />
|
|
36
36
|
</p>
|
|
37
37
|
|
|
38
|
-
**OpenDuck**
|
|
38
|
+
**OpenDuck** is a terminal-based flat file SQL client based on DuckDB. Effortlessly browse files, inspect datasets, write queries with full syntax highlighting, sort and filter millions of rows in milliseconds, and export results — all without leaving your shell.
|
|
39
39
|
|
|
40
40
|
---
|
|
41
41
|
|
|
@@ -82,33 +82,59 @@ OpenDuck automatically recognises and formats queries for:
|
|
|
82
82
|
|
|
83
83
|
### 1. Installation
|
|
84
84
|
|
|
85
|
-
**
|
|
85
|
+
**Recommended: Install via `pip3` from PyPI**
|
|
86
86
|
```bash
|
|
87
|
-
|
|
87
|
+
pip3 install openduck-cli
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
> **Tip:** If your system manages Python externally (e.g., Debian/Ubuntu PEP 668), install into a virtual environment or use `pipx`:
|
|
91
|
+
> ```bash
|
|
92
|
+
> python3 -m venv ~/.openduck-venv
|
|
93
|
+
> ~/.openduck-venv/bin/pip3 install openduck-cli
|
|
94
|
+
> # Create a symlink to run it from anywhere:
|
|
95
|
+
> sudo ln -s ~/.openduck-venv/bin/openduck /usr/local/bin/openduck
|
|
96
|
+
> ```
|
|
97
|
+
|
|
98
|
+
**Via Docker (Zero local setup):**
|
|
99
|
+
```bash
|
|
100
|
+
# Run directly with Docker mounting your current data directory:
|
|
101
|
+
docker run -it --rm -v "$(pwd):/data" python:3.12-slim sh -c "pip3 install --no-cache-dir openduck-cli && openduck"
|
|
102
|
+
|
|
103
|
+
# Or build the included Dockerfile:
|
|
104
|
+
docker build -t openduck .
|
|
105
|
+
docker run -it --rm -v "$(pwd):/data" openduck
|
|
88
106
|
```
|
|
89
107
|
|
|
90
108
|
**From source:**
|
|
91
109
|
```bash
|
|
92
110
|
git clone https://github.com/klandermans/openduck.git
|
|
93
111
|
cd openduck
|
|
94
|
-
|
|
95
|
-
# or
|
|
112
|
+
pip3 install -r requirements.txt
|
|
113
|
+
# or install in editable mode:
|
|
114
|
+
pip3 install -e .
|
|
96
115
|
```
|
|
97
116
|
|
|
98
117
|
> **Note:** `textual[syntax]` installs the required `tree-sitter` and `tree-sitter-sql` engines for syntax highlighting out of the box.
|
|
99
118
|
|
|
119
|
+
---
|
|
120
|
+
|
|
100
121
|
### 2. Run OpenDuck
|
|
101
122
|
|
|
123
|
+
After installing with `pip3`, run it directly from any directory:
|
|
124
|
+
|
|
102
125
|
```bash
|
|
103
|
-
|
|
126
|
+
openduck
|
|
104
127
|
```
|
|
128
|
+
*(or `openduck-cli`)*
|
|
105
129
|
|
|
106
|
-
|
|
130
|
+
If you cloned the source repository:
|
|
107
131
|
|
|
108
132
|
```bash
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
openduck
|
|
133
|
+
python3 openduck.py
|
|
134
|
+
# or
|
|
135
|
+
python3 -m openduck
|
|
136
|
+
# or with the shell wrapper:
|
|
137
|
+
./openduck.sh
|
|
112
138
|
```
|
|
113
139
|
|
|
114
140
|
---
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "openduck-cli"
|
|
7
|
-
version = "0.1.
|
|
8
|
-
description = "
|
|
7
|
+
version = "0.1.2"
|
|
8
|
+
description = "A flat file SQL client based on DuckDB"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Bertatron" }]
|
|
11
11
|
license = "MIT"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|