Пример #1
0
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.")
Пример #2
0
 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'])
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
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()
Пример #6
0
                        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)