এই সেকশনে পাইথন ব্যবহার করে কমান্ড লাইন ইন্টারফেস (CLI) ডেভেলপ করা দেখাব। প্রথমে কমান্ড লাইন বুঝে নিই।
কমান্ড লাইন কম্পিউটার প্রোগ্রামের শুরু থেকেই ব্যবহৃত হচ্ছে এবং এটি কমান্ডের ওপর বিল্ট। একটি কমান্ড লাইন প্রোগ্রাম হলো যেটি শেল বা কমান্ড লাইন থেকে রান হয়।
CLI ইউজার ইন্টারফেস যেখানে মাউস না ব্যবহার করে টার্মিনাল, শেল বা কনসোলে কমান্ড টাইপ করে নেভিগেট করা হয়।
একটি CLI এক্সিকিউটেবল দিয়ে শুরু হয়। প্যাস করা প্যারামিটারগুলো:*
- Arguments (আর্গুমেন্টস): বাধ্যতামূলক প্যারামিটার। না দিলে এরর দেবে। যেমন:
pip install numpy-এnumpyআর্গুমেন্ট। - Options (অপশনস): অপশনাল প্যারামিটার, নাম-ভ্যালু পেয়ার হিসেবে। যেমন:
pip install django --cache-dir ./my-cache-dir। - Flags (ফ্ল্যাগস): অপশনাল, নির্দিষ্ট বিহেভিয়ার এনেবল/ডিসেবল করে। যেমন:
--help।
পাইথনে CLI লিখার জন্য একাধিক প্যাকেজ রয়েছে, যেমন click। click খুব কম কোডে CLI বানাতে দেয়।
click ছাড়া CLI প্রোগ্রাম (ক্লাসিক পদ্ধতি)
import sys
import random
def do_work():
"""Function to handle command line usage"""
args = sys.argv
args = args[1:] # প্রথম এলিমেন্ট ফাইল নাম
if len(args) == 0:
print('You have not passed any commands in!')
else:
for a in args:
if a == '--help':
print('Basic command line program')
print('Options:')
print(' --help -> show this basic help menu.')
print(' --monty -> show a Monty Python quote.')
print(' --veg -> show a random vegetable')
elif a == '--monty':
print("He's not the Messiah—he's a very naughty boy")
elif a == '--veg':
print(random.choice(['Tomato', 'Reddis', 'Carrot', 'Potato', 'Turnip']))
else:
print('Unrecognised argument.')
if __name__ == '__main__':
do_work()
আউটপুট
c:\Python\Python361>python cli_interp1.py --monty He's not the Messiah—he's a very naughty boy c:\Python\Python361>python cli_interp1.py --help Basic command line program Options: --help -> show this basic help menu. --monty -> show a Monty Python quote. --veg -> show a random vegetable c:\Python\Python361>python cli_interp1.py --veg Tomato c:\Python\Python361>python cli_interp1.py --error Unrecognised argument.
উপরের প্রোগ্রামে আর্গুমেন্ট নাম পরিবর্তন করা ফ্লেক্সিবল নয়।
click প্যাকেজ ব্যবহার করে CLI (আধুনিক পদ্ধতি)
import click
import random
@click.command()
@click.option('--monty', default=False, help='Show a Monty Python quote.')
@click.option('--veg', default=False, help='Show a random vegetable.')
def do_work(monty, veg):
"""Basic Click example will follow your commands"""
if monty:
print("He's not the Messiah—he's a very naughty boy")
if veg:
print(random.choice(['Tomato', 'Reddis', 'Carrot', 'Potato', 'Turnip']))
if __name__ == '__main__':
do_work()
আউটপুট
c:\Python\Python361>python cli_interp2.py --help Usage: cli_interp2.py [OPTIONS] Basic Click example will follow your commands Options: --monty TEXT Show a Monty Python quote. --veg TEXT Show a random vegetable. --help Show this message and exit.
click প্যাকেজ ব্যবহার করলে CLI লেখা অনেক সহজ হয় এবং প্রোগ্রামারশ्रम বাঁচায়। এটি DRY (Don't Repeat Yourself) প্রিন্সিপাল ফলো করে।