Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

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

50

51

52

53

54

""" 

Test of the :mod:`~sage.structure.factory` module 

""" 

 

#***************************************************************************** 

# Copyright (C) 2008 Robert Bradshaw <robertwb@math.washington.edu> 

# 

# Distributed under the terms of the GNU General Public License (GPL) 

# 

# This code is distributed in the hope that it will be useful, 

# but WITHOUT ANY WARRANTY; without even the implied warranty of 

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 

# General Public License for more details. 

# 

# The full text of the GPL is available at: 

# 

# http://www.gnu.org/licenses/ 

#****************************************************************************** 

from __future__ import print_function 

 

from sage.structure.factory import UniqueFactory 

 

 

class A: 

# something we can weakref 

pass 

 

class UniqueFactoryTester(UniqueFactory): 

 

def create_key(self, *args, **kwds): 

""" 

EXAMPLES:: 

 

sage: from sage.structure.test_factory import UniqueFactoryTester 

sage: test_factory = UniqueFactoryTester('foo') 

sage: test_factory.create_key(1, 2, 3) 

(1, 2, 3) 

""" 

return args 

 

def create_object(self, version, key, **extra_args): 

""" 

EXAMPLES:: 

 

sage: from sage.structure.test_factory import UniqueFactoryTester 

sage: test_factory = UniqueFactoryTester('foo') 

sage: test_factory.create_object('version', key=(1, 2, 4)) 

Making object (1, 2, 4) 

<sage.structure.test_factory.A instance at ...> 

""" 

print("Making object", key) 

return A() 

 

test_factory = UniqueFactoryTester('sage.structure.test_factory.test_factory')