Use pyfastcopy for non-Windows systems using Python < 3.8

This commit is contained in:
rxxg
2020-01-14 09:32:09 +01:00
parent 811fc5317c
commit 674541f922
2 changed files with 16 additions and 4 deletions
+15 -4
View File
@@ -1,7 +1,7 @@
import errno
import logging
import os
import speedcopy
import platform
from dvc.compat import fspath
from dvc.exceptions import DvcException
@@ -18,7 +18,20 @@ class System(object):
@staticmethod
def copy(src, dest):
src, dest = fspath(src), fspath(dest)
return speedcopy.copyfile(src, dest)
system = platform.system()
if system == "Windows":
import speedcopy
return speedcopy.copyfile(src, dest)
else:
import shutil
import sys
if sys.version_info < (3, 8):
# Importing the module monkey-patches shutil.copyfile
import pyfastcopy # noqa: F401
return shutil.copyfile(src, dest)
@staticmethod
def hardlink(source, link_name):
@@ -90,8 +103,6 @@ class System(object):
@staticmethod
def reflink(source, link_name):
import platform
source, link_name = fspath(source), fspath(link_name)
system = platform.system()
+1
View File
@@ -76,6 +76,7 @@ install_requires = [
"pywin32>=225; sys_platform == 'win32'",
"networkx>=2.1,<2.4",
"speedcopy @ git+https://github.com/rxxg/speedcopy@5",
"pyfastcopy>=1.0.3",
]