Python un uv
Šis ieraksts ir tehnisks. Tas var būt par datoriem, programmēšanu, lodēšanu un tamlīdzīgām ne pārāk populārām lietām. Ja tevi šāds saturs neinteresē, droši vari to nelasīt.
Laiku pa laikam sanāk atgriezties pie Python. Ne tā, ka ikdienā, bet pāris reizes gadā. Iepriekšējā iterācijā es piespiedu sevi apgūt venv. Pamatā tāpēc, ka vajadzēja reproducējamas piegādes uz vietām, kur ir ļoti dažādas pitona versijas.
Šī gada pitona jaunums man ir modernais un spīdīgais tā pakotņu pārvaldības rīks uv
. Jā, kad par to pirmo reizi izdzirdēju, bija tieši tas viedoklis - kārtējais rastistu jociņš ar better because written in Rust. Pie kam, nosaukums, kā jau tanī pasaulē pieņemts, ir absolūti nesameklējams. Pagājušogad, kad garām skrienot uzmetu aci anonsam, loģiski izsecināju, ka tas noteikti ilgi nedzīvos. Labi, ka tā nenotika.
Pat, ja dari pitonu reti, iesaku uzmest aci. Patīkami, implementē visus, šķiet, nepieciešamos PEP un iespēju klāsts ir negaidīti brangs.
Neticamā kārtā tas tiktiešām ir labākais, kas ir noticis pitona pakotņu pārvaldībā kopš pip
parādīšanās. Bet ne par to šodien stāsts. Vakar uzzināju, ka tam eksistē iespēja norādīt atkarības pašā pitona skriptā. Neizskatās eleganti, bet doma skaista. Tāds implicit go mod tidy
.
# /// script
# requires-python = ">=3.12"
# dependencies = [
# "requests",
# ]
# [tool.uv]
# exclude-newer = "2023-10-16T00:00:00Z"
# ///
OK, tas izskatās pēc jauna DSL (kas patiesībā ir TOML), bet ja paskatās uz problēmu, kuru tas viss risina, šis upuris ir nieks.
26. februārī, plkst. 21:35
Iespēja scriptā norādīt tā atkarības patiesībā ir standartizēta:
... bet
uv
, protams, ir malači, ka ir to ātri ieviesuši.Bija interesanti paklausīties arī Talk Python podcastu par
uv
: https://talkpython.fm/episodes/show/476/unified-python-packaging-with-uv26. februārī, plkst. 21:37
Jā, es pēc šī ieraksta publicēšanas arī atklāju, ka
uv
ir PEP atbilstošs.