From 16300e471f70720d20f3cc1ffd55a9fd985abe7c Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Sat, 11 Jun 2011 06:04:09 -0700 Subject: [PATCH] Move vendor_to_distroinfo and codename_to_distribution into ubuntutools.misc --- backportpackage | 3 +-- debian/changelog | 2 +- ubuntutools/distro_info.py | 28 ---------------------------- ubuntutools/misc.py | 28 ++++++++++++++++++++++++++++ 4 files changed, 30 insertions(+), 31 deletions(-) diff --git a/backportpackage b/backportpackage index 923229e..ae91ecd 100755 --- a/backportpackage +++ b/backportpackage @@ -35,8 +35,7 @@ from devscripts.logger import Logger from ubuntutools.archive import SourcePackage, DebianSourcePackage, UbuntuSourcePackage, DownloadError, rmadison from ubuntutools.config import UDTConfig, ubu_email from ubuntutools.builder import get_builder -from ubuntutools.distro_info import vendor_to_distroinfo, codename_to_distribution -from ubuntutools.misc import system_distribution +from ubuntutools.misc import system_distribution, vendor_to_distroinfo, codename_to_distribution from ubuntutools.question import YesNoQuestion def error(msg): diff --git a/debian/changelog b/debian/changelog index 70a4d95..ca169f5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -26,7 +26,7 @@ ubuntu-dev-tools (0.125) UNRELEASED; urgency=low * ubuntutools.misc: Add a new "system_distribution_chain", which returns a list starting with the current distribution and working its way up each distribution's parent. - * ubuntutools.distro_info: Add a function to find the distribution that + * ubuntutools.misc: Add a function to find the distribution that used a given release codename. * backportpackage, doc/backportpackage.1: Accept codenames from any distribution in the parenting chain. Makes it possible to, e.g., diff --git a/ubuntutools/distro_info.py b/ubuntutools/distro_info.py index c8025d5..d170f8c 100644 --- a/ubuntutools/distro_info.py +++ b/ubuntutools/distro_info.py @@ -18,8 +18,6 @@ import csv import datetime import os -from ubuntutools.misc import system_distribution_chain - def convert_date(string): """Convert a date string in ISO 8601 into a datetime object.""" if not string: @@ -197,29 +195,3 @@ class UbuntuDistroInfo(DistroInfo): if date <= x["eol"] or (x["eol-server"] is not None and date <= x["eol-server"])] return distros - -_vendor_to_distroinfo = {"Debian": DebianDistroInfo, - "Ubuntu": UbuntuDistroInfo} -def vendor_to_distroinfo(vendor): - """ vendor_to_distroinfo(string) -> DistroInfo class - - Convert a string name of a distribution into a DistroInfo subclass - representing that distribution, or None if the distribution is - unknown. - """ - return _vendor_to_distroinfo.get(vendor) - -def codename_to_distribution(codename): - """ codename_to_distribution(string) -> string - - Finds a given release codename in your distribution's genaology - (i.e. looking at the current distribution and its parents), or - print an error message and return None if it can't be found - """ - for distro in system_distribution_chain(): - info = vendor_to_distroinfo(distro) - if not info: - continue - - if codename in info().all: - return distro diff --git a/ubuntutools/misc.py b/ubuntutools/misc.py index df7fb3f..4e41258 100644 --- a/ubuntutools/misc.py +++ b/ubuntutools/misc.py @@ -29,6 +29,7 @@ import os.path from subprocess import Popen, PIPE import sys +from ubuntutools import distro_info from ubuntutools.lp.udtexceptions import PocketDoesNotExistError _system_distribution_chain = [] @@ -151,3 +152,30 @@ def require_utf8(): print >> sys.stderr, ("This program only functions in a UTF-8 locale. " "Aborting.") sys.exit(1) + + +_vendor_to_distroinfo = {"Debian": distro_info.DebianDistroInfo, + "Ubuntu": distro_info.UbuntuDistroInfo} +def vendor_to_distroinfo(vendor): + """ vendor_to_distroinfo(string) -> DistroInfo class + + Convert a string name of a distribution into a DistroInfo subclass + representing that distribution, or None if the distribution is + unknown. + """ + return _vendor_to_distroinfo.get(vendor) + +def codename_to_distribution(codename): + """ codename_to_distribution(string) -> string + + Finds a given release codename in your distribution's genaology + (i.e. looking at the current distribution and its parents), or + print an error message and return None if it can't be found + """ + for distro in system_distribution_chain(): + info = vendor_to_distroinfo(distro) + if not info: + continue + + if codename in info().all: + return distro