diff --git a/src/finam/data/tools.py b/src/finam/data/tools.py index 08273bd0a64549a1c678cebdde6fb982cef27d51..b5c243aed9aba397cc7d15ddc23d078ba9f5ae33 100644 --- a/src/finam/data/tools.py +++ b/src/finam/data/tools.py @@ -66,14 +66,6 @@ def prepare(data, info, time_entries=1, force_copy=False, report_conversion=Fals f"Given data has incompatible units. " f"Got {data.units}, expected {units}." ) - if not isinstance(data.magnitude, np.ndarray): - if force_copy: - data = copy.copy(data.magnitude) - else: - data = data.magnitude - - data = UNITS.Quantity(np.asarray(data), data.units) - if not equivalent_units(data.units, units): units_converted = data.units, units data = data.to(units) diff --git a/tests/data/test_tools.py b/tests/data/test_tools.py index e9bf06633cddd59cc85099ce03325af4ea932dee..7443778bcbfdc5167e83967e0e633158e5f4b88c 100644 --- a/tests/data/test_tools.py +++ b/tests/data/test_tools.py @@ -134,6 +134,14 @@ class TestDataTools(unittest.TestCase): ) self.assertEqual((1, 2, 2), data.shape) + data = finam.data.prepare( + finam.UNITS.Quantity(1.0, "m"), + finam.Info(time, grid=finam.NoGrid(), units="m"), + ) + + self.assertEqual((1,), data.shape) + self.assertEqual(finam.UNITS.meter, data.units) + with self.assertRaises(finam.errors.FinamDataError): finam.data.prepare( np.asarray([1, 2]), finam.Info(time, grid=finam.NoGrid()) @@ -192,6 +200,13 @@ class TestDataTools(unittest.TestCase): xdata[0, 0] = 0 * finam.UNITS("m") self.assertNotEqual(finam.data.get_magnitude(xdata2[0, 0]), 0.0) + data = [1.0] + xdata2 = finam.data.prepare(data, info_1, force_copy=True) + self.assertEqual(1.0 * finam.UNITS.meter, xdata2[0]) + + xdata2[0, 0] = 0 * finam.UNITS("m") + self.assertNotEqual(0.0, data[0]) + def test_assert_type(self): finam.data.assert_type(self, "A", 1, [int, float])