aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/core/resources/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'pygithub3/core/resources/__init__.py')
-rw-r--r--pygithub3/core/resources/__init__.py87
1 files changed, 0 insertions, 87 deletions
diff --git a/pygithub3/core/resources/__init__.py b/pygithub3/core/resources/__init__.py
deleted file mode 100644
index bca9607..0000000
--- a/pygithub3/core/resources/__init__.py
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env python
-# -*- encoding: utf-8 -*-
-
-import re
-
-ABS_IMPORT_PREFIX = 'pygithub3.core.resources'
-
-
-class UriNotFound(Exception):
- pass
-
-
-class UriInvalid(Exception):
- pass
-
-
-class Resource(object):
- """ """
-
- def __init__(self, args):
- """ """
- self.args = args
- self.validate()
- self.uri = self.set_uri()
-
- def validate(self, args):
- raise NotImplementedError
-
- def set_uri(self):
- raise NotImplementedError
-
- def get_uri(self):
- return str(self.uri).strip('/')
-
- def get_model(self):
- return getattr(self, 'model', '')
-
- def __getattr__(self, name):
- return self.args.get(name)
-
- def __str__(self):
- return self.get_uri()
-
-
-class Factory(object):
- """ """
-
- import_pattern = re.compile(r'^(\w+\.)+\w+$')
-
- def __init__(self, **kwargs):
- self.args = kwargs
-
- def __validate(func):
- """ """
-
- def wrapper(self, resource_path):
- if not Factory.import_pattern.match(resource_path):
- raise UriInvalid("'%s' isn't valid form" % resource_path)
- return func(self, resource_path.lower())
- return wrapper
-
- def __dispatch(func):
- """ """
-
- from importlib import import_module
-
- def wrapper(self, resource_path):
- module_chunk, s, uri_chunk = resource_path.rpartition('.')
- try:
- # TODO: CamelCase and under_score support, now only Class Name
- module = import_module('%s.%s'
- % (ABS_IMPORT_PREFIX, module_chunk))
- uri = getattr(module, uri_chunk.capitalize())
- except ImportError:
- raise UriNotFound("'%s' module does not exists" % module_chunk)
- except AttributeError:
- raise UriNotFound("'%s' uri doesn't exists into '%s' module"
- % (uri_chunk.capitalize(), module_chunk))
- return func(self, uri)
- return wrapper
-
- @__validate
- @__dispatch
- def __call__(self, resource_class=''):
- resource = resource_class(self.args)
- assert isinstance(resource, Resource)
- return resource