summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBernat Gabor <bgabor8@bloomberg.net>2020-01-10 12:47:11 +0000
committerBernat Gabor <bgabor8@bloomberg.net>2020-01-10 15:38:40 +0000
commit96013a84ab32c4de13e2e2b98f354ddb5962d9cf (patch)
tree3042291fc862baf4ece8556c8778b3f92c50aaa3 /src
parent80673f009f4d152e89aba2067a0fdc7d7c105787 (diff)
downloadvirtualenv-96013a84ab32c4de13e2e2b98f354ddb5962d9cf.tar.gz
fix Windows
Diffstat (limited to 'src')
-rw-r--r--src/virtualenv/activation/__init__.py14
-rw-r--r--src/virtualenv/activation/batch/__init__.py7
-rw-r--r--src/virtualenv/activation/via_template.py11
-rw-r--r--src/virtualenv/interpreters/create/venv.py12
4 files changed, 28 insertions, 16 deletions
diff --git a/src/virtualenv/activation/__init__.py b/src/virtualenv/activation/__init__.py
index ae6d40d..fa2f0b4 100644
--- a/src/virtualenv/activation/__init__.py
+++ b/src/virtualenv/activation/__init__.py
@@ -9,11 +9,11 @@ from .python import PythonActivator
from .xonsh import XonshActivator
__all__ = [
- BashActivator,
- PowerShellActivator,
- XonshActivator,
- CShellActivator,
- PythonActivator,
- BatchActivator,
- FishActivator,
+ "BashActivator",
+ "PowerShellActivator",
+ "XonshActivator",
+ "CShellActivator",
+ "PythonActivator",
+ "BatchActivator",
+ "FishActivator",
]
diff --git a/src/virtualenv/activation/batch/__init__.py b/src/virtualenv/activation/batch/__init__.py
index 89b03e4..977dd38 100644
--- a/src/virtualenv/activation/batch/__init__.py
+++ b/src/virtualenv/activation/batch/__init__.py
@@ -1,5 +1,7 @@
from __future__ import absolute_import, unicode_literals
+import os
+
from virtualenv.util.path import Path
from ..via_template import ViaTemplateActivator
@@ -14,3 +16,8 @@ class BatchActivator(ViaTemplateActivator):
yield Path("activate.bat")
yield Path("deactivate.bat")
yield Path("pydoc.bat")
+
+ def instantiate_template(self, replacements, template):
+ # ensure the text has all newlines as \r\n - required by batch
+ base = super(BatchActivator, self).instantiate_template(replacements, template)
+ return base.replace(os.linesep, "\n").replace("\n", os.linesep)
diff --git a/src/virtualenv/activation/via_template.py b/src/virtualenv/activation/via_template.py
index d8c2956..f707897 100644
--- a/src/virtualenv/activation/via_template.py
+++ b/src/virtualenv/activation/via_template.py
@@ -37,7 +37,12 @@ class ViaTemplateActivator(Activator):
def _generate(self, replacements, templates, to_folder):
for template in templates:
- text = read_text(self.__module__, str(template), encoding="utf-8", errors="ignore")
- for start, end in replacements.items():
- text = text.replace(start, end)
+ text = self.instantiate_template(replacements, template)
(to_folder / template).write_text(text, encoding="utf-8")
+
+ def instantiate_template(self, replacements, template):
+ # read text and do replacements
+ text = read_text(self.__module__, str(template), encoding="utf-8", errors="strict")
+ for start, end in replacements.items():
+ text = text.replace(start, end)
+ return text
diff --git a/src/virtualenv/interpreters/create/venv.py b/src/virtualenv/interpreters/create/venv.py
index d378b6a..b0b69b9 100644
--- a/src/virtualenv/interpreters/create/venv.py
+++ b/src/virtualenv/interpreters/create/venv.py
@@ -70,27 +70,27 @@ class Venv(ViaGlobalRefApi):
super(Venv, self).set_pyenv_cfg()
self.pyenv_cfg.update(venv_content)
- def _delegate_to_builtin_way(self, key):
+ def _proxy_builtin_way(self, key):
if self.builtin_way is None:
return None
return getattr(self.builtin_way, key)
@property
def exe(self):
- return self._delegate_to_builtin_way("exe")
+ return self._proxy_builtin_way("exe")
@property
def site_packages(self):
- return self._delegate_to_builtin_way("site_packages")
+ return self._proxy_builtin_way("site_packages")
@property
def bin_dir(self):
- return self._delegate_to_builtin_way("bin_dir")
+ return self._proxy_builtin_way("bin_dir")
@property
def bin_name(self):
- return self._delegate_to_builtin_way("bin_name")
+ return self._proxy_builtin_way("bin_name")
@property
def lib_dir(self):
- return self._delegate_to_builtin_way("lib_dir")
+ return self._proxy_builtin_way("lib_dir")