Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit b19d1b9

Browse filesBrowse files
committed
api data keys no longer converted to snake case
1 parent 66170fe commit b19d1b9
Copy full SHA for b19d1b9

File tree

5 files changed

+45
-175
lines changed
Filter options

5 files changed

+45
-175
lines changed

‎google_objects/__init__.py

Copy file name to clipboardExpand all lines: google_objects/__init__.py
+2-5Lines 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

Copy file name to clipboardExpand all lines: google_objects/drive/core.py
+16-38Lines 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

Copy file name to clipboardExpand all lines: google_objects/sheets/core.py
+13-30Lines 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

Copy file name to clipboardExpand all lines: google_objects/slides/core.py
+14-19Lines 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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.