FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Merge pull request #98 from google/field-types · 7dracoder/python-spanner-orm@60b334e · GitHub

Commit 60b334e

Browse files
authored
Merge pull request google#98 from google/field-types
Make pytype infer the correct instance attribute type.
2 parents 146693b + d955f0b commit 60b334e

5 files changed

Lines changed: 51 additions & 33 deletions

File tree

‎spanner_orm/admin/column.py‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
# limitations under the License.
1515
"""Model for interacting with Spanner column schema table."""
1616

17+
import typing
1718
from typing import Type
1819

1920
from spanner_orm import error
@@ -25,13 +26,13 @@ class ColumnSchema(schema.InformationSchema):
2526
"""Model for interacting with Spanner column schema table."""
2627

2728
__table__ = 'information_schema.columns'
28-
table_catalog = field.Field(field.String, primary_key=True)
29-
table_schema = field.Field(field.String, primary_key=True)
30-
table_name = field.Field(field.String, primary_key=True)
31-
column_name = field.Field(field.String, primary_key=True)
32-
ordinal_position = field.Field(field.Integer)
33-
is_nullable = field.Field(field.String)
34-
spanner_type = field.Field(field.String)
29+
table_catalog = typing.cast(str, field.Field(field.String, primary_key=True))
30+
table_schema = typing.cast(str, field.Field(field.String, primary_key=True))
31+
table_name = typing.cast(str, field.Field(field.String, primary_key=True))
32+
column_name = typing.cast(str, field.Field(field.String, primary_key=True))
33+
ordinal_position = typing.cast(int, field.Field(field.Integer))
34+
is_nullable = typing.cast(str, field.Field(field.String))
35+
spanner_type = typing.cast(str, field.Field(field.String))
3536

3637
def nullable(self) -> bool:
3738
return self.is_nullable == 'YES'

‎spanner_orm/admin/index.py‎

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
# limitations under the License.
1515
"""Model for interacting with Spanner index schema table."""
1616

17+
import typing
18+
from typing import Optional
19+
1720
from spanner_orm import field
1821
from spanner_orm.admin import schema
1922

@@ -22,12 +25,13 @@ class IndexSchema(schema.InformationSchema):
2225
"""Model for interacting with Spanner index schema table."""
2326

2427
__table__ = 'information_schema.indexes'
25-
table_catalog = field.Field(field.String, primary_key=True)
26-
table_schema = field.Field(field.String, primary_key=True)
27-
table_name = field.Field(field.String, primary_key=True)
28-
index_name = field.Field(field.String, primary_key=True)
29-
index_type = field.Field(field.String)
30-
parent_table_name = field.Field(field.String, nullable=True)
31-
is_unique = field.Field(field.Boolean)
32-
is_null_filtered = field.Field(field.Boolean)
33-
index_state = field.Field(field.String)
28+
table_catalog = typing.cast(str, field.Field(field.String, primary_key=True))
29+
table_schema = typing.cast(str, field.Field(field.String, primary_key=True))
30+
table_name = typing.cast(str, field.Field(field.String, primary_key=True))
31+
index_name = typing.cast(str, field.Field(field.String, primary_key=True))
32+
index_type = typing.cast(str, field.Field(field.String))
33+
parent_table_name = typing.cast(Optional[str],
34+
field.Field(field.String, nullable=True))
35+
is_unique = typing.cast(bool, field.Field(field.Boolean))
36+
is_null_filtered = typing.cast(bool, field.Field(field.Boolean))
37+
index_state = typing.cast(str, field.Field(field.String))

‎spanner_orm/admin/index_column.py‎

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
# limitations under the License.
1515
"""Model for interacting with Spanner index column schema table."""
1616

17+
import typing
18+
from typing import Optional
19+
1720
from spanner_orm import field
1821
from spanner_orm.admin import schema
1922

@@ -22,12 +25,14 @@ class IndexColumnSchema(schema.InformationSchema):
2225
"""Model for interacting with Spanner index column schema table."""
2326

2427
__table__ = 'information_schema.index_columns'
25-
table_catalog = field.Field(field.String, primary_key=True)
26-
table_schema = field.Field(field.String, primary_key=True)
27-
table_name = field.Field(field.String, primary_key=True)
28-
index_name = field.Field(field.String, primary_key=True)
29-
column_name = field.Field(field.String, primary_key=True)
30-
ordinal_position = field.Field(field.Integer, nullable=True)
31-
column_ordering = field.Field(field.String, nullable=True)
32-
is_nullable = field.Field(field.String)
33-
spanner_type = field.Field(field.String)
28+
table_catalog = typing.cast(str, field.Field(field.String, primary_key=True))
29+
table_schema = typing.cast(str, field.Field(field.String, primary_key=True))
30+
table_name = typing.cast(str, field.Field(field.String, primary_key=True))
31+
index_name = typing.cast(str, field.Field(field.String, primary_key=True))
32+
column_name = typing.cast(str, field.Field(field.String, primary_key=True))
33+
ordinal_position = typing.cast(Optional[int],
34+
field.Field(field.Integer, nullable=True))
35+
column_ordering = typing.cast(Optional[str],
36+
field.Field(field.String, nullable=True))
37+
is_nullable = typing.cast(str, field.Field(field.String))
38+
spanner_type = typing.cast(str, field.Field(field.String))

‎spanner_orm/admin/migration_status.py‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
# limitations under the License.
1515
"""Indicates whether a migration has been applied to the current database."""
1616

17+
import datetime
18+
import typing
19+
1720
from spanner_orm import field
1821
from spanner_orm import model
1922
from spanner_orm.admin import api
@@ -26,6 +29,6 @@ def spanner_api(cls) -> api.SpannerAdminApi:
2629
return api.spanner_admin_api()
2730

2831
__table__ = 'spanner_orm_migrations'
29-
id = field.Field(field.String, primary_key=True)
30-
migrated = field.Field(field.Boolean)
31-
update_time = field.Field(field.Timestamp)
32+
id = typing.cast(str, field.Field(field.String, primary_key=True))
33+
migrated = typing.cast(bool, field.Field(field.Boolean))
34+
update_time = typing.cast(datetime.datetime, field.Field(field.Timestamp))

‎spanner_orm/admin/table.py‎

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
# limitations under the License.
1515
"""Model for interacting with Spanner column schema table."""
1616

17+
import typing
18+
from typing import Optional
19+
1720
from spanner_orm import field
1821
from spanner_orm.admin import schema
1922

@@ -22,8 +25,10 @@ class TableSchema(schema.InformationSchema):
2225
"""Model for interacting with Spanner column schema table."""
2326

2427
__table__ = 'information_schema.tables'
25-
table_catalog = field.Field(field.String, primary_key=True)
26-
table_schema = field.Field(field.String, primary_key=True)
27-
table_name = field.Field(field.String, primary_key=True)
28-
parent_table_name = field.Field(field.String, nullable=True)
29-
on_delete_action = field.Field(field.String, nullable=True)
28+
table_catalog = typing.cast(str, field.Field(field.String, primary_key=True))
29+
table_schema = typing.cast(str, field.Field(field.String, primary_key=True))
30+
table_name = typing.cast(str, field.Field(field.String, primary_key=True))
31+
parent_table_name = typing.cast(Optional[str],
32+
field.Field(field.String, nullable=True))
33+
on_delete_action = typing.cast(Optional[str],
34+
field.Field(field.String, nullable=True))

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL