chdb icon indicating copy to clipboard operation
chdb copied to clipboard

Include an entrypoint for compatibility with pipx

Open simonw opened this issue 1 year ago • 2 comments

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
    """,

simonw avatar Oct 23 '23 18:10 simonw

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?

lmangani avatar Oct 23 '23 19:10 lmangani

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.

simonw avatar Oct 23 '23 20:10 simonw