-
Notifications
You must be signed in to change notification settings - Fork 51
Description
Oli emailed this bug report:
Hi Jack,
I'm trying to write the metadata for wikienergy at the moment, but have hit a problem when I try to read in the building1.yaml metadata for my dataset. When I don't include building1.yaml in the metadata, things seem to work just fine. However, when I do include it, it generates this stacktrace:
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
/usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
176 else:
177 filename = fname
--> 178 __builtin__.execfile(filename, *where)
/home/oli/nilmtk/nilmtk/dataset_converters/wikienergy/test_dataset_wikienergy.py in <module>()
10 print 'testing queries over single table'
11 houses = {26:('2014-05-02','2014-05-03')}
---> 12 download_wikienergy(database_username, database_password, output_directory, periods_to_load=houses)
13 print('')
14 '''
/home/oli/nilmtk/nilmtk/dataset_converters/wikienergy/download_wikienergy.py in download_wikienergy(database_username, database_password, hdf_filename, periods_to_load)
206
207 convert_yaml_to_hdf5(join(_get_module_directory(), 'metadata'),
--> 208 hdf_filename)
209
210 def _wikienergy_dataframe_to_hdf(wikienergy_dataframe, store, nilmtk_building_id):
/usr/local/lib/python2.7/dist-packages/nilm_metadata-0.2.0-py2.7.egg/nilm_metadata/convert_yaml_to_hdf5.pyc in convert_yaml_to_hdf5(yaml_dir, hdf_filename)
53 _set_data_location(elec_meters, building)
54 _sanity_check_meters(elec_meters, meter_devices)
---> 55 _sanity_check_appliances(building_metadata)
56 group._f_setattr('metadata', building_metadata)
57
/usr/local/lib/python2.7/dist-packages/nilm_metadata-0.2.0-py2.7.egg/nilm_metadata/convert_yaml_to_hdf5.pyc in _sanity_check_appliances(building_metadata)
105 """
106 appliances = building_metadata['appliances']
--> 107 appliance_types = get_appliance_types()
108 building_instance = building_metadata['instance']
109
/usr/local/lib/python2.7/dist-packages/nilm_metadata-0.2.0-py2.7.egg/nilm_metadata/object_concatenation.pyc in get_appliance_types()
12 recursively resolved.
13 """
---> 14 appliance_types_from_disk = get_appliance_types_from_disk()
15 appliance_types = _concatenate_all_appliance_types(appliance_types_from_disk)
16 return appliance_types
/usr/local/lib/python2.7/dist-packages/nilm_metadata-0.2.0-py2.7.egg/nilm_metadata/file_management.pyc in get_appliance_types_from_disk()
8
9 def get_appliance_types_from_disk():
---> 10 obj_filenames = _find_all_appliance_type_files()
11 obj_cache = {}
12 for filename in obj_filenames:
/usr/local/lib/python2.7/dist-packages/nilm_metadata-0.2.0-py2.7.egg/nilm_metadata/file_management.pyc in _find_all_appliance_type_files()
20 def _find_all_appliance_type_files():
21 filenames = _find_all_files_with_suffix('.yaml',
---> 22 _get_appliance_types_directory())
23 return filenames
24
/usr/local/lib/python2.7/dist-packages/nilm_metadata-0.2.0-py2.7.egg/nilm_metadata/file_management.pyc in _get_appliance_types_directory()
25
26 def _get_appliance_types_directory():
---> 27 return _path_to_directory('..', 'central_metadata', 'appliance_types')
28
29
/usr/local/lib/python2.7/dist-packages/nilm_metadata-0.2.0-py2.7.egg/nilm_metadata/file_management.pyc in _path_to_directory(*args)
43 def _path_to_directory(*args):
44 path_to_directory = join(_get_module_directory(), *args)
---> 45 assert isdir(path_to_directory)
46 return path_to_directory
47
AssertionError:
> /usr/local/lib/python2.7/dist-packages/nilm_metadata-0.2.0-py2.7.egg/nilm_metadata/file_management.py(45)_path_to_directory()
44 path_to_directory = join(_get_module_directory(), *args)
---> 45 assert isdir(path_to_directory)
46 return path_to_directory
so it seems like nilm-metadata is breaking while asserting that the provided path is in fact a directory. Debugging a little further:
ipdb> path_to_directory
'/usr/local/lib/python2.7/dist-packages/nilm_metadata-0.2.0-py2.7.egg/nilm_metadata/../central_metadata/appliance_types'
and it turns out that the central_metadata directory doesn't exist beside the nilm_metadata directory. I downloaded the central_metadata from github which seems to have solved the problem. Is this something that should have copied over automatically when I did 'sudo python setup.py install' for nilm-metadata?
Sorry for the long email. Feel free to call me if it's easier!
Oli