|
3 | 3 |
|
4 | 4 | import numpy as np
|
5 | 5 | import pandas as pd
|
| 6 | +from gspread import Spreadsheet, Worksheet |
6 | 7 | from gspread.exceptions import (
|
7 | 8 | APIError,
|
8 | 9 | NoValidUrlKeyFound,
|
9 | 10 | SpreadsheetNotFound,
|
10 | 11 | WorksheetNotFound,
|
11 | 12 | )
|
12 |
| -from gspread.models import Worksheet |
13 |
| -from gspread.utils import fill_gaps, rightpad |
| 13 | +from gspread.utils import ValueInputOption, ValueRenderOption, fill_gaps, rightpad |
14 | 14 |
|
15 | 15 | from gspread_pandas.client import Client
|
16 | 16 | from gspread_pandas.conf import default_scope
|
@@ -93,17 +93,16 @@ class Spread:
|
93 | 93 | for the expected format
|
94 | 94 | """
|
95 | 95 |
|
96 |
| - #: `(gspread.models.Spreadsheet)` - Currently open Spreadsheet |
97 |
| - spread = None |
| 96 | + #: `(gspread.spreadsheet.Spreadsheet)` - Currently open Spreadsheet |
| 97 | + spread: Spreadsheet = None |
98 | 98 |
|
99 |
| - #: `(gspread.models.Worksheet)` - Currently open Worksheet |
100 |
| - sheet = None |
| 99 | + #: `(gspread.worksheet.Worksheet)` - Currently open Worksheet |
| 100 | + sheet: Worksheet = None |
101 | 101 |
|
102 | 102 | #: `(Client)` - Instance of gspread_pandas
|
103 | 103 | #: :class:`Client <gspread_pandas.client.Client>`
|
104 | 104 | client = None
|
105 | 105 |
|
106 |
| - # chunk range request: https://github.com/burnash/gspread/issues/375 |
107 | 106 | _max_range_chunk_size = 1000000
|
108 | 107 |
|
109 | 108 | # `(dict)` - Spreadsheet metadata
|
@@ -304,7 +303,7 @@ def create_sheet(self, name, rows=1, cols=1):
|
304 | 303 | self.refresh_spread_metadata()
|
305 | 304 | self.open_sheet(name)
|
306 | 305 |
|
307 |
| - def _get_columns(self, cols, value_render_option="FORMATTED_VALUE"): |
| 306 | + def _get_columns(self, cols, value_render_option=ValueRenderOption.formatted): |
308 | 307 | """
|
309 | 308 | Returns a list of all values in `cols`.
|
310 | 309 |
|
@@ -407,12 +406,16 @@ def sheet_to_df(
|
407 | 406 | header_rows + start_row - 1,
|
408 | 407 | col_names,
|
409 | 408 | unformatted_columns,
|
410 |
| - "UNFORMATTED_VALUE", |
| 409 | + ValueRenderOption.unformatted, |
411 | 410 | )
|
412 | 411 |
|
413 | 412 | if formula_columns:
|
414 | 413 | self._fix_value_render(
|
415 |
| - df, header_rows + start_row - 1, col_names, formula_columns, "FORMULA" |
| 414 | + df, |
| 415 | + header_rows + start_row - 1, |
| 416 | + col_names, |
| 417 | + formula_columns, |
| 418 | + ValueRenderOption.formula, |
416 | 419 | )
|
417 | 420 |
|
418 | 421 | df = set_col_names(df, col_names)
|
@@ -509,13 +512,13 @@ def update_cells(self, start, end, vals, sheet=None, raw_columns=None):
|
509 | 512 | raw_columns, list
|
510 | 513 | ), "raw_columns must be a list of ints"
|
511 | 514 | raw_cells = [i for i in cells if i.col in raw_columns]
|
512 |
| - self.sheet.update_cells(raw_cells, "RAW") |
| 515 | + self.sheet.update_cells(raw_cells, ValueInputOption.raw) |
513 | 516 | else:
|
514 | 517 | raw_cells = []
|
515 | 518 |
|
516 | 519 | user_cells = [i for i in cells if i not in raw_cells]
|
517 | 520 | if user_cells:
|
518 |
| - self.sheet.update_cells(user_cells, "USER_ENTERED") |
| 521 | + self.sheet.update_cells(user_cells, ValueInputOption.user_entered) |
519 | 522 |
|
520 | 523 | def _ensure_sheet(self, sheet):
|
521 | 524 | if sheet is not None:
|
@@ -784,7 +787,7 @@ def _fix_merge_values(self, vals):
|
784 | 787 | ----------
|
785 | 788 | vals : list
|
786 | 789 | Values returned by
|
787 |
| - :meth:`get_all_values() <gspread.models.Sheet.get_all_values()>_` |
| 790 | + :meth:`get_all_values() <gspread.worksheet.Worksheet.get_all_values()>_` |
788 | 791 |
|
789 | 792 |
|
790 | 793 | Returns
|
|
0 commit comments