Skip to content

Commit

Permalink
Merge d00cfd1 into c4c6838
Browse files Browse the repository at this point in the history
  • Loading branch information
abhirathb committed Feb 11, 2019
2 parents c4c6838 + d00cfd1 commit 85dda28
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 5 deletions.
Empty file added DEVELOP
Empty file.
13 changes: 13 additions & 0 deletions knowledge_repo/app/app.py
Expand Up @@ -273,6 +273,19 @@ def format_date(date):
except:
return date

def append_repo(self,name,uri):
temp = self.repository
self.repository = knowledge_repo.KnowledgeRepository.append_for_uri(name,uri,temp)
self.db_update_index(check_timeouts=False, force=True, reindex=True)
return self.repository


def append_repo_obj(self,name,obj):
temp = self.repository
self.repository = knowledge_repo.KnowledgeRepository.append_obj(name,obj,temp)
self.db_update_index(check_timeouts=False, force=True, reindex=True)
return self.repository

@property
def repository(self):
return getattr(self, '_repository')
Expand Down
10 changes: 6 additions & 4 deletions knowledge_repo/app/auth_providers/oauth2.py
Expand Up @@ -156,15 +156,17 @@ def extract_from_dict(d, key):
if isinstance(key, (list, tuple)):
if len(key) == 1:
key = key[0]
else:
return extract_from_dict(d[key[0]], key[1:])
if isinstance(key, six.string_types):
elif d[key[0]] is None:
return extract_from_dict(d, key[1:])
else:
return extract_from_dict(d, key[0])
if isinstance(key, str):
return d[key]
raise RuntimeError("Invalid key type: {}.".format(key))

response = self.oauth_client.get(self.get_endpoint_url(self.user_info_endpoint), verify=self.verify_ssl_certs)
try:
response_dict = json.loads(response.content)
response_dict = json.loads(request.content.decode('utf-8'))
identifier = extract_from_dict(response_dict, self.user_info_mapping['identifier'])
if identifier is None:
raise ValueError("identifier '{}' not found in authentication response".format(self.user_info_mapping['identifier']))
Expand Down
13 changes: 13 additions & 0 deletions knowledge_repo/app/routes/index.py
Expand Up @@ -51,6 +51,17 @@ def render_index():
return redirect('/feed')


@blueprint.route('/testupload')
@PageView.logged
def test_upload():
global current_repo,current_app
#repo = current_app.append_repo("3","kr-test")
#current_repo = repo
dbobj = current_repo.migrate_to_dbrepo("ucla_rnaseq_tcga_analysis","ucla-kr")

current_repo = current_app.append_repo_obj("3",dbobj)
return redirect('/feed')

@blueprint.route('/favorites')
@PageView.logged
@login_required
Expand Down Expand Up @@ -82,10 +93,12 @@ def render_favorites():
@permissions.index_view.require()
def render_feed():
""" Renders the index-feed view """
global current_repo,current_app
feed_params = from_request_get_feed_params(request)
posts, post_stats = get_posts(feed_params)
for post in posts:
post.tldr = render_post_tldr(post)


return render_template("index-feed.html",
feed_params=feed_params,
Expand Down
36 changes: 36 additions & 0 deletions knowledge_repo/repository.py
Expand Up @@ -58,6 +58,42 @@ def for_uris(cls, uri):
krs = {name: cls.for_uri(uri) for name, uri in list(uris.items())}
return MetaKnowledgeRepository(krs)

@classmethod
def migrate_to_dbrepo(cls,gitpath,newpath):
# A new (supposedly) git repository is going to be uploaded
# That must be migrated to the database.
# Inputs :
# gitpath
# newpath

from .repositories.dbrepository import DbKnowledgeRepository
newpath = "mysql://abhi:1234@localhost/knowledgerepo:%s"%newpath
db_obj = DbKnowledgeRepository(newpath)
gitkr = cls.for_uri(gitpath)
for post in gitkr.posts():
new_post = db_obj.add(post)
new_post_status = new_post.status
db_obj.submit(new_post.path)
db_obj.accept(new_post.path)
db_obj.publish(new_post.path)
return db_obj

@classmethod
def append_obj(cls,name,new_obj,meta_repo):
from .repositories.meta import MetaKnowledgeRepository
krs = meta_repo.uri
krs[name] = new_obj
meta_repo = MetaKnowledgeRepository(krs)
return meta_repo

@classmethod
def append_for_uri(cls,name,uri,meta_repo):
from .repositories.meta import MetaKnowledgeRepository
krs = meta_repo.uri
krs[name] = cls.for_uri(uri)
meta_repo = MetaKnowledgeRepository(krs)
return meta_repo

@classmethod
def from_uri(cls, url, *args, **kwargs):
return cls(url, *args, **kwargs)
Expand Down
9 changes: 8 additions & 1 deletion scripts/knowledge_repo
@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
from __future__ import print_function
from __future__ import unicode_literals

Expand Down Expand Up @@ -42,6 +42,13 @@ if os.path.exists(os.path.join(contrib_dir, '__init__.py')):
# we finish constructing the entire parser so that the syntax and arguments can change
# from version to version of this script.

# Repeating what the argparse already does
def parse_repo_string(repo_str):
prefix_pattern = re.compile('^(?:\{(?P<name>[a-zA-Z_0-9]*)\})?(?P<uri>.*)$')

prefix = prefix_pattern.match(repo_str)
return prefix.groups()

class ParseRepositories(argparse.Action):

def __init__(self, **kwargs):
Expand Down

0 comments on commit 85dda28

Please sign in to comment.