Skip to content
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

[Feat] lint 설정, 가상환경 설정 및 baseline 코드 추가 #4

Merged
merged 12 commits into from
Nov 12, 2024

Conversation

jagaldol
Copy link
Contributor

@jagaldol jagaldol commented Nov 11, 2024

📝 Summary

프로젝트 협업을 위한 초기 세팅 작업을 하였습니다.

✅ Checklist

  • [ ] 관련 이슈가 명시되어 있습니다.
  • 테스트가 완료되었습니다.
  • 문서 업데이트가 포함되었습니다.
  • 코드 리뷰를 위한 사전 검토를 완료했습니다.

📄 Description

프로젝트 환경설정

가상환경 venv

venv를 사용하여 가상환경을 만들고 필요한 종속성을 설치할 수 있도록 구성해두었습니다.

$ python -m venv .venv
$ source .venv/bin/activate
(.venv) $ pip install -r requirements.txt
(.venv) $ python main.py

README에도 내용 작성되어있습니다.

main.py

베이스 라인 코드로부터 main.py 를 생성하였습니다. lint를 위해 코드 스타일 일부 수정 및 EDA 파트를 삭제하였습니다.

  • 주석문 일부 삭제
  • 불필요한 EDA 파트 삭제
  • 일단 모듈화 및 함수화 없이 단일 파일 내에 일괄 작성

학습 및 테스트 데이터

데이터는 data/ 폴더에 저장하면 됩니다.

$ sudo apt-get install wget
$ wget https://aistages-api-public-prod.s3.amazonaws.com/app/Competitions/000330/data/20241107124012/data.tar.gz
$ tar -xzvf data.tar.gz -C data
$ rm data.tar.gz

baseline_code.ipynb

main.py에서 빠진 EDA는 baseline_code.ipynb를 다운받아 확인해주세요!

Flake8, Black, isort Lint

각 설정은 다음의 2가지 파일에서 관리됩니다:

- .flake8: flake8 설정 파일
- pyproject.toml: black, isort 설정 파일

cli 상에서는 아래의 명령어로 확인 가능합니다.

Flake8

flake8은 오류를 검출하며 수정을 해주지는 않습니다. 직접 로직 등을 고쳐야합니다.

(level2-nlp-datacentric-nlp-14) hyejun@instance-12941:~/level2-nlp-datacentric-nlp-14$ flake8 .
./main.py:3:1: E266 too many leading '#' for block comment
./main.py:23:1: E266 too many leading '#' for block comment
./main.py:43:1: E266 too many leading '#' for block comment
./main.py:50:1: E266 too many leading '#' for block comment
./main.py:83:1: E266 too many leading '#' for block comment
./main.py:94:1: E266 too many leading '#' for block comment
./main.py:96:1: E266 too many leading '#' for block comment
./main.py:136:1: E266 too many leading '#' for block comment
8     E266 too many leading '#' for block comment

Black Formatter

blackisort는 자동으로 수정을 해줍니다.

(level2-nlp-datacentric-nlp-14) hyejun@instance-12941:~/level2-nlp-datacentric-nlp-14$ black .
All done! ✨ 🍰 ✨
2 files left unchanged.

isort

(level2-nlp-datacentric-nlp-14) hyejun@instance-12941:~/level2-nlp-datacentric-nlp-14$ black .
All done! ✨ 🍰 ✨
2 files left unchanged.

black과 isort의 경우, 자동 포맷팅 설정이 잘 적용되었다면 cli에서 확인할 일이 거의 없을 것입니다.

CI Github Action

위의 linting을 github action을 통해 CI 검사를 할 수 있도록 작성하였습니다.

$ flake8 .
$ black --check .
$ isort --check-only .

3가지의 job이 각각 위 명령어들을 수행하여 lint를 검사합니다.

image

PR이 업로드 되면 이와 같이 검사를 수행하게 됩니다.

💡 Notice (Optional)

README

환경 설정과 데이터 다운로드에 관련된 내용은 리드미에도 작성해두었습니다.

리드미를 통해서도 다시 한번 확인 부탁드립니다!

Extensions

코드 상에서 자동 포맷팅 및 오류를 확인하기 위해 다음의 extension을 설치하여야합니다:

  • Black Formatter
    image

  • Flake8
    image

  • isort
    image

해당 extension들을 활용하여 vscode 상에서 auto formatting이 가능하도록 .vscode/settings.json을 함께 PR에 포함시켰습니다.

보통은 개인 설정 파일 같은 느낌이라 .gitignore 하는 편이지만 이번에는 환경 통일을 위해 포함하였습니다.

@jagaldol jagaldol self-assigned this Nov 11, 2024
@jagaldol jagaldol added Priority: Medium 적절한 시기에 처리해야 할 작업 Priority: High 우선적으로 처리해야 할 중요한 작업 and removed Priority: Medium 적절한 시기에 처리해야 할 작업 labels Nov 12, 2024
Copy link
Contributor

@eyeol eyeol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코멘트 확인 한번만 부탁드립니다 👀

README.md Show resolved Hide resolved
pyproject.toml Show resolved Hide resolved
Copy link
Contributor

@eyeol eyeol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수정 사항 모두 확인했습니다. 고생하셨습니다!

@jagaldol jagaldol merged commit a255ca7 into main Nov 12, 2024
3 checks passed
main.py Show resolved Hide resolved
@jagaldol jagaldol added the Type: Enhancement 기능 개선 작업 label Nov 12, 2024
@jagaldol jagaldol changed the title [Feature] lint 설정, 가상환경 설정 및 baseline 코드 추가 [Feat] lint 설정, 가상환경 설정 및 baseline 코드 추가 Nov 12, 2024
@jagaldol jagaldol deleted the feature/init-project branch November 12, 2024 10:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: High 우선적으로 처리해야 할 중요한 작업 Type: Enhancement 기능 개선 작업
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants