feat(universite): kadın/erkek oranı öğrenci karesinde (YÖK İstatistik 2025-26, örgün ön lisans+lisans)
Üniversite sayfasındaki 'Örgün öğrenci' karesine '%54 kadın · %46 erkek' satırı eklendi; kaynak notu üniversite düzeyi olduğunu ve bölüm bazında veri olmadığını söyler. Filtre ya da öncelik değil, bilgi satırı. Üretim betiği E/K sütunlarını okur; kadinYuzdesi() yardımcı eklendi. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -54,7 +54,10 @@ def sayfa(ad: str):
|
||||
|
||||
|
||||
# Öğrenci: sütun 1 ad, 4 öğrenim türü, 19 genel toplam (T).
|
||||
# Kadın/erkek: ön lisans E/K sütun 5/6, lisans E/K sütun 8/9 — yalnız örgün
|
||||
# ön lisans + lisans (tercih yapan öğrencinin gireceği düzey).
|
||||
ogrenci: dict[str, int] = {}
|
||||
cinsiyet: dict[str, list[int]] = {}
|
||||
s = sayfa("ogrenci")
|
||||
for r in range(4, s.nrows):
|
||||
v = s.row_values(r)
|
||||
@@ -64,6 +67,9 @@ for r in range(4, s.nrows):
|
||||
if tur in ("BİRİNCİ Ö.", "İKİNCİ Ö."):
|
||||
k = sayfa_slug(ad)
|
||||
ogrenci[k] = ogrenci.get(k, 0) + tamsayi(v[19])
|
||||
c = cinsiyet.setdefault(k, [0, 0])
|
||||
c[0] += tamsayi(v[6]) + tamsayi(v[9]) # kadın
|
||||
c[1] += tamsayi(v[5]) + tamsayi(v[8]) # erkek
|
||||
|
||||
# Akademisyen: T sütunları Prof 6, Doç 9, Dr. Öğr. Üyesi 12, genel toplam 21.
|
||||
akademik: dict[str, tuple[int, int]] = {}
|
||||
@@ -86,7 +92,11 @@ for k in sorted(sayfalar):
|
||||
uye, toplam = akademik[k]
|
||||
if ogrenci[k] == 0 or uye == 0:
|
||||
continue
|
||||
satirlar.append(f' "{k}": {{ ogrenci: {ogrenci[k]}, ogretimUyesi: {uye}, akademisyen: {toplam} }},')
|
||||
kadin, erkek = cinsiyet.get(k, (0, 0))
|
||||
satirlar.append(
|
||||
f' "{k}": {{ ogrenci: {ogrenci[k]}, ogretimUyesi: {uye}, akademisyen: {toplam}, '
|
||||
f'kadin: {kadin}, erkek: {erkek} }},'
|
||||
)
|
||||
|
||||
oranlar = sorted(ogrenci[k] / akademik[k][0] for k in sayfalar
|
||||
if ogrenci.get(k) and akademik.get(k, (0, 0))[0])
|
||||
@@ -106,6 +116,7 @@ cikti = f'''// YÖK İstatistik {DONEM}: üniversite başına örgün öğrenci
|
||||
//
|
||||
// Öğrenci = örgün (birinci + ikinci öğretim), tüm düzeyler; uzaktan ve açık
|
||||
// öğretim dahil değil. Öğretim üyesi = Prof. + Doç. + Dr. Öğr. Üyesi.
|
||||
// Kadın/erkek = örgün ön lisans + lisans öğrencisi (E/K sütunları).
|
||||
// Anahtar: /universite/[slug] sayfa slug'ı. Burada olmayan üniversitenin
|
||||
// YÖK İstatistik satırı yok (KKTC/yurt dışı ya da öğrencisi/üyesi 0).
|
||||
|
||||
@@ -123,6 +134,10 @@ export type UniIstatistik = {{
|
||||
ogretimUyesi: number;
|
||||
/** Tüm akademik personel (öğretim görevlisi ve araştırma görevlisi dahil) */
|
||||
akademisyen: number;
|
||||
/** Örgün ön lisans + lisans kadın öğrenci */
|
||||
kadin: number;
|
||||
/** Örgün ön lisans + lisans erkek öğrenci */
|
||||
erkek: number;
|
||||
}};
|
||||
|
||||
export const YOK_ISTATISTIK: Record<string, UniIstatistik> = {{
|
||||
@@ -138,5 +153,16 @@ export function uniIstatistikBul(slug: string): UniIstatistik | null {{
|
||||
export function ogrenciBasinaUye(i: UniIstatistik): number {{
|
||||
return Math.round(i.ogrenci / i.ogretimUyesi);
|
||||
}}
|
||||
|
||||
/**
|
||||
* Örgün ön lisans + lisans öğrencisinde kadın yüzdesi (0-100, tam sayı);
|
||||
* iki sayı da sıfırsa null. Üniversite düzeyidir, bölüm düzeyinde veri yok —
|
||||
* bilgi olarak gösterilir, filtre ya da öncelik yapılmaz.
|
||||
*/
|
||||
export function kadinYuzdesi(i: UniIstatistik): number | null {{
|
||||
const toplam = i.kadin + i.erkek;
|
||||
if (toplam === 0) return null;
|
||||
return Math.round((i.kadin / toplam) * 100);
|
||||
}}
|
||||
'''
|
||||
(KOK / "src" / "lib" / "yok-istatistik.ts").write_text(cikti, encoding="utf-8")
|
||||
|
||||
Reference in New Issue
Block a user