PHP 8.2.30
Preview: test_selected.py Size: 3.14 KB
//opt/cloudlinux/venv/lib64/python3.11/site-packages/dill/tests/test_selected.py

#!/usr/bin/env python
#
# Author: Mike McKerns (mmckerns @caltech and @uqfoundation)
# Copyright (c) 2008-2016 California Institute of Technology.
# Copyright (c) 2016-2023 The Uncertainty Quantification Foundation.
# License: 3-clause BSD.  The full license text is available at:
#  - https://github.com/uqfoundation/dill/blob/master/LICENSE
"""
testing some selected object types
"""

import dill
dill.settings['recurse'] = True

verbose = False

def test_dict_contents():
  c = type.__dict__
  for i,j in c.items():
   #try:
    ok = dill.pickles(j)
   #except Exception:
   #  print ("FAIL: %s with %s" % (i, dill.detect.errors(j)))
    if verbose: print ("%s: %s, %s" % (ok, type(j), j))
    assert ok
  if verbose: print ("")

def _g(x): yield x;

def _f():
  try: raise
  except Exception:
    from sys import exc_info
    e, er, tb = exc_info()
    return er, tb

class _d(object):
  def _method(self):
    pass

from dill import objects
from dill import load_types
load_types(pickleable=True,unpickleable=False)
_newclass = objects['ClassObjectType']
# some clean-up #FIXME: should happen internal to dill
objects['TemporaryFileType'].close()
objects['TextWrapperType'].close()
objects['BufferedRandomType'].close()
objects['BufferedReaderType'].close()
objects['BufferedWriterType'].close()
objects['FileType'].close()
del objects

# getset_descriptor for new-style classes (fails on '_method', if not __main__)
def test_class_descriptors():
  d = _d.__dict__
  for i in d.values():
    ok = dill.pickles(i)
    if verbose: print ("%s: %s, %s" % (ok, type(i), i))
    assert ok
  if verbose: print ("")
  od = _newclass.__dict__
  for i in od.values():
    ok = dill.pickles(i)
    if verbose: print ("%s: %s, %s" % (ok, type(i), i))
    assert ok
  if verbose: print ("")

# (__main__) class instance for new-style classes
def test_class():
  o = _d()
  oo = _newclass()
  ok = dill.pickles(o)
  if verbose: print ("%s: %s, %s" % (ok, type(o), o))
  assert ok
  ok = dill.pickles(oo)
  if verbose: print ("%s: %s, %s" % (ok, type(oo), oo))
  assert ok
  if verbose: print ("")

# frames, generators, and tracebacks (all depend on frame)
def test_frame_related():
  g = _g(1)
  f = g.gi_frame
  e,t = _f()
  _is = lambda ok: ok
  ok = dill.pickles(f)
  if verbose: print ("%s: %s, %s" % (ok, type(f), f))
  assert not ok
  ok = dill.pickles(g)
  if verbose: print ("%s: %s, %s" % (ok, type(g), g))
  assert _is(not ok) #XXX: dill fails
  ok = dill.pickles(t)
  if verbose: print ("%s: %s, %s" % (ok, type(t), t))
  assert not ok #XXX: dill fails
  ok = dill.pickles(e)
  if verbose: print ("%s: %s, %s" % (ok, type(e), e))
  assert ok
  if verbose: print ("")

def test_typing():
  import typing
  x = typing.Any
  assert x == dill.copy(x)
  x = typing.Dict[int, str]
  assert x == dill.copy(x)
  x = typing.List[int]
  assert x == dill.copy(x)
  x = typing.Tuple[int, str]
  assert x == dill.copy(x)
  x = typing.Tuple[int]
  assert x == dill.copy(x)
  x = typing.Tuple[()]
  assert x == dill.copy(x)
  x = typing.Tuple[()].copy_with(())
  assert x == dill.copy(x)
  return


if __name__ == '__main__':
  test_frame_related()
  test_dict_contents()
  test_class()
  test_class_descriptors()
  test_typing()

Directory Contents

Dirs: 1 × Files: 30

Name Size Perms Modified Actions
- drwxr-xr-x 2026-02-06 08:01:08
Edit Download
3.75 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.36 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
6.99 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
890 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download
3.99 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.31 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
2.60 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.28 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.64 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
13.26 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
4.17 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
930 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download
2.33 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
3.91 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.90 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.15 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
3.07 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.79 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.31 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.38 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
4.08 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.54 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
783 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download
3.14 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
9.92 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
5.89 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
2.56 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
1.56 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
501 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download
899 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).