| hide |
|
||
|---|---|---|---|
| tags |
|
SAHI'ye katkıda bulunmak istediğiniz için teşekkür ederiz! Bu kılavuz hızlıca başlamanıza yardımcı olacaktır.
git clone https://github.com/KULLANICI_ADINIZ/sahi.git
cd sahiGeliştirme için Python 3.10 kullanmanızı öneririz:
pip install uv
uv venv --python 3.10
source .venv/bin/activate # Windows kullanıcıları: .venv\Scripts\activate# Çekirdek + geliştirme bağımlılıklarını yükleyin
uv sync --extra dev
# Belirli bir modeli test etmek isterseniz onun bağımlılıklarını da yükleyin.Kod formatlama ve lint kontrolleri için ruff kullanıyoruz. Kodu formatlamak için:
# Format kontrolü
uv run ruff check .
uv run ruff format --check .
# Formatı düzeltme
uv run ruff check --fix .
uv run ruff format .Veya kolaylık sağlayan komut dosyasını kullanın:
# Format kontrolü
python scripts/format_code.py check
# Formatı düzeltme
python scripts/format_code.py fix# Tüm testleri çalıştırın
uv run pytest
# Belirli bir test dosyasını çalıştırın
uv run pytest tests/test_predict.py
# Kapsam (coverage) raporu ile çalıştırın
uv run pytest --cov=sahi- Yeni bir dal oluşturun:
git checkout -b feature-name - Değişikliklerinizi yapın
- Kodu formatlayın:
python scripts/format_code.py fix - Testleri çalıştırın:
uv run pytest - Net bir commit mesajı yazın:
git commit -m "Add feature X" - Push yapın ve PR oluşturun:
git push origin feature-name
CI derlemesi format sorunları nedeniyle başarısız olursa:
-
CI çıktısını inceleyin ve başarısız olan Python sürümünü onaylayın
-
O sürümle bir ortam oluşturun:
uv venv --python 3.X # X yerine CI sürümünü yazın source .venv/bin/activate
-
Geliştirme bağımlılıklarını yükleyin:
uv sync --extra dev
-
Formatı düzeltin:
python scripts/format_code.py fix
-
Değişiklikleri commit edin ve push yapın
Yeni bir tespit kütüphanesi desteği eklemek için:
sahi/models/your_framework.pyaltında yeni bir dosya oluşturunDetectionModelsınıfından türeyen bir sınıf yazınsahi/auto_model.pyiçindeMODEL_TYPE_TO_MODEL_CLASS_NAMEsözlüğüne kütüphanenizi ekleyintests/test_yourframework.pyaltına test ekleyindemo/inference_for_your_framework.ipynbaltına örnek bir notebook ekleyin- Yeni modelinizi içerecek şekilde
README.mdvedocs/altındaki ilgili dokümanları güncelleyin
Lütfen sahi/models/ultralytics.py gibi mevcut uygulamaları referans alın.
Herhangi bir sorunuz varsa, bir tartışma (discussion) başlatabilirsiniz!