[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