Python Forum
How do I call sys.argv list inside a function, from the CLI?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How do I call sys.argv list inside a function, from the CLI?
#2
I tried to define the sys.argv within the class itself, and I still get TypeError 'str' object is not callable.
import sys
import netmiko
import json

from Hardware_info import HardwareMaintenance

Hardware = HardwareMaintenance.hardware_handler


class Connect:
    def __init__(self, **kwargs):
        # self.protocol = netmiko.ssh_autodetect
        # pass
        intake_file = open('ip_list.txt', 'r')
        self.json_data = [json.loads(line) for line in intake_file]
        self.kwargs = [Hardware]

    def connect_parser(self, inlist=[]):
        inlist = sys.argv[0]
        for data in self.json_data:
            ip = data["ip"]
            # port = data["port"]
            username = data["username"] if data["username"] else ""
            password = data["password"] if data["password"] else ""
            secret = data["secret"] if "secret" in data else False
            device_type = data["device_type"] if data["device_type"] else ""

            if data["header"] == "Netmiko":
                print("The variables being passed:  " + ip, username, password, device_type)
                ConnectHandler = netmiko.ConnectHandler(
                    device_type=device_type,
                    host=ip,
                    username=username,
                    password=password,
                    port=22,
                    secret=data["secret"] if "secret" in data else False
                )
                ConnectHandler.enable()
                for i in inlist:
                    i(ConnectHandler,ip)

if __name__ == "__main__":
    from Connect_Handler import Hardware
    from Connect_Handler import Connect
    print(Connect().connect_parser())
    inlist = sys.argv[0]
    #Connector.Connect(inlist)

# def runner():
#    #for i in sys.argv[0]:
#   Hardware(Connector.)
# runner()
notice I added

                for i in inlist:
                    i(ConnectHandler,ip)
to the end under ConnectHandler.enable()

and it's giving me the TypeError 'str' object is not callable
whether or not I pass in a list for sys.argv[0] in the command line.



however when I change inlist to:

    def connect_parser(self, inlist=[]):
        inlist = [Hardware]
notice i included Hardware


and now it is working fine. I don't want to be able to do this by passing in a list in the CLI...

I tried
    def connect_parser(self, inlist=[]):
        inlist = sys.argv[0]
and no go
Reply


Messages In This Thread
RE: How do I call sys.argv list inside a function, from the CLI? - by billykid999 - May-02-2023, 12:00 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  for loops break when I call the list I'm looping through Radical 4 1,063 Sep-18-2023, 07:52 AM
Last Post: buran
  with open context inside of a recursive function billykid999 1 683 May-23-2023, 02:37 AM
Last Post: deanhystad
  sys.argv method nngokturk 3 1,272 Jan-23-2023, 10:41 PM
Last Post: deanhystad
  Need to parse a list of boolean columns inside a list and return true values Python84 4 2,303 Jan-09-2022, 02:39 AM
Last Post: Python84
  how to call an object in another function in Maya bstout 0 2,192 Apr-05-2021, 07:12 PM
Last Post: bstout
  import argv Scott 3 6,073 Apr-01-2021, 11:03 AM
Last Post: radix018
  In this function y initially has no value, but a call to foo() gives no error. Why? Pedroski55 8 3,775 Dec-19-2020, 07:30 AM
Last Post: ndc85430
  How to make global list inside function CHANKC 6 3,321 Nov-26-2020, 08:05 AM
Last Post: CHANKC
  How to create a linked list and call it? loves 12 4,951 Nov-22-2020, 03:50 PM
Last Post: loves
  Struggling for the past hour to define function and call it back godlyredwall 2 2,351 Oct-29-2020, 02:45 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020