Add ability to pin different dependencies for each python version

This commit is contained in:
Joe Rickerby
2020-02-02 17:30:27 +00:00
parent 076987cb7e
commit b9607ffae7
8 changed files with 94 additions and 24 deletions
+25
View File
@@ -83,4 +83,29 @@ def download(url, dest):
response.close()
class DependencyConstraints(object):
def __init__(self, base_file_path):
assert os.path.exists(base_file_path)
self.base_file_path = base_file_path
@classmethod
def with_defaults(cls):
return cls(
base_file_path=os.path.join(os.path.dirname(__file__), 'resources', 'constraints.txt')
)
def get_for_python_version(self, version):
version_parts = version.split('.')
# try to find a version-specific dependency file e.g. if
# ./constraints.txt is the base, look for ./constraints-python27.txt
base, ext = os.path.splitext(self.base_file_path)
specific = base + '-{}{}'.format(version_parts[0], version_parts[1])
specific_file_path = specific + ext
if os.path.exists(specific_file_path):
return specific_file_path
else:
return self.base_file_path
get_pip_script = os.path.abspath(os.path.join(os.path.dirname(__file__), 'resources', 'get-pip.py'))