Skip to content

Commit 42c9f82

Browse files
committed
TST: generate_bq_scheme deprecation and tests
1 parent a5276cf commit 42c9f82

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

doc/source/whatsnew/v0.17.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ Google BigQuery Enhancements
331331
- Added ability to automatically create a dataset using the :func:`pandas.io.gbq.to_gbq` function if destination dataset does not exist. (:issue:`11121`).
332332
- Added ability to replace an existing table and schema when calling the :func:`pandas.io.gbq.to_gbq` function via the ``if_exists`` argument. See the :ref:`docs <io.bigquery>` for more details (:issue:`8325`).
333333
- ``InvalidColumnOrder`` and ``InvalidPageToken`` in the gbq module will raise ``ValueError`` instead of ``IOError``.
334+
- The ``generate_bq_schema()`` function is now deprecated and will be removed in a future version (:issue:`11121`)
334335

335336
.. _whatsnew_0170.enhancements.other:
336337

pandas/io/gbq.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import warnings
12
from datetime import datetime
23
import json
34
import logging
@@ -513,6 +514,14 @@ def to_gbq(dataframe, destination_table, project_id, chunksize=10000,
513514
connector.load_data(dataframe, dataset_id, table_id, chunksize, verbose)
514515

515516

517+
def generate_bq_schema(df, default_type='STRING'):
518+
519+
# deprecation TimeSeries, #11121
520+
warnings.warn("generate_bq_schema is deprecated and will be removed in a future version",
521+
FutureWarning, stacklevel=2)
522+
523+
return _generate_bq_schema(df, default_type=default_type)
524+
516525
def _generate_bq_schema(df, default_type='STRING'):
517526
""" Given a passed df, generate the associated Google BigQuery schema.
518527
@@ -541,9 +550,6 @@ def _generate_bq_schema(df, default_type='STRING'):
541550

542551
return {'fields': fields}
543552

544-
generate_bq_schema = deprecate('generate_bq_schema', _generate_bq_schema)
545-
546-
547553
class _Table(GbqConnector):
548554

549555
def __init__(self, project_id, dataset_id, reauth=False):
@@ -794,4 +800,3 @@ def tables(self, dataset_id):
794800
return table_list
795801
except self.http_error as ex:
796802
self.process_http_error(ex)
797-

pandas/io/tests/test_gbq.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,19 @@ def make_mixed_dataframe_v2(test_size):
120120
index=range(test_size))
121121

122122

123+
def test_generate_bq_schema_deprecated():
124+
# 11121 Deprecation of generate_bq_schema
125+
with tm.assert_produces_warning(FutureWarning):
126+
df = make_mixed_dataframe_v2(10)
127+
gbq.generate_bq_schema(df)
128+
123129
class TestGBQConnectorIntegration(tm.TestCase):
124130
def setUp(self):
125131
test_requirements()
126132

127133
if not PROJECT_ID:
128134
raise nose.SkipTest("Cannot run integration tests without a project id")
129-
135+
130136
self.sut = gbq.GbqConnector(PROJECT_ID)
131137

132138
def test_should_be_able_to_make_a_connector(self):

0 commit comments

Comments
 (0)