### Constructing a number field with complex embedding

I am using the function `number_field_elements_from_algebraics`

in `sage.rings.qqbar`

to write some algebraic numbers as elements of a number field. I am passing `embedded=True`

to also construct an embedding into `QQbar`

. This works fine if the algebraic numbers are real but fails if they are complex:

sage: number_field_elements_from_algebraics([1 + sqrt(7)], embedded=True)
(Number Field in a with defining polynomial y^2 - 7 with a = 2.645751311064591?,
[a + 1],
Ring morphism:
From: Number Field in a with defining polynomial y^2 - 7 with a = 2.645751311064591?
To: Algebraic Real Field
Defn: a |--> 2.645751311064591?)

sage: number_field_elements_from_algebraics([1 + sqrt(-7)], embedded=True)
---------------------------------------------------------------------------
NotImplementedError Traceback (most recent call last)
<ipython-input-1-ac220615ad5b> in <module>()
----> 1 number_field_elements_from_algebraics([Integer(1) + sqrt(-Integer(7))], embedded=True)
/usr/lib/python2.7/site-packages/sage/rings/qqbar.pyc in number_field_elements_from_algebraics(
numbers, minimal, same_field, embedded, prec)
2242 real_case = False
2243 if embedded:
-> 2244 raise NotImplementedError
2245 # Make the numbers algebraic
2246 numbers = [mk_algebraic(_) for _ in numbers]
NotImplementedError:

What is the reason for why only embeddings of real numbers are supported?

I modified the code in `number_field_elements_from_algebraics`

to support complex embeddings by essentially removing the check for whether the numbers are real and replacing `RealIntervalField`

by `ComplexIntervalField`

. This seems to work and the doctests still pass with these modifications. However I am worried that there was a good reason (either mathematically or related to some sage internals) for restricting this function to the real case.

The relevant code in `sage.rings.qqbar`

was introduced in these commits:

`26dc3e4e6a26f6f613a69d57929ea492c278dad0`

`a9045bf8a3aab2d0aa00be17e91227bc1b50262a`