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
Senior Veterinarian (Senior Animal Health Expert).
#adama_investment_group
#health_care
#Adama
DVM, Master's, Bachelor's Degree, or Advanced Diploma, in Veterinary Technology, Veterinary Science, or in a related field of study with relevant work experience
Quanitity Required: 2
Minimum Years Of Experience: #0_years
Maximum Years Of Experience: #8_years
Salary: 23676.00
Deadline: January 8, 2025
How To Apply: Submit your non-returnable application and CV along with supporting documents in person to the Human Resource Director of AIG located at Adama City, Abba Gada Sub City - In front of Tele Garage
Senior Veterinarian (Senior Animal Health Expert).
#adama_investment_group
#health_care
#Adama
DVM, Master's, Bachelor's Degree, or Advanced Diploma, in Veterinary Technology, Veterinary Science, or in a related field of study with relevant work experience
Quanitity Required: 2
Minimum Years Of Experience: #0_years
Maximum Years Of Experience: #8_years
Salary: 23676.00
Deadline: January 8, 2025
How To Apply: Submit your non-returnable application and CV along with supporting documents in person to the Human Resource Director of AIG located at Adama City, Abba Gada Sub City - In front of Tele Garage
Senior Veterinarian (Senior Animal Health Expert).
#adama_investment_group
#health_care
#Adama
DVM, Master's, Bachelor's Degree, or Advanced Diploma, in Veterinary Technology, Veterinary Science, or in a related field of study with relevant work experience
Quanitity Required: 2
Minimum Years Of Experience: #0_years
Maximum Years Of Experience: #8_years
Salary: 23676.00
Deadline: January 8, 2025
How To Apply: Submit your non-returnable application and CV along with supporting documents in person to the Human Resource Director of AIG located at Adama City, Abba Gada Sub City - In front of Tele Garage
#Commentary: #Oromia’s New Regulation: Legalizing construction on illegally possessed land, enabling geography-based discrimination
Oromia’s Regulation No. 259/2026 (March 2026) legalizes illegally built properties—yet excludes #Shaggar, #Adama, and #Bishoftu. Hassen Mama Muse argues, "This geographic exclusion creates a two-tiered system, violating constitutional equality."
The law covers construction projects from 2013 to 2026 that meet the criteria but excludes some residents from facing demolition. This contradicts Article 25 of #Ethiopia’s Constitution and treaties like the #ICCPR. The regulation also fails Lon Fuller’s "internal morality of law" and exceeds the Council’s authority under Proclamation No. 242/2021.
According to the author, urgent reforms are needed: include all cities, compensate evictees, and review constitutionality." A fair framework must protect all equally," he emphasizes, "or entrench inequality as reform."
https://addisstandard.com/?p=56238
News: EPRP calls for nationwide protest on May 8 amid concerns over electoral conditions
The Ethiopian People’s Revolutionary Party (#EPRP) has called for a nationwide peaceful protest to be held on May 8, 2026, citing what it described as the absence of “enabling conditions” for a credible election in #Ethiopia.
In a statement sent to Addis Standard today, the party said the planned demonstrations will take place in several major cities, including #Addis_Abeba, #Mekelle, #Bahir_Dar, #Gondar, #Hawassa, #Adama, and #Ambo, urging #Ethiopians to join what it described as a peaceful effort to demand political reforms.
The EPRP said it supports the transfer of power through elections but argued that current conditions do not allow for a “free, fair, and credible” vote. It accused the ruling Prosperity Party of attempting to conduct what it termed a “pseudo-election” aimed at extending its hold on power, describing the process as
Read more: https://addisstandard.com/?p=56410