pickle1.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # Copyright David Abrahams 2004. Distributed under the Boost
  2. # Software License, Version 1.0. (See accompanying
  3. # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  4. r'''>>> import pickle1_ext
  5. >>> import pickle
  6. >>> pickle1_ext.world.__module__
  7. 'pickle1_ext'
  8. >>> pickle1_ext.world.__safe_for_unpickling__
  9. 1
  10. >>> pickle1_ext.world.__name__
  11. 'world'
  12. >>> pickle1_ext.world('Hello').__reduce__()
  13. (<class 'pickle1_ext.world'>, ('Hello',))
  14. >>> wd = pickle1_ext.world('California')
  15. >>> pstr = pickle.dumps(wd)
  16. >>> wl = pickle.loads(pstr)
  17. >>> print(wd.greet())
  18. Hello from California!
  19. >>> print(wl.greet())
  20. Hello from California!
  21. >>> noop = pickle1_ext.noop()
  22. >>> try: pickle.dumps(noop)
  23. ... except RuntimeError as e: print(str(e)[:55])
  24. Pickling of "pickle1_ext.noop" instances is not enabled
  25. '''
  26. def run(args = None):
  27. import sys
  28. import doctest
  29. if args is not None:
  30. sys.argv = args
  31. return doctest.testmod(sys.modules.get(__name__))
  32. if __name__ == '__main__':
  33. print("running...")
  34. import sys
  35. status = run()[0]
  36. if (status == 0): print("Done.")
  37. sys.exit(status)