PK±C6GåR‹lflarecast/__init__.py__author__ = 'cansik' PK±C6GåR‹lflarecast/utils/__init__.py__author__ = 'cansik' PKSSbG<ƒÞ.SS%flarecast/utils/property_db_client.pyimport requests from flarecast.utils.rest_exception import RestException class PropertyDBClient(object): __INSERT_PROPERTY_GROUP_URL = '/%s/property-group/' __INSERT_PROPERTY_URL = '/property/' __INSERT_PROPERTY_AS_PROVENANCE_URL = '/%s/property/' __INSERT_PROVENANCE_URL = '/provenance/' __INSERT_PROPERTY_GROUP_TYPE_URL = '/%s/property-group-type/' __INSERT_LINK_URL = '/link/' __DELETE_PROPERTY_GROUP_URL = '/%s/property-group/%s' __QUERY_PROPERTY_GROUPS = '/query/%s/%s' def __init__(self, property_db_url): self.property_db_url = property_db_url # -- query -- def query(self, provenance, sirql_arguments=''): if sirql_arguments != '': sirql_arguments = '?' + sirql_arguments url = self.property_db_url + self.__QUERY_PROPERTY_GROUPS % ( provenance, sirql_arguments) return self.__get_request(url) # -- delete -- def delete_property_group(self, provenance, sirql_arguments=''): if sirql_arguments != '': sirql_arguments = '?' + sirql_arguments url = self.property_db_url + self.__DELETE_PROPERTY_GROUP_URL % ( provenance, sirql_arguments) return self.__delete_request(url) # -- inserts -- def insert_property_groups(self, provenance, property_groups): url = self.property_db_url + self.__INSERT_PROPERTY_GROUP_URL % ( provenance) return self.__post_request(url, property_groups) def insert_properties(self, properties): url = self.property_db_url + self.__INSERT_PROPERTY_URL return self.__post_request(url, properties) # todo: name this properly def insert_properties_as_provenance(self, provenance, properties): url = self.property_db_url + \ self.__INSERT_PROPERTY_AS_PROVENANCE_URL % \ (provenance) return self.__post_request(url, properties) def insert_provenances(self, provenance_list): url = self.property_db_url + self.__INSERT_PROVENANCE_URL return self.__post_request(url, provenance_list) def insert_links(self, link_list): url = self.property_db_url + self.__INSERT_LINK_URL return self.__post_request(url, link_list) # -- add -- def add_provenance(self, name): return self.insert_provenances([name]) def add_property_group(self, provenance, time_start, **attributes): group = {'time_start': time_start} group.update(attributes) return self.insert_property_groups(provenance, [group]) def add_properties(self, property_group_fcid, provenance=None, **properties): props = {property_group_fcid: properties} if provenance is None: return self.insert_properties(props) return self.insert_properties_as_provenance(provenance, props) def add_link(self, source, target, link_type, description): link = {'source': source, 'target': target, 'type': link_type, 'description': description} return self.insert_links([link]) # -- get -- def get_provenances(self): url = self.property_db_url + self.__INSERT_PROVENANCE_URL return self.__get_request(url) @staticmethod def __post_request(url, payload): headers = {'Content-Type': 'application/json'} r = requests.post(url, json=payload, headers=headers) if r.status_code != 200: raise RestException(r) return r.json() @staticmethod def __delete_request(url): r = requests.delete(url) if r.status_code != 200: raise RestException(r) return r.text @staticmethod def __get_request(url): r = requests.get(url) if r.status_code != 200: raise RestException(r) return r.json() PK#SbGhxý°DD!flarecast/utils/rest_exception.py__author__ = 'cansik' class RestException(Exception): def __init__(self, request, message=''): self.request = request self.message = message def __str__(self): if self.message != '': return "%s | %s " % (self.message, self.request.text) return "%s" % self.request.text PK#SbGMq†_BB#flarecast/utils/flarecast_config.pyimport json from warnings import warn import requests class FlarecastConfig(object): __CONFIG_URL = 'https://dev.flarecast.eu/stash/projects/INFRA/repos/' \ 'dev-infra/browse/global_config.json?&raw' def __init__(self, config_url=__CONFIG_URL): self.config_url = config_url self.config = {} requests.packages.urllib3.disable_warnings() def load(self): warn("Use 'load_from_url()' to load config file!", DeprecationWarning) self.load_from_url(self.config_url) def load_from_file(self, config_file): with open(config_file, "r") as cfg_file: data = cfg_file.readlines() self.config = json.loads(data) def load_from_url(self, config_url): config_resp = requests.get(config_url, verify=False) if config_resp.status_code != 200: print("Could not load global config file from %s" % self.config_url) exit(1) self.config = config_resp.json() def __getattr__(self, name): return self.config.get(name, None) PK(XbG^-Ò /flarecast_utils-1.2.0.dist-info/DESCRIPTION.rstUNKNOWN PK(XbGÏ‚×Eƒƒ-flarecast_utils-1.2.0.dist-info/metadata.json{"classifiers": ["Programming Language :: Python", "Programming Language :: Python :: 2.7", "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Operating System :: OS Independent"], "download_url": "https://dev.flarecast.eu/stash/scm/infra/utils.git", "extensions": {"python.details": {"contacts": [{"email": "florian.bruggisser@students.fhnw.ch", "name": "Florian Bruggisser", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://dev.flarecast.eu/stash/projects/INFRA/repos/utils/"}}}, "extras": [], "generator": "bdist_wheel (0.26.0)", "keywords": ["flarecast", "utils", "esa", "solar", "weather", "prediction"], "metadata_version": "2.0", "name": "flarecast-utils", "run_requires": [{"requires": ["requests"]}], "summary": "Flarecast utils provides tools to interact with the flarecast infrastructure.", "version": "1.2.0"}PK(XbG!’ -flarecast_utils-1.2.0.dist-info/top_level.txtflarecast PK(XbGŒ''\\%flarecast_utils-1.2.0.dist-info/WHEELWheel-Version: 1.0 Generator: bdist_wheel (0.26.0) Root-Is-Purelib: true Tag: py2-none-any PK(XbGâшFÆÆ(flarecast_utils-1.2.0.dist-info/METADATAMetadata-Version: 2.0 Name: flarecast-utils Version: 1.2.0 Summary: Flarecast utils provides tools to interact with the flarecast infrastructure. Home-page: https://dev.flarecast.eu/stash/projects/INFRA/repos/utils/ Author: Florian Bruggisser Author-email: florian.bruggisser@students.fhnw.ch License: UNKNOWN Download-URL: https://dev.flarecast.eu/stash/scm/infra/utils.git Keywords: flarecast,utils,esa,solar,weather,prediction Platform: UNKNOWN Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2.7 Classifier: Development Status :: 4 - Beta Classifier: Intended Audience :: Developers Classifier: Operating System :: OS Independent Requires-Dist: requests UNKNOWN PK(XbGd4a€ÐÐ&flarecast_utils-1.2.0.dist-info/RECORDflarecast/__init__.py,sha256=z9WncvVcYPdwPdmPZL4s53yM1OM15uqVxeeehlm1mn0,22 flarecast/utils/__init__.py,sha256=z9WncvVcYPdwPdmPZL4s53yM1OM15uqVxeeehlm1mn0,22 flarecast/utils/flarecast_config.py,sha256=GSIdrunVg-mTSxEC4TBSVXVHtEJlsqoHcabjRWlNjJc,1090 flarecast/utils/property_db_client.py,sha256=AbT5k4MDi4jXF0d-omTy1NMfb4awU_wB-J_z2mDlSXk,3923 flarecast/utils/rest_exception.py,sha256=HtmMq0ViURY4WmAo62-v7qwN0k7IZv2h_na5j9nVLkU,324 flarecast_utils-1.2.0.dist-info/DESCRIPTION.rst,sha256=OCTuuN6LcWulhHS3d5rfjdsQtW22n7HENFRh6jC6ego,10 flarecast_utils-1.2.0.dist-info/METADATA,sha256=y1SHjMevs4xgqJmYdIIqNHUJh_EPAQrIRFOE0j_sLXE,710 flarecast_utils-1.2.0.dist-info/RECORD,, flarecast_utils-1.2.0.dist-info/WHEEL,sha256=JTb7YztR8fkPg6aSjc571Q4eiVHCwmUDlX8PhuuqIIE,92 flarecast_utils-1.2.0.dist-info/metadata.json,sha256=LipYarNetQNHeqGmCnZqI-BYfLE0w4tcLVpEemeBja8,899 flarecast_utils-1.2.0.dist-info/top_level.txt,sha256=Noz7yZ657PxbcXs63rrhamUJb5C11TlmjKV_j0XQ0wI,10 PK±C6GåR‹lflarecast/__init__.pyPK±C6GåR‹lIflarecast/utils/__init__.pyPKSSbG<ƒÞ.SS%˜flarecast/utils/property_db_client.pyPK#SbGhxý°DD!.flarecast/utils/rest_exception.pyPK#SbGMq†_BB#±flarecast/utils/flarecast_config.pyPK(XbG^-Ò /4flarecast_utils-1.2.0.dist-info/DESCRIPTION.rstPK(XbGÏ‚×Eƒƒ-‹flarecast_utils-1.2.0.dist-info/metadata.jsonPK(XbG!’ -Yflarecast_utils-1.2.0.dist-info/top_level.txtPK(XbGŒ''\\%®flarecast_utils-1.2.0.dist-info/WHEELPK(XbGâшFÆÆ(Mflarecast_utils-1.2.0.dist-info/METADATAPK(XbGd4a€ÐÐ&Yflarecast_utils-1.2.0.dist-info/RECORDPK m"