Skip to content

Commit f47930e

Browse files
SAC-30196: remove key from version functions (#192)
* remove key from version state functions * bump to version 6.7.0 and update changelog ----------------------------- Co-authored-by: Ben Allred <ben.allred@qlik.com> --------- Co-authored-by: Leslie VanDeMark <lvandemark@talend.com>
1 parent fbcc1ec commit f47930e

4 files changed

Lines changed: 27 additions & 40 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
## 6.7.0
4+
* Remove `key` from set_version, get_version, and clear_version state functions [#192](https://github.com/singer-io/singer-python/pull/192)
5+
36
## 6.6.0
47
* Export singer.state functions from singer
58
* Rename singer.state.write_bookmark to singer.state.set_bookmark

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import subprocess
55

66
setup(name="singer-python",
7-
version='6.6.0',
7+
version='6.7.0',
88
description="Singer.io utility library",
99
author="Stitch",
1010
classifiers=['Programming Language :: Python :: 3 :: Only'],

singer/state.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ def set_currently_syncing(state, tap_stream_id):
4646
def get_currently_syncing(state, default=None):
4747
return state.get('currently_syncing', default)
4848

49-
def set_version(state, tap_stream_id, key, val):
49+
def set_version(state, tap_stream_id, val):
5050
state = ensure_state_path(state, ['activate_versions', tap_stream_id])
51-
state['activate_versions'][tap_stream_id][key] = val
51+
state['activate_versions'][tap_stream_id] = val
5252
return state
5353

54-
def clear_version(state, tap_stream_id, key):
54+
def clear_version(state, tap_stream_id):
5555
state = ensure_state_path(state, ['activate_versions', tap_stream_id])
56-
state['activate_versions'][tap_stream_id].pop(key, None)
56+
state['activate_versions'].pop(tap_stream_id, None)
5757
return state
5858

59-
def get_version(state, tap_stream_id, key, default=None):
60-
return state.get('activate_versions', {}).get(tap_stream_id, {}).get(key, default)
59+
def get_version(state, tap_stream_id, default=None):
60+
return state.get('activate_versions', {}).get(tap_stream_id, default)

tests/test_state.py

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -207,81 +207,65 @@ def test_empty_state(self):
207207
empty_state = {}
208208

209209
# Case with no value to fall back on
210-
self.assertIsNone(st.get_version(empty_state, 'some_stream', 'my_key'))
210+
self.assertIsNone(st.get_version(empty_state, 'some_stream'))
211211

212212
# Case with a given default
213-
self.assertEqual(st.get_version(empty_state, 'some_stream', 'my_key', 'default_value'),
213+
self.assertEqual(st.get_version(empty_state, 'some_stream', 'default_value'),
214214
'default_value')
215215

216216
def test_empty_activate_versions(self):
217217
empty_versions = {'activate_versions':{}}
218218

219219
# Case with no value to fall back on
220-
self.assertIsNone(st.get_version(empty_versions, 'some_stream', 'my_key'))
220+
self.assertIsNone(st.get_version(empty_versions, 'some_stream'))
221221

222222
# Case with a given default
223-
self.assertEqual(st.get_version(empty_versions, 'some_stream', 'my_key', 'default_value'),
223+
self.assertEqual(st.get_version(empty_versions, 'some_stream', 'default_value'),
224224
'default_value')
225225

226226
def test_non_empty_state(self):
227227
stream_id_1 = 'customers'
228-
version_key_1 = 'version'
229228
version_val_1 = 123456789
230229

231230
non_empty_state = {
232231
'activate_versions' : {
233-
stream_id_1 : {
234-
version_key_1 : version_val_1
235-
}
232+
stream_id_1 : version_val_1
236233
}
237234
}
238235

239236
#
240237
# Cases with no value to fall back on
241238
#
242239

243-
# Bad stream, bad key
244-
self.assertIsNone(st.get_version(non_empty_state, 'some_stream', 'my_key'))
245-
246-
# Good stream, bad key
247-
self.assertIsNone(st.get_version(non_empty_state, stream_id_1, 'my_key'))
240+
# Bad stream
241+
self.assertIsNone(st.get_version(non_empty_state, 'some_stream'))
248242

249-
# Good stream, good key
250-
self.assertEqual(st.get_version(non_empty_state, stream_id_1, version_key_1),
243+
# Good stream
244+
self.assertEqual(st.get_version(non_empty_state, stream_id_1),
251245
version_val_1)
252246

253247
#
254248
# Cases with a given default
255249
#
256250

257-
# Bad stream, bad key
258-
self.assertEqual(st.get_version(non_empty_state, 'some_stream', 'my_key', 'default_value'),
259-
'default_value')
260-
261-
# Bad stream, good key
262-
self.assertEqual(st.get_version(non_empty_state, 'some_stream', version_key_1, 'default_value'),
263-
'default_value')
264-
265-
# Good stream, bad key
266-
self.assertEqual(st.get_version(non_empty_state, stream_id_1, 'my_key', 'default_value'),
251+
# Bad stream
252+
self.assertEqual(st.get_version(non_empty_state, 'some_stream', 'default_value'),
267253
'default_value')
268254

269-
# Good stream, good key
270-
self.assertEqual(st.get_version(non_empty_state, stream_id_1, version_key_1, 'default_value'),
255+
# Good stream
256+
self.assertEqual(st.get_version(non_empty_state, stream_id_1, 'default_value'),
271257
version_val_1)
272258

273259
def test_set_version(self):
274260
stream_id_1 = 'customers'
275-
version_key_1 = 'datetime'
276261
version_val_1 = 123456789
277262

278-
result = st.set_version({'activate_versions': {stream_id_1: {version_key_1: 'old-value'}}}, stream_id_1, version_key_1, version_val_1)
279-
self.assertEqual(result, {'activate_versions': {stream_id_1: {version_key_1: version_val_1}}})
263+
result = st.set_version({'activate_versions': {stream_id_1: 'old-value'}}, stream_id_1, version_val_1)
264+
self.assertEqual(result, {'activate_versions': {stream_id_1: version_val_1}})
280265

281266
def test_clear_version(self):
282267
stream_id_1 = 'customers'
283-
version_key_1 = 'datetime'
284268
version_val_1 = 123456789
285269

286-
result = st.clear_version({'activate_versions': {stream_id_1: {version_key_1: version_val_1}}}, stream_id_1, version_key_1)
287-
self.assertEqual(result, {'activate_versions': {stream_id_1: {}}})
270+
result = st.clear_version({'activate_versions': {stream_id_1: version_val_1}}, stream_id_1)
271+
self.assertEqual(result, {'activate_versions': {}})

0 commit comments

Comments
 (0)