Skip to content
Snippets Groups Projects
Commit 7fe63f23 authored by Fabien  MAREUIL's avatar Fabien MAREUIL
Browse files

format black

parent 1a39308f
No related branches found
No related tags found
2 merge requests!52Master,!50Update targetcentric
Pipeline #112377 failed with stages
in 9 minutes and 19 seconds
......@@ -166,6 +166,7 @@ class Chain(models.Model):
partner_message = "with partner "
return "{}{}".format(partner_message, self.protein.recommended_name_long)
class InteractFile(models.Model):
chain = models.ForeignKey(Chain, on_delete=models.CASCADE)
label = models.CharField(max_length=250, blank=False, null=False)
......@@ -175,7 +176,7 @@ class InteractFile(models.Model):
)
class Meta:
unique_together = [['chain', 'label']]
unique_together = [["chain", "label"]]
def __unicode__(self):
return "{}".format(self.interact_file)
......@@ -245,9 +246,9 @@ class Partner(models.Model):
type_binding = models.CharField(
"Type of Binding", max_length=50, default="orthosteric", blank=False, null=False
)
class Meta:
unique_together = [['ligand', 'chain']]
class Meta:
unique_together = [["ligand", "chain"]]
def save(self, *args, **kwargs):
if self.ligand and self.chain:
......@@ -527,6 +528,7 @@ def interactdelete(sender, instance, **kwargs):
):
interactfile.interact_file.delete()
@receiver(pre_save, sender=Chain)
def updatemrcfile(sender, instance, **kwargs):
try:
......
......@@ -24,7 +24,10 @@ ROUTER.register(r"ligand", views.LigandViewSet, basename="ligand")
ROUTER.register(r"partner", views.PartnerViewSet, basename="partner")
ROUTER.register(r"interactfile", views.InteractFileViewSet, basename="interactfile")
ROUTER.register(r"cavity", views.CavityViewSet, basename="cavity")
ROUTER.register(r"builddistances", views.BuildDistancesViewSet, basename="builddistances")
ROUTER.register(
r"builddistances", views.BuildDistancesViewSet, basename="builddistances"
)
class IppiDbStaticSitemap(Sitemap):
changefreq = "never"
......@@ -80,11 +83,18 @@ urlpatterns = [
name="contributor_card",
),
re_path(r"^targetcentric/$", views.PDBView.as_view(), name="cavities"),
re_path(r"^targetcentric/tmaps$", views.pocketome_html, name='pocketome_html'),
re_path(r"^targetcentric/networks$", TemplateView.as_view(template_name="targetcentric_networks.html"), name="networks"),
#re_path(r"^targetcentric/networks$", views.NetworkView.as_view(), name="networks"),
re_path(r"^cavity/(?P<pk>\d+)/near-cavities$", views.NearCavitiesHTMLFragmentView.as_view(), name="near_cavities"),
re_path(r"^targetcentric/tmaps$", views.pocketome_html, name="pocketome_html"),
re_path(
r"^targetcentric/networks$",
TemplateView.as_view(template_name="targetcentric_networks.html"),
name="networks",
),
# re_path(r"^targetcentric/networks$", views.NetworkView.as_view(), name="networks"),
re_path(
r"^cavity/(?P<pk>\d+)/near-cavities$",
views.NearCavitiesHTMLFragmentView.as_view(),
name="near_cavities",
),
re_path(r"^api/", include(ROUTER.urls)),
re_path(r"^compounds/$", views.CompoundListView.as_view(), name="compound_list"),
re_path(
......
......@@ -7,7 +7,7 @@ from operator import add
from django.views.generic import ListView, DetailView
from django.contrib import messages
from django.db.models import Case, When, Value, IntegerField, F, Q
from rest_framework import viewsets, status, views
from rest_framework import viewsets
from rest_framework.decorators import action
from ippidb.models import (
PDB,
......@@ -21,7 +21,8 @@ from ippidb.models import (
Cavity,
MetaInformation,
Network,
Job)
Job,
)
from ippidb.serializer import (
PdbSerializer,
DistanceSerializer,
......@@ -31,25 +32,26 @@ from ippidb.serializer import (
PartnerSerializer,
InteractFileSerializer,
CavitySerializer,
JobSerializer)
JobSerializer,
)
from rest_framework.permissions import IsAdminUser, SAFE_METHODS
from rest_framework.authtoken.models import Token
from ippidb.tasks import launch_build_matrix_distance
from rest_framework.response import Response
from django.views.decorators.clickjacking import xframe_options_exempt
from django.shortcuts import render
@xframe_options_exempt
def pocketome_html(request):
return render(request, 'PocketBook_MST_Euclidean_log_trim_scratch_sec61.html')
return render(request, "PocketBook_MST_Euclidean_log_trim_scratch_sec61.html")
class IsAdminUserOrReadOnly(IsAdminUser):
def has_permission(self, request, view):
is_admin = super(IsAdminUserOrReadOnly, self).has_permission(request, view)
return request.method in SAFE_METHODS or is_admin
class PdbViewSet(viewsets.ModelViewSet):
"""
......@@ -68,7 +70,7 @@ class PdbViewSet(viewsets.ModelViewSet):
elif code:
queryset = PDB.objects.filter(code=code)
return queryset
class ProteinViewSet(viewsets.ModelViewSet):
serializer_class = ProteinSerializer
......@@ -112,9 +114,11 @@ class LigandViewSet(viewsets.ModelViewSet):
supplementary_id = self.request.GET.get("supplementary_id")
if pdb:
if pdb_ligand_id and supplementary_id:
queryset = queryset.filter(pdb=pdb,
pdb_ligand_id=pdb_ligand_id,
supplementary_id=supplementary_id)
queryset = queryset.filter(
pdb=pdb,
pdb_ligand_id=pdb_ligand_id,
supplementary_id=supplementary_id,
)
else:
queryset = queryset.filter(pdb=pdb)
return queryset
......@@ -130,7 +134,7 @@ class PartnerViewSet(viewsets.ModelViewSet):
chain = self.request.GET.get("chain")
ligand = self.request.GET.get("ligand")
if chain:
queryset = queryset.filter(chain=chain)
queryset = queryset.filter(chain=chain)
if ligand:
queryset = queryset.filter(ligand=ligand)
return queryset
......@@ -204,16 +208,17 @@ class BuildDistancesViewSet(viewsets.ModelViewSet):
params_command = {"nb_neighbors": request.POST.get("nb_neighbors")}
launch_build_matrix_distance.delay(params_command)
url = request.url #TODO construct with the correct url job table
return Response({'message': 'Distances Matrix is building! Check {} to get status'.format(url)}, status=status.HTTP_200_OK)
return Response({'message': 'Distances Matrix is building!
Check {} to get status'.format(url)}, status=status.HTTP_200_OK)
"""
@action(detail=False, methods=['get', 'post'])
@action(detail=False, methods=["get", "post"])
def get_queryset(self):
jobs= Job.objects.all()
jobs = Job.objects.all()
return jobs
def create(self, request, *args, **kwargs):
params_command = {"nb_neighbors": request.data.get('nb_neighbors')}
params_command = {"nb_neighbors": request.data.get("nb_neighbors")}
launch_build_matrix_distance.delay(params_command)
job = Job.objects.last()
serializer = self.get_serializer(job)
......@@ -478,7 +483,7 @@ class NearCavitiesHTMLFragmentView(DetailView):
def get_context_data(self, *, object_list=None, **kwargs):
return dict(
**super().get_context_data(**kwargs),
chaincount=self.request.GET.get('chaincount', '0'),
cavcount=self.request.GET.get('cavcount', '0'),
chaincount=self.request.GET.get("chaincount", "0"),
cavcount=self.request.GET.get("cavcount", "0"),
avg_std=MetaInformation.objects.first(),
)
......@@ -6,16 +6,17 @@ from django.utils import timezone
from django.conf import settings
#this return left time
# this return left time
def expires_in(token):
time_elapsed = timezone.now() - token.created
left_time = timedelta(seconds = settings.TOKEN_EXPIRED_AFTER_SECONDS) - time_elapsed
left_time = timedelta(seconds=settings.TOKEN_EXPIRED_AFTER_SECONDS) - time_elapsed
return left_time
# token checker if token expired or not
def is_token_expired(token):
return expires_in(token) < timedelta(seconds = 0)
return expires_in(token) < timedelta(seconds=0)
def token_expire_handler(token):
is_expired = is_token_expired(token)
......@@ -24,22 +25,26 @@ def token_expire_handler(token):
token = None
return is_expired, token
class ExpiringTokenAuthentication(TokenAuthentication):
"""
If token is expired then it will be removed
and new one with different key will be created
"""
def authenticate_credentials(self, key):
try:
token = Token.objects.get(key = key)
token = Token.objects.get(key=key)
except Token.DoesNotExist:
raise AuthenticationFailed("Invalid Token")
if not token.user.is_active:
raise AuthenticationFailed("User is not active")
is_expired, token = token_expire_handler(token)
if is_expired:
raise AuthenticationFailed("The Token is expired, return on the admin interface to generate a new token")
return (token.user, token)
\ No newline at end of file
raise AuthenticationFailed(
"The Token is expired, return on the admin interface to generate a new token"
)
return (token.user, token)
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment