Windows fix and API
This commit is contained in:
@@ -13,7 +13,7 @@ _EXTRA_PACKAGE_NAMES = {'wayland protocols'}
|
||||
class BlenderDependency:
|
||||
def __init__(self, blender: BlenderVersion):
|
||||
self._blender_version = blender
|
||||
self._url = rf'https://projects.blender.org/blender/blender/raw/tag/v{self._blender_version.tag_name()}/build_files/build_environment/install_linux_packages.py'
|
||||
self._url = rf'https://projects.blender.org/api/v1/repos/blender/blender/raw/build_files/build_environment/install_linux_packages.py?ref=v{self._blender_version.tag_name()}'
|
||||
self.module = self._get_source_file()
|
||||
|
||||
self.packages = list()
|
||||
@@ -25,6 +25,7 @@ class BlenderDependency:
|
||||
def _get_source_file(self):
|
||||
"""Download the Blender dependency script and import it at runtime."""
|
||||
r = requests.get(self._url)
|
||||
r.raise_for_status()
|
||||
|
||||
with tempfile.NamedTemporaryFile(mode='wb', suffix='.py', delete=False) as t:
|
||||
t.write(r.content)
|
||||
|
||||
+5
-5
@@ -23,8 +23,7 @@ def _clean_log_line(text: str) -> str:
|
||||
class BlenderDocker:
|
||||
def __init__(self, blender: BlenderVersion, severity: int = logging.WARNING):
|
||||
self._blender_version = blender
|
||||
# Todo get a user config
|
||||
self._docker_client = docker.DockerClient(base_url=f'unix:///var/run/docker.sock')
|
||||
self._docker_client = docker.from_env()
|
||||
self.login()
|
||||
self._docker_image = None
|
||||
self._repository = 'stilobique/blender'
|
||||
@@ -52,9 +51,10 @@ class BlenderDocker:
|
||||
release, so the build stage's base image can match it instead of drifting with
|
||||
whatever a floating `python` tag currently resolves to.
|
||||
"""
|
||||
url = (f'https://projects.blender.org/blender/blender/raw/tag/'
|
||||
f'v{self._blender_version.tag_name()}/build_files/cmake/Modules/FindPythonLibsUnix.cmake')
|
||||
url = (f'https://projects.blender.org/api/v1/repos/blender/blender/raw/'
|
||||
f'build_files/cmake/Modules/FindPythonLibsUnix.cmake?ref=v{self._blender_version.tag_name()}')
|
||||
r = requests.get(url)
|
||||
r.raise_for_status()
|
||||
match = re.search(r'set\(_PYTHON_VERSION_SUPPORTED\s+([0-9]+\.[0-9]+)\)', r.text)
|
||||
if not match:
|
||||
print(f'Could not determine required Python version from {url}')
|
||||
@@ -75,7 +75,7 @@ class BlenderDocker:
|
||||
logger.propagate = False
|
||||
|
||||
if not logger.handlers:
|
||||
handler = logging.FileHandler(log_dir / f'{name}.log')
|
||||
handler = logging.FileHandler(log_dir / f'{name}.log', encoding='utf-8')
|
||||
handler.setFormatter(logging.Formatter(
|
||||
'%(asctime)s | [%(levelname)s] %(message)s'
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user