# Path: phylocommons/get_treestore.py
# def get_treestore():
#     return Treestore(**settings.TREESTORE_KWARGS)
# 
# def tree_id_from_uri(uri):
#     return Treestore.id_from_uri(uri, base_uri=settings.TREE_URI)
# 
# def uri_from_tree_id(tree_id):
#     return Treestore.uri_from_id(tree_id, base_uri=settings.TREE_URI)


from django.shortcuts import render_to_response, redirect
from django.http import HttpResponse
from django.core.context_processors import csrf
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.template import RequestContext
from phylocommons.get_treestore import get_treestore, tree_id_from_uri, uri_from_tree_id
from forms import SearchForm
from cStringIO import StringIO
from phylocommons import settings
from django.forms.forms import NON_FIELD_ERRORS
from django.forms.util import ErrorList
from django.http import Http404
import Bio.Phylo as bp
import urllib
        
        if page_range[0] == 2: page_range = [1] + page_range
        elif page_range[0] > 2: page_range = [1, '...'] + page_range
        
        if page_range[-1] == num_pages - 1: page_range += [num_pages]
        elif page_range[-1] < num_pages - 1: page_range += ['...', num_pages]
        
        pages = []
        
        for page in page_range:
            if page == '...': pages.append((page, None))
            else:
                p = []
                for arg in ('taxa', 'filter'):
                    if arg in request.GET:
                        p += [(arg, request.GET.get(arg))]
                p += [('page', page)]
                pages.append((page, '/trees/?' + urllib.urlencode(p)))
        
        params['pages'] = pages
        
        return render_to_response(
            'list.html',
            params,
            context_instance=RequestContext(request)
        )


def view(request, tree_id=None):
    with get_treestore() as treestore:

# Path: phylocommons/get_treestore.py
# def get_treestore():
#     return Treestore(**settings.TREESTORE_KWARGS)
# 
# def tree_id_from_uri(uri):
#     return Treestore.id_from_uri(uri, base_uri=settings.TREE_URI)
# 
# def uri_from_tree_id(tree_id):
#     return Treestore.uri_from_id(tree_id, base_uri=settings.TREE_URI)


# Path: treeview/views.py
from django.shortcuts import render_to_response, redirect
from django.http import HttpResponse
from django.core.context_processors import csrf
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.template import RequestContext
from phylocommons.get_treestore import get_treestore, tree_id_from_uri, uri_from_tree_id
from forms import SearchForm
from cStringIO import StringIO
from phylocommons import settings
from django.forms.forms import NON_FIELD_ERRORS
from django.forms.util import ErrorList
from django.http import Http404
import Bio.Phylo as bp
import urllib

        
        if page_range[0] == 2: page_range = [1] + page_range
        elif page_range[0] > 2: page_range = [1, '...'] + page_range
        
        if page_range[-1] == num_pages - 1: page_range += [num_pages]
        elif page_range[-1] < num_pages - 1: page_range += ['...', num_pages]
        
        pages = []
        
        for page in page_range:
            if page == '...': pages.append((page, None))
            else:
                p = []
                for arg in ('taxa', 'filter'):
                    if arg in request.GET:
                        p += [(arg, request.GET.get(arg))]
                p += [('page', page)]
                pages.append((page, '/trees/?' + urllib.urlencode(p)))
        
        params['pages'] = pages
        
        return render_to_response(
            'list.html',
            params,
            context_instance=RequestContext(request)
        )


def view(request, tree_id=None):
    with get_treestore() as treestore:

        tree_uri = uri_from_tree_id(tree_id)