@@ -50,7 +50,11 @@ def deserialize(cls, data: bytes):
50
50
51
51
class ComputeObject (object ):
52
52
def __init__ (self ):
53
- self ._state = State .NEW
53
+ # check if object is new or persisted
54
+ if self .id :
55
+ self ._state = State .SAVED
56
+ else :
57
+ self ._state = State .NEW
54
58
55
59
def __setattr__ (self , name , value ):
56
60
super (ComputeObject , self ).__setattr__ ("_state" , State .MODIFIED )
@@ -136,7 +140,7 @@ def get(cls, id) -> "Job":
136
140
"""
137
141
client = ComputeClient .get_default_client ()
138
142
response = client .session .get (f"/jobs/{ id } " )
139
- return cls (** response .json (), _state = State . SAVED )
143
+ return cls (** response .json ())
140
144
141
145
@classmethod
142
146
def list (cls , function_id , page_size = 100 ) -> Iterable ["Job" ]:
@@ -160,7 +164,7 @@ def list(cls, function_id, page_size=100) -> Iterable["Job"]:
160
164
paginator = client .paginate (f"/functions/{ function_id } /jobs" , params = params )
161
165
162
166
for data in paginator :
163
- yield cls (** data , _state = State . SAVED )
167
+ yield cls (** data )
164
168
165
169
def refresh (self ) -> None :
166
170
client = ComputeClient .get_default_client ()
@@ -542,7 +546,7 @@ def get(cls, id: str):
542
546
"""
543
547
client = ComputeClient .get_default_client ()
544
548
response = client .session .get (f"/functions/{ id } " )
545
- return cls (** response .json (), _state = State . SAVED )
549
+ return cls (** response .json ())
546
550
547
551
@classmethod
548
552
def list (cls , status = None , page_size = 100 ):
@@ -565,7 +569,7 @@ def list(cls, status=None, page_size=100):
565
569
paginator = client .paginate ("/functions" , params = params )
566
570
567
571
for data in paginator :
568
- yield cls (** data , _state = State . SAVED )
572
+ yield cls (** data )
569
573
570
574
@property
571
575
def jobs (self ) -> Iterable [Job ]:
0 commit comments