Skip to content

Commit 65fa510

Browse files
srf94bmoscon
authored andcommitted
Raise exception if empty string given as column name (Issue pandas-dev#168) (pandas-dev#548)
* Raise exception if empty string given as column name (Issue pandas-dev#168) * Remove range for python 3 compatibility * updated_changelog
1 parent 1e598f6 commit 65fa510

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## Changelog
22

33
### 1.66
4+
* Bugfix: #168 Do not allow empty string as a column name
45

56
### 1.65 (2018-04-16)
67
* Bugfix: #534 VersionStore: overwriting a symbol with different dtype (but same data format) does not

arctic/serialization/numpy_records.py

+4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import numpy as np
33

44
from pandas import DataFrame, MultiIndex, Series, DatetimeIndex, Index
5+
from ..exceptions import ArcticException
56
try: # 0.21+ Compatibility
67
from pandas._libs.tslib import Timestamp
78
from pandas._libs.tslibs.timezones import get_timezone
@@ -110,6 +111,9 @@ def _to_records(self, df, string_max_len=None):
110111
index_names, ix_vals, metadata = self._index_to_records(df)
111112
columns, column_vals, multi_column = self._column_data(df)
112113

114+
if "" in columns:
115+
raise ArcticException("Cannot use empty string as a column name.")
116+
113117
if multi_column is not None:
114118
metadata['multi_column'] = multi_column
115119
metadata['columns'] = columns

tests/integration/store/test_version_store.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import numpy as np
1515

1616
import arctic
17-
from arctic.exceptions import NoDataFoundException, DuplicateSnapshotException
17+
from arctic.exceptions import NoDataFoundException, DuplicateSnapshotException, ArcticException
1818
from arctic.date import DateRange
1919
from arctic.store import _version_store_utils
2020

@@ -1393,3 +1393,11 @@ def test_prune_keeps_version(library):
13931393
library._prune_previous_versions(symbol, keep_mins=0, keep_version=old_version)
13941394

13951395
assert len(library.list_versions(symbol)) == 2
1396+
1397+
1398+
def test_empty_string_column_name(library):
1399+
df = pd.DataFrame(data=[0, 1, 2], index=[0, 1, 2])
1400+
df.columns = ['']
1401+
1402+
with pytest.raises(ArcticException):
1403+
library.write('df', df)

0 commit comments

Comments
 (0)