Skip to content

sc3887/PyGuardFinal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

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

About

PyGuardFinal הוא פרויקט גמר בפייתון המדמה מערכת בקרת איכות קוד (CI) פנימית. המערכת מנתחת קוד Python בזמן ביצוע הפקודה wit push, מזהה בעיות בקוד (כמו פונקציות ארוכות, משתנים לא בשימוש וחוסר בתיעוד), ומחזירה גרפים ודוחות. השרת נכתב ב־FastAPI, הניתוח נעשה באמצעות ast, והגרפים נוצרים עם matplotlib.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors