Skip to content

Commit b19d1b9

Browse files
committed
api data keys no longer converted to snake case
1 parent 66170fe commit b19d1b9

File tree

5 files changed

+45
-175
lines changed

5 files changed

+45
-175
lines changed

google_objects/__init__.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
from apiclient import discovery
66

77
from google_objects.auth import service_account_creds
8-
from google_objects.utils import set_private_attrs
9-
from google_objects.utils import keys_to_snake, keys_to_camel
108

119
# sets default logging handler to avoid "No handler found" warnings.
1210
try:
@@ -66,8 +64,7 @@ def __init__(self, **kwargs):
6664
"""Set Resource corresponding **kwargs
6765
to private attributes.
6866
"""
69-
self.data = keys_to_snake(kwargs)
70-
set_private_attrs(self, kwargs)
67+
self.data = kwargs
7168

7269
@classmethod
7370
def from_existing(cls, data, *args):
@@ -77,7 +74,7 @@ def serialize(self):
7774
"""convert __dict__ keys to camel case, get
7875
intersection of this and _properties
7976
"""
80-
return keys_to_camel(self.data)
77+
return self.data
8178

8279

8380
from .drive.core import DriveClient

google_objects/drive/core.py

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,10 @@
1111
import logging
1212

1313
from .. import GoogleClient, GoogleObject
14-
from ..utils import keys_to_snake, keys_to_camel
1514

1615
log = logging.getLogger(__name__)
1716

1817

19-
# TODO:
20-
# i/ add greater permissions functionality
21-
# ii/ change .from_existing to .from_raw
22-
# add SKELETON to set attributes to null when not set
23-
24-
2518
class DriveClient(GoogleClient):
2619

2720
"""Google Drive Wrapper Object,
@@ -125,11 +118,11 @@ def watch_file(self, file_id,
125118
'type': type,
126119
'address': callback or self.callback
127120
}
128-
result = self.resource.files().watch(
121+
resp = self.resource.files().watch(
129122
fileId=file_id, body=req_body
130123
).execute()
131124

132-
return keys_to_snake(result)
125+
return resp
133126

134127
def create_permission(self, file_id,
135128
permission, message=None, notification=True):
@@ -207,7 +200,7 @@ def __init__(self, client=None, **kwargs):
207200
self.__updates = []
208201

209202
# initalize the other properties
210-
super(self.__class__, self).__init__(**kwargs)
203+
super().__init__(**kwargs)
211204

212205
@property
213206
def id(self):
@@ -223,15 +216,15 @@ def name(self, val):
223216

224217
@property
225218
def url(self):
226-
return self.data['web_view_link']
219+
return self.data['webViewLink']
227220

228221
@property
229222
def type_prefix(self):
230-
return self.data['type_prefix']
223+
return self.data['typePrefix']
231224

232225
@property
233226
def type(self):
234-
return self.data['mime_type']
227+
return self.data['mimeType']
235228

236229
@type.setter
237230
def type(self, value):
@@ -244,15 +237,15 @@ def type(self, value):
244237
if value not in self._types:
245238
raise ValueError
246239

247-
self.data['mime_type'] = '{}{}'.format(self.type_prefix, file_type)
240+
self.data['mimeType'] = '{}{}'.format(self.type_prefix, file_type)
248241

249242
@property
250243
def parents(self):
251-
return self._parents
244+
return self.data['parents']
252245

253246
@parents.setter
254247
def parents(self, value):
255-
self._parents = value
248+
self.data['parents'] = value
256249

257250
def copy(self, name=None, parents=[]):
258251
"""Copies self, optionally altering
@@ -267,7 +260,7 @@ def copy(self, name=None, parents=[]):
267260
return self.client.copy_file(self.id, new)
268261

269262
def permissions(self):
270-
return [Permission(self, **each) for each in self._permissions]
263+
return [Permission(self, **each) for each in self.data['permissions']]
271264

272265
def add_permission(self, email, **kwargs):
273266
"""initializes new permission objects and
@@ -290,7 +283,7 @@ def add_permission(self, email, **kwargs):
290283

291284
return created
292285

293-
def start_watching(self, **kwargs):
286+
def watch(self, **kwargs):
294287
"""Attempts to start receiving push notifications for this file.
295288
296289
:channel_id: UUID
@@ -317,51 +310,36 @@ class Permission(GoogleObject):
317310
# constructors
318311

319312
def __init__(self, file=None, **kwargs):
320-
321313
"""Initialize Permission Object
322314
323315
:data: <Dict> of Permission file data
324316
:level: one of reader, commenter, writer, or owner
325317
326318
"""
327-
328319
self.file = file
329-
330-
# self.email = kwargs.get('email', '')
331-
self.role = kwargs.pop('role', self._default_role)
332-
self.type = kwargs.pop('type', self._default_type)
333-
334-
# initalize the other properties
335320
super().__init__(**kwargs)
336321

337-
@classmethod
338-
def from_existing(cls, data, file):
339-
"""initiates existing permissions object"""
340-
341-
new_data = keys_to_snake(data)
342-
return cls(file, **new_data)
343-
344322
@property
345323
def id(self):
346-
return self._id
324+
return self.data['id']
347325

348326
@property
349327
def role(self):
350-
return self._role
328+
return self.data.get('role', self._default_role)
351329

352330
@role.setter
353331
def role(self, value):
354332
if value in self._role_levels:
355-
self._role = value
333+
self.data['role'] = value
356334

357335
@property
358336
def type(self):
359-
return self._type
337+
return self.data.get('type', self._default_type)
360338

361339
@type.setter
362340
def type(self, value):
363341
if value in self._type_levels:
364-
self._type = value
342+
self.data['type'] = value
365343

366344
@property
367345
def email(self):

google_objects/sheets/core.py

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import logging
1111

1212
from .. import GoogleClient, GoogleObject
13-
from ..utils import keys_to_snake
1413

1514
log = logging.getLogger(__name__)
1615

@@ -130,7 +129,7 @@ def get_values(self, spreadsheet_id, range_name):
130129
range=range_name
131130
).execute()
132131

133-
return Block.from_existing(data, client=self)
132+
return Block.from_existing(data, self)
134133

135134
def update_values(self, spreadsheet_id, range_name, values, format='RAW'):
136135
data = self.resource.spreadsheets().values().update(
@@ -180,11 +179,11 @@ def __init__(self, client=None, **kwargs):
180179
self.__updates = []
181180

182181
# initalize the other properties
183-
super(self.__class__, self).__init__(**kwargs)
182+
super().__init__(**kwargs)
184183

185184
@property
186185
def id(self):
187-
return self.data['spreadsheet_id']
186+
return self.data['spreadsheetId']
188187

189188
@property
190189
def title(self):
@@ -244,8 +243,8 @@ def named_ranges(self):
244243
def set_sheet_id(rng):
245244
"""If sheet_id isn't present, set it to the ID of the first sheet.
246245
"""
247-
if 'sheet_id' not in rng['range']:
248-
rng['range']['sheet_id'] = 0
246+
if 'sheetId' not in rng['range']:
247+
rng['range']['sheetId'] = 0
249248

250249
return rng
251250

@@ -291,8 +290,8 @@ def __init__(self, spreadsheet, named_range):
291290

292291
@property
293292
def sheet_id(self):
294-
if 'sheet_id' in self.range:
295-
return self.range['sheet_id']
293+
if 'sheetId' in self.range:
294+
return self.range['sheetId']
296295

297296
@property
298297
def sheet_name(self):
@@ -345,34 +344,25 @@ class Sheet(GoogleObject):
345344
def __init__(self, spreadsheet=None, **kwargs):
346345
"""Creates a new Sheet Object"""
347346
self.spreadsheet = spreadsheet
347+
# self.properties = kwargs.get('properties', {})
348348

349-
# initalize the other properties
350-
super(self.__class__, self).__init__(**kwargs)
351-
352-
self.properties = kwargs.get('properties', {})
353-
354-
@classmethod
355-
def from_existing(cls, data, spreadsheet):
356-
"""initiates using existing Sheet resource"""
357-
358-
new_data = keys_to_snake(data)
359-
return cls(spreadsheet, **new_data)
349+
super().__init__(**kwargs)
360350

361351
@property
362352
def properties(self):
363353
return self.data['properties']
364354

365355
@properties.setter
366356
def properties(self, value):
367-
if 'sheet_id' in value:
368-
self.properties['sheet_id'] = value['sheet_id']
357+
if 'sheetId' in value:
358+
self.properties['sheetId'] = value['sheetId']
369359

370360
if 'title' in value:
371361
self.properties['title'] = value['title']
372362

373363
@property
374364
def id(self):
375-
return self.properties.get('sheet_id')
365+
return self.properties.get('sheetId')
376366

377367
@property
378368
def title(self):
@@ -407,14 +397,7 @@ def __init__(self, client=None, spreadsheet=None, **kwargs):
407397
self.spreadsheet = spreadsheet
408398

409399
# initalize the other properties
410-
super(self.__class__, self).__init__(**kwargs)
411-
412-
@classmethod
413-
def from_existing(cls, data, client, spreadsheet=None):
414-
"""initiates using existing ValueRange resource"""
415-
416-
new_data = keys_to_snake(data)
417-
return cls(client, spreadsheet, **new_data)
400+
super().__init__(**kwargs)
418401

419402
def __iter__(self):
420403
return self.yield_rows()

google_objects/slides/core.py

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
from google_objects.slides import updates
1414
from google_objects import GoogleClient, GoogleObject
15-
from google_objects.utils import keys_to_snake, set_private_attrs
1615

1716
log = logging.getLogger(__name__)
1817

@@ -95,9 +94,8 @@ def __init__(self, client=None, **kwargs):
9594
"""
9695
self.client = client
9796
self.__updates = []
98-
self.data = kwargs
9997

100-
# super(Presentation, self).__init__(**kwargs)
98+
super().__init__(**kwargs)
10199

102100
@classmethod
103101
def from_existing(cls, data, *args):
@@ -192,8 +190,7 @@ class Page(GoogleObject):
192190

193191
def __init__(self, presentation=None, **kwargs):
194192
self.presentation = presentation
195-
self.data = kwargs
196-
# super(Page, self).__init__(**kwargs)
193+
super().__init__(**kwargs)
197194

198195
@property
199196
def id(self):
@@ -299,8 +296,8 @@ class PageElement(GoogleObject):
299296
def __init__(self, presentation=None, page=None, **kwargs):
300297
self.presentation = presentation
301298
self.page = page
302-
self.data = kwargs
303-
# super(PageElement, self).__init__(**kwargs)
299+
300+
super().__init__(**kwargs)
304301

305302
@property
306303
def id(self):
@@ -330,11 +327,10 @@ class Shape(PageElement):
330327
"""Docstring for Shape."""
331328

332329
def __init__(self, presentation=None, page=None, **kwargs):
333-
# set private attrs not done by base class
334-
shape = kwargs.pop('shape')
335-
set_private_attrs(self, shape)
330+
super().__init__(presentation, page, **kwargs)
336331

337-
super(Shape, self).__init__(presentation, page, **kwargs)
332+
shape = kwargs.pop('shape')
333+
self.data.update(shape)
338334

339335
@property
340336
def text(self):
@@ -360,10 +356,10 @@ class Table(PageElement):
360356
# that works in tandem with corresponding cells
361357

362358
def __init__(self, presentation=None, page=None, **kwargs):
363-
table = kwargs.pop('table')
364-
set_private_attrs(self, table)
359+
super().__init__(presentation, page, **kwargs)
365360

366-
super(Table, self).__init__(presentation, page, **kwargs)
361+
table = kwargs.pop('table')
362+
self.data.update(table)
367363

368364
def __iter__(self):
369365
return self.cells()
@@ -388,7 +384,7 @@ class Cell(GoogleObject):
388384

389385
def __init__(self, table, **kwargs):
390386
self.table = table
391-
super(Table.Cell, self).__init__(**kwargs)
387+
super().__init__(**kwargs)
392388

393389
@property
394390
def text(self):
@@ -427,8 +423,8 @@ def __init__(self, presentation=None, page=None, element=None, **kwargs):
427423
self.presentation = presentation
428424
self.page = page
429425
self.element = element
430-
self.data = kwargs
431-
# super(TextContent, self).__init__(**kwargs)
426+
427+
super().__init__(**kwargs)
432428

433429
def yield_elements(self):
434430
for text_element in self.data['textElements']:
@@ -454,7 +450,6 @@ class TextElement(GoogleObject):
454450
def __init__(self, text_content, page_element, **kwargs):
455451
self.text_content = text_content
456452
self.page_element = page_element
457-
self.data = kwargs
458453

459454
# set update partials
460455
self.delete_text = functools.partial(
@@ -470,7 +465,7 @@ def __init__(self, text_content, page_element, **kwargs):
470465
start=self.start_index
471466
)
472467

473-
# super(TextContent.TextElement, self).__init__(**kwargs)
468+
super().__init__(**kwargs)
474469

475470
@property
476471
def start_index(self):

0 commit comments

Comments
 (0)