html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,issue,performed_via_github_app
https://github.com/simonw/sqlite-utils/issues/412#issuecomment-1155364367,https://api.github.com/repos/simonw/sqlite-utils/issues/412,1155364367,IC_kwDOCGYnMM5E3XYP,9599,2022-06-14T15:36:28Z,2022-06-14T15:36:28Z,OWNER,"Here's as far as I got with my initial prototype, in `sqlite_utils/pandas.py`:
```python
from .db import Database as _Database, Table as _Table, View as _View
import pandas as pd
from typing import (
Iterable,
Union,
Optional,
)
class Database(_Database):
def query(
self, sql: str, params: Optional[Union[Iterable, dict]] = None
) -> pd.DataFrame:
return pd.DataFrame(super().query(sql, params))
def table(self, table_name: str, **kwargs) -> Union[""Table"", ""View""]:
""Return a table object, optionally configured with default options.""
klass = View if table_name in self.view_names() else Table
return klass(self, table_name, **kwargs)
class PandasQueryable:
def rows_where(
self,
where: str = None,
where_args: Optional[Union[Iterable, dict]] = None,
order_by: str = None,
select: str = ""*"",
limit: int = None,
offset: int = None,
) -> pd.DataFrame:
return pd.DataFrame(
super().rows_where(
where,
where_args,
order_by=order_by,
select=select,
limit=limit,
offset=offset,
)
)
class Table(PandasQueryable, _Table):
pass
class View(PandasQueryable, _View):
pass
```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1160182768,