chdb-io / chdb

chDB is an in-process OLAP SQL Engine 🚀 powered by ClickHouse
https://clickhouse.com/chdb
Apache License 2.0
2.13k stars 75 forks source link

Include an entrypoint for compatibility with pipx #125

Open simonw opened 1 year ago

simonw commented 1 year ago

I'd like to be able to do this:

pipx install chdb
chdb "SELECT 1,'abc'" Pretty

As an alternative to this:

pip install chdb
python3 -m chdb "SELECT 1,'abc'" Pretty

The reason I want this is that pipx automates the process of creating a separate virtual environment for each tool, so it lets me try out tools like chdb without manually creating a virtual environment for it.

This currently doesn't work, because the chdb package does not declare a CLI tool entrypoint. I get this error:

pipx install chdb
No apps associated with package chdb or its dependencies. If you are
attempting to install a library, pipx should not be used. Consider using pip
or a similar tool instead.

I think one way to implement this would be to add this to setup.py:

    entry_points="""
        [console_scripts]
        chdb=chdb.__main__:main
    """,
lmangani commented 1 year ago

Hey @simonw thanks for the suggestion! If the method you mentioned works, feel free to raise a PR and we'll try it out!

I'm not an expert but my understanding (confirmed by the output example) was pipx should not be used for libraries such as chdb. Could chdb-cli perhaps be a better target for this request?

simonw commented 1 year ago

I didn't know about chdb-cli! Does that offer the same functionality as python -m chdb or is it meant to solve a different purpose?

Personally I really like the pattern of Python libraries which offer a CLI tool as part of the same package - my https://sqlite-utils.datasette.io and https://llm.datasette.io packages both do this - but I understand that tastes on this may differ.