Skip to content

fix: pre-commit에 isort, flake8 추가 #78

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

Closed
wants to merge 9 commits into from
48 changes: 39 additions & 9 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,59 @@
name: Pre-commit Black Check
name: Pre-commit Auto-fix and Comment

on:
push:
branches:
- master
branches: [ master ]
pull_request:
branches:
- master
branches: [ master ]

jobs:
pre-commit:
name: Run Pre-commit Hooks
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
ref: ${{ github.head_ref || github.ref_name }}

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.x"

- name: Install pre-commit
run: pip install pre-commit
run: python -m pip install --upgrade pre-commit

- name: Run pre-commit (auto-fix)
id: precommit_run
continue-on-error: true
run: |
pre-commit run --all-files --verbose --hook-stage manual

- name: Run pre-commit
run: pre-commit run --all-files --verbose
- name: Commit & push if changed
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
if ! git diff --quiet; then
git add -u
git commit -m "style: apply pre-commit fixes (black, isort)" || true
git push
echo "FIXES_PUSHED=true" >> $GITHUB_ENV
fi

- name: Comment on PR
if: env.FIXES_PUSHED == 'true' && github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: "✅ Pre-commit hooks fixed formatting (black, isort) and the bot pushed the changes."
})
11 changes: 11 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
repos:
- repo: https://github.com/pycqa/isort
rev: 6.0.0
hooks:
- id: isort
- repo: https://github.com/psf/black
rev: 25.1.0
hooks:
- id: black
- repo: https://github.com/pycqa/flake8
rev: 7.1.2
hooks:
- id: flake8
args:
- --ignore=E501,E722,E262,F401,F841,W503,E226
- --max-line-length=88
4 changes: 3 additions & 1 deletion cli/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import click
import subprocess

import click

from llm_utils.tools import set_gms_server


Expand Down
15 changes: 10 additions & 5 deletions data_utils/datahub_source.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
from datahub.metadata.schema_classes import DatasetPropertiesClass, SchemaMetadataClass
from datahub.emitter.rest_emitter import DatahubRestEmitter
from datahub.ingestion.graph.client import DatahubClientConfig, DataHubGraph
from datahub.metadata.schema_classes import UpstreamLineageClass
from collections import defaultdict

import requests
from datahub.emitter.rest_emitter import DatahubRestEmitter
from datahub.ingestion.graph.client import DatahubClientConfig, DataHubGraph
from datahub.metadata.schema_classes import (
DatasetPropertiesClass,
SchemaMetadataClass,
UpstreamLineageClass,
)

from data_utils.queries import (
ROOT_GLOSSARY_NODES_QUERY,
GLOSSARY_NODE_QUERY,
LIST_QUERIES_QUERY,
ROOT_GLOSSARY_NODES_QUERY,
)


Expand Down
7 changes: 3 additions & 4 deletions evaluation/gen_answer.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import uuid
from argparse import ArgumentParser
from langchain_core.messages import HumanMessage

from utils import load_question_json, save_answer_json

from langchain_core.messages import HumanMessage
from tqdm import tqdm
import uuid
from utils import load_question_json, save_answer_json

from llm_utils.graph import builder

Expand Down
8 changes: 4 additions & 4 deletions evaluation/gen_persona.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import os
from argparse import ArgumentParser

from utils import save_persona_json, pretty_print_persona
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai.chat_models import ChatOpenAI
from persona_class import PersonaList
from utils import pretty_print_persona, save_persona_json

from llm_utils.tools import _get_table_info
from langchain_openai.chat_models import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from argparse import ArgumentParser


def get_table_des_string(tables_desc):
Expand Down
8 changes: 4 additions & 4 deletions evaluation/gen_question.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from utils import load_persona_json, save_question_json
import os
from argparse import ArgumentParser

from langchain_core.prompts import ChatPromptTemplate
from langchain_openai.chat_models import ChatOpenAI
from tqdm import tqdm

from argparse import ArgumentParser
import os
from utils import load_persona_json, save_question_json


def get_persona_prompt(persona):
Expand Down
3 changes: 2 additions & 1 deletion evaluation/persona_class.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from pydantic import BaseModel
from typing import List

from pydantic import BaseModel


class Persona(BaseModel):
name: str
Expand Down
5 changes: 3 additions & 2 deletions evaluation/utils.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import json
from persona_class import PersonaList
from glob import glob
import os
from glob import glob

from persona_class import PersonaList


def save_persona_json(data, filepath):
Expand Down
12 changes: 6 additions & 6 deletions interface/lang2sql.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import streamlit as st
from langchain_core.messages import HumanMessage
from llm_utils.graph import builder
from langchain.chains.sql_database.prompt import SQL_PROMPTS
import os
from typing import Union
import pandas as pd

import pandas as pd
import streamlit as st
from clickhouse_driver import Client
from llm_utils.connect_db import ConnectDB
from dotenv import load_dotenv
from langchain.chains.sql_database.prompt import SQL_PROMPTS
from langchain_core.messages import HumanMessage

from llm_utils.connect_db import ConnectDB
from llm_utils.graph import builder

# Clickhouse 연결
db = ConnectDB()
Expand Down
6 changes: 3 additions & 3 deletions interface/viz_eval.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import streamlit as st
import json
import glob
import pandas as pd
import json
import os

import pandas as pd
import streamlit as st

st.set_page_config(layout="wide", page_title="Lang2SQL 평가 시각화")

Expand Down
7 changes: 4 additions & 3 deletions llm_utils/chains.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import os

from dotenv import load_dotenv
from langchain_core.prompts import (
ChatPromptTemplate,
MessagesPlaceholder,
SystemMessagePromptTemplate,
)

from .llm_factory import get_llm

from dotenv import load_dotenv
from prompt.template_loader import get_prompt_template

from .llm_factory import get_llm

env_path = os.path.join(os.getcwd(), ".env")

if os.path.exists(env_path):
Expand Down
1 change: 1 addition & 0 deletions llm_utils/connect_db.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import os
from typing import Union

import pandas as pd
from clickhouse_driver import Client
from dotenv import load_dotenv
Expand Down
15 changes: 6 additions & 9 deletions llm_utils/graph.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
import os
import json
import os

from typing_extensions import TypedDict, Annotated
from langchain.chains.sql_database.prompt import SQL_PROMPTS
from langgraph.graph import END, StateGraph
from langgraph.graph.message import add_messages
from langchain.chains.sql_database.prompt import SQL_PROMPTS
from pydantic import BaseModel, Field
from .llm_factory import get_llm

from llm_utils.chains import (
query_refiner_chain,
query_maker_chain,
)
from typing_extensions import Annotated, TypedDict

from llm_utils.chains import query_maker_chain, query_refiner_chain
from llm_utils.tools import get_info_from_db

from .llm_factory import get_llm

# 노드 식별자 정의
QUERY_REFINER = "query_refiner"
GET_TABLE_INFO = "get_table_info"
Expand Down
6 changes: 3 additions & 3 deletions llm_utils/llm_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

from dotenv import load_dotenv
from langchain.llms.base import BaseLanguageModel
from langchain_aws import ChatBedrockConverse, BedrockEmbeddings
from langchain_aws import BedrockEmbeddings, ChatBedrockConverse
from langchain_community.llms.bedrock import Bedrock
from langchain_google_genai import ChatGoogleGenerativeAI, GoogleGenerativeAIEmbeddings
from langchain_huggingface import (
ChatHuggingFace,
Expand All @@ -13,12 +14,11 @@
)
from langchain_ollama import ChatOllama, OllamaEmbeddings
from langchain_openai import (
AzureChatOpenAI,
AzureOpenAIEmbeddings,
ChatOpenAI,
AzureChatOpenAI,
OpenAIEmbeddings,
)
from langchain_community.llms.bedrock import Bedrock

# .env 파일 로딩
load_dotenv()
Expand Down
2 changes: 1 addition & 1 deletion llm_utils/prompts_class.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from langchain.chains.sql_database.prompt import SQL_PROMPTS
import os

from langchain.chains.sql_database.prompt import SQL_PROMPTS
from langchain_core.prompts import load_prompt


Expand Down
6 changes: 3 additions & 3 deletions llm_utils/tools.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import os
from typing import List, Dict, Optional, TypeVar, Callable, Iterable, Any
from concurrent.futures import ThreadPoolExecutor
from typing import Any, Callable, Dict, Iterable, List, Optional, TypeVar

from langchain.schema import Document
from tqdm import tqdm

from data_utils.datahub_source import DatahubMetadataFetcher
from tqdm import tqdm
from concurrent.futures import ThreadPoolExecutor

T = TypeVar("T")
R = TypeVar("R")
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# setup.py
from setuptools import setup, find_packages
from setuptools import find_packages, setup

with open("docs/README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
Expand Down