[Tutor] string not found in variable
jark AJ
jarkmx at gmail.com
Mon Mar 22 19:41:20 EDT 2021
Sorry. my bad, I never called the package_check() :)
Please ignore
On Mon, Mar 22, 2021 at 7:18 PM jark AJ <jarkmx at gmail.com> wrote:
> Thank you so much Dennis and Alan.
> Yes Dennis, understand, Somehow I got the idea that using the classes
> would make things easier. thank you again!
> Couple of follow up questions
>
> 1) At what point you would have used classes in this case or what could be
> the use case that would decide us to choose classes over functions
> 2) On the package_check() function, I am calling output = get_packages()
> and it does not call the package_check(). tested by printing it. When I
> tried to do outside of the function, I was able to get the result back.
> Could you please let me know why ? I am planning to use the output to
> perform the success/failure action
>
>
> using python2.7
>
> ____
>
> import subprocess
> import sys
>
> def call(cmd, shell=False):
> """Function for the subprocess check"""
>
> try:
> output = subprocess.check_call(cmd.split(), shell=shell,)
> return output
> except subprocess.CalledProcessError as error:
> return error.returncode
> except subprocess.OSError as error:
> return error
>
>
> def get_packages():
> """Function to list the packages required to perform the test.
> nc package can be present in /usr/bin or /bin/nc"""
>
> print("test was invoked")
> try:
> nc_check_1 = call("ls /usr/bin/nc")
> nc_check_2 = call("ls /bin/nc")
> nc_check = nc_check_1 and nc_check_2
> return nc_check
> except Exception as error:
> sys.exit("failed due to" + str(error))
>
>
> def package_check():
> """Function to check the packages required to perform the test"""
> output = get_packages()
> print(output)
> __
>
>
> On Mon, Mar 22, 2021 at 12:17 PM Dennis Lee Bieber <wlfraed at ix.netcom.com>
> wrote:
>
>> On Sun, 21 Mar 2021 20:55:43 -0400, jark AJ <jarkmx at gmail.com> declaimed
>> the following:
>>
>> > Yes, Understood, the idea behind using a class instead of a
>> function
>> >is that looking to use the same class for any commands that we may need
>> to
>> >run in future.
>>
>> You are creating an instance of the class for each command -- and
>> only
>> invoking it once, then discarding it.
>>
>> Just create a function, and pass the command to the function.
>>
>> >for i in range(5):
>> > command = Command("nc -zvw 4 www.google.com 443")
>> > output, my_check = command.run()
>> > print(my_check)
>> > print(type(output))
>> > print("succeeded!" in my_check)
>>
>> That creates, runs, and disposes of five instances of Command.
>>
>> Since the command itself doesn't change inside the loop, it might
>> be
>> useful to reorder some statements -- if you insist on a class, rather than
>> just a function...
>>
>> >command = Command("nc -zvw 4 www.google.com 443")
>> >for i in range(5):
>> > output, my_check = command.run()
>> > print(my_check)
>> > print(type(output))
>> > print("succeeded!" in my_check)
>>
>> This, at least, makes repeated use of the same instance to run
>> the same
>> command. NOTE: I've not gone back to the class definition to ensure that
>> there is no shared state between .run() except for the command to be run.
>>
>>
>> --
>> Wulfraed Dennis Lee Bieber AF6VN
>> wlfraed at ix.netcom.com
>> http://wlfraed.microdiversity.freeddns.org/
>>
>> _______________________________________________
>> Tutor maillist - Tutor at python.org
>> To unsubscribe or change subscription options:
>> https://mail.python.org/mailman/listinfo/tutor
>>
>
More information about the Tutor
mailing list