This is an automated email from the ASF dual-hosted git repository. smarru pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/airavata-sandbox.git
commit cf320cfde0820b7c6fc3b6af066926a81989c44f Author: Bhavesh Asanabada <asanabhav...@gmail.com> AuthorDate: Mon Jul 4 06:10:57 2022 +0530 defined api urls --- .../DjangoMiddleware/DjangoMiddleware/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 159 bytes .../__pycache__/settings.cpython-38.pyc | Bin 0 -> 2513 bytes .../__pycache__/urls.cpython-38.pyc | Bin 0 -> 998 bytes .../__pycache__/wsgi.cpython-38.pyc | Bin 0 -> 580 bytes .../DjangoMiddleware/DjangoMiddleware/asgi.py | 16 ++ .../DjangoMiddleware/DjangoMiddleware/settings.py | 130 ++++++++++++++++ .../DjangoMiddleware/DjangoMiddleware/urls.py | 22 +++ .../DjangoMiddleware/DjangoMiddleware/wsgi.py | 16 ++ .../__pycache__/calc_info_pb2.cpython-38.pyc | Bin 0 -> 1596 bytes .../__pycache__/calc_info_pb2_grpc.cpython-38.pyc | Bin 0 -> 4065 bytes .../smilesdb/DjangoMiddleware/calc_info_pb2.py | 47 ++++++ .../DjangoMiddleware/calc_info_pb2_grpc.py | 165 +++++++++++++++++++++ .../smilesdb/DjangoMiddleware/calcinfo/__init__.py | 0 .../calcinfo/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 151 bytes .../calcinfo/__pycache__/admin.cpython-38.pyc | Bin 0 -> 192 bytes .../calcinfo/__pycache__/apps.cpython-38.pyc | Bin 0 -> 431 bytes .../calcinfo/__pycache__/models.cpython-38.pyc | Bin 0 -> 189 bytes .../calcinfo/__pycache__/urls.cpython-38.pyc | Bin 0 -> 274 bytes .../calcinfo/__pycache__/views.cpython-38.pyc | Bin 0 -> 1294 bytes .../smilesdb/DjangoMiddleware/calcinfo/admin.py | 3 + .../smilesdb/DjangoMiddleware/calcinfo/apps.py | 6 + .../calcinfo/migrations/__init__.py | 0 .../migrations/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 162 bytes .../smilesdb/DjangoMiddleware/calcinfo/models.py | 3 + .../smilesdb/DjangoMiddleware/calcinfo/tests.py | 3 + .../smilesdb/DjangoMiddleware/calcinfo/urls.py | 7 + .../smilesdb/DjangoMiddleware/calcinfo/views.py | 37 +++++ gsoc2022/smilesdb/DjangoMiddleware/db.sqlite3 | Bin 0 -> 131072 bytes gsoc2022/smilesdb/DjangoMiddleware/manage.py | 22 +++ .../DjangoMiddleware/protos/calc_info.proto | 40 +++++ gsoc2022/smilesdb/DjangoMiddleware/requirements | 11 ++ 32 files changed, 528 insertions(+) diff --git a/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__init__.py b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/__init__.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 00000000..6b2e1d71 Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/__init__.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/settings.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/settings.cpython-38.pyc new file mode 100644 index 00000000..fc36eeec Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/settings.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/urls.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/urls.cpython-38.pyc new file mode 100644 index 00000000..75300992 Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/urls.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/wsgi.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/wsgi.cpython-38.pyc new file mode 100644 index 00000000..409a6dc4 Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/__pycache__/wsgi.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/asgi.py b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/asgi.py new file mode 100644 index 00000000..a8c4d0c7 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for DjangoMiddleware project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/4.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoMiddleware.settings') + +application = get_asgi_application() diff --git a/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/settings.py b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/settings.py new file mode 100644 index 00000000..3a82e38b --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/settings.py @@ -0,0 +1,130 @@ +""" +Django settings for DjangoMiddleware project. + +Generated by 'django-admin startproject' using Django 4.0.5. + +For more information on this file, see +https://docs.djangoproject.com/en/4.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/4.0/ref/settings/ +""" + +from pathlib import Path + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-*9z-hk$3agvu#3y=fcvu5u%q+-zzwlc^a4k3zu#lan23-neq@6' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'calcinfo', + 'rest_framework', + 'corsheaders', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'corsheaders.middleware.CorsMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'DjangoMiddleware.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [BASE_DIR / 'templates'] + , + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'DjangoMiddleware.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/4.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/4.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/4.0/howto/static-files/ + +STATIC_URL = 'static/' + +# Default primary key field type +# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +CORS_ALLOW_ALL_ORIGINS = True diff --git a/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/urls.py b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/urls.py new file mode 100644 index 00000000..e9f80ab3 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/urls.py @@ -0,0 +1,22 @@ +"""DjangoMiddleware URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/4.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('api/', include('calcinfo.urls')), +] diff --git a/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/wsgi.py b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/wsgi.py new file mode 100644 index 00000000..9bd00239 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/DjangoMiddleware/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for DjangoMiddleware project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoMiddleware.settings') + +application = get_wsgi_application() diff --git a/gsoc2022/smilesdb/DjangoMiddleware/__pycache__/calc_info_pb2.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/__pycache__/calc_info_pb2.cpython-38.pyc new file mode 100644 index 00000000..b2615b19 Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/__pycache__/calc_info_pb2.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/__pycache__/calc_info_pb2_grpc.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/__pycache__/calc_info_pb2_grpc.cpython-38.pyc new file mode 100644 index 00000000..23bf8f2d Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/__pycache__/calc_info_pb2_grpc.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calc_info_pb2.py b/gsoc2022/smilesdb/DjangoMiddleware/calc_info_pb2.py new file mode 100644 index 00000000..37a1074a --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/calc_info_pb2.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: calc_info.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0f\x63\x61lc_info.proto\x12\ncom.smiles\"u\n\x08\x43\x61lcInfo\x12\x0e\n\x06nbasis\x18\x01 \x01(\x03\x12\x0b\n\x03nmo\x18\x02 \x01(\x03\x12\x0e\n\x06nalpha\x18\x03 \x01(\x03\x12\r\n\x05nbeta\x18\x04 \x01(\x03\x12\r\n\x05natom\x18\x05 \x01(\x03\x12\x0e\n\x06\x65nergy\x18\x06 \x01(\x01\x12\x0e\n\x06SMILES\x18\x07 \x01(\t\"P\n\x0f\x43\x61lcInfoRequest\x12\x15\n\rcalcInfoQuery\x18\x01 \x01(\t\x12&\n\x08\x63\x61lcInfo\x18\x02 \x0 [...] + + + +_CALCINFO = DESCRIPTOR.message_types_by_name['CalcInfo'] +_CALCINFOREQUEST = DESCRIPTOR.message_types_by_name['CalcInfoRequest'] +CalcInfo = _reflection.GeneratedProtocolMessageType('CalcInfo', (_message.Message,), { + 'DESCRIPTOR' : _CALCINFO, + '__module__' : 'calc_info_pb2' + # @@protoc_insertion_point(class_scope:com.smiles.CalcInfo) + }) +_sym_db.RegisterMessage(CalcInfo) + +CalcInfoRequest = _reflection.GeneratedProtocolMessageType('CalcInfoRequest', (_message.Message,), { + 'DESCRIPTOR' : _CALCINFOREQUEST, + '__module__' : 'calc_info_pb2' + # @@protoc_insertion_point(class_scope:com.smiles.CalcInfoRequest) + }) +_sym_db.RegisterMessage(CalcInfoRequest) + +_CALCINFOSERVICE = DESCRIPTOR.services_by_name['CalcInfoService'] +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _CALCINFO._serialized_start=31 + _CALCINFO._serialized_end=148 + _CALCINFOREQUEST._serialized_start=150 + _CALCINFOREQUEST._serialized_end=230 + _CALCINFOSERVICE._serialized_start=233 + _CALCINFOSERVICE._serialized_end=531 +# @@protoc_insertion_point(module_scope) diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calc_info_pb2_grpc.py b/gsoc2022/smilesdb/DjangoMiddleware/calc_info_pb2_grpc.py new file mode 100644 index 00000000..dcb4a1b5 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/calc_info_pb2_grpc.py @@ -0,0 +1,165 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +import calc_info_pb2 as calc__info__pb2 + + +class CalcInfoServiceStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCalcInfo = channel.unary_unary( + '/com.smiles.CalcInfoService/GetCalcInfo', + request_serializer=calc__info__pb2.CalcInfoRequest.SerializeToString, + response_deserializer=calc__info__pb2.CalcInfo.FromString, + ) + self.CreateCalcInfo = channel.unary_unary( + '/com.smiles.CalcInfoService/CreateCalcInfo', + request_serializer=calc__info__pb2.CalcInfoRequest.SerializeToString, + response_deserializer=calc__info__pb2.CalcInfo.FromString, + ) + self.UpdateCalcInfo = channel.unary_unary( + '/com.smiles.CalcInfoService/UpdateCalcInfo', + request_serializer=calc__info__pb2.CalcInfoRequest.SerializeToString, + response_deserializer=calc__info__pb2.CalcInfo.FromString, + ) + self.DeleteCalcInfo = channel.unary_unary( + '/com.smiles.CalcInfoService/DeleteCalcInfo', + request_serializer=calc__info__pb2.CalcInfoRequest.SerializeToString, + response_deserializer=calc__info__pb2.CalcInfo.FromString, + ) + + +class CalcInfoServiceServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetCalcInfo(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateCalcInfo(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateCalcInfo(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteCalcInfo(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CalcInfoServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCalcInfo': grpc.unary_unary_rpc_method_handler( + servicer.GetCalcInfo, + request_deserializer=calc__info__pb2.CalcInfoRequest.FromString, + response_serializer=calc__info__pb2.CalcInfo.SerializeToString, + ), + 'CreateCalcInfo': grpc.unary_unary_rpc_method_handler( + servicer.CreateCalcInfo, + request_deserializer=calc__info__pb2.CalcInfoRequest.FromString, + response_serializer=calc__info__pb2.CalcInfo.SerializeToString, + ), + 'UpdateCalcInfo': grpc.unary_unary_rpc_method_handler( + servicer.UpdateCalcInfo, + request_deserializer=calc__info__pb2.CalcInfoRequest.FromString, + response_serializer=calc__info__pb2.CalcInfo.SerializeToString, + ), + 'DeleteCalcInfo': grpc.unary_unary_rpc_method_handler( + servicer.DeleteCalcInfo, + request_deserializer=calc__info__pb2.CalcInfoRequest.FromString, + response_serializer=calc__info__pb2.CalcInfo.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'com.smiles.CalcInfoService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CalcInfoService(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetCalcInfo(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/com.smiles.CalcInfoService/GetCalcInfo', + calc__info__pb2.CalcInfoRequest.SerializeToString, + calc__info__pb2.CalcInfo.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateCalcInfo(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/com.smiles.CalcInfoService/CreateCalcInfo', + calc__info__pb2.CalcInfoRequest.SerializeToString, + calc__info__pb2.CalcInfo.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UpdateCalcInfo(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/com.smiles.CalcInfoService/UpdateCalcInfo', + calc__info__pb2.CalcInfoRequest.SerializeToString, + calc__info__pb2.CalcInfo.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeleteCalcInfo(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/com.smiles.CalcInfoService/DeleteCalcInfo', + calc__info__pb2.CalcInfoRequest.SerializeToString, + calc__info__pb2.CalcInfo.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__init__.py b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/__init__.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 00000000..49335ea1 Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/__init__.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/admin.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/admin.cpython-38.pyc new file mode 100644 index 00000000..95140b84 Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/admin.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/apps.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/apps.cpython-38.pyc new file mode 100644 index 00000000..eb8044fe Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/apps.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/models.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/models.cpython-38.pyc new file mode 100644 index 00000000..4c472c74 Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/models.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/urls.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/urls.cpython-38.pyc new file mode 100644 index 00000000..5a694a9a Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/urls.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/views.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/views.cpython-38.pyc new file mode 100644 index 00000000..a73553fa Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/__pycache__/views.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/admin.py b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/admin.py new file mode 100644 index 00000000..8c38f3f3 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/apps.py b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/apps.py new file mode 100644 index 00000000..54cff088 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class RestApiConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'calcinfo' diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/migrations/__init__.py b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/migrations/__pycache__/__init__.cpython-38.pyc b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/migrations/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 00000000..1a89496c Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/migrations/__pycache__/__init__.cpython-38.pyc differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/models.py b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/models.py new file mode 100644 index 00000000..71a83623 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/tests.py b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/urls.py b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/urls.py new file mode 100644 index 00000000..b3a3c591 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path('calcinfo/', views.calcinfo), +] diff --git a/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/views.py b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/views.py new file mode 100644 index 00000000..dd287665 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/calcinfo/views.py @@ -0,0 +1,37 @@ +from django.shortcuts import render + +# parsing data from the client +from rest_framework.parsers import JSONParser +# To bypass having a CSRF token +from django.views.decorators.csrf import csrf_exempt +# for sending response to the client +from django.http import HttpResponse, JsonResponse +import calc_info_pb2 +import calc_info_pb2_grpc +import grpc +import json + + +def getCalcInfo(channel) : + stub = calc_info_pb2_grpc.CalcInfoServiceStub(channel) + response = stub.GetCalcInfo(calc_info_pb2.CalcInfoRequest(calcInfoQuery="TEST1", calcInfo=calc_info_pb2.CalcInfo(nbasis=1001, nmo=1001, nalpha=1001, nbeta=1001, natom=1001, energy=1001, SMILES="TEST1001"))) + data = {'SMILES': response.SMILES, + 'nbasis': response.nbasis, + 'nmo': response.nmo, + 'nalpha': response.nalpha, + 'nbeta': response.nbeta, + 'natom': response.natom, + 'energy': response.energy + } + return json.dumps(data) + + +@csrf_exempt +def calcinfo(request): + if(request.method == 'GET'): + print(request) + with grpc.insecure_channel('localhost:7593') as channel: + return JsonResponse(getCalcInfo(channel), safe=False) + elif(request.method == 'POST'): + # parse the incoming information + return JsonResponse("errors", status=400) diff --git a/gsoc2022/smilesdb/DjangoMiddleware/db.sqlite3 b/gsoc2022/smilesdb/DjangoMiddleware/db.sqlite3 new file mode 100644 index 00000000..341f8bcf Binary files /dev/null and b/gsoc2022/smilesdb/DjangoMiddleware/db.sqlite3 differ diff --git a/gsoc2022/smilesdb/DjangoMiddleware/manage.py b/gsoc2022/smilesdb/DjangoMiddleware/manage.py new file mode 100755 index 00000000..50044f97 --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoMiddleware.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/gsoc2022/smilesdb/DjangoMiddleware/protos/calc_info.proto b/gsoc2022/smilesdb/DjangoMiddleware/protos/calc_info.proto new file mode 100644 index 00000000..04e7bfff --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/protos/calc_info.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; + +package com.smiles; + +message CalcInfo{ + //QcSchema-Properties_Info + int64 nbasis = 1; // The number of basis functions for the computation. number + int64 nmo = 2; // The number of molecular orbitals for the computation. number + int64 nalpha = 3;// The number of alpha electrons in the computation. number + int64 nbeta = 4;// The number of beta electrons in the computation. number + int64 natom = 5; // The number of atoms in the computation. number + double energy = 6;// The energy of the requested method, identical to return_value for energy computations. number + string SMILES =7; +} + +message CalcInfoRequest { + string calcInfoQuery=1; + CalcInfo calcInfo=2; +} + +service CalcInfoService { + rpc GetCalcInfo( CalcInfoRequest ) returns (CalcInfo) {} + rpc CreateCalcInfo( CalcInfoRequest ) returns (CalcInfo) {} + rpc UpdateCalcInfo( CalcInfoRequest ) returns (CalcInfo) {} + rpc DeleteCalcInfo( CalcInfoRequest ) returns (CalcInfo) {} +} + + + +//python -m grpc_tools.protoc -I ./protos --python_out=. --grpc_python_out=. ./protos/calc_info.proto + + + + + + + + + + diff --git a/gsoc2022/smilesdb/DjangoMiddleware/requirements b/gsoc2022/smilesdb/DjangoMiddleware/requirements new file mode 100644 index 00000000..30b851db --- /dev/null +++ b/gsoc2022/smilesdb/DjangoMiddleware/requirements @@ -0,0 +1,11 @@ +asgiref==3.5.2 +backports.zoneinfo==0.2.1 +Django==4.0.5 +django-cors-headers==3.13.0 +djangorestframework==3.13.1 +grpcio==1.47.0 +grpcio-tools==1.47.0 +protobuf==3.20.1 +pytz==2022.1 +six==1.16.0 +sqlparse==0.4.2