Deprecation from #28481 resulting in inconsistency?

27 views
Skip to first unread message

friedri...@gmail.com

unread,
Jan 13, 2022, 3:43:01 PM1/13/22
to sage-devel
While working on #25633 I stumbled over the below behaviour:
Here, the vector_space method behaves differently, depending on wether called from an object which is a vector space itself or a finite field.

sage: (GF(2)^2).vector_space()
Vector space of dimension 2 over Finite Field of size 2
sage: GF(2^2).vector_space()
/home/asante/werkstatt/sage/local/var/lib/sage/venv-python3.8/lib/python3.8/site-packages/sage/categories/fields.py:533: DeprecationWarning: The default value for map will be changing to True.  To keep the current behavior, explicitly pass map=False.
See https://trac.sagemath.org/28481 for details.
  return self.free_module(*args, **kwds)
Vector space of dimension 2 over Finite Field of size 2

sage: (GF(2)^2).vector_space(map=False)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-358adc326579> in <module>
----> 1 (GF(Integer(2))**Integer(2)).vector_space(map=False)

TypeError: vector_space() got an unexpected keyword argument 'map'
sage: GF(2^2).vector_space(map=False)
Vector space of dimension 2 over Finite Field of size 2

Is this on purpose? If so, what is a good way to determine if a function gets as input a vector or a field element?
Reply all
Reply to author
Forward
0 new messages