On 10/03/2014 11:32, Josef Holzmayr wrote: > Hello Vali, > >> Vali Cobelea <valentin.cobe...@enea.com> hat am 10. März 2014 um 12:20 >> geschrieben: >> >> The idea behind 'is' would be to have more safety and less crashes when >> one of the arguments, in your case, is empty (eg None). > Well there are cases where I needed to compare strings that have been read in > and then modified from two different sources (e.g., files). Hence in my > understanding, they have the same content, but not the same id. So if I want > to > match their content only, I'd have to use "==" because "is" would give me > false > even if the content matches.
Hi Josef, Vali, Interesting points. fwiw I'd have thought myself that string comparison should be string comparison (==) as if you use an object identity comparison as a string comparison (is), you potentially introduce opaque problems when the strings are the same - i.e. same bytes of data - but the objects are not the same for whatever reason. e.g. stringvar1 = "A string for comparison" stringvar2 = "A string for " stringvar2 += "comparison"; if stringvar1 == stringvar2: print stringvar1 + " == " + stringvar2 else: print stringvar1 + " != " + stringvar2 if stringvar1 is stringvar2: print stringvar1 + " is " + stringvar2 else: print stringvar1 + " is not " + stringvar2 Results in, A string for comparison == A string for comparison A string for comparison is not A string for comparison Cheers, Alex >> This discussion can go over and over, is more a flavor thing: being >> pythonian or not. > Agreed, with the exception of the above said. But you're right, I'll look into > the topic and see if it can bring improvements. Thanks again for your input. > >> Best regards, >> Vali > Greetz > Josef /Leto > >> On 03/10/2014 01:11 PM, Josef Holzmayr wrote: >>> Hello Vali, >>> >>>> Vali Cobelea <valentin.cobe...@enea.com> hat am 10. März 2014 um 12:05 >>>> geschrieben: >>>> >>>> Looks ok at a first look, but my first suggestion would be to start >>>> using the "is" operator instead of "==" when it comes to comparing strings. >>>> Otherwise using your way with "==" will crash if any of the variables >>>> (those "sys.argv[]") are None (void). >>> Thanks for the quick input! However, this is one of the very rare points I >>> intently did that way, because of the difference in meaning from "==" to >>> "is" >>> (see >>> http://stackoverflow.com/questions/1504717/why-does-comparing-strings-in-python-using-either-or-is-sometimes-produce). >>> But I'm curious, how would one then properly compare the content of two >>> strings? >>> Checking both types first? >>> >>>> Best regards, >>>> Vali >>> Greetz >>> Josef/Leto >>> >>>> On 03/10/2014 12:59 PM, Josef Holzmayr wrote: >>>>> Howdy! >>>>> >>>>> After looking more and more into yocto, one of the main issues for me is >>>>> the >>>>> process to set up a project properly, including all layers and conf >>>>> options. >>>>> Especially those which would be needed to set exactly the same way again >>>>> and >>>>> again every time somebody needs to reproduce a build. >>>>> >>>>> So I've come up with an idea: a small tool that can handle these things >>>>> for >>>>> me. >>>>> And here it is for your enjoyment/use/abuse/comments: >>>>> >>>>> https://github.com/LetoThe2nd/blubber >>>>> >>>>> Short excerpt from the README: >>>>> >>>>> But be warned first. Blubber is still in pre-pre-pre-alpha stage (more >>>>> like >>>>> a >>>>> proof of concept), and has the following defects/bugs/non-features: >>>>> - Horribly bad python code (Yes, its really that bad. Blame me, its my >>>>> first >>>>> attempt to use that language) >>>>> - No error checking whatsoever >>>>> - Largely incomplete feature set >>>>> - Did I already mention the utterly bad code? >>>>> - Only supports git sources so far. >>>>> >>>>> Despite that, it can already do some magic: >>>>> - Getting poky and layers from git, and checking out branches/tags/commits >>>>> if >>>>> needed >>>>> - Accordingly setting up build/conf/bblayers.conf >>>>> - Setting up build/conf/local.conf with a set of predefined options >>>>> - Running arbitrary commands with proper shell setup (source-ed >>>>> poky/oe-init-build-env) for the configured project. >>>>> >>>>> If anybody has feedback, just scream loudly. Or if anybody knows of a >>>>> better >>>>> solution making it all obsolete, please also scream. Thanks! >>>>> >>>>> Leto -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto