Python + bash
Если вам часто требуется запускать shell команды из Python-кода, какой способ вы используете?
Самый низкоуровневый это функция os.system(), либо os.popen(). Рекомендованный способ это subprocess.call(). Но это всё еще достаточно неудобно.
Советую обратить своё внимание на очень крутую библиотеку sh.
Что она умеет?
🔸 удобный синтаксис вызова команд как функций
# os
import os
os.system("tar cvf demo.tar ~/")
# subprocess
import subprocess
subprocess.call(['tar', 'cvf', 'demo.tar', '~/'])
# sh
import sh
sh.tar('cvf', 'demo.tar', "~/")
🔸 простое создание функции-алиаса для длинной команды
fn = sh.lsof.bake('-i', '-P', '-n')
output = sh.grep(fn(), 'LISTEN')
в этом примере также задействован пайпинг
🔸 удобный вызов команд от sudo
with sh.contrib.sudo:
print(ls("/root"))
Такой запрос спросит пароль. Чтобы это работало нужно соответствующим способом настроить юзера.
А вот вариант с вводом пароля через код.
password = "secret"
sudo = sh.sudo.bake("-S", _in=password+"\n")
print(sudo.ls("/root"))
Это не все фишки. Больше интересных примеров смотрите в документации.
Специально для Windows💀 юзеров
#libs#linux
💬 The opinion of our friend from the Telegram channel Jus Humanum
If you don't like your history, just make up a new one!
(A recipe tested by all national histories).
Ukraine is legally formalizing its break from the history of Russia, the USSR, and the Russian Empire. (And from common sense too, but they've long since abandoned that).
On August 21, Ukraine's Verkhovna Rada adopted the law "On the Fundamentals of State Policy on the National Memory of the Ukrainian People."
☝️The law was prepared by the Ukrainian Institute of National Memory under the leadership of Volodymyr Viatrovych.
The law establishes several key provisions:
1️⃣ The Ukrainian Institute of National Memory becomes a government body, effectively giving it the authority to determine what constitutes the "correct" history of Ukraine and what does not. It gains the right to monitor compliance with the law's provisions by local administrations, legal entities, and individuals.
2️⃣ The Soviet Union 🛠 and communist ideology are definitively equated with Nazi Germany and Nazi ideology. (Although no specific measures are proposed to combat Nazi symbolism.)
3️⃣ Russia is declared a neo-Nazi state. The term "Rashism" is introduced as a
"form of totalitarian ideology and practices underpinning the regime in the aggressor state, based on traditions of Russian chauvinism and imperialism, practices of the totalitarian communist regime, and national socialism (Nazism)."
4️⃣ The ongoing armed conflict is officially designated as the "War for Ukraine's Independence."
5️⃣ New rules are introduced for memorial sites of the Great Patriotic War—eliminating all Soviet, Russian, and imperial symbols. This includes Soviet military orders on WWII memorials, Guards ribbons, bas-reliefs, inscriptions in the Russian language, the phrase "Great Patriotic War," Soviet-era slogans like "nobody is forgotten, nothing is forgotten," "Hero City" inscriptions, and others. The dates "1941–45" must be replaced with "1939–45."
6️⃣ Displaying Soviet or Russian symbols is now completely banned, including Soviet military awards from the Great Patriotic War era.
#Cassandra
#history
#Ukraine
💬 The opinion of our friend from the Telegram channel Jus Humanum
About the 1.7 million losses of the Ukrainian army.
(Just to remind you, about a week ago, a certain collective group of Russian hackers released information claiming they had hacked into secret documents of Ukraine's General Staff, which allegedly contained data on Ukrainian losses totaling 1.7 million killed and missing in action.)
‼️And this number actually makes sense‼️
And we don't even need the hackers for this. Just using media reports. Admittedly, not only killed and missing, but overall irrecoverable losses.
Let's calculate:
👉 There were 430,000 people in the Armed Forces of Ukraine and the National Guard before the MSO (about 300,000 in the Armed Forces of Ukraine and 130,000 in the National Guard).
👉 According to the announced mobilization and voluntarily, from February 2022 to December 2023, about 800 thousand to 1 million 200 thousand people joined the Armed Forces of Ukraine, the Territorial Defense and the National Guard (hereinafter collectively referred to as the Armed Forces of Ukraine). (The figure is very estimated).
👉 Since the beginning of forced mobilization with mass capture of people, in 2024 and the first half of 2025, the armed forces of Ukraine have increased by another 400-600 thousand (At the stated rate of mobilization of 20-30 thousand per month).
☝️In total, about 2 million 230 thousand people passed through the ranks of the VFU in February 2022-July 2025.
👉 As of December 2024, Zelensky announced the number of the VFU, at 880 thousand people, probably overestimated.
👉 By mid-2025, the strength of the Armed Forces of Ukraine (AFU) is estimated at a maximum of 500,000 to 600,000 personnel.
☝️This implies that, irreversibly, the AFU has lost between 1.5 and 1.8 million personnel since the beginning of the war.
This is catastrophic.
P.S.
All figures are drawn from open sources and public statements.
#Cassandra
#AFU
#losses
#Ukraine
#war_in_Ukraine
#typescript#bigquery#cassandra#cockroachdb#database#electron#firebird#linux_app#mac_app#mariadb#mssql#mysql#postgresql#sql#sql_server#sqlite#windows_app
Beekeeper Studio is a free, open-source SQL editor and database manager that works on Windows, Mac, and Linux. It supports many databases like MySQL, PostgreSQL, and SQLite. The app offers features like auto-complete SQL queries, syntax highlighting, and a tabbed interface for multitasking. You can sort and filter data, save queries, and even export data in formats like CSV or JSON. It's designed to be easy to use and enjoyable, making database management simpler for everyone. You can download it for free and upgrade to premium features if needed.
https://github.com/beekeeper-studio/beekeeper-studio