@@ -101,21 +101,6 @@ def restore_node(self, node_name: str) -> None:
101101 #
102102 # Nodes: SOURCE
103103 #
104- def source (self , node_name : str ) -> "Source" :
105- """
106- Retrieves a source node with that name if one exists.
107- """
108- node_dict = self ._verify_node_exists (
109- node_name ,
110- type_ = models .NodeType .SOURCE .value ,
111- )
112- node = Source (
113- ** node_dict ,
114- dj_client = self ,
115- )
116- node .primary_key = self ._primary_key_from_columns (node_dict ["columns" ])
117- return node
118-
119104 def create_source ( # pylint: disable=too-many-arguments
120105 self ,
121106 name : str ,
@@ -145,6 +130,7 @@ def create_source( # pylint: disable=too-many-arguments
145130 columns = columns ,
146131 )
147132 self ._create_node (node = new_node , mode = mode )
133+ new_node .refresh ()
148134 return new_node
149135
150136 def register_table (self , catalog : str , schema : str , table : str ) -> Source :
@@ -162,21 +148,6 @@ def register_table(self, catalog: str, schema: str, table: str) -> Source:
162148 #
163149 # Nodes: TRANSFORM
164150 #
165- def transform (self , node_name : str ) -> "Transform" :
166- """
167- Retrieves a transform node with that name if one exists.
168- """
169- node_dict = self ._verify_node_exists (
170- node_name ,
171- type_ = models .NodeType .TRANSFORM .value ,
172- )
173- node = Transform (
174- ** node_dict ,
175- dj_client = self ,
176- )
177- node .primary_key = self ._primary_key_from_columns (node_dict ["columns" ])
178- return node
179-
180151 def create_transform ( # pylint: disable=too-many-arguments
181152 self ,
182153 name : str ,
@@ -200,26 +171,12 @@ def create_transform( # pylint: disable=too-many-arguments
200171 query = query ,
201172 )
202173 self ._create_node (node = new_node , mode = mode )
174+ new_node .refresh ()
203175 return new_node
204176
205177 #
206178 # Nodes: DIMENSION
207179 #
208- def dimension (self , node_name : str ) -> "Dimension" :
209- """
210- Retrieves a Dimension node with that name if one exists.
211- """
212- node_dict = self ._verify_node_exists (
213- node_name ,
214- type_ = models .NodeType .DIMENSION .value ,
215- )
216- node = Dimension (
217- ** node_dict ,
218- dj_client = self ,
219- )
220- node .primary_key = self ._primary_key_from_columns (node_dict ["columns" ])
221- return node
222-
223180 def create_dimension ( # pylint: disable=too-many-arguments
224181 self ,
225182 name : str ,
@@ -243,26 +200,12 @@ def create_dimension( # pylint: disable=too-many-arguments
243200 query = query ,
244201 )
245202 self ._create_node (node = new_node , mode = mode )
203+ new_node .refresh ()
246204 return new_node
247205
248206 #
249207 # Nodes: METRIC
250208 #
251- def metric (self , node_name : str ) -> "Metric" :
252- """
253- Retrieves a Metric node with that name if one exists.
254- """
255- node_dict = self ._verify_node_exists (
256- node_name ,
257- type_ = models .NodeType .METRIC .value ,
258- )
259- node = Metric (
260- ** node_dict ,
261- dj_client = self ,
262- )
263- node .primary_key = self ._primary_key_from_columns (node_dict ["columns" ])
264- return node
265-
266209 def create_metric ( # pylint: disable=too-many-arguments
267210 self ,
268211 name : str ,
@@ -286,35 +229,12 @@ def create_metric( # pylint: disable=too-many-arguments
286229 query = query ,
287230 )
288231 self ._create_node (node = new_node , mode = mode )
232+ new_node .refresh ()
289233 return new_node
290234
291235 #
292236 # Nodes: CUBE
293237 #
294- def cube (self , node_name : str ) -> "Cube" : # pragma: no cover
295- """
296- Retrieves a Cube node with that name if one exists.
297- """
298- node_dict = self ._get_cube (node_name )
299- if "name" not in node_dict :
300- raise DJClientException (f"Cube `{ node_name } ` does not exist" )
301- dimensions = [
302- f'{ col ["node_name" ]} .{ col ["name" ]} '
303- for col in node_dict ["cube_elements" ]
304- if col ["type" ] != "metric"
305- ]
306- metrics = [
307- f'{ col ["node_name" ]} .{ col ["name" ]} '
308- for col in node_dict ["cube_elements" ]
309- if col ["type" ] == "metric"
310- ]
311- return Cube (
312- ** node_dict ,
313- metrics = metrics ,
314- dimensions = dimensions ,
315- dj_client = self ,
316- )
317-
318238 def create_cube ( # pylint: disable=too-many-arguments
319239 self ,
320240 name : str ,
@@ -338,4 +258,5 @@ def create_cube( # pylint: disable=too-many-arguments
338258 display_name = display_name ,
339259 )
340260 self ._create_node (node = new_node , mode = mode ) # pragma: no cover
261+ new_node .refresh ()
341262 return new_node # pragma: no cover
0 commit comments