mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-03-12 23:51:08 +00:00
Move vendor_to_distroinfo and codename_to_distribution into ubuntutools.misc
This commit is contained in:
parent
1a6fb270b4
commit
16300e471f
@ -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):
|
||||
|
2
debian/changelog
vendored
2
debian/changelog
vendored
@ -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.,
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user