Special support for pickling os.stat and os.stat_vfs results portably
(the types come from different modules on different platforms).
Added tests for pickling these types.
May be a bugfix candidate.
diff --git a/Lib/os.py b/Lib/os.py
index 42812aa..f411f1f 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -602,3 +602,23 @@
stdout, stdin = popen2.popen4(cmd, bufsize)
return stdin, stdout
__all__.append("popen4")
+
+import copy_reg as _copy_reg
+
+def _make_stat_result(tup, dict):
+ return stat_result(tup, dict)
+
+def _pickle_stat_result(sr):
+ (type, args) = sr.__reduce__()
+ return (_make_stat_result, args)
+
+_copy_reg.pickle(stat_result, _pickle_stat_result,_make_stat_result)
+
+def _make_statvfs_result(tup, dict):
+ return statvfs_result(tup, dict)
+
+def _pickle_statvfs_result(sr):
+ (type, args) = sr.__reduce__()
+ return (_make_statvfs_result, args)
+
+_copy_reg.pickle(statvfs_result, _pickle_statvfs_result,_make_statvfs_result)