Hi, This feels like a strange issue, so i hope I formulate this so its understandable.
I have some objects. Each object has associated values. I am looping through these objects, working with a value and printing out the value. The issue in this case is that i need to check if the one value superseeds the other, and in that case, not print it out. I think the problem is that when you are in the loop, you dont know about the other object that you havent processed yet, and when you are processing that object, you dont know about the previous one? (not 100% sure if this assumption is correct) eg of my data (im comparing ubuntu -> debian security fixes and the data comes from https://edge.launchpad.net/ubuntu/+source/openswan) You can see what i have so far here - http://people.ubuntu.com/~stefanlsd/synclist.html The Jaunty Jackalope (current stable release) Show details 1:2.4.12+dfsg-1.3+lenny2build0.9.04.1 updates, security (universe) two days ago Show details 1:2.4.12+dfsg-1.3 release (universe) 49 weeks ago In the above case, the first loop goes through 1:2.4.12+dfsg-1.3+lenny2build0.9.04.1. At this point i need it to stop without checking the next entry 1:2.4.12+dfsg-1.3 as the former superseeds it. I understand that I can use a break to exit the loop, but i run a whole bunch of things after this check, so i dont want to break out of it. Is this possible what i'm doing? or have i architected the loop wrong so i 'should' be able to break out of it. Thanks in advance! stefan snippet of code below if its of any use... for app in apps: print('app in apps: %s' % app) for item in series: print('item in series: %s' % item) debian_series = item[0] debian_fullversion = item[2] print('debian_series: %s' % debian_series) print('debian_fullversion: %s' % debian_fullversion) debian_version = re.sub('\+?(etch|lenny|sarge|squeeze|woody)[0-9]+$', '', debian_fullversion) print('debian_version: %s' % debian_version) main_archive = launchpad.distributions['ubuntu'].main_archive #TODO - May be able to use a version check in the publishedsource to increase speed of checking publishedsource = main_archive.getPublishedSources(source_name = app, status='Published', exact_match=True) for source in publishedsource: if source.distro_series.active: print source.distro_series.name, source.source_package_version ubuntu_fullversion = source.source_package_version print('ubuntu fullversion before: %s' % ubuntu_fullversion) ubuntu_version = re.sub('build0.[0-9]+.[0-9][0-9].[0-9]+$', '', ubuntu_fullversion) #ubuntu_version = re.sub('\+?(etch|lenny|sarge|squeeze|woody)[0-9]+$', '', ubuntu_version) print('ubuntu version after: %s' % ubuntu_version) #ubuntu_target = ('%subuntu/+source/%s') % (launchpad._root_uri,app) if debian_fullversion == ubuntu_version: continue if debian_version in ubuntu_fullversion: ubuntu_component = source.component_name ubuntu_series = source.distro_series.name ubuntu_pocket = source.pocket print('ubuntu_pocket: %s' % ubuntu_pocket) print('debian version: %s' % debian_version) #If pocket is Security, no need to check further if ubuntu_pocket == 'Security' or ubuntu_pocket == 'Updates': print('Not Found version in: %s. Continue' % ubuntu_pocket) break if debian_version == ubuntu_version: matchtype = 'Sync Match' else: matchtype = 'MoM Match' ubuntu_changelog = '<a href=http://changelogs.ubuntu.com/changelogs/pool/' + ubuntu_component + '/' + app[:1] + '/' + app + '/' + app + '_' + ubuntu_version + '/changelog>Ubuntu Changelog</a>' debian_changelog = '<a href=http://packages.debian.org/changelogs/pool/' + 'main' + '/' + app[:1] + '/' + app + '/' + app + '_' + debian_fullversion + '/changelog>Debian Changelog</a>' print('cve: %s' % cve) for cveitem in cve: cvestatus, url = cvecheck(cveitem, ubuntu_series, ubuntu_version) print('cvestatus: "%s"' % cvestatus) if cvestatus == 'released' or cvestatus == 'dne' or cvestatus == 'not-affected': pass else: writeweb(date, matchtype, app, ubuntu_series, ubuntu_fullversion, debian_fullversion, ubuntu_changelog, debian_changelog, url, cveitem, cvestatus) _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor