Skip to content

Latest commit

 

History

History
95 lines (71 loc) · 3.24 KB

File metadata and controls

95 lines (71 loc) · 3.24 KB

PyGuardFinal - מערכת ניהול גרסאות וניתוח קוד בפייתון

סקירה כללית

פרויקט זה כולל שני חלקים מרכזיים:

  1. קליינט - מערכת ניהול גרסאות בסיסית בשם wit
    מערכת מבוססת CLI לניהול גרסאות פשוטה, בהשראת Git, המיושמת בפייתון עם ספריית Click ומבוססת עקרונות OOP.

  2. שרת - מערכת ניתוח קוד עם FastAPI כחלק מפקודת wit push
    שרת backend שמנתח קוד Python באופן אוטומטי בעת ביצוע wit push, ומחזיר התרעות וגרפים ויזואליים.


חלק ראשון: קליינט - wit - מערכת ניהול גרסאות

מטרת הפרויקט

פיתוח כלי CLI לניהול גרסאות, שמאפשר יצירת מאגר, הוספת קבצים למעקב, ביצוע commit, צפייה בלוג ושחזור גרסאות קודמות.

פקודות עיקריות:

  • wit init - יצירת תיקיית .wit לניהול הגרסאות.
  • wit add <file> - הוספת קבצים למעקב בגרסה הבאה.
  • wit commit -m "message" - יצירת גרסה חדשה עם הודעת commit.
  • wit log - הצגת היסטוריית הגרסאות.
  • wit status - בדיקת שינויים שלא הועלו לגרסה.
  • wit checkout <commit_id> - שחזור למצב קודם לפי מזהה commit.

טכנולוגיות:

  • Python
  • ספריית Click ליצירת CLI
  • עקרונות תכנות מונחה עצמים (OOP)

חלק שני: שרת backend לניתוח קוד

מטרת הפרויקט

פיתוח שרת FastAPI שמבצע ניתוח איכות קוד אוטומטי בעת ביצוע wit push, ומחזיר התרעות וגרפים לויזואליזציה.

טכנולוגיות:

  • Python
  • FastAPI
  • ast (Abstract Syntax Tree) לניתוח הקוד
  • matplotlib להצגת גרפים

פונקציונליות עיקרית:

  • ניתוח פונקציות ונתוני קוד לפי קריטריונים כמו אורך פונקציה, משתנים לא בשימוש, חוסר תיעוד, ועוד.
  • יצירת גרפים: היסטוגרמה של אורך פונקציות, תרשים עוגה של סוגי בעיות, תרשים עמודות של בעיות לפי קובץ.
  • API עם נקודות קצה /analyze ו-/alerts לקבלת קבצים ותגובות.

איך להשתמש

התקנת תלותים:

pip install -r requirements.txt

הרצת הקליינט (wit):

  • בתוך התיקייה של הקליינט:
python wit.py <command> [options]

לדוגמה:

wit init
wit add example.py
wit commit -m "Initial commit"

הרצת השרת:

uvicorn backend.main:app --reload

(בהנחה שהקוד נמצא בתיקיית backend בקובץ main.py)


מבנה התיקיות (לדוגמה):

PyGuardFinal/
├── backend/                  # קוד השרת
│   ├── main.py
│   ├── analysis.py
│   └── ...
├── client/                   # קוד הקליינט wit
│   ├── wit.py
│   └── ...
├── README.md
└── requirements.txt