diff --git a/README.rst b/README.rst
index ed34f92..b95f329 100644
--- a/README.rst
+++ b/README.rst
@@ -67,8 +67,8 @@ To use ``tasker``:
    # An image to download, extract and create a chroot jail in.
    image_url = 'http://example.com/image.tar'
 
-   # The image will be downloaded and extracted into the parent.
-   parent = pathlib.Path(os.getcwd())
+   # The image will be downloaded and extracted into the download_path.
+   download_path = pathlib.Path(os.getcwd())
 
    # See ``args`` at
    # https://docs.python.org/2/library/subprocess.html#subprocess.Popen
@@ -77,7 +77,7 @@ To use ``tasker``:
    task = Task(
       image_url=image_url,
       args=args,
-      parent=parent,
+      download_path=download_path,
    )
 
    pid = task.process.pid
diff --git a/cli/cli.py b/cli/cli.py
index 4171093..c3e9b51 100644
--- a/cli/cli.py
+++ b/cli/cli.py
@@ -28,6 +28,6 @@ def create(image_url, args):
     task = Task(
         image_url=image_url,
         args=args.split(),
-        parent=pathlib.Path(os.getcwd()),
+        download_path=pathlib.Path(os.getcwd()),
     )
     print(task.process.pid)
diff --git a/tasker/tasker.py b/tasker/tasker.py
index b1c4588..3ae608f 100644
--- a/tasker/tasker.py
+++ b/tasker/tasker.py
@@ -12,14 +12,14 @@ import uuid
 import pathlib
 
 
-def _create_filesystem_dir(image_url, parent):
+def _create_filesystem_dir(image_url, download_path):
     """
-    Download a ``.tar`` file, extract it into ``parent`` and delete the
+    Download a ``.tar`` file, extract it into ``download_path`` and delete the
     ``.tar`` file.
 
     :param str image_url: The url of a ``.tar`` file.
-    :param pathlib.Path parent: The parent to extract the downloaded image
-        into.
+    :param pathlib.Path download_path: The parent to extract the downloaded
+        image into.
 
     :rtype: pathlib.Path
     :returns: The path to the extracted image.
@@ -27,12 +27,12 @@ def _create_filesystem_dir(image_url, parent):
     image = urllib.request.urlopen(image_url)
     # Use ``image.url`` below instead of image_url in case of a redirect.
     image_path = pathlib.Path(urllib.parse.urlparse(image.url).path)
-    tar_file = parent.joinpath(image_path.name)
+    tar_file = download_path.joinpath(image_path.name)
     with open(str(tar_file), 'wb') as tf:
         tf.write(image.read())
 
     unique_id = uuid.uuid4().hex
-    filesystem_path = parent.joinpath(image_path.stem + unique_id)
+    filesystem_path = download_path.joinpath(image_path.stem + unique_id)
     with tarfile.open(str(tar_file)) as tf:
         tf.extractall(str(filesystem_path))
 
@@ -70,14 +70,14 @@ class Task(object):
     A process in a chroot jail.
     """
 
-    def __init__(self, image_url, args, parent):
+    def __init__(self, image_url, args, download_path):
         """
         Create a new task.
 
         """
         filesystem = _create_filesystem_dir(
             image_url=image_url,
-            parent=parent,
+            download_path=download_path,
         )
         self.process = _run_chroot_process(
             filesystem=filesystem,

Remove unused stdio options
diff --git a/tasker/tests/test_tasker.py b/tasker/tests/test_tasker.py
index 20cf016..90fb351 100644
--- a/tasker/tests/test_tasker.py
+++ b/tasker/tests/test_tasker.py
@@ -38,14 +38,14 @@ class TestCreateFilestystemDir(object):
     def test_filesystem_dir_created(self, tmpdir):
         """
         The given ``.tar`` file is downloaded and extracted to the given
-        parent.
+        download path.
         """
         image_url = self._create_tarfile(tmpdir=tmpdir.mkdir('server'))
 
         client = pathlib.Path(tmpdir.mkdir('client').strpath)
         extracted_filesystem = _create_filesystem_dir(
             image_url=image_url,
-            parent=client,
+            download_path=client,
         )
 
         assert extracted_filesystem.parent == client
@@ -60,12 +60,12 @@ class TestCreateFilestystemDir(object):
         client = pathlib.Path(tmpdir.mkdir('client').strpath)
         extracted_filesystem_1 = _create_filesystem_dir(
             image_url=image_url,
-            parent=client,
+            download_path=client,
         )
 
         extracted_filesystem_2 = _create_filesystem_dir(
             image_url=image_url,
-            parent=client,
+            download_path=client,
         )
 
         assert extracted_filesystem_1 != extracted_filesystem_2
@@ -79,7 +79,7 @@ class TestCreateFilestystemDir(object):
         client = pathlib.Path(tmpdir.mkdir('client').strpath)
         extracted_filesystem = _create_filesystem_dir(
             image_url=image_url,
-            parent=client,
+            download_path=client,
         )
 
         client_children = [item for item in client.iterdir()]
@@ -98,7 +98,7 @@ class TestRunChrootProcess(object):
         """
         filesystem = _create_filesystem_dir(
             image_url=ROOTFS_URI,
-            parent=pathlib.Path(tmpdir.strpath),
+            download_path=pathlib.Path(tmpdir.strpath),
         )
 
         _run_chroot_process(
@@ -118,7 +118,7 @@ class TestRunChrootProcess(object):
         """
         filesystem = _create_filesystem_dir(
             image_url=ROOTFS_URI,
-            parent=pathlib.Path(tmpdir.strpath),
+            download_path=pathlib.Path(tmpdir.strpath),
         )
 
         old_pids = psutil.pids()
@@ -135,7 +135,7 @@ class TestRunChrootProcess(object):
         """
         filesystem = _create_filesystem_dir(
             image_url=ROOTFS_URI,
-            parent=pathlib.Path(tmpdir.strpath),
+            download_path=pathlib.Path(tmpdir.strpath),
         )
 
         process = _run_chroot_process(
@@ -156,7 +156,9 @@ class TestTask(object):
         A task can be created which starts a new process running a given
         command.
         """
-        args = ['echo', '1']
-        parent = pathlib.Path(tmpdir.strpath)
-        task = Task(image_url=ROOTFS_URI, args=args, parent=parent)
+        task = Task(
+            image_url=ROOTFS_URI,
+            args=['echo', '1'],
+            download_path=pathlib.Path(tmpdir.strpath),
+        )
         assert isinstance(task.process.pid, int)

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest flake8
apt-get update apt-get install -y gcc
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi==2025.1.31
charset-normalizer==3.4.1
-e git+https://github.com/adamtheturtle/chroot_tasker.git@7b0b5a74595f65c1b615da9365dea300435181b7#egg=Chroot_Tasker
click==6.6
coverage==7.8.0
coveralls==4.0.1
docopt==0.6.2
exceptiongroup==1.2.2
flake8==7.2.0
idna==3.10
iniconfig==2.1.0
mccabe==0.7.0
packaging==24.2
pluggy==1.5.0
psutil==4.1.0
pycodestyle==2.13.0
pyflakes==3.3.2
pytest==8.3.5
pytest-cov==6.0.0
requests==2.32.3
tomli==2.2.1
urllib3==2.3.0

name: chroot_tasker
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - click==6.6
      - coverage==7.8.0
      - coveralls==4.0.1
      - docopt==0.6.2
      - exceptiongroup==1.2.2
      - flake8==7.2.0
      - idna==3.10
      - iniconfig==2.1.0
      - mccabe==0.7.0
      - packaging==24.2
      - pluggy==1.5.0
      - psutil==4.1.0
      - pycodestyle==2.13.0
      - pyflakes==3.3.2
      - pytest==8.3.5
      - pytest-cov==6.0.0
      - requests==2.32.3
      - tomli==2.2.1
      - urllib3==2.3.0
prefix: /opt/conda/envs/chroot_tasker

tasker/tests/test_tasker.py::TestCreateFilestystemDir::test_filesystem_dir_created tasker/tests/test_tasker.py::TestCreateFilestystemDir::test_multiple_filesystems tasker/tests/test_tasker.py::TestCreateFilestystemDir::test_image_removed tasker/tests/test_tasker.py::TestRunChrootProcess::test_run_chroot_process tasker/tests/test_tasker.py::TestRunChrootProcess::test_process_returned tasker/tests/test_tasker.py::TestRunChrootProcess::test_default_io tasker/tests/test_tasker.py::TestTask::test_create_task
README.rst cli/cli.py tasker/tasker.py
README.rst cli/cli.py tasker/tasker.py