diff --git a/eland/series.py b/eland/series.py index 3004693..a2089bc 100644 --- a/eland/series.py +++ b/eland/series.py @@ -327,7 +327,7 @@ class Series(NDFrame): self.to_string( buf=buf, - name=self.name, + name=True, dtype=True, min_rows=min_rows, max_rows=max_rows, @@ -393,30 +393,46 @@ class Series(NDFrame): else: _buf = StringIO() - # Create repr of fake series without name, length, dtype summary - temp_series.to_string( - buf=_buf, - na_rep=na_rep, - float_format=float_format, - header=header, - index=index, - length=False, - dtype=False, - name=False, - max_rows=max_rows, - ) + if num_rows == 0: + # Empty series are rendered differently than + # series with items. We can luckily use our + # example series in this case. + temp_series.head(0).to_string( + buf=_buf, + na_rep=na_rep, + float_format=float_format, + header=header, + index=index, + length=length, + dtype=dtype, + name=name, + max_rows=max_rows, + ) + else: + # Create repr of fake series without name, length, dtype summary + temp_series.to_string( + buf=_buf, + na_rep=na_rep, + float_format=float_format, + header=header, + index=index, + length=False, + dtype=False, + name=False, + max_rows=max_rows, + ) - # Create the summary - footer = [] - if name and self.name is not None: - footer.append(f"Name: {self.name}") - if length and len(self) > max_rows: - footer.append(f"Length: {len(self.index)}") - if dtype: - footer.append(f"dtype: {temp_series.dtype}") + # Create the summary + footer = [] + if name and self.name is not None: + footer.append(f"Name: {self.name}") + if length and len(self) > max_rows: + footer.append(f"Length: {len(self.index)}") + if dtype: + footer.append(f"dtype: {temp_series.dtype}") - if footer: - _buf.write(f"\n{', '.join(footer)}") + if footer: + _buf.write(f"\n{', '.join(footer)}") if buf is None: result = _buf.getvalue() diff --git a/eland/tests/series/test_repr_pytest.py b/eland/tests/series/test_repr_pytest.py index 61c103c..e6df6ca 100644 --- a/eland/tests/series/test_repr_pytest.py +++ b/eland/tests/series/test_repr_pytest.py @@ -39,3 +39,8 @@ class TestSeriesRepr(TestData): ed_repr = repr(ed_s) assert pd_repr == ed_repr + + def test_repr_empty_series(self): + pd_s = self.pd_flights()["Carrier"].head(0) + ed_s = ed.Series(ES_TEST_CLIENT, FLIGHTS_INDEX_NAME, "Carrier").head(0) + assert repr(pd_s) == repr(ed_s)