home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

6 rows where issue = 465815372 sorted by updated_at descending

✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: created_at (date), updated_at (date)

user 1

  • simonw 6

issue 1

  • Experiment with type hints · 6 ✖

author_association 1

  • OWNER 6
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
901452199 https://github.com/simonw/sqlite-utils/issues/37#issuecomment-901452199 https://api.github.com/repos/simonw/sqlite-utils/issues/37 IC_kwDOCGYnMM41uxGn simonw 9599 2021-08-18T21:48:57Z 2021-08-18T21:48:57Z OWNER

I did a bunch of work on this in #266. The library is now pretty thoroughly typed, and I even found a couple of bugs using mypy along the way: #313 and #315.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Experiment with type hints 465815372  
868881190 https://github.com/simonw/sqlite-utils/issues/37#issuecomment-868881190 https://api.github.com/repos/simonw/sqlite-utils/issues/37 MDEyOklzc3VlQ29tbWVudDg2ODg4MTE5MA== simonw 9599 2021-06-25T23:24:28Z 2021-06-25T23:24:28Z OWNER

Maybe I could release a separate Python package types-sqlite-utils-numpy which adds an over-ridden type definition that includes the numpy types?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Experiment with type hints 465815372  
868881033 https://github.com/simonw/sqlite-utils/issues/37#issuecomment-868881033 https://api.github.com/repos/simonw/sqlite-utils/issues/37 MDEyOklzc3VlQ29tbWVudDg2ODg4MTAzMw== simonw 9599 2021-06-25T23:23:49Z 2021-06-25T23:23:49Z OWNER

Twitter conversation about how to add types to the .create_table(columns=) parameter: https://twitter.com/simonw/status/1408532867592818693

Anyone know how to write a mypy type definition for this?

{"id": int, "name": str, "image": bytes, "weight": float}

It's a dict where keys are strings and values are one of int/str/bytes/float (weird API design I know, but I designed this long before I was thinking about mypy)

Looks like this could work:

python def create_table( self, name, columns: Dict[str, Union[Type[int], Type[bytes], Type[str], Type[float]]], pk=None, foreign_keys=None, column_order=None, not_null=None, defaults=None, hash_id=None, extracts=None, ): Except... that method can optionally also accept numpy types if numpy is installed. I don't know if it's possible to dynamically change a signature based on an import, since mypy is a static type analyzer and doesn't ever execute the code.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Experiment with type hints 465815372  
509681590 https://github.com/simonw/sqlite-utils/issues/37#issuecomment-509681590 https://api.github.com/repos/simonw/sqlite-utils/issues/37 MDEyOklzc3VlQ29tbWVudDUwOTY4MTU5MA== simonw 9599 2019-07-09T15:07:12Z 2021-06-22T18:17:53Z OWNER

Here's a magic incantation for generating types detected through running the tests with https://github.com/Instagram/MonkeyType

pip install pytest-monkeytype pytest --monkeytype-output=./monkeytype.sqlite3 monkeytype list-modules monkeytype apply sqlite_utils.utils monkeytype apply sqlite_utils.cli monkeytype apply sqlite_utils.db

Here's the result: https://github.com/simonw/sqlite-utils/commit/d18c694fc25b7dd3d76e250c77ddf56d10ddf935

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Experiment with type hints 465815372  
509686432 https://github.com/simonw/sqlite-utils/issues/37#issuecomment-509686432 https://api.github.com/repos/simonw/sqlite-utils/issues/37 MDEyOklzc3VlQ29tbWVudDUwOTY4NjQzMg== simonw 9599 2019-07-09T15:18:49Z 2019-07-09T15:18:49Z OWNER

Interestingly if I run that against my monkeytype branch I get the following errors (subset): _______________________________________________________________________________________ mypy db.py ________________________________________________________________________________________ sqlite_utils/db.py:15: error: No library stub file for module 'numpy' sqlite_utils/db.py:15: note: (Stub files are from https://github.com/python/typeshed) sqlite_utils/db.py:197: error: Incompatible types in assignment (expression has type "Union[Dict[str, int], Dict[str, Union[int, str]], Dict[str, str], Dict[<nothing>, <nothing>]]", variable has type "Union[Dict[str, int], Dict[str, Union[int, str]], Dict[str, str], None]") sqlite_utils/db.py:204: error: Item "None" of "Union[Dict[str, int], Dict[str, Union[int, str]], Dict[str, str], None]" has no attribute "__iter__" (not iterable) sqlite_utils/db.py:206: error: Argument 1 to "set" has incompatible type "Union[Dict[str, int], Dict[str, Union[int, str]], Dict[str, str], None]"; expected "Iterable[str]" sqlite_utils/db.py:211: error: Item "None" of "Optional[Tuple[str, str, str]]" has no attribute "index" sqlite_utils/db.py:211: error: Unsupported right operand type for in ("Optional[Tuple[str, str, str]]") sqlite_utils/db.py:232: error: Unsupported right operand type for in ("Union[Dict[str, int], Dict[str, Union[int, str]], Dict[str, str], None]") sqlite_utils/db.py:234: error: Value of type "Union[Dict[str, int], Dict[str, Union[int, str]], Dict[str, str], None]" is not indexable sqlite_utils/db.py:307: error: Need type annotation for 'table_sql' (hint: "table_sql: Dict[<type>, <type>] = ...") sqlite_utils/db.py:427: error: Item "int" of "Union[int, None, str]" has no attribute "startswith" sqlite_utils/db.py:427: error: Item "None" of "Union[int, None, str]" has no attribute "startswith" sqlite_utils/db.py:434: error: Incompatible types in assignment (expression has type "List[Any]", target has type "int") sqlite_utils/db.py:438: error: Incompatible types in assignment (expression has type "object", target has type "int") sqlite_utils/db.py:670: error: Need type annotation for 'all_column_types' (hint: "all_column_types: Dict[<type>, <type>] = ...") sqlite_utils/db.py:757: error: Incompatible types in assignment (expression has type "List[Any]", variable has type "chain[Any]") sqlite_utils/db.py:761: error: Argument 1 to "create" of "Table" has incompatible type "Dict[str, Union[Type[str], Type[int], Type[bool], Type[time], Type[float]]]"; expected "Dict[str, Union[Type[str], Type[int], Type[bool], Type[time]]]" sqlite_utils/db.py:770: error: Need type annotation for 'all_columns' (hint: "all_columns: Set[<type>] = ...") sqlite_utils/db.py:773: error: Incompatible types in assignment (expression has type "List[Any]", variable has type "Set[Any]") sqlite_utils/db.py:775: error: "Set[Any]" has no attribute "insert" sqlite_utils/db.py:797: error: Need type annotation for 'values' (hint: "values: List[<type>] = ...") sqlite_utils/db.py:811: error: Argument 1 to "add_missing_columns" of "Table" has incompatible type "chain[Any]"; expected "Union[List[Union[Dict[str, Union[int, str]], Dict[str, Union[int, str, List[str]]]]], List[Dict[str, Union[str, int, float]]], List[Dict[str, Union[int, str]]]]"

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Experiment with type hints 465815372  
509685610 https://github.com/simonw/sqlite-utils/issues/37#issuecomment-509685610 https://api.github.com/repos/simonw/sqlite-utils/issues/37 MDEyOklzc3VlQ29tbWVudDUwOTY4NTYxMA== simonw 9599 2019-07-09T15:16:52Z 2019-07-09T15:16:52Z OWNER

Also interesting: pip install pytest-mypy pytest --mypy

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Experiment with type hints 465815372  

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issue_comments] (
   [html_url] TEXT,
   [issue_url] TEXT,
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [created_at] TEXT,
   [updated_at] TEXT,
   [author_association] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [issue] INTEGER REFERENCES [issues]([id])
, [performed_via_github_app] TEXT);
CREATE INDEX [idx_issue_comments_issue]
                ON [issue_comments] ([issue]);
CREATE INDEX [idx_issue_comments_user]
                ON [issue_comments] ([user]);
Powered by Datasette · Queries took 29.915ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows