mirror of
				https://github.com/gsi-upm/senpy
				synced 2025-10-31 07:28:16 +00:00 
			
		
		
		
	JSON-LD contexts and prefixes
This commit is contained in:
		
							
								
								
									
										7
									
								
								app.py
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								app.py
									
									
									
									
									
								
							| @@ -23,12 +23,13 @@ import config | |||||||
| from flask import Flask | from flask import Flask | ||||||
| from senpy.extensions import Senpy | from senpy.extensions import Senpy | ||||||
| import logging | import logging | ||||||
|  | import os | ||||||
|  |  | ||||||
| logging.basicConfig(level=logging.DEBUG) | logging.basicConfig(level=logging.DEBUG) | ||||||
|  |  | ||||||
| app = Flask(__name__) | app = Flask(__name__) | ||||||
|  | mypath = os.path.dirname(os.path.realpath(__file__)) | ||||||
| sp = Senpy() | sp = Senpy(app, os.path.join(mypath, "plugins")) | ||||||
| sp.init_app(app) |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     app.debug = config.DEBUG |     app.debug = config.DEBUG | ||||||
|   | |||||||
| @@ -4,22 +4,39 @@ from collections import defaultdict | |||||||
|  |  | ||||||
|  |  | ||||||
| class Leaf(defaultdict): | class Leaf(defaultdict): | ||||||
|     def __init__(self, context=None, ofclass=list): |     _prefix = None | ||||||
|  |  | ||||||
|  |     def __init__(self, context=None, prefix=None, ofclass=list): | ||||||
|         super(Leaf, self).__init__(ofclass) |         super(Leaf, self).__init__(ofclass) | ||||||
|         if context: |         if context: | ||||||
|             self.context = context |             self.context = context | ||||||
|  |         self._prefix = prefix | ||||||
|  |  | ||||||
|     def __getattr__(self, name): |     def __getattr__(self, key): | ||||||
|         if name is not "context": |         return super(Leaf, self).__getitem__(self._get_key(key)) | ||||||
|             return super(Leaf, self).__getitem__(name) |  | ||||||
|         return self["@context"] |  | ||||||
|  |  | ||||||
|     def __setattr__(self, name, value): |     def __setattr__(self, key, value): | ||||||
|         name = "@context" if name is "context" else name |         try: | ||||||
|         self[name] = self.get_context(value) |             object.__getattr__(self, key) | ||||||
|  |             object.__setattr__(self, key, value) | ||||||
|  |         except AttributeError: | ||||||
|  |             key = self._get_key(key) | ||||||
|  |             value = self.get_context(value) if key == "@context" else value | ||||||
|  |             if key[0] == "_": | ||||||
|  |                 object.__setattr__(self, key, value) | ||||||
|  |             else: | ||||||
|  |                 super(Leaf, self).__setitem__(key, value) | ||||||
|  |  | ||||||
|     def __delattr__(self, name): |     def __delattr__(self, key): | ||||||
|         return super(Leaf, self).__delitem__(name) |         return super(Leaf, self).__delitem__(self._get_key(key)) | ||||||
|  |  | ||||||
|  |     def _get_key(self, key): | ||||||
|  |         if key is "context": | ||||||
|  |             return "@context" | ||||||
|  |         elif self._prefix: | ||||||
|  |             return "{}:{}".format(self._prefix, key) | ||||||
|  |         else: | ||||||
|  |             return key | ||||||
|  |  | ||||||
|     @staticmethod |     @staticmethod | ||||||
|     def get_context(context): |     def get_context(context): | ||||||
| @@ -65,6 +82,7 @@ class Opinion(Leaf): | |||||||
|     } |     } | ||||||
|     def __init__(self, polarityValue=None, hasPolarity=None, *args, **kwargs): |     def __init__(self, polarityValue=None, hasPolarity=None, *args, **kwargs): | ||||||
|         super(Opinion, self).__init__(context=self.opinionContext, |         super(Opinion, self).__init__(context=self.opinionContext, | ||||||
|  |                                       prefix="marl", | ||||||
|                                       *args, |                                       *args, | ||||||
|                                       **kwargs) |                                       **kwargs) | ||||||
|         if polarityValue is not None: |         if polarityValue is not None: | ||||||
| @@ -74,13 +92,12 @@ class Opinion(Leaf): | |||||||
|  |  | ||||||
|  |  | ||||||
| class EmotionSet(Leaf): | class EmotionSet(Leaf): | ||||||
|     emotionContext = { |     emotionContext = {} | ||||||
|         "@vocab": "http://www.gsi.dit.upm.es/ontologies/onyx/ns#" |  | ||||||
|     } |  | ||||||
|     def __init__(self, emotions=None, *args, **kwargs): |     def __init__(self, emotions=None, *args, **kwargs): | ||||||
|         if not emotions: |         if not emotions: | ||||||
|             emotions = [] |             emotions = [] | ||||||
|         super(EmotionSet, self).__init__(context=self.emotionContext, |         super(EmotionSet, self).__init__(context=self.emotionContext, | ||||||
|  |                                          prefix="onyx", | ||||||
|                                          *args, |                                          *args, | ||||||
|                                          **kwargs) |                                          **kwargs) | ||||||
|         self.emotions = emotions or [] |         self.emotions = emotions or [] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user