Git Product home page Git Product logo

gadwall's Introduction

gadwall - Command Line Client to duckdb

gadwall is a pure Python based command line to duckdb

image from wikimedia

Usage

$ python -m gadwall stocks.ddb 
Welcome to the gadwall, a duckdb shell. Type help or ? to list commands.

duckdb> ?

Documented commands (type help <topic>):
========================================
db  help  quit  schema

Undocumented commands:
======================
EOF

duckdb> db
stocks.ddb
duckdb> schema
stocks
duckdb> schema stocks
0 date TIMESTAMP False None False
1 symbol VARCHAR False None False
2 open FLOAT False None False
3 high FLOAT False None False
4 low FLOAT False None False
5 close FLOAT False None False
6 adj_close FLOAT False None False
7 volume INTEGER False None False
duckdb> SELECT symbol, MAX(close) FROM stocks GROUP BY symbol;
GOOG 1827.989990234375
MSFT 231.64999389648438
ORCL 65.30000305175781
duckdb> quit

gadwall's People

Contributors

tebeka avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

a-schommer

gadwall's Issues

IO Error: Cannot open file

In my environment, gadwall always fails like:

C:\temp>python -m gadwall duck.db
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Program Files\Python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Python39\lib\site-packages\gadwall.py", line 75, in <module>
    main()
  File "C:\Program Files\Python39\lib\site-packages\gadwall.py", line 68, in main
    cmd = Gadwall(args.filename.name)
  File "C:\Program Files\Python39\lib\site-packages\gadwall.py", line 22, in __init__
    self.conn = duckdb.connect(file_name)
RuntimeError: IO Error: Cannot open file "duck.db": The process cannot access the file because it is used by another process.

(Sorry, the last sentence may be wrong: it was in German, i translated it myself as i do not know how to force it to English)

I could fix this by two changes: I changed

    parser.add_argument('filename', type=FileType('r'))
    args = parser.parse_args()

    cmd = Gadwall(args.filename.name)

to

    parser.add_argument('filename')
    args = parser.parse_args()

    cmd = Gadwall(args.filename)

In fact, i wonder how the original code could work. But i did not find documentation of what argparse "returns" in case of type=FileType().

My environment:
Windows 10 21H2 (Build 19044.1586), 64bit
Python 3.9.6, 64bit
argparse-1.4.0
duckdb-0.3.2
gadwall-0.1.0

Kind regards,

Arnold

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.