File: test_site_joblib.py

package info (click to toggle)
scikit-learn 0.20.2%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 51,036 kB
  • sloc: python: 108,171; ansic: 8,722; cpp: 5,651; makefile: 192; sh: 40
file content (49 lines) | stat: -rw-r--r-- 2,058 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import os
import pytest
from sklearn import externals
from sklearn.externals import joblib as joblib_vendored
from sklearn.utils._joblib import Parallel, delayed, Memory, parallel_backend

if os.environ.get('SKLEARN_SITE_JOBLIB', False):
    import joblib as joblib_site
else:
    joblib_site = None


def test_old_pickle(tmpdir):
    vendored_joblib_home = os.path.dirname(joblib_vendored.__file__)
    sklearn_externals_home = os.path.dirname(externals.__file__)
    if not vendored_joblib_home.startswith(sklearn_externals_home):
        pytest.skip("joblib is physically unvendored (e.g. as in debian)")

    # Check that a pickle that references sklearn.external.joblib can load
    f = tmpdir.join('foo.pkl')
    f.write(b'\x80\x02csklearn.externals.joblib.numpy_pickle\nNumpyArrayWrappe'
            b'r\nq\x00)\x81q\x01}q\x02(U\x05dtypeq\x03cnumpy\ndtype\nq\x04U'
            b'\x02i8q\x05K\x00K\x01\x87q\x06Rq\x07(K\x03U\x01<q\x08NNNJ\xff'
            b'\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\tbU\x05shapeq\nK\x01\x85q'
            b'\x0bU\x05orderq\x0cU\x01Cq\rU\x08subclassq\x0ecnumpy\nndarray\nq'
            b'\x0fU\nallow_mmapq\x10\x88ub\x01\x00\x00\x00\x00\x00\x00\x00.',
            mode='wb')

    joblib_vendored.load(str(f))


def test_site_joblib_dispatch():
    if os.environ.get('SKLEARN_SITE_JOBLIB', False):
        assert Parallel is joblib_site.Parallel
        assert delayed is joblib_site.delayed
        assert parallel_backend is joblib_site.parallel_backend
        assert Memory is joblib_site.Memory

        assert joblib_vendored.Parallel is not joblib_site.Parallel
        assert joblib_vendored.delayed is not joblib_site.delayed
        assert joblib_vendored.parallel_backend is not \
            joblib_site.parallel_backend
        assert joblib_vendored.Memory is not joblib_site.Memory

    else:
        assert Parallel is joblib_vendored.Parallel
        assert delayed is joblib_vendored.delayed
        assert parallel_backend is joblib_vendored.parallel_backend
        assert Memory is joblib_vendored.Memory