More refactoring.

This commit is contained in:
Jelmer Vernooij 2021-02-25 03:37:09 +00:00
parent c184e01aef
commit be24ed6b4f
4 changed files with 29 additions and 1 deletions

View file

@ -136,6 +136,8 @@ from ..requirements import (
PerlModuleRequirement,
PerlFileRequirement,
AutoconfMacroRequirement,
PythonModuleRequirement,
PythonPackageRequirement,
)
from .build import attempt_build, DEFAULT_BUILDER
@ -509,6 +511,16 @@ def problem_to_upstream_requirement(problem, context):
return PerlFileRequirement(filename=problem.filename)
elif isinstance(problem, MissingAutoconfMacro):
return AutoconfMacroRequirement(problem.macro)
elif isinstance(problem, MissingPythonModule):
return PythonModuleRequirement(
problem.module,
python_version=problem.python_version,
minimum_version=problem.minimum_version)
elif isinstance(problem, MissingPythonDistribution):
return PythonPackageRequirement(
problem.module,
python_version=problem.python_version,
minimum_version=problem.minimum_version)
else:
return None

View file

@ -71,6 +71,7 @@ class DependencyContext(object):
):
self.tree = tree
self.apt = apt
from .resolver.apt import AptResolver
self.resolver = AptResolver(apt)
self.subpath = subpath
self.committer = committer

View file

@ -26,9 +26,11 @@ class PythonPackageRequirement(UpstreamRequirement):
package: str
def __init__(self, package):
def __init__(self, package, python_version=None, minimum_version=None):
super(PythonPackageRequirement, self).__init__('python-package')
self.package = package
self.python_version = python_version
self.minimum_version = minimum_version
class BinaryRequirement(UpstreamRequirement):
@ -269,3 +271,15 @@ class AutoconfMacroRequirement(UpstreamRequirement):
def __init__(self, macro: str):
super(AutoconfMacroRequirement, self).__init__('autoconf-macro')
self.macro = macro
class PythonModuleRequirement(UpstreamRequirement):
module: str
python_version: Optional[str]
minimum_version: Optional[str]
def __init__(self, module, python_version=None, minimum_version=None):
super(PythonModuleRequirement, self).__init__('python-module')
self.python_version = python_version
self.minimum_version = minimum_version

View file

@ -16,6 +16,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
import logging
import os
import posixpath
from ..debian.apt import AptManager