Repository: burnash/gspread

Issue:
Error with numericise ignore specific column
**Describe the bug**
When reading from a table with a column that contains a mixture of integers and comma separated integers (which should be read as strings), gspread defaults to numericising the entire column and ignoring all the commas. The get_all_record method has a parameter (numericise_ignore) which is intended to not numericise specific column indexes of a table. However, when a specific column index is passed, the rows and columns of that index are not numericising. 

**To Reproduce**
Steps to reproduce the behavior:
1. Read https://docs.google.com/spreadsheets/d/1hrBQudmuaZN3b0CUZqsMl9fiV7B8ygUCpTR1zwozRBQ/edit?usp=sharing using gspread.
2. When running 'get_all_records' pass 'numericise_ignore=[3]' as a parameter
3. Examine output

**Expected behavior**
All of column 3 will not be numericised (each value will be a string). However the first two rows of the first column will be strings instead of integers. This is the bug.

**Code example***
```
import gspread
gc = gspread.service_account()
sh = gc.open_by_key('1hrBQudmuaZN3b0CUZqsMl9fiV7B8ygUCpTR1zwozRBQ')
worksheet = 'Sheet1'
worksheet = sh.worksheet(worksheet)
vals = worksheet.get_all_records(numericise_ignore=[3])
vals
```

**Screenshots**
<img width="588" alt="image" src="https://user-images.githubusercontent.com/22847742/175627059-1bd43d4b-8bbf-491e-a403-6803b879804c.png">
<img width="579" alt="image" src="https://user-images.githubusercontent.com/22847742/175633597-9d4bdf3e-cbf0-455e-93fc-60f4d9d06964.png">
<img width="353" alt="image" src="https://user-images.githubusercontent.com/22847742/175627868-44d9437b-7068-4de0-9b15-7b92cea9373b.png">


**Environment info:**
- Operating System: macOS
- Python version: 3.9.12
- gspread version: 5.3.2


Discussion:

Patch:
diff --git a/gspread/utils.py b/gspread/utils.py
index c53ac3f..b824079 100644
--- a/gspread/utils.py
+++ b/gspread/utils.py
@@ -182,16 +182,16 @@ def numericise(
 
 
 def numericise_all(
-    input,
+    values,
     empty2zero=False,
     default_blank="",
     allow_underscores_in_numeric_literals=False,
-    ignore=None,
+    ignore=[],
 ):
     """Returns a list of numericised values from strings except those from the
     row specified as ignore.
 
-    :param list input: Input row
+    :param list values: Input row
     :param bool empty2zero: (optional) Whether or not to return empty cells
         as 0 (zero). Defaults to ``False``.
     :param str default_blank: Which value to use for blank cells,
@@ -201,18 +201,18 @@ def numericise_all(
     :param list ignore: List of ints of indices of the row (index 1) to ignore
         numericising.
     """
-    ignored_rows = [input[x - 1] for x in (ignore or [])]
     numericised_list = [
-        s
-        if s in ignored_rows
+        values[index]
+        if index + 1 in ignore
         else numericise(
-            s,
+            values[index],
             empty2zero=empty2zero,
             default_blank=default_blank,
             allow_underscores_in_numeric_literals=allow_underscores_in_numeric_literals,
         )
-        for s in input
+        for index in range(len(values))
     ]
+
     return numericised_list
 
 
diff --git a/gspread/worksheet.py b/gspread/worksheet.py
index 1974696..3679df3 100644
--- a/gspread/worksheet.py
+++ b/gspread/worksheet.py
@@ -428,7 +428,7 @@ class Worksheet:
         head=1,
         default_blank="",
         allow_underscores_in_numeric_literals=False,
-        numericise_ignore=None,
+        numericise_ignore=[],
         value_render_option=None,
         expected_headers=None,
     ):
@@ -449,7 +449,7 @@ class Worksheet:
         :param bool allow_underscores_in_numeric_literals: (optional) Allow
             underscores in numeric literals, as introduced in PEP 515
         :param list numericise_ignore: (optional) List of ints of indices of
-            the row (starting at 1) to ignore numericising, special use
+            the columns (starting at 1) to ignore numericising, special use
             of ['all'] to ignore numericising on all columns.
         :param str value_render_option: (optional) Determines how values should
             be rendered in the the output. See `ValueRenderOption`_ in


Test patch:
diff --git a/tests/utils_test.py b/tests/utils_test.py
index 90cf3c2..8e6de9e 100644
--- a/tests/utils_test.py
+++ b/tests/utils_test.py
@@ -78,6 +78,21 @@ class UtilsTest(unittest.TestCase):
         self.assertEqual(utils.numericise(""), "")
         self.assertEqual(utils.numericise(None), None)
 
+        # test numericise_all
+        inputs = ["1", "2", "3"]
+        expected = [1, 2, 3]
+        self.assertEqual(utils.numericise_all(inputs), expected)
+
+        # skip non digit values
+        inputs + ["a"]
+        expected + ["a"]
+        self.assertEqual(utils.numericise_all(inputs), expected)
+
+        # skip ignored columns
+        inputs + ["5", "5"]
+        expected + ["5", 5]
+        self.assertEqual(utils.numericise_all(inputs, ignore=[5]), expected)
+
     def test_a1_to_grid_range_simple(self):
         expected_single_dimension = {
             "startRowIndex": 0,