Креирање CLI-ја са Python Fire-ом на Ubuntu 22.04

Uvod

U programerskom svetu, neretko se javlja potreba za stvaranjem alata koji se mogu izvršavati preko komandne linije (CLI). CLI alati nude delotvoran pristup automatizaciji zadataka, upravljanju resursima i interakciji s programima. Python Fire je moćan resurs koji omogućava brzo i jednostavno kreiranje CLI interfejsa za Python funkcije i klase.

Ovaj tekst će vas voditi kroz postupak izrade CLI-ja uz pomoć Python Fire-a na Ubuntu 22.04 operativnom sistemu. Kroz detaljne instrukcije i primere, naučićete kako da definišete CLI komande, obrađujete argumente i izvršavate funkcije koristeći Python Fire.

Instalacija Python Fire-a

Pre nego što krenete, uverite se da imate instaliran Python na vašem Ubuntu sistemu. Za proveru možete upotrebiti sledeću komandu:


python3 --version

Ukoliko Python nije instaliran, možete ga instalirati pomoću ove komande:


sudo apt update && sudo apt install python3

Za instaliranje Python Fire-a, pokrenite sledeću komandu:


pip3 install fire

Izrada CLI-ja sa Python Fire-om

Sada kada je Python Fire instaliran, spremni ste da počnete sa izradom CLI-ja. Kao primer, napravićemo CLI alat za konverziju temperature.

1. Definisanje funkcije:

Prvo, kreirajte Python datoteku (npr. temperature_converter.py) i definišite funkciju koja obavlja konverziju temperature. U ovom slučaju, funkcija će konvertovati Celzijuse u Farenhajte:

def celsius_to_fahrenheit(celsius):
„““Pretvara Celzijuse u Farenhajte.“““
fahrenheit = (celsius * 9 / 5) + 32
return fahrenheit

2. Korišćenje Fire-a:

Da biste napravili CLI, dodajte sledeći kod na kraju datoteke:

if __name__ == „__main__“:
import fire
fire.Fire(celsius_to_fahrenheit)

Ovaj kod koristi funkciju fire.Fire() kako bi kreirao CLI interfejs za funkciju celsius_to_fahrenheit.

3. Pokretanje CLI-ja:

Sačuvajte datoteku i pokrenite je iz komandne linije:


python3 temperature_converter.py

U komandnoj liniji će se pojaviti pomoć za korišćenje CLI-ja:

Usage: temperature_converter.py [celsius]

Convert Celsius to Fahrenheit.

Arguments:
celsius: The temperature in Celsius.

4. Korišćenje CLI-ja:

Za konvertovanje temperature, izvršite sledeću komandu:


python3 temperature_converter.py 25

Rezultat će biti:


77.0

Dodatne mogućnosti Python Fire-a

Python Fire nudi brojne dodatne mogućnosti za izradu CLI-ja, uključujući:

  • Obrada višestrukih argumenata: Možete definisati funkcije sa više argumenata, a Fire će automatski kreirati CLI komande koje prihvataju više parametara.
  • Definisanje podkomandi: Fire omogućava kreiranje podkomandi radi bolje organizacije CLI-ja i grupisanja srodnih funkcija.
  • Dodavanje pomoći: Fire automatski generiše pomoć za korišćenje CLI-ja, uključujući opise funkcija, argumenata i opcija.
  • Integracija sa drugim bibliotekama: Fire se može integrisati sa drugim Python bibliotekama, poput argparse, click i typer.

Primer: CLI alat za upravljanje datotekama

U ovom primeru, kreiraćemo CLI alat koji korisnicima omogućava upravljanje datotekama, uključujući listanje, kreiranje i brisanje direktorijuma.

import os

def list_files(directory):
„““Prikazuje datoteke u datom direktorijumu.“““
for filename in os.listdir(directory):
print(filename)

def create_directory(directory):
„““Stvara novi direktorijum.“““
os.makedirs(directory, exist_ok=True)

def delete_directory(directory):
„““Briše direktorijum.“““
if os.path.isdir(directory):
os.rmdir(directory)
print(f“Direktorijum ‘{directory}’ je uspešno obrisan.“)
else:
print(f“Direktorijum ‘{directory}’ ne postoji.“)

if __name__ == „__main__“:
import fire
fire.Fire()

Sada možete koristiti sledeće komande za upravljanje datotekama:

  • python3 file_manager.py list_files /home/user/documents
  • python3 file_manager.py create_directory /home/user/new_directory
  • python3 file_manager.py delete_directory /home/user/old_directory

Zaključak

Python Fire je izvanredan alat koji vam omogućava da brzo i jednostavno kreirate CLI interfejse za Python funkcije i klase. Uz Fire, možete razviti CLI alate koji su intuitivni za korišćenje, efikasni i fleksibilni.

Ovaj tekst je pružio uvod u Python Fire, objasnio proces izrade CLI-ja i demonstrirao nekoliko praktičnih primera. Savladavanje Python Fire-a omogućava vam da automatizujete zadatke, upravljate resursima i unapredite svoju produktivnost u programiranju.

Često postavljana pitanja (FAQ)

1. Šta je CLI alat?
CLI alat je program koji se izvršava putem komandne linije i omogućava korisniku da komunicira sa programom koristeći tekstualne komande.

2. Zašto koristiti Python Fire za izradu CLI-ja?
Python Fire je jednostavan i efikasan alat za kreiranje CLI-ja. On smanjuje količinu koda potrebnu za implementaciju CLI-ja, a takođe automatski generiše pomoć za korisnike.

3. Kako mogu definisati podkomande u Python Fire-u?
Podkomande možete definisati grupisanjem srodnih funkcija u klasu. Fire će automatski kreirati podkomande za svaku funkciju u klasi.

4. Da li Python Fire radi sa drugim bibliotekama?
Da, Python Fire se može integrisati sa drugim bibliotekama za kreiranje CLI-ja, kao što su argparse, click i typer.

5. Da li mogu kreirati grafički interfejs (GUI) sa Python Fire-om?
Ne, Python Fire je namenjen za izradu CLI interfejsa, a ne GUI-ja.

6. Šta je fire.Fire() funkcija?
fire.Fire() funkcija je glavna funkcija u Python Fire-u koja kreira CLI interfejs za date funkcije ili klase.

7. Kako mogu dodati pomoć za moj CLI alat?
Python Fire automatski generiše pomoć za CLI alate. Takođe, možete ručno dodati pomoć korišćenjem docstring-ova u vašim funkcijama.

8. Mogu li koristiti Python Fire na operativnim sistemima različitim od Ubuntua?
Da, Python Fire se može koristiti na različitim operativnim sistemima, uključujući Windows, macOS i Linux.

9. Gde mogu pronaći više informacija o Python Fire-u?
Možete pronaći dokumentaciju i primere na zvaničnoj veb stranici Python Fire-a: https://github.com/google/python-fire

10. Koja je razlika između fire.Fire() i fire.Fire(my_function)?
fire.Fire() kreira CLI interfejs za sve funkcije u modulu, dok fire.Fire(my_function) kreira CLI interfejs samo za datu funkciju my_function.

Tagovi

Python, CLI, Fire, Ubuntu, programiranje, alat, komandna linija, konverzija, temperatura, datoteke, direktorijum, upravljanje, dokumentacija, pomoć, FAQ, primeri.