pep8-fication + cleaning comments so the only comments lefts are to be replaced by logs into a file
authorNicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
Wed, 03 Dec 2014 17:40:19 +0100
changeset 8 d02faa4a2eb2
parent 7 b3c03d54e144
child 9 893799c494e2
pep8-fication + cleaning comments so the only comments lefts are to be replaced by logs into a file
src/catedit/api.py
src/catedit/app.py
src/catedit/models.py
src/catedit/persistence.py
src/catedit/settings.py
src/catedit/views.py
--- a/src/catedit/api.py	Fri Nov 28 17:32:22 2014 +0100
+++ b/src/catedit/api.py	Wed Dec 03 17:40:19 2014 +0100
@@ -10,33 +10,28 @@
 
 api = Api(app)
 
-cat_parser=reqparse.RequestParser()
+cat_parser = reqparse.RequestParser()
 cat_parser.add_argument('label', type=str)
 cat_parser.add_argument('description', type=str)
 cat_parser.add_argument('commit_message', type=str)
 cat_parser.add_argument('property_predicate', type=str, action="append")
 cat_parser.add_argument('property_object', type=str, action="append")
-#cat_parser.add_argument('delete_message', type=str)
+# cat_parser.add_argument('delete_message', type=str)
 
 
 class CategoryAPI(Resource):
-    # returns category cat_id
+    # returns category cat_id or all if cat_id is None
     @classmethod
     @cache.memoize(timeout=3600)
     def get(self, cat_id=None):
-        # load file cat_id
-        # TODO: load list if cat_id=None
         cat_manager_instance = CategoryManager()
         if cat_id is not None:
             c = cat_manager_instance.load_cat(cat_id)
-            # print "get id: "+c.cat_id
             return c.cat_graph.serialize(format='turtle')
         else:
-            response=[]
+            response = []
             for c in cat_manager_instance.list_cat():
                 response.append(c.cat_graph.serialize(format='turtle'))
-                # print response
-            # print "get id: None"
             return response
 
     # update category cat_id
@@ -45,7 +40,7 @@
         args = cat_parser.parse_args()
         cat_manager_instance = CategoryManager()
 
-        new_property_list=[]
+        new_property_list = []
         # print args["property_predicate"]
         # print args["property_object"]
         for property_predicate, property_object in zip(
@@ -58,7 +53,7 @@
                              [property_predicate] \
                              ["object_type"] == "uriref-category" :
                     property_object_to_append = app.config["ONTOLOGY_NAMESPACE"] \
-                                                +property_object
+                                                + property_object
                     # print property_object_to_append
                 new_property_list.append((property_predicate, property_object_to_append))
         # print new_property_list
@@ -76,8 +71,8 @@
     def post(self):
         args = cat_parser.parse_args()
         property_list = []
-        #print args["property_predicate"]
-        #print args["property_object"]
+        # print args["property_predicate"]
+        # print args["property_object"]
         for property_predicate, property_object in zip(
                 request.form.getlist('property_predicate'),
                 request.form.getlist('property_object')):
--- a/src/catedit/app.py	Fri Nov 28 17:32:22 2014 +0100
+++ b/src/catedit/app.py	Wed Dec 03 17:40:19 2014 +0100
@@ -14,7 +14,7 @@
 github = GitHub(app)
 
 # set up logging
-file_handler=FileHandler(filename=app.config["LOG_FILE_PATH"])
+file_handler = FileHandler(filename=app.config["LOG_FILE_PATH"])
 file_handler.setFormatter(Formatter('''
 Message type:       %(levelname)s
 Location:           %(pathname)s:%(lineno)d
--- a/src/catedit/models.py	Fri Nov 28 17:32:22 2014 +0100
+++ b/src/catedit/models.py	Wed Dec 03 17:40:19 2014 +0100
@@ -9,12 +9,13 @@
 
 """
 Namespace: ld.iri-research.org/ontology/categorisation/#
-Category URI: ld.iri-research.org/categorisation/#cat_id
+Category URI: ld.iri-research.org/ontology/categorisation/#cat_id
 
 Category Class:
 label is the rdf label of the category
 description is the description of the category
-other_properties is a dictionnary containing every other RDF(S) property
+other_properties is a dictionnary containing every other supported property
+as defined in the PROPERTY_LIST dict in settings.py
 """
 
 
@@ -22,14 +23,12 @@
     def __init__(self, label=None, description=None,
                  other_properties=None, graph=None):
         if not(graph):
-            #cat_id = uuid4().hex
-            cat_id="category_id_"+slugify(label)
+            # cat_id = uuid4().hex - Alternate method of generating ids
+            cat_id = "category_id_"+slugify(label)
             self.cat_graph = Graph()
             self.this_category = URIRef(app.config["ONTOLOGY_NAMESPACE"]+cat_id)
             self.cat_graph.add((self.this_category, RDF.ID, Literal(cat_id)))
 
-            # parsing label and description
-
             if label:
                 self.cat_graph.add((self.this_category,
                                    RDFS.label,
@@ -39,7 +38,6 @@
                                    RDF.Description,
                                    Literal(description)))
 
-            # parsing other properties
             if other_properties:
                 for (predicate, obj) in other_properties:
                     self.cat_graph.add((self.this_category,
@@ -78,7 +76,6 @@
 
     @property
     def properties(self):
-        # list of properties from the PROPERTY_LIST defined in settings.py
         property_list = []
         for key in app.config["PROPERTY_LIST"]:
             for obj in self.cat_graph \
@@ -89,47 +86,53 @@
                 property_list.append((key, obj.toPython()))
         return property_list
 
-    def edit_category(self, new_label=None,
-                      new_description=None,
-                      new_other_properties=None):
-        # Did the label change?
-        if new_label is not None and new_label != self.label:
-            # Remove the old triple
+    def edit_category(self, new_label=False,
+                      new_description=False,
+                      new_other_properties=False):
+        """
+        Checks if there is a new label and if so apply changes
+        """
+        if new_label is not False and new_label != self.label:
             self.cat_graph.remove((self.this_category,
                                    RDFS.label,
                                    self.cat_graph.label(self.this_category)))
-            # Make a new one
             self.cat_graph.add((self.this_category,
                                 RDFS.label,
                                 Literal(new_label)))
-        # Did the description change?
-        if new_description is not None and new_description != self.description:
-            # Remove the old triple
+
+        """
+        Checks if there is a new description and if so apply changes
+        """
+        if new_description is not False and new_description != self.description:
             self.cat_graph.remove((self.this_category,
                                   RDF.Description,
                                   self.cat_graph.value(self.this_category,
                                                        RDF.Description)))
-            # Make a new one
             self.cat_graph.add((self.this_category,
                                RDF.Description,
                                Literal(new_description)))
 
-        # Did the properties change?
-        if new_other_properties is not None or self.properties is not None:
-            print "before suppressing properties: "
-            print self.properties
-            print "will replace with: "
-            print new_other_properties
+        """
+        Checks if there is a new property list and if so apply changes
+        (can be [] so it deletes everything)
+        """
+        if new_other_properties is not False or \
+           (new_other_properties is None and \
+           self.properties is not None):
+            # print "before suppressing properties: "
+            # print self.properties
+            # print "will replace with: "
+            # print new_other_properties
             for key in app.config["PROPERTY_LIST"]:
                 self.cat_graph.remove((self.this_category,
                                        app.config["PROPERTY_LIST"]
                                                  [key]
                                                  ["rdflib_class"],
                                        None))
-            print "now properties are: "
-            print self.properties
-            print "making new properties: "
-            print new_other_properties
+            # print "now properties are: "
+            # print self.properties
+            # print "making new properties: "
+            # print new_other_properties
             for (predicate, obj) in new_other_properties:
                 self.cat_graph.add((self.this_category,
                                     app.config["PROPERTY_LIST"]
@@ -151,7 +154,7 @@
 
 class CategoryManager(object):
     def load_cat(self, cat_id):
-        p = getattr(persistence,app.config["PERSISTENCE_METHOD"])()
+        p = getattr(persistence, app.config["PERSISTENCE_METHOD"])()
         cat_serial = p.load(name=cat_id)
         loaded_cat_graph = Graph()
         loaded_cat_graph.parse(source=StringIO(cat_serial), format='turtle')
@@ -159,15 +162,15 @@
         return cat
 
     def save_cat(self, cat, message=None):
-        p = getattr(persistence,app.config["PERSISTENCE_METHOD"])()
+        p = getattr(persistence, app.config["PERSISTENCE_METHOD"])()
         p.save(content=cat.cat_graph.serialize(format='turtle'),
                name=cat.cat_id, message=message)
 
     def delete_cat(self, deleted_cat_id, message=None):
-        cat_list=self.list_cat()
+        cat_list = self.list_cat()
         for cat in cat_list:
             if cat.cat_id != app.config["ONTOLOGY_NAMESPACE"]+deleted_cat_id:
-                new_property_list_for_cat=[]
+                new_property_list_for_cat = []
                 for (predicate, obj) in cat.properties:
                     if not ((app.config["PROPERTY_LIST"]
                                        [predicate]
@@ -176,14 +179,14 @@
                         new_property_list_for_cat.append((predicate, obj))
                 cat.edit_category(new_other_properties=new_property_list_for_cat)
                 self.save_cat(cat, message=message+", cleaning up other properties")
-        p = getattr(persistence,app.config["PERSISTENCE_METHOD"])()
+        p = getattr(persistence, app.config["PERSISTENCE_METHOD"])()
         p.delete(name=deleted_cat_id, message=message)
 
     def list_cat(self):
-        p = getattr(persistence,app.config["PERSISTENCE_METHOD"])()
+        p = getattr(persistence, app.config["PERSISTENCE_METHOD"])()
         cat_serial_list = p.list()
         # print cat_serial_list
-        cat_list=[]
+        cat_list = []
         for cat_serial in cat_serial_list:
             loaded_cat_graph = Graph()
             loaded_cat_graph.parse(source=StringIO(cat_serial), format='turtle')
--- a/src/catedit/persistence.py	Fri Nov 28 17:32:22 2014 +0100
+++ b/src/catedit/persistence.py	Wed Dec 03 17:40:19 2014 +0100
@@ -5,6 +5,7 @@
 import os
 import json
 
+
 class Persistence:
     __metaclass__ = ABCMeta
 
@@ -50,32 +51,33 @@
         return file_content
 
     def delete(self, **kwargs):
-        path_to_delete= app.config["FILE_SAVE_DIRECTORY"]+kwargs["name"]
+        path_to_delete = app.config["FILE_SAVE_DIRECTORY"]+kwargs["name"]
         os.remove(path_to_delete)
 
     # IDEA: return { file_name: file_content } type dict
     def list(self, **kwargs):
-        file_content_list=[]
+        file_content_list = []
         for file_name in os.listdir(app.config["FILE_SAVE_DIRECTORY"]):
-            file=open(app.config["FILE_SAVE_DIRECTORY"]+file_name)
+            file = open(app.config["FILE_SAVE_DIRECTORY"]+file_name)
             file_content = file.read()
             file.close
             file_content_list.append(file_content)
         # print file_content_list
         return file_content_list
 
+
 class PersistenceToGithub(Persistence):
     def save(self, **kwargs):
         # print kwargs["content"]
-        request_data = {"content": b64encode(kwargs["content"]), \
+        request_data = {"content": b64encode(kwargs["content"]),
                         "message": kwargs["message"]}
         try:
             filedict = github.get("repos/"
-                                  +app.config["REPOSITORY_OWNER"]+"/"
-                                  +app.config["REPOSITORY_NAME"]
-                                  +"/contents/"
-                                  +app.config["CATEGORIES_PATH"]
-                                  +kwargs["name"])
+                                  + app.config["REPOSITORY_OWNER"]+"/"
+                                  + app.config["REPOSITORY_NAME"]
+                                  + "/contents/"
+                                  + app.config["CATEGORIES_PATH"]
+                                  + kwargs["name"])
             request_data["sha"] = filedict["sha"]
         except GitHubError:
             pass
@@ -83,11 +85,11 @@
         try:
             github.request('PUT',
                            "repos/"
-                           +app.config["REPOSITORY_OWNER"]+"/"
-                           +app.config["REPOSITORY_NAME"]
-                           +"/contents/"
-                           +app.config["CATEGORIES_PATH"]
-                           +kwargs["name"],
+                           + app.config["REPOSITORY_OWNER"]+"/"
+                           + app.config["REPOSITORY_NAME"]
+                           + "/contents/"
+                           + app.config["CATEGORIES_PATH"]
+                           + kwargs["name"],
                            data=json.dumps(request_data))
         except GitHubError:
             pass
@@ -95,60 +97,60 @@
     def load(self, **kwargs):
         try:
             filedict = github.get("repos/"
-                                  +app.config["REPOSITORY_OWNER"]+"/"
-                                  +app.config["REPOSITORY_NAME"]
-                                  +"/contents/"
-                                  +app.config["CATEGORIES_PATH"]
-                                  +kwargs["name"])
-            file_content=b64decode(filedict["content"])
+                                  + app.config["REPOSITORY_OWNER"]+"/"
+                                  + app.config["REPOSITORY_NAME"]
+                                  + "/contents/"
+                                  + app.config["CATEGORIES_PATH"]
+                                  + kwargs["name"])
+            file_content = b64decode(filedict["content"])
         except GitHubError:
             pass
         return file_content
 
     def delete(self, **kwargs):
-        request_data = { "message": kwargs["message"] }
+        request_data = {"message": kwargs["message"]}
         try:
             filedict = github.get("repos/"
-                                  +app.config["REPOSITORY_OWNER"]+"/"
-                                  +app.config["REPOSITORY_NAME"]
-                                  +"/contents/"
-                                  +app.config["CATEGORIES_PATH"]
-                                  +kwargs["name"])
+                                  + app.config["REPOSITORY_OWNER"]+"/"
+                                  + app.config["REPOSITORY_NAME"]
+                                  + "/contents/"
+                                  + app.config["CATEGORIES_PATH"]
+                                  + kwargs["name"])
             request_data["sha"] = filedict["sha"]
         except GitHubError:
             pass
 
         try:
             github.request('DELETE',
-                            "repos/catedit-system/"
-                            +app.config["REPOSITORY_NAME"]
-                            +"/contents/categories/"
-                            +kwargs["name"],
-                            data=json.dumps(request_data))
+                           "repos/catedit-system/"
+                           + app.config["REPOSITORY_NAME"]
+                           + "/contents/categories/"
+                           + kwargs["name"],
+                           data=json.dumps(request_data))
         except GitHubError:
             pass
 
     def list(self, **kwargs):
-        filenames_list=[]
+        filenames_list = []
         try:
             files_in_repo = github.get("repos/"
-                                       +app.config["REPOSITORY_OWNER"]+"/"
-                                       +app.config["REPOSITORY_NAME"]
-                                       +"/contents/"
-                                       +app.config["CATEGORIES_PATH"])
-            filenames_list = [ file["name"] for file in files_in_repo ]
+                                       + app.config["REPOSITORY_OWNER"]+"/"
+                                       + app.config["REPOSITORY_NAME"]
+                                       + "/contents/"
+                                       + app.config["CATEGORIES_PATH"])
+            filenames_list = [file["name"] for file in files_in_repo]
             # print filenames_list
         except GitHubError:
             pass
-        file_content_list=[]
+        file_content_list = []
         for filename in filenames_list:
             try:
                 filedict = github.get("repos/"
-                                      +app.config["REPOSITORY_OWNER"]+"/"
-                                      +app.config["REPOSITORY_NAME"]
-                                      +"/contents/"
-                                      +app.config["CATEGORIES_PATH"]
-                                      +filename)
+                                      + app.config["REPOSITORY_OWNER"]+"/"
+                                      + app.config["REPOSITORY_NAME"]
+                                      + "/contents/"
+                                      + app.config["CATEGORIES_PATH"]
+                                      + filename)
                 file_content_list.append(b64decode(filedict["content"]))
             except GitHubError:
                 pass
--- a/src/catedit/settings.py	Fri Nov 28 17:32:22 2014 +0100
+++ b/src/catedit/settings.py	Wed Dec 03 17:40:19 2014 +0100
@@ -1,6 +1,5 @@
 from rdflib import *
 
-# Category persistence parameters
 
 class appSettings(object):
 
@@ -8,7 +7,7 @@
 
     HOST = "0.0.0.0"
     DEBUG = True
-    LOGGING = True
+    LOGGING = False
 
     # WTForms settings
 
@@ -38,39 +37,39 @@
     GITHUB_CLIENT_ID = "3e31f3b000a4914f75ef"
     GITHUB_CLIENT_SECRET = "bc17eb0ec11385628c2e75aacb5ff8ef5f29e490"
 
-    # Property List
+    # Property List - DO NOT OVERWRITE IN config.py EVER
 
     PROPERTY_LIST = {
         "subClassOf": {
-            "descriptive_label_fr" : "Sous-classe de",
-            "descriptive_label_en" : "Subclass of",
-            "object_type" : "uriref-category",
-            "rdflib_class" : RDFS.subClassOf,
-            "object_rdflib_class" : URIRef,
+            "descriptive_label_fr": "Sous-classe de",
+            "descriptive_label_en": "Subclass of",
+            "object_type": "uriref-category",
+            "rdflib_class": RDFS.subClassOf,
+            "object_rdflib_class": URIRef,
         },
         "value": {
-            "descriptive_label_fr" : "Valeur",
-            "descriptive_label_en" : "Value",
-            "object_type" : "literal",
-            "rdflib_class" : RDF.value,
-            "object_rdflib_class" : Literal,
+            "descriptive_label_fr": "Valeur",
+            "descriptive_label_en": "Value",
+            "object_type": "literal",
+            "rdflib_class": RDF.value,
+            "object_rdflib_class": Literal,
         },
         "type": {
-            "descriptive_label_fr" : "Type",
-            "descriptive_label_en" : "Type",
-            "object_type" : "uriref-category",
-            "rdflib_class" : RDF.type,
-            "object_rdflib_class" : URIRef,
+            "descriptive_label_fr": "Type",
+            "descriptive_label_en": "Type",
+            "object_type": "uriref-category",
+            "rdflib_class": RDF.type,
+            "object_rdflib_class": URIRef,
         },
         "resource": {
-            "descriptive_label_fr" : "Ressource",
-            "descriptive_label_en" : "Resource",
-            "object_type" : "uriref-link",
-            "rdflib_class" : RDFS.Resource,
-            "object_rdflib_class" : URIRef,
+            "descriptive_label_fr": "Ressource",
+            "descriptive_label_en": "Resource",
+            "object_type": "uriref-link",
+            "rdflib_class": RDFS.Resource,
+            "object_rdflib_class": URIRef,
         },
     }
 
-    # PersistenceMethod
+    # Category persistence parameters
 
-    PERSISTENCE_METHOD="PersistenceToGithub"
+    PERSISTENCE_METHOD = "PersistenceToGithub"
--- a/src/catedit/views.py	Fri Nov 28 17:32:22 2014 +0100
+++ b/src/catedit/views.py	Wed Dec 03 17:40:19 2014 +0100
@@ -18,7 +18,7 @@
 
 @app.route('/', methods=['GET'])
 @app.route('/catrecap', methods=['GET'])
-@app.route('/catrecap/delete/<string:delete_cat_id>', methods=['GET','POST'])
+@app.route('/catrecap/delete/<string:delete_cat_id>', methods=['POST'])
 def cat_recap(delete_cat_id=None):
     cat_api_instance = CategoryAPI()
     # list categories
@@ -29,7 +29,8 @@
         # print cat_list
         for serialized_cat in serialized_cat_list:
             cat_rdf_graph = Graph()
-            cat_rdf_graph.parse(source=StringIO(serialized_cat), format='turtle')
+            cat_rdf_graph.parse(source=StringIO(serialized_cat),
+                                format='turtle')
             c = Category(graph=cat_rdf_graph)
 
             cat_list.append({"cat_label": c.label,
@@ -53,7 +54,8 @@
     cat_list = []
     for serialized_cat in serialized_cat_list:
         cat_rdf_graph = Graph()
-        cat_rdf_graph.parse(source=StringIO(serialized_cat), format='turtle')
+        cat_rdf_graph.parse(source=StringIO(serialized_cat),
+                            format='turtle')
         c = Category(graph=cat_rdf_graph)
 
         cat_list.append({"cat_label": c.label,
@@ -65,7 +67,8 @@
         catSerial = cat_api_instance.get(cat_id)
 
         cat_rdf_graph = Graph()
-        cat_rdf_graph.parse(source=StringIO(catSerial), format='turtle')
+        cat_rdf_graph.parse(source=StringIO(catSerial),
+                            format='turtle')
         c = Category(graph=cat_rdf_graph)
 
         setattr(NewCategoryMinimalForm,
@@ -94,7 +97,7 @@
         if cat_form.validate_on_submit():
             cat_api_instance.put(cat_id)
             return redirect(url_for('cat_recap'))
-        else :
+        else:
             return render_template('cateditor.html',
                                    cat_id=cat_id,
                                    cat_properties=c.properties,
@@ -123,15 +126,17 @@
         if cat_form.validate_on_submit():
             cat_api_instance.post()
             return redirect(url_for('cat_recap'))
-        else :
+        else:
             return render_template('cateditor.html',
                                    form=cat_form,
                                    cat_list=cat_list)
 
+
 @app.route('/catedit-github-login')
 def github_login():
     return github.authorize(scope="repo")
 
+
 @app.route('/catedit-github-callback')
 @github.authorized_handler
 def github_callback(oauth_code):
@@ -140,12 +145,13 @@
     session["user_logged"] = True
     session["user_login"] = github.get("user")["login"]
     try:
-        repoList=[]
-        repoList=github.get("user/repos")
+        repoList = []
+        repoList = github.get("user/repos")
         # for repo in repoList:
         #     print repo["name"]
         session["user_can_edit"] = True
-        if not any (repo["name"] == app.config["REPOSITORY_NAME"] for repo in repoList):
+        if not any (repo["name"] == app.config["REPOSITORY_NAME"]
+                    for repo in repoList):
             session["user_can_edit"] = False
         # print session["user_can_edit"]
     except GitHubError:
@@ -155,12 +161,14 @@
     # print session["user_login"]
     return redirect(url_for('cat_recap'))
 
+
 @github.access_token_getter
 def token_getter():
-    if session.get("user_logged",None):
+    if session.get("user_logged", None):
         print "I made an authentified request"
         return session["user_code"]
 
+
 @app.route('/catedit-logout')
 def logout():
     session["user_code"] = None