Skip to content
This repository was archived by the owner on Dec 11, 2023. It is now read-only.

Commit 8b2e017

Browse files
author
clittle
committed
Updated filters to support version 4 of the layer format.
Documentation has not been updated yet.
1 parent 3ef0ffd commit 8b2e017

2 files changed

Lines changed: 26 additions & 18 deletions

File tree

layers/core/filter.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
UNSETVALUE
77

88

9-
class Filter:
9+
class Filterv4:
1010
def __init__(self, domain="mitre-enterprise"):
1111
"""
1212
Initialization - Creates a filter object, with an optional
@@ -15,22 +15,9 @@ def __init__(self, domain="mitre-enterprise"):
1515
:param domain: The domain used for this layer (mitre-enterprise
1616
or mitre-mobile)
1717
"""
18-
self.__stages = UNSETVALUE
1918
self.domain = domain
2019
self.__platforms = UNSETVALUE
2120

22-
@property
23-
def stages(self):
24-
if self.__stages != UNSETVALUE:
25-
return self.__stages
26-
27-
@stages.setter
28-
def stages(self, stage):
29-
typeCheckerArray(type(self).__name__, stage, str, "stage")
30-
categoryChecker(type(self).__name__, stage[0], ["act", "prepare"],
31-
"stages")
32-
self.__stages = stage
33-
3421
@property
3522
def platforms(self):
3623
if self.__platforms != UNSETVALUE:
@@ -63,3 +50,20 @@ def get_dict(self):
6350
= listing[entry]
6451
if len(temp) > 0:
6552
return temp
53+
54+
class Filter(Filterv4):
55+
def __init__(self, domain="mitre-enterprise"):
56+
self.__stages = UNSETVALUE
57+
super().__init__(domain)
58+
59+
@property
60+
def stages(self):
61+
if self.__stages != UNSETVALUE:
62+
return self.__stages
63+
64+
@stages.setter
65+
def stages(self, stage):
66+
typeCheckerArray(type(self).__name__, stage, str, "stage")
67+
categoryChecker(type(self).__name__, stage[0], ["act", "prepare"],
68+
"stages")
69+
self.__stages = stage

layers/core/layerobj.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
try:
2-
from ..core.filter import Filter
2+
from ..core.filter import Filter, Filterv4
33
from ..core.layout import Layout
44
from ..core.technique import Technique
55
from ..core.gradient import Gradient
@@ -51,7 +51,7 @@ def version(self):
5151
@version.setter
5252
def version(self, version):
5353
typeChecker(type(self).__name__, version, str, "version")
54-
categoryChecker(type(self).__name__, version, ["3.0"], "version")
54+
categoryChecker(type(self).__name__, version, ["3.0", "4.0"], "version")
5555
self.__version = version
5656

5757
@property
@@ -92,9 +92,13 @@ def filters(self):
9292

9393
@filters.setter
9494
def filters(self, filters):
95-
try:
95+
if self.version == "4.0":
96+
temp = Filterv4(self.domain)
97+
else:
9698
temp = Filter(self.domain)
97-
temp.stages = filters['stages']
99+
try:
100+
if self.version != "4.0":
101+
temp.stages = filters['stages']
98102
temp.platforms = filters['platforms']
99103
self.__filters = temp
100104
except KeyError as e:

0 commit comments

Comments
 (0)