Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
fslpy
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Analyze
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
FSL
fslpy
Commits
0c937a12
Commit
0c937a12
authored
6 years ago
by
Paul McCarthy
Browse files
Options
Downloads
Patches
Plain Diff
ENH: tempdir now has an override option
parent
9bc5629f
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
fsl/utils/tempdir.py
+15
-7
15 additions, 7 deletions
fsl/utils/tempdir.py
with
15 additions
and
7 deletions
fsl/utils/tempdir.py
+
15
−
7
View file @
0c937a12
...
@@ -21,7 +21,7 @@ import contextlib
...
@@ -21,7 +21,7 @@ import contextlib
@contextlib.contextmanager
@contextlib.contextmanager
def
tempdir
(
root
=
None
,
changeto
=
True
):
def
tempdir
(
root
=
None
,
changeto
=
True
,
override
=
None
):
"""
Returns a context manager which creates and returns a temporary
"""
Returns a context manager which creates and returns a temporary
directory, and then deletes it on exit.
directory, and then deletes it on exit.
...
@@ -32,17 +32,25 @@ def tempdir(root=None, changeto=True):
...
@@ -32,17 +32,25 @@ def tempdir(root=None, changeto=True):
:arg changeto: If ``True`` (the default), current working directory is set
:arg changeto: If ``True`` (the default), current working directory is set
to the new temporary directory before yielding, and restored
to the new temporary directory before yielding, and restored
afterwards.
afterwards.
:arg override: Don
'
t create a temporary directory, but use this one
instead. This allows ``tempdir`` to be used as a context
manager when a temporary directory already exists.
"""
"""
testdir
=
tempfile
.
mkdtemp
(
dir
=
root
)
if
override
is
None
:
prevdir
=
os
.
getcwd
()
testdir
=
tempfile
.
mkdtemp
(
dir
=
root
)
try
:
prevdir
=
os
.
getcwd
()
else
:
testdir
=
override
try
:
if
changeto
:
if
changeto
:
os
.
chdir
(
testdir
)
os
.
chdir
(
testdir
)
yield
testdir
yield
testdir
finally
:
finally
:
if
changeto
:
if
override
is
None
:
os
.
chdir
(
prevdir
)
if
changeto
:
shutil
.
rmtree
(
testdir
)
os
.
chdir
(
prevdir
)
shutil
.
rmtree
(
testdir
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment