Skip to content

Commit 1cb5877

Browse files
authored
Merge pull request Xilinx#1268 from eki-project/fix/copytree
Fix: Replace distutil copy_tree with shutil
2 parents 88e207e + 6bd073a commit 1cb5877

File tree

4 files changed

+12
-14
lines changed

4 files changed

+12
-14
lines changed

notebooks/end2end_example/bnn-pynq/cnv_end2end_example.ipynb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -484,8 +484,7 @@
484484
"metadata": {},
485485
"outputs": [],
486486
"source": [
487-
"from shutil import copy\n",
488-
"from distutils.dir_util import copy_tree\n",
487+
"from shutil import copy, copytree\n",
489488
"\n",
490489
"# create directory for deployment files\n",
491490
"deployment_dir = make_build_dir(prefix=\"pynq_deployment_\")\n",
@@ -503,7 +502,7 @@
503502
"\n",
504503
"# driver.py and python libraries\n",
505504
"pynq_driver_dir = model.get_metadata_prop(\"pynq_driver_dir\")\n",
506-
"copy_tree(pynq_driver_dir, deployment_dir)"
505+
"copytree(pynq_driver_dir, deployment_dir, dirs_exist_ok=True)"
507506
]
508507
},
509508
{

notebooks/end2end_example/bnn-pynq/tfc_end2end_example.ipynb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -895,8 +895,7 @@
895895
"metadata": {},
896896
"outputs": [],
897897
"source": [
898-
"from shutil import copy\n",
899-
"from distutils.dir_util import copy_tree\n",
898+
"from shutil import copy, copytree\n",
900899
"\n",
901900
"# create directory for deployment files\n",
902901
"deployment_dir = make_build_dir(prefix=\"pynq_deployment_\")\n",
@@ -914,7 +913,7 @@
914913
"\n",
915914
"# driver.py and python libraries\n",
916915
"pynq_driver_dir = model.get_metadata_prop(\"pynq_driver_dir\")\n",
917-
"copy_tree(pynq_driver_dir, deployment_dir)"
916+
"copytree(pynq_driver_dir, deployment_dir, dirs_exist_ok=True)"
918917
]
919918
},
920919
{

src/finn/builder/build_dataflow_steps.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import shutil
3434
import warnings
3535
from copy import deepcopy
36-
from distutils.dir_util import copy_tree
3736
from functools import partial
3837
from qonnx.core.modelwrapper import ModelWrapper
3938
from qonnx.custom_op.registry import getCustomOp
@@ -656,7 +655,9 @@ def step_create_stitched_ip(model: ModelWrapper, cfg: DataflowBuildConfig):
656655
)
657656
)
658657
# TODO copy all ip sources into output dir? as zip?
659-
copy_tree(model.get_metadata_prop("vivado_stitch_proj"), stitched_ip_dir)
658+
shutil.copytree(
659+
model.get_metadata_prop("vivado_stitch_proj"), stitched_ip_dir, dirs_exist_ok=True
660+
)
660661
print("Vivado stitched IP written into " + stitched_ip_dir)
661662
if VerificationStepType.STITCHED_IP_RTLSIM in cfg._resolve_verification_steps():
662663
# prepare ip-stitched rtlsim
@@ -761,7 +762,7 @@ def step_make_pynq_driver(model: ModelWrapper, cfg: DataflowBuildConfig):
761762
if DataflowOutputType.PYNQ_DRIVER in cfg.generate_outputs:
762763
driver_dir = cfg.output_dir + "/driver"
763764
model = model.transform(MakePYNQDriver(cfg._resolve_driver_platform()))
764-
copy_tree(model.get_metadata_prop("pynq_driver_dir"), driver_dir)
765+
shutil.copytree(model.get_metadata_prop("pynq_driver_dir"), driver_dir, dirs_exist_ok=True)
765766
print("PYNQ Python driver written into " + driver_dir)
766767
return model
767768

@@ -862,8 +863,8 @@ def step_deployment_package(model: ModelWrapper, cfg: DataflowBuildConfig):
862863
bitfile_dir = cfg.output_dir + "/bitfile"
863864
driver_dir = cfg.output_dir + "/driver"
864865
os.makedirs(deploy_dir, exist_ok=True)
865-
copy_tree(bitfile_dir, deploy_dir + "/bitfile")
866-
copy_tree(driver_dir, deploy_dir + "/driver")
866+
shutil.copytree(bitfile_dir, deploy_dir + "/bitfile", dirs_exist_ok=True)
867+
shutil.copytree(driver_dir, deploy_dir + "/driver", dirs_exist_ok=True)
867868
return model
868869

869870

tests/end2end/test_end2end_bnn_pynq.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import warnings
4141
from brevitas.export import export_qonnx
4242
from dataset_loading import cifar, mnist
43-
from distutils.dir_util import copy_tree
4443
from qonnx.core.datatype import DataType
4544
from qonnx.core.modelwrapper import ModelWrapper
4645
from qonnx.custom_op.registry import getCustomOp
@@ -59,7 +58,7 @@
5958
from qonnx.transformation.lower_convs_to_matmul import LowerConvsToMatMul
6059
from qonnx.transformation.merge_onnx_models import MergeONNXModels
6160
from qonnx.util.cleanup import cleanup as qonnx_cleanup
62-
from shutil import copy
61+
from shutil import copy, copytree
6362

6463
import finn.transformation.fpgadataflow.convert_to_hw_layers as to_hw
6564
import finn.transformation.streamline.absorb as absorb
@@ -357,7 +356,7 @@ def deploy_based_on_board(model, model_title, topology, wbits, abits, board):
357356

358357
# driver.py and python libraries
359358
pynq_driver_dir = model.get_metadata_prop("pynq_driver_dir")
360-
copy_tree(pynq_driver_dir, deployment_dir)
359+
copytree(pynq_driver_dir, deployment_dir, dirs_exist_ok=True)
361360
model.set_metadata_prop("pynq_deploy_dir", deployment_dir)
362361

363362

0 commit comments

Comments
 (0)