def update(): #OEC print("Updating OEC database.............\n") # do a git pull to update OEC try: cloned_repo = git.Repo("open_exoplanet_catalogue") cloned_repo.git.checkout('master') cloned_repo.git.pull() except git.exc.GitCommandError: print "The repo 'open_exoplanet_catalogue' does not exist for updating." root_dir = os.getcwd() root_dir = root_dir + "/" + "open_exoplanet_catalogue" + "/" + "systems" oec_database = dboec.Database() for root, dirs, files in os.walk(root_dir): for name in files: data_one_system = minidom.parse(root + "/" + name) one_system_dict = convert.getOEC(data_one_system) oec_database.update_xml(one_system_dict) local_oec = open("local_oec_init", "wb") pickle.dump(oec_database, local_oec) local_oec.close() #EU database print("Updating .eu database..............\n") url_eu = "http://exoplanet.eu/catalog/csv" list_eu = [] with requests.Session() as s: download = s.get(url_eu) decoded_content = download.content.decode('utf-8') cr = csv.reader(decoded_content.splitlines(), delimiter=',') my_list = list(cr) for row in my_list: list_eu.append(row) eu_data = convert.getEU(list_eu) eu_database = dboec.Database() eu_database.update_csv(eu_data, dboec.attr_eu) local_eu = open("local_eu", "wb") pickle.dump(eu_database, local_eu) local_eu.close() #NASA database print("Updating NASA database..............\n") url_nasa = "http://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?table=exoplanets&select=*" list_nasa = [] with requests.Session() as s: download = s.get(url_nasa) decoded_content = download.content.decode('utf-8') cr = csv.reader(decoded_content.splitlines(), delimiter=',') my_list = list(cr) for row in my_list: list_nasa.append(row) nasa_data = convert.getNASA(list_nasa) nasa_database = dboec.Database() nasa_database.update_csv(nasa_data, dboec.attr_nasa) local_nasa = open("local_nasa", "wb") pickle.dump(nasa_database, local_nasa) local_nasa.close() print("Updating finished.")
def testUpdateXmlName(self): '''Tests update_xml on an XML file containing the 11 Com system.''' # Parse XML with system 11 Com parsed = minidom.parse("test_files/11 Com.xml") data = convert.getOEC(parsed) db = dboec.Database() db.update_xml(data) self.assertEqual(db.pldata[0].name, ['11 Com b'])
def testCreatePl(self): '''Tests that createPl inserts the Planet into the Database's planet list. ''' newPlanet = {'name': '11 Com b'} system = dboec.System() db = dboec.Database() db.system = [system] db.createPl(newPlanet, system) self.assertEqual(db.pldata[0].name == [newPlanet.get('name')], True)
def testUpdateCsvName(self): '''Tests update_csv on a small version of the EU database with two planets. ''' data = [] with open("test_files/small_eu.csv", 'rb') as f: cr = csv.reader(f, delimiter=',') my_list = list(cr) for row in my_list: data.append(row) dat = convert.getEU(data) db = dboec.Database() db.update_csv(dat, dboec.attr_eu) self.assertEqual(db.system[0].name == ['11 Com'] and db.system[1].name == ['11 Oph'], True)
import get_xml import gzip import os from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email import encoders from email.header import Header from subprocess import Popen if len(sys.argv) == 1: g = push_to_git.configuration() push_to_git.clone_repo(g) print("Initiating OEC database, Please wait.............\n") root_dir1 = os.getcwd() root_dir = root_dir1 + "/" + g.name + "/" + "systems" oec_database = dboec.Database() for root, dirs, files in os.walk(root_dir): for name in files: data_one_system = minidom.parse(root + "/" + name) one_system_dict = convert.getOEC(data_one_system) oec_database.update_xml(one_system_dict) local_oec = open("local_oec_init", "wb") pickle.dump(oec_database, local_oec) local_oec.close() print("Initialize finished.") print( "Welcome! Here you find a software to update open_exoplanet_catalogue.\n" ) print("For more information type '\help' to start!\n") while 1: user_input = sys.stdin.readline()
getattr(item, attrs)['errorminus'].decode('utf-8')) elif i == 'unit' and getattr(item, attrs)['unit']: subelem.set(i, getattr(item, attrs)['unit'].decode('utf-8')) elif i == 'upperlimit' and getattr(item, attrs)['upperlimit']: subelem.set( i, getattr(item, attrs)['upperlimit'].decode('utf-8')) elif i == 'lowerlimit' and getattr(item, attrs)['lowerlimit']: subelem.set( i, getattr(item, attrs)['lowerlimit'].decode('utf-8')) elif i == 'type' and getattr(item, attrs)['type']: subelem.set(i, getattr(item, attrs)['type'].decode('utf-8')) if __name__ == '__main__': import dboec import convert oecd = minidom.parse("systemexample.xml") data = convert.getOEC(oecd) d1 = dboec.Database() d1.update_xml(data) print(d1) for system in d1.system: print(system.name) toXml(system)