code: def test_versioning(setup_path):
      with ensure_clean_store(setup_path) as store:
          store["a"] = Series(
              np.arange(10, dtype=np.float64),
              index=date_range("2020-01-01", periods=10),
          )
          store["b"] = DataFrame(
              1.1 * np.arange(120).reshape((30, 4)),
              columns=Index(list("ABCD"), dtype=object),
              index=Index([f"i-{i}" for i in range(30)], dtype=object),
          )
          df = DataFrame(
              np.random.default_rng(2).standard_normal((20, 4)),
              columns=Index(list("ABCD"), dtype=object),
              index=date_range("2000-01-01", periods=20, freq="B"),
          )
          _maybe_remove(store, "df1")
          store.append("df1", df[:10])
          store.append("df1", df[10:])
          assert store.root.a._v_attrs.pandas_version == "0.15.2"
          assert store.root.b._v_attrs.pandas_version == "0.15.2"
          assert store.root.df1._v_attrs.pandas_version == "0.15.2"
  
          # write a file and wipe its versioning
          _maybe_remove(store, "df2")
          store.append("df2", df)
  
          # this is an error because its table_type is appendable, but no
          # version info
          store.get_node("df2")._v_attrs.pandas_version = None
  
          msg = "'NoneType' object has no attribute 'startswith'"
  
          with pytest.raises(Exception, match=msg):
              store.select("df2")
  
imports: import contextlib
  import datetime
  import hashlib
  import tempfile
  import time
  import numpy
  import pytest
  import pandas
  from pandas import DataFrame, DatetimeIndex, Index, MultiIndex, Series, Timestamp, concat, date_range, period_range, timedelta_range
  import pandas._testing
  from pandas.tests.io.pytables.common import _maybe_remove, ensure_clean_store
  from pandas.io.pytables import HDFStore, read_hdf
label_desc: Use image node_id 6 for calling a global function with example usage: test_versioning(setup_path) without return types