1 | # HG changeset patch |
---|
2 | # User Xavier Caruso <xavier.caruso@normalesup.org> |
---|
3 | # Date 1341738209 -7200 |
---|
4 | # Node ID 09ba9b7f74b31e781e40c0f2bbe765e6c9c7bdb2 |
---|
5 | # Parent c4bdbf18dd78c13ff3032e07a3f355b8632ac054 |
---|
6 | Trac #13184: Unique parent assumption for homset |
---|
7 | |
---|
8 | diff --git a/sage/categories/homset.py b/sage/categories/homset.py |
---|
9 | --- a/sage/categories/homset.py |
---|
10 | +++ b/sage/categories/homset.py |
---|
11 | @@ -154,9 +154,17 @@ |
---|
12 | |
---|
13 | TESTS: |
---|
14 | |
---|
15 | - Some doc tests in :mod:`sage.rings` (need to) break the unique parent assumption. |
---|
16 | - But if domain or codomain are not unique parents, then the hom set won't fit. |
---|
17 | - That's to say, the hom set found in the cache will have a (co)domain that is |
---|
18 | + Homset are unique parents:: |
---|
19 | + |
---|
20 | + sage: k = GF(5) |
---|
21 | + sage: H1 = Hom(k,k) |
---|
22 | + sage: H2 = Hom(k,k) |
---|
23 | + sage: H1 is H2 |
---|
24 | + True |
---|
25 | + |
---|
26 | + However, some doc tests in :mod:`sage.rings` (need to) break the unique parent |
---|
27 | + assumption. If domain or codomain are not unique parents, then the hom set won't |
---|
28 | + fit. That's to say, the hom set found in the cache will have a (co)domain that is |
---|
29 | equal to, but not identic with, the given (co)domain. |
---|
30 | |
---|
31 | By trac ticket #9138, we abandon the uniqueness of hom sets, if the domain or |
---|
32 | @@ -221,8 +229,12 @@ |
---|
33 | return H |
---|
34 | |
---|
35 | try: |
---|
36 | - # Apparently X._Hom_ is supposed to be cached |
---|
37 | - return X._Hom_(Y, category) |
---|
38 | + # Actually X._Hom_ is supposed to be cached |
---|
39 | + # but it is not in some cases (e.g. X is a finite field) |
---|
40 | + # To be investigated |
---|
41 | + H = X._Hom_(Y,category) |
---|
42 | + _cache[key] = weakref.ref(H) |
---|
43 | + return H |
---|
44 | except (AttributeError, TypeError): |
---|
45 | pass |
---|
46 | |
---|