Skip to content

Commit 08ce243

Browse files
Thomas SmithFichteFoll
authored andcommitted
Added metaclass to all necessary enums. (#94)
1 parent ea87631 commit 08ce243

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

st3/sublime_lib/flags.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ class PointClass(IntFlag, metaclass=ExtensibleConstructorMeta):
9999
@autodoc()
100100
@construct_union
101101
@construct_from_name
102-
class FindOption(IntFlag):
102+
class FindOption(IntFlag, metaclass=ExtensibleConstructorMeta):
103103
"""
104104
An :class:`~enum.IntFlag` for use with several methods of :class:`sublime.View`:
105105
@@ -132,7 +132,7 @@ class RegionOption(IntFlag, metaclass=ExtensibleConstructorMeta):
132132
@autodoc()
133133
@construct_union
134134
@construct_from_name
135-
class PopupOption(IntFlag):
135+
class PopupOption(IntFlag, metaclass=ExtensibleConstructorMeta):
136136
"""
137137
An :class:`~enum.IntFlag` for use with :meth:`sublime.View.show_popup`.
138138
"""
@@ -144,7 +144,7 @@ class PopupOption(IntFlag):
144144
@autodoc('LAYOUT')
145145
@construct_union
146146
@construct_from_name
147-
class PhantomLayout(IntFlag):
147+
class PhantomLayout(IntFlag, metaclass=ExtensibleConstructorMeta):
148148
"""
149149
An :class:`~enum.IntFlag` for use with :class:`sublime.Phantom`.
150150
"""
@@ -156,7 +156,7 @@ class PhantomLayout(IntFlag):
156156
@autodoc()
157157
@construct_union
158158
@construct_from_name
159-
class OpenFileOption(IntFlag):
159+
class OpenFileOption(IntFlag, metaclass=ExtensibleConstructorMeta):
160160
"""
161161
An :class:`~enum.IntFlag` for use with :meth:`sublime.Window.open_file`.
162162
"""
@@ -167,7 +167,7 @@ class OpenFileOption(IntFlag):
167167
@autodoc()
168168
@construct_union
169169
@construct_from_name
170-
class QuickPanelOption(IntFlag):
170+
class QuickPanelOption(IntFlag, metaclass=ExtensibleConstructorMeta):
171171
"""
172172
An :class:`~enum.IntFlag` for use with :meth:`sublime.Window.show_quick_panel`.
173173
"""

tests/test_flags.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import sublime
22
import sublime_lib.flags as flags
33

4+
from sublime_lib.vendor.python.enum import IntFlag
5+
6+
from functools import reduce
47
from unittest import TestCase
58

69

@@ -11,6 +14,12 @@ def _test_enum(self, enum, prefix=''):
1114
self.assertEqual(item, getattr(sublime, prefix + item.name))
1215
self.assertEqual(item, enum(item.name))
1316

17+
if issubclass(enum, IntFlag):
18+
self.assertEqual(
19+
enum(*[item.name for item in enum]),
20+
reduce(lambda a, b: a | b, enum)
21+
)
22+
1423
def test_flags(self):
1524
self._test_enum(flags.DialogResult, 'DIALOG_')
1625
self._test_enum(flags.PointClass, 'CLASS_')

0 commit comments

Comments
 (0)