Skip to content

[#300] Add Python linting checks for PRs using GitHub Actions #305

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: listOfMed
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/workflows/python-app.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Python application

on:
push:
branches: [ "listOfMed" ]
pull_request:
branches: [ "listOfMed" ]

permissions:
contents: read

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install the code linting and formatting tool Ruff
run: pipx install ruff
- name: Lint code with Ruff
run: ruff check --output-format=github --target-version=py39
4 changes: 1 addition & 3 deletions server/api/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
from .models.authUser import UserAccount
from .views.ai_settings.models import AI_Settings
from .views.ai_promptStorage.models import AI_PromptStorage
from .views.ai_settings.models import AI_Settings
from .views.ai_promptStorage.models import AI_PromptStorage
from .models.model_embeddings import Embeddings
from .views.feedback.models import Feedback
from .models.model_medRule import MedRule
Expand All @@ -24,7 +22,7 @@ class MedicationAdmin(admin.ModelAdmin):


@admin.register(Medication)
class MedicationAdmin(admin.ModelAdmin):
class MedicationAdmin(admin.ModelAdmin): # noqa: F811
list_display = ['name', 'benefits', 'risks']


Expand Down
1 change: 0 additions & 1 deletion server/api/models.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
from django.db import models

# Create your models here.
2 changes: 1 addition & 1 deletion server/api/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
from .authUser import UserAccount
from .authUser import UserAccount # noqa: F401
1 change: 0 additions & 1 deletion server/api/models/model_embeddings.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from django.db import models
from django.conf import settings
from pgvector.django import VectorField
import uuid
from ..views.uploadFile.models import UploadFile
Expand Down
1 change: 0 additions & 1 deletion server/api/models/model_medRule.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from django.db import models
from ..views.listMeds.models import Medication
from django.db.models import CASCADE
from ..models.model_embeddings import Embeddings


Expand Down
1 change: 0 additions & 1 deletion server/api/tests.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from django.test import TestCase
import unittest
from .services.tools.tools import validate_tool_inputs, execute_tool

Expand Down
1 change: 0 additions & 1 deletion server/api/views/ai_promptStorage/serializers.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from rest_framework import serializers
from .models import AI_PromptStorage
from django.conf import settings


class AI_PromptStorageSerializer(serializers.ModelSerializer):
Expand Down
6 changes: 2 additions & 4 deletions server/api/views/ai_promptStorage/views.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
from rest_framework import status
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.decorators import api_view
from rest_framework.response import Response
from .models import AI_PromptStorage
from .serializers import AI_PromptStorageSerializer
from django.views.decorators.csrf import csrf_exempt


@api_view(['POST'])
# @permission_classes([IsAuthenticated])
def store_prompt(request):
print(request.user)
data = request.data.copy()
data = request.data.copy() # noqa: F841
print(request.user)
serializer = AI_PromptStorageSerializer(
data=request.data, context={'request': request})
Expand Down
3 changes: 1 addition & 2 deletions server/api/views/ai_settings/urls.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from django.urls import path
from api.views.ai_settings import views

urlpatterns = [
Expand Down
8 changes: 1 addition & 7 deletions server/api/views/conversations/views.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.decorators import api_view
from rest_framework import viewsets, status
from rest_framework.decorators import action
from rest_framework.permissions import IsAuthenticated
Expand All @@ -14,14 +12,10 @@
import os
import json
import logging
from api.views.ai_settings.models import AI_Settings
from api.views.ai_promptStorage.models import AI_PromptStorage
from django.views.decorators.csrf import csrf_exempt
from django.db import transaction, connection
from .models import Conversation, Message
from .serializers import ConversationSerializer, MessageSerializer
from .serializers import ConversationSerializer
from ...services.tools.tools import tools, execute_tool
from ...services.tools.database import get_database_info


@csrf_exempt
Expand Down
1 change: 0 additions & 1 deletion server/api/views/embeddings/embeddingsView.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from rest_framework.response import Response
from rest_framework import status
from django.http import StreamingHttpResponse
import os
from ...services.embedding_services import get_closest_embeddings
from ...services.conversions_services import convert_uuids
from ...services.openai_services import openAIServices
Expand Down
1 change: 0 additions & 1 deletion server/api/views/feedback/urls.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from django.urls import path
from api.views.feedback import views
from .views import FeedbackView

urlpatterns = [
Expand Down
8 changes: 0 additions & 8 deletions server/api/views/feedback/views.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.decorators import api_view
from rest_framework import status
from django.http import JsonResponse, HttpRequest
from django import forms
import requests
import json
import os
from .models import Feedback
from .serializers import FeedbackSerializer

# XXX: remove csrf_exempt usage before production
from django.views.decorators.csrf import csrf_exempt


class FeedbackView(APIView):
Expand Down
5 changes: 1 addition & 4 deletions server/api/views/listMeds/views.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.views import APIView
from .models import Diagnosis, Medication, Suggestion
from .serializers import DiagnosisSerializer, MedicationSerializer, SuggestionSerializer
import json
from django.views.decorators.csrf import csrf_exempt
from .serializers import MedicationSerializer
# Constants for medication inclusion and exclusion
MEDS_INCLUDE = {'suicideHistory': ['Lithium']}
MED_EXCLUDE = {
Expand Down
1 change: 0 additions & 1 deletion server/api/views/medRules/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from ...models.model_medRule import MedRule
from .serializers import MedRuleSerializer # You'll need to create this
from ..listMeds.models import Medication
from ..listMeds.serializers import MedicationSerializer
from ..uploadFile.models import UploadFile
from ...models.model_embeddings import Embeddings

Expand Down
2 changes: 0 additions & 2 deletions server/api/views/uploadFile/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
from django.views.decorators.csrf import csrf_exempt
import pdfplumber
from .models import UploadFile # Import your UploadFile model
from django.core.files.base import ContentFile
import os
from .serializers import UploadFileSerializer
from django.http import HttpResponse
from ...services.sentencetTransformer_model import TransformerModel
Expand Down