Skip to content

Commit 152d0d6

Browse files
committed
Remove items from PY2; comments on behavior of items and iteritems
1 parent 7b903d3 commit 152d0d6

File tree

4 files changed

+23
-4
lines changed

4 files changed

+23
-4
lines changed

splunklib/searchcommands/eventing_command.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
from __future__ import absolute_import, division, print_function, unicode_literals
1818

19+
from splunklib import six
1920
from splunklib.six.moves import map as imap
2021

2122
from .decorators import ConfigurationSetting
@@ -135,10 +136,14 @@ def fix_up(cls, command):
135136
raise AttributeError('No EventingCommand.transform override')
136137
SearchCommand.ConfigurationSettings.fix_up(command)
137138

139+
# TODO: Stop looking like a dictionary because we don't obey the semantics
140+
# N.B.: Does not use Python 2 dict copy semantics
138141
def iteritems(self):
139142
iteritems = SearchCommand.ConfigurationSettings.iteritems(self)
140143
return imap(lambda name_value: (name_value[0], 'events' if name_value[0] == 'type' else name_value[1]), iteritems)
141144

142-
items = iteritems
145+
# N.B.: Does not use Python 3 dict view semantics
146+
if not six.PY2:
147+
items = iteritems
143148

144149
# endregion

splunklib/searchcommands/generating_command.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from .decorators import ConfigurationSetting
2020
from .search_command import SearchCommand
2121

22+
from splunklib import six
2223
from splunklib.six.moves import map as imap, filter as ifilter
2324

2425
# P1 [O] TODO: Discuss generates_timeorder in the class-level documentation for GeneratingCommand
@@ -324,6 +325,8 @@ def fix_up(cls, command):
324325
if command.generate == GeneratingCommand.generate:
325326
raise AttributeError('No GeneratingCommand.generate override')
326327

328+
# TODO: Stop looking like a dictionary because we don't obey the semantics
329+
# N.B.: Does not use Python 2 dict copy semantics
327330
def iteritems(self):
328331
iteritems = SearchCommand.ConfigurationSettings.iteritems(self)
329332
version = self.command.protocol_version
@@ -334,7 +337,9 @@ def iteritems(self):
334337
lambda name_value: (name_value[0], 'stateful') if name_value[0] == 'type' else (name_value[0], name_value[1]), iteritems)
335338
return iteritems
336339

337-
items = iteritems
340+
# N.B.: Does not use Python 3 dict view semantics
341+
if not six.PY2:
342+
items = iteritems
338343

339344
pass
340345
# endregion

splunklib/searchcommands/search_command.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1036,6 +1036,8 @@ def fix_up(cls, command_class):
10361036
"""
10371037
return
10381038

1039+
# TODO: Stop looking like a dictionary because we don't obey the semantics
1040+
# N.B.: Does not use Python 2 dict copy semantics
10391041
def iteritems(self):
10401042
definitions = type(self).configuration_setting_definitions
10411043
version = self.command.protocol_version
@@ -1044,7 +1046,9 @@ def iteritems(self):
10441046
lambda setting: (setting.name, setting.__get__(self)), ifilter(
10451047
lambda setting: setting.is_supported_by_protocol(version), definitions)))
10461048

1047-
items = iteritems
1049+
# N.B.: Does not use Python 3 dict view semantics
1050+
if not six.PY2:
1051+
items = iteritems
10481052

10491053
pass # endregion
10501054

splunklib/searchcommands/streaming_command.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
from __future__ import absolute_import, division, print_function, unicode_literals
1818

19+
from splunklib import six
1920
from splunklib.six.moves import map as imap, filter as ifilter
2021

2122
from .decorators import ConfigurationSetting
@@ -172,6 +173,8 @@ def fix_up(cls, command):
172173
raise AttributeError('No StreamingCommand.stream override')
173174
return
174175

176+
# TODO: Stop looking like a dictionary because we don't obey the semantics
177+
# N.B.: Does not use Python 2 dict copy semantics
175178
def iteritems(self):
176179
iteritems = SearchCommand.ConfigurationSettings.iteritems(self)
177180
version = self.command.protocol_version
@@ -185,6 +188,8 @@ def iteritems(self):
185188
lambda name_value1: (name_value1[0], 'stateful') if name_value1[0] == 'type' else (name_value1[0], name_value1[1]), iteritems)
186189
return iteritems
187190

188-
items = iteritems
191+
# N.B.: Does not use Python 3 dict view semantics
192+
if not six.PY2:
193+
items = iteritems
189194

190195
# endregion

0 commit comments

Comments
 (0)