@@ -112,13 +112,17 @@ def isdev(self):
112112
113113 @property
114114 def atime (self ):
115+ if not ffi .entry_atime_is_set (self ._entry_p ):
116+ return None
115117 sec_val = ffi .entry_atime (self ._entry_p )
116118 nsec_val = ffi .entry_atime_nsec (self ._entry_p )
117119 return format_time (sec_val , nsec_val )
118120
119121 @atime .setter
120122 def atime (self , value ):
121- if isinstance (value , int ):
123+ if value is None :
124+ ffi .entry_unset_atime (self ._entry_p )
125+ elif isinstance (value , int ):
122126 self .set_atime (value )
123127 elif isinstance (value , tuple ):
124128 self .set_atime (* value )
@@ -132,13 +136,17 @@ def set_atime(self, timestamp_sec, timestamp_nsec):
132136
133137 @property
134138 def mtime (self ):
139+ if not ffi .entry_mtime_is_set (self ._entry_p ):
140+ return None
135141 sec_val = ffi .entry_mtime (self ._entry_p )
136142 nsec_val = ffi .entry_mtime_nsec (self ._entry_p )
137143 return format_time (sec_val , nsec_val )
138144
139145 @mtime .setter
140146 def mtime (self , value ):
141- if isinstance (value , int ):
147+ if value is None :
148+ ffi .entry_unset_mtime (self ._entry_p )
149+ elif isinstance (value , int ):
142150 self .set_mtime (value )
143151 elif isinstance (value , tuple ):
144152 self .set_mtime (* value )
@@ -152,13 +160,17 @@ def set_mtime(self, timestamp_sec, timestamp_nsec):
152160
153161 @property
154162 def ctime (self ):
163+ if not ffi .entry_ctime_is_set (self ._entry_p ):
164+ return None
155165 sec_val = ffi .entry_ctime (self ._entry_p )
156166 nsec_val = ffi .entry_ctime_nsec (self ._entry_p )
157167 return format_time (sec_val , nsec_val )
158168
159169 @ctime .setter
160170 def ctime (self , value ):
161- if isinstance (value , int ):
171+ if value is None :
172+ ffi .entry_unset_ctime (self ._entry_p )
173+ elif isinstance (value , int ):
162174 self .set_ctime (value )
163175 elif isinstance (value , tuple ):
164176 self .set_ctime (* value )
@@ -172,13 +184,17 @@ def set_ctime(self, timestamp_sec, timestamp_nsec):
172184
173185 @property
174186 def birthtime (self ):
187+ if not ffi .entry_birthtime_is_set (self ._entry_p ):
188+ return None
175189 sec_val = ffi .entry_birthtime (self ._entry_p )
176190 nsec_val = ffi .entry_birthtime_nsec (self ._entry_p )
177191 return format_time (sec_val , nsec_val )
178192
179193 @birthtime .setter
180194 def birthtime (self , value ):
181- if isinstance (value , int ):
195+ if value is None :
196+ ffi .entry_unset_birthtime (self ._entry_p )
197+ elif isinstance (value , int ):
182198 self .set_birthtime (value )
183199 elif isinstance (value , tuple ):
184200 self .set_birthtime (* value )
@@ -231,7 +247,10 @@ def size(self):
231247
232248 @size .setter
233249 def size (self , value ):
234- ffi .entry_set_size (self ._entry_p , value )
250+ if value is None :
251+ ffi .entry_unset_size (self ._entry_p )
252+ else :
253+ ffi .entry_set_size (self ._entry_p , value )
235254
236255 @property
237256 def mode (self ):
0 commit comments