Abduaziz Py 🔥


Kanal geosi va tili: O‘zbekiston, O‘zbekcha


@AbduazizZiyodov'ning o'zi bilgan va foydali bo'lishi mumkin bo'lgan ma'lumotlarini barchaga ulashish maqsadida ochgan kanali.

Связанные каналы  |  Похожие каналы

Kanal geosi va tili
O‘zbekiston, O‘zbekcha
Statistika
Postlar filtri


PEP-0765: finally ichidagi return

Quyidagi holat tanishmi?
>>> def bool_return() -> bool:
... try:
... return True
... finally:
... return False
...
>>> bool_return()
False # 🙂‍↔️

Python bo'yicha texnik intervyularda so'raladi, "bu False qaytaradi" degan javob kutiladi. Ammo, True desangiz "finally qanday ishlashini bilmas ekansiz" deyiladi.

Dokumentatsiya bo'yicha qaralganda, exception handlingda finally har qanday holatda eng oxirgi bo'lib bajariladigan blok sanaladi. Shu sababli, undagi return yuqori ustunlikka ega (oxirgi bo'lgani uchun):
The return value of a function is determined by the last return statement executed. Since the finally clause always executes, a return statement executed in the finally clause will always be the last one executed. [1]


Bu holatni qabul qilish men uchun qiyin bo'lgan. Funksiyani chaqiramiz, chaqirilgan funksiya(routine) return orqali o'z vazifasini yakunlaydi, va "return adres" tomon sakraydi(qaytadi) ya'ni avval chaqirilgan joyiga [2]. Fundamental tushuncha, shunday emasmi !? Nega 1-returnning e'tiborsiz qoldirilayotgani g'alati va yoqimsiz. Dokumentatsiyada yozilgani, yoki kimdir aytgani uchun buni shundayligicha qabul qilishimiz kerakmi ... ?

finally bloki "cleanup"(tozalash) ishlarida foydalaniladi deb ta'kidlangan, va sog'lom intelekt uni shu uchun ishlatadi. Yuqoridagiga o'xshash kodlar sababli tushunarsiz xatoliklar keltirib chiqaradi.

Keyinroq bildimki, bu pythondagi nozik mavzulardan biri ekan )

Eng oson yechim, dasturchiga buni yozgani qo'ymaslik & o'rgatish. Linterlar tomonidan bunga qarshi choralar ko'rilgan[3][4][5], interpretator tomonidan esa yo'q. Avvalgi urinishlar rad etilgan [6]. Yaqin o'tmishda bu mavzu qayta ko'tarildi (PEP-0765), va ushbu "xatolik" hal qilindi (deyarli).

Men shunchaki returnga oid holatni ozgina yoritdim, aslida break/continue bilan bog'liq drama ham bor va ular bilan PEP orqali tanishib chiqishingiz mumkin.

Yangi interpretator (3.14dan boshlab), ushbu holat uchun SyntaxWarning generatsiya qila boshlaydi (ogohlantirish, ya'ni kodni to'xtamaydi, sizni xabardor qiladi). Keyingi relizlarda SyntaxError chaqirilishi ta'kidlanmoqda.

Ko'proq

• PEP: https://peps.python.org/pep-0765
• Izlanish: https://github.com/iritkatriel/finally
• Discussion: https://discuss.python.org/t/pep-765-disallow-return-break-continue-that-exit-a-finally-block

@AbduazizPy


⛵️ Dive

Docker image'larni qatlamlari bo'yicha tahlil qilish uchun foydali instrumentga o'xshayapdi, ishlatib ko'rib feedback beramiz izohlarda. Xotira bo'yicha samaradorlikni ham hisoblab berarkan, menimcha u "beta"da hali.

🔗 Havola: https://github.com/wagoodman/dive

@AbduazizPy


Rasmiy integratsiyalar qatorida chiqdi bugun.

edit: yozish esdan chiqibdi, sentry uchun telegram integratsiya. Telegram orqali alertlar. Avval yo'q edi.

@AbduazizPy

836 0 5 16 18

Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
📹 GitHub Issues VS StackOverflow

Yorib qo'yibdi oxirini lekin.

Reference: https://www.youtube.com/watch?v=5WCMI5wuS7U

@AbduazizPy

967 1 11 16 27



🦀 Rust: systems programming

Kecha bir postni "share" qilishgan edi, bugun o'qib chiqdim. Post "why rust" degan savolga javob berish uchun motivatsiya bilan boshlanadi.

Xotira boshqaruvi masalasi Python/C++/Rust misollari bilan yoritilgan. "Garbage Collection"(GC)ni zaif tomoni ham qisqa aytib o'tilgan ekan, vaziyatdan foydalanib sizlarga agar ko'rmagan bo'lsangiz ushbu videoni ko'rishni ham aytardim.

Rustni bilmayman, lekin ownership(postda egalik deyilgan) & borrowing mavzulari odamlarni ezishidan xabarim bor. Postda shu kabi va mavzular alohida yoritilgan, diqqat bilan o'qib tushunsa bo'ladi. Rust ekspert emasman, lekin yetarlicha yangilik oldim.

* Rustda yozadiganlar "linked list"larni nega yoqtirmasligini ham tushunasiz.

📖 Postga havola: https://hamirturush.uz/2024-12-29-rust-tizim-dasturlash
📢 Telegram kanal: @hamirturush

@AbduazizPy


~ Haqiqat

Ertaga hamma "boshqacha" odam. Afsuski, 1 kunda boshqa odamga o'zgarmaysiz (1 yilda ham). 2 ta "phonk" qo'shiq qo'yilgan reels/shorts ko'rib ham.

Maqsad/reja qilish, yo'l qo'yilgan xatolarni to'g'irlash & sarhisob uchun 1 yil kutish ham shart emas. Kichikroq intervallardan foydalaning (2 hafta yoki 1 oy), xatolarni aniqlash osonroq. 1 yillik sarhisobda xatolaringizni keltirib berishingiz qiyin/noaniq (kontekst: uy/moshin olish haqida emas, shaxsiy rivojlanish haqida). Xatolar ko'zdan qochiriladi, natijada yana o'sha samalyotni o'q yegan joylarini mustahkamlash uchun yopishtirilgan temir panel kabi ahvol.

Maqsad/rejalaringizni ham hech kimga aytmang iloji bo'lsa:
1. Qizig'i yo'q.
2. Bajarish ehtimolingiz kamayadi, miyangiz qildim deb o'ylaydi shu reja/ishni (more: "Positive Fantasy Trap").

Quotes won't work unless you do.


@AbduazizPy

539 0 3 12 31

Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
Uyga kelgandan keyin kampotlarni ichayotgan man:

#hazil

@AbduazizPy

442 0 2 10 27

Iloji bo'lsa ishlatmang bunaqa narsalarni.

@AbduazizPy






"No hate", shunchaki qiziq.

@AbduazizPy




💣 No More Bare Excepts

https://peps.python.org/pep-0760

try:
risky_operation()
except:
handle_any_error()
Maqsad yuqoridagidek uslubni yo'qotish. Quyidagini "majburiy" qilish:
try:
risky_operation()
except Exception as e:
handle_expected_error(e)
Dasturchi aynan qaysi exceptionni handle qilayotganini bilishi va kodda ko'rsatishi shart. Lekin hamma holatni qamrab oladigan universal handler ham yozib bo'lmaydi, kutilmagan holatlar juda ham ko'p (MemoryError exception'i uchun handler yozganmisiz hech ?)

Bularni hisobga olgan holda, avvaliga bizga ma'lum bo'lgan barcha exceptionlarni handle qilib, keyin qolgan holatlar uchun kod yozib qo'ysak bo'ladi menimcha:
try:
do_stuff()
except SomeExc:
...
except SomeSomeExc:
...
except Exception as exc:
...
finally:
...
else:
...
try/except:pass yozadiganlarga yuboramiz.

* edit-1: The syntax will be fully disallowed in Python 3.17.
* edit-2: PEPni 'https://t.me/AbduazizPy/355?comment=3349' rel='nofollow'>chopishibdi, post scheduled bo'lgan edi.

@AbduazizPy


Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
🆕 Telegram update: verification platform

* https://telegram.org/blog/gifts-verification-platform#verification-platform
* https://core.telegram.org/gateway

SMS verifikatsiyaga alternativ, arzonroq ekan:

Verification via Telegram costs $0.01 per user – greatly reducing operating costs for your service. By comparison, SMS verification can cost up to 50 times more per user.
The Telegram Verification Platform also ensures instant delivery of your messages – unlike SMS, which can take several minutes to arrive and have failure rates as high as 5


Yaxshi yangilik. Avvaldan telegram botlar orqali "passwordless" avtorizatsiyani yo'lga qo'yganlar ham bor lekin. O'zbekistonda har bir telefonga bitta telegram to'g'ri kelishini hisobga olsak juda ham qulay yechim. 42.uz da adashmasam shunday uslub.

Telegram shuni alohida platforma/api darajasiga olib chiqib, "soqqa" qilyapdi. Barakasini bersin.

deb xabar qiladi muxbirimiz.

@AbduazizPy

999 0 7 13 15

https://www.youtube.com/watch?v=TB2wqzGSsqM


"They constantly try to sell language"

@Abduaziz


🐧 G - "Gigachad"

Universitetlarda talabalarni linux ishlatishga majburlash ijobiy albatta.

@AbduazizPy

912 0 2 19 21

🔥 Python 3️⃣.1️⃣3️⃣

3.13-versiyani avvalgilaridan farqi juda ham katta. Avvalgilari qandaydur "typing"ga oid yangi "fishka"lar bilan quloqga lag'monni ilgan bo'lsa, bu safargisi ancha qattiq(eksperimental yangiliklar). Asosiy yangiliklar:

* Interaktiv interpretatorni yaxshilashdi (terminalda python desangiz chiqadigan konsol).
* Free-Threaded rejim. Ya'ni GIL(global interpreter lock)ni o'chirib qo'yish mumkin. Multithreading "scam" deb bo'lmaydi endi.
* JIT kompilyatori qo'shildi (optimizatsiya deb tushunishingiz mumkin).

Xullas, vaqt ajratib nimalar o'zgardi/qo'shildi ekan deb o'qib chiqganingiz ma'qul menimcha.

📕 Havola: https://docs.python.org/3.13/whatsnew/3.13.html

* edit: 1-oktyabr kuni reliz.

@AbduazizPy


*️⃣ Redis: xatolik

Odatda docker orqali ishga tushuraman, lekin tizim o'zida "native" o'rnatilganini xohlaydi bu ko'ngil. Har doim tushunarsiz xatolik berardi systemctl(systemd) orqali ishga tushurilganda, sizda ham vujudga kelsa fix:

sudo chown -R redis:redis /var/log/redis
sudo chmod -R u+rwX,g+rwX,u+rx /var/log/redis
sudo chmod +r /etc/redis/redis.conf

Shu skriptni apt orqali o'rnatayotganda nega qo'shib qo'yishmagani qiziq. Redis'ning systemd servisi redis foydalanuvchisi tomonidan ishga tushurilar ekan, shuni biror super foydalanuvchiga o'zgartirib to'g'irlab qo'yish mumkin bo'lsa kerak. Lekin tepadagi yechim xavfsizroq.

#redis #note #error

@AbduazizPy

814 0 3 18 11


20 ta oxirgi post ko‘rsatilgan.