We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
5.1.2 regression: lost dependencies using same zip file with different subdirectories
In `pip-tools` 5.1.2 and later, when I provide two copies of the same zip file URL with different subdirectories, the dependencies of the first are lost:

```
https://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip==0.7.0&subdirectory=zulip
https://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip-bots==0.7.0&subdirectory=zulip_bots
```

`git bisect` shows that this regression was introduced in commit c0b33e7f2224758524001e755cc338965ca0b2c0 (#1132).

Cc @richafrank

#### Environment Versions

1. OS Type: Ubuntu 18.04
1. Python version: 3.6.9
1. pip version: 20.1.1
1. pip-tools version: 5.2.0

#### Steps to replicate

```sh
cat > z.in <<EOF
https://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip==0.7.0&subdirectory=zulip
https://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip-bots==0.7.0&subdirectory=zulip_bots
EOF
pip-compile z.in
```

#### Expected result

```
#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile z.in
#
beautifulsoup4==4.9.1     # via zulip-bots
certifi==2020.4.5.1       # via requests
cffi==1.14.0              # via cryptography
chardet==3.0.4            # via requests
cryptography==2.9.2       # via pyopenssl, requests
distro==1.5.0             # via zulip
html2text==2020.1.16      # via zulip-bots
idna==2.9                 # via requests
lxml==4.5.1               # via zulip-bots
matrix-client==0.3.2      # via zulip
pycparser==2.20           # via cffi
pyopenssl==19.1.0         # via requests
requests[security]==2.23.0  # via matrix-client, zulip
six==1.15.0               # via cryptography, pyopenssl, zulip
soupsieve==2.0.1          # via beautifulsoup4
urllib3==1.25.9           # via requests
https://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip-bots==0.7.0&subdirectory=zulip_bots  # via -r z.in
https://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip==0.7.0&subdirectory=zulip  # via -r z.in, zulip-bots

# The following packages are considered to be unsafe in a requirements file:
# pip
```

#### Actual result

```
#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile z.in
#
beautifulsoup4==4.9.1     # via zulip-bots
html2text==2020.1.16      # via zulip-bots
lxml==4.5.1               # via zulip-bots
soupsieve==2.0.1          # via beautifulsoup4
https://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip-bots==0.7.0&subdirectory=zulip_bots  # via -r z.in
https://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip==0.7.0&subdirectory=zulip  # via -r z.in, zulip-bots

# The following packages are considered to be unsafe in a requirements file:
# pip
```


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `piptools/repositories/base.py`
Content:
```
1 # coding: utf-8
2 from __future__ import absolute_import, division, print_function, unicode_literals
3 
4 from abc import ABCMeta, abstractmethod
5 from contextlib import contextmanager
6 
7 from six import add_metaclass
8 
9 
10 @add_metaclass(ABCMeta)
11 class BaseRepository(object):
12     def clear_caches(self):
13         """Should clear any caches used by the implementation."""
14 
15     def freshen_build_caches(self):
16         """Should start with fresh build/source caches."""
17 
18     @abstractmethod
19     def find_best_match(self, ireq):
20         """
21         Return a Version object that indicates the best match for the given
22         InstallRequirement according to the repository.
23         """
24 
25     @abstractmethod
26     def get_dependencies(self, ireq):
27         """
28         Given a pinned, URL, or editable InstallRequirement, returns a set of
29         dependencies (also InstallRequirements, but not necessarily pinned).
30         They indicate the secondary dependencies for the given requirement.
31         """
32 
33     @abstractmethod
34     def get_hashes(self, ireq):
35         """
36         Given a pinned InstallRequire, returns a set of hashes that represent
37         all of the files for a given requirement. It is not acceptable for an
38         editable or unpinned requirement to be passed to this function.
39         """
40 
41     @abstractmethod
42     @contextmanager
43     def allow_all_wheels(self):
44         """
45         Monkey patches pip.Wheel to allow wheels from all platforms and Python versions.
46         """
47 
48     def copy_ireq_dependencies(self, source, dest):
49         """
50         Notifies the repository that `dest` is a copy of `source`, and so it
51         has the same dependencies. Otherwise, once we prepare an ireq to assign
52         it its name, we would lose track of those dependencies on combining
53         that ireq with others.
54         """
55
```

Path: `piptools/repositories/local.py`
Content:
```
1 # coding: utf-8
2 from __future__ import absolute_import, division, print_function, unicode_literals
3 
4 from contextlib import contextmanager
5 
6 from pip._internal.utils.hashes import FAVORITE_HASH
7 
8 from .._compat import PIP_VERSION
9 from .base import BaseRepository
10 
11 from piptools.utils import as_tuple, key_from_ireq, make_install_requirement
12 
13 
14 def ireq_satisfied_by_existing_pin(ireq, existing_pin):
15     """
16     Return True if the given InstallationRequirement is satisfied by the
17     previously encountered version pin.
18     """
19     version = next(iter(existing_pin.req.specifier)).version
20     return ireq.req.specifier.contains(
21         version, prereleases=existing_pin.req.specifier.prereleases
22     )
23 
24 
25 class LocalRequirementsRepository(BaseRepository):
26     """
27     The LocalRequirementsRepository proxied the _real_ repository by first
28     checking if a requirement can be satisfied by existing pins (i.e. the
29     result of a previous compile step).
30 
31     In effect, if a requirement can be satisfied with a version pinned in the
32     requirements file, we prefer that version over the best match found in
33     PyPI.  This keeps updates to the requirements.txt down to a minimum.
34     """
35 
36     def __init__(self, existing_pins, proxied_repository):
37         self.repository = proxied_repository
38         self.existing_pins = existing_pins
39 
40     @property
41     def options(self):
42         return self.repository.options
43 
44     @property
45     def finder(self):
46         return self.repository.finder
47 
48     @property
49     def session(self):
50         return self.repository.session
51 
52     @property
53     def DEFAULT_INDEX_URL(self):
54         return self.repository.DEFAULT_INDEX_URL
55 
56     def clear_caches(self):
57         self.repository.clear_caches()
58 
59     def freshen_build_caches(self):
60         self.repository.freshen_build_caches()
61 
62     def find_best_match(self, ireq, prereleases=None):
63         key = key_from_ireq(ireq)
64         existing_pin = self.existing_pins.get(key)
65         if existing_pin and ireq_satisfied_by_existing_pin(ireq, existing_pin):
66             project, version, _ = as_tuple(existing_pin)
67             return make_install_requirement(
68                 project, version, ireq.extras, constraint=ireq.constraint
69             )
70         else:
71             return self.repository.find_best_match(ireq, prereleases)
72 
73     def get_dependencies(self, ireq):
74         return self.repository.get_dependencies(ireq)
75 
76     def get_hashes(self, ireq):
77         key = key_from_ireq(ireq)
78         existing_pin = self.existing_pins.get(key)
79         if existing_pin and ireq_satisfied_by_existing_pin(ireq, existing_pin):
80             if PIP_VERSION[:2] <= (20, 0):
81                 hashes = existing_pin.options.get("hashes", {})
82             else:
83                 hashes = existing_pin.hash_options
84             hexdigests = hashes.get(FAVORITE_HASH)
85             if hexdigests:
86                 return {
87                     ":".join([FAVORITE_HASH, hexdigest]) for hexdigest in hexdigests
88                 }
89         return self.repository.get_hashes(ireq)
90 
91     @contextmanager
92     def allow_all_wheels(self):
93         with self.repository.allow_all_wheels():
94             yield
95
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/piptools/repositories/base.py b/piptools/repositories/base.py
--- a/piptools/repositories/base.py
+++ b/piptools/repositories/base.py
@@ -45,6 +45,7 @@
         Monkey patches pip.Wheel to allow wheels from all platforms and Python versions.
         """
 
+    @abstractmethod
     def copy_ireq_dependencies(self, source, dest):
         """
         Notifies the repository that `dest` is a copy of `source`, and so it
diff --git a/piptools/repositories/local.py b/piptools/repositories/local.py
--- a/piptools/repositories/local.py
+++ b/piptools/repositories/local.py
@@ -92,3 +92,6 @@
     def allow_all_wheels(self):
         with self.repository.allow_all_wheels():
             yield
+
+    def copy_ireq_dependencies(self, source, dest):
+        self.repository.copy_ireq_dependencies(source, dest)

{"golden_diff": "diff --git a/piptools/repositories/base.py b/piptools/repositories/base.py\n--- a/piptools/repositories/base.py\n+++ b/piptools/repositories/base.py\n@@ -45,6 +45,7 @@\n         Monkey patches pip.Wheel to allow wheels from all platforms and Python versions.\n         \"\"\"\n \n+    @abstractmethod\n     def copy_ireq_dependencies(self, source, dest):\n         \"\"\"\n         Notifies the repository that `dest` is a copy of `source`, and so it\ndiff --git a/piptools/repositories/local.py b/piptools/repositories/local.py\n--- a/piptools/repositories/local.py\n+++ b/piptools/repositories/local.py\n@@ -92,3 +92,6 @@\n     def allow_all_wheels(self):\n         with self.repository.allow_all_wheels():\n             yield\n+\n+    def copy_ireq_dependencies(self, source, dest):\n+        self.repository.copy_ireq_dependencies(source, dest)\n", "issue": "5.1.2 regression: lost dependencies using same zip file with different subdirectories\nIn `pip-tools` 5.1.2 and later, when I provide two copies of the same zip file URL with different subdirectories, the dependencies of the first are lost:\r\n\r\n```\r\nhttps://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip==0.7.0&subdirectory=zulip\r\nhttps://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip-bots==0.7.0&subdirectory=zulip_bots\r\n```\r\n\r\n`git bisect` shows that this regression was introduced in commit c0b33e7f2224758524001e755cc338965ca0b2c0 (#1132).\r\n\r\nCc @richafrank\r\n\r\n#### Environment Versions\r\n\r\n1. OS Type: Ubuntu 18.04\r\n1. Python version: 3.6.9\r\n1. pip version: 20.1.1\r\n1. pip-tools version: 5.2.0\r\n\r\n#### Steps to replicate\r\n\r\n```sh\r\ncat > z.in <<EOF\r\nhttps://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip==0.7.0&subdirectory=zulip\r\nhttps://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip-bots==0.7.0&subdirectory=zulip_bots\r\nEOF\r\npip-compile z.in\r\n```\r\n\r\n#### Expected result\r\n\r\n```\r\n#\r\n# This file is autogenerated by pip-compile\r\n# To update, run:\r\n#\r\n#    pip-compile z.in\r\n#\r\nbeautifulsoup4==4.9.1     # via zulip-bots\r\ncertifi==2020.4.5.1       # via requests\r\ncffi==1.14.0              # via cryptography\r\nchardet==3.0.4            # via requests\r\ncryptography==2.9.2       # via pyopenssl, requests\r\ndistro==1.5.0             # via zulip\r\nhtml2text==2020.1.16      # via zulip-bots\r\nidna==2.9                 # via requests\r\nlxml==4.5.1               # via zulip-bots\r\nmatrix-client==0.3.2      # via zulip\r\npycparser==2.20           # via cffi\r\npyopenssl==19.1.0         # via requests\r\nrequests[security]==2.23.0  # via matrix-client, zulip\r\nsix==1.15.0               # via cryptography, pyopenssl, zulip\r\nsoupsieve==2.0.1          # via beautifulsoup4\r\nurllib3==1.25.9           # via requests\r\nhttps://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip-bots==0.7.0&subdirectory=zulip_bots  # via -r z.in\r\nhttps://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip==0.7.0&subdirectory=zulip  # via -r z.in, zulip-bots\r\n\r\n# The following packages are considered to be unsafe in a requirements file:\r\n# pip\r\n```\r\n\r\n#### Actual result\r\n\r\n```\r\n#\r\n# This file is autogenerated by pip-compile\r\n# To update, run:\r\n#\r\n#    pip-compile z.in\r\n#\r\nbeautifulsoup4==4.9.1     # via zulip-bots\r\nhtml2text==2020.1.16      # via zulip-bots\r\nlxml==4.5.1               # via zulip-bots\r\nsoupsieve==2.0.1          # via beautifulsoup4\r\nhttps://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip-bots==0.7.0&subdirectory=zulip_bots  # via -r z.in\r\nhttps://github.com/zulip/python-zulip-api/archive/0.7.0.zip#egg=zulip==0.7.0&subdirectory=zulip  # via -r z.in, zulip-bots\r\n\r\n# The following packages are considered to be unsafe in a requirements file:\r\n# pip\r\n```\r\n\n", "before_files": [{"content": "# coding: utf-8\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\nfrom abc import ABCMeta, abstractmethod\nfrom contextlib import contextmanager\n\nfrom six import add_metaclass\n\n\n@add_metaclass(ABCMeta)\nclass BaseRepository(object):\n    def clear_caches(self):\n        \"\"\"Should clear any caches used by the implementation.\"\"\"\n\n    def freshen_build_caches(self):\n        \"\"\"Should start with fresh build/source caches.\"\"\"\n\n    @abstractmethod\n    def find_best_match(self, ireq):\n        \"\"\"\n        Return a Version object that indicates the best match for the given\n        InstallRequirement according to the repository.\n        \"\"\"\n\n    @abstractmethod\n    def get_dependencies(self, ireq):\n        \"\"\"\n        Given a pinned, URL, or editable InstallRequirement, returns a set of\n        dependencies (also InstallRequirements, but not necessarily pinned).\n        They indicate the secondary dependencies for the given requirement.\n        \"\"\"\n\n    @abstractmethod\n    def get_hashes(self, ireq):\n        \"\"\"\n        Given a pinned InstallRequire, returns a set of hashes that represent\n        all of the files for a given requirement. It is not acceptable for an\n        editable or unpinned requirement to be passed to this function.\n        \"\"\"\n\n    @abstractmethod\n    @contextmanager\n    def allow_all_wheels(self):\n        \"\"\"\n        Monkey patches pip.Wheel to allow wheels from all platforms and Python versions.\n        \"\"\"\n\n    def copy_ireq_dependencies(self, source, dest):\n        \"\"\"\n        Notifies the repository that `dest` is a copy of `source`, and so it\n        has the same dependencies. Otherwise, once we prepare an ireq to assign\n        it its name, we would lose track of those dependencies on combining\n        that ireq with others.\n        \"\"\"\n", "path": "piptools/repositories/base.py"}, {"content": "# coding: utf-8\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\nfrom contextlib import contextmanager\n\nfrom pip._internal.utils.hashes import FAVORITE_HASH\n\nfrom .._compat import PIP_VERSION\nfrom .base import BaseRepository\n\nfrom piptools.utils import as_tuple, key_from_ireq, make_install_requirement\n\n\ndef ireq_satisfied_by_existing_pin(ireq, existing_pin):\n    \"\"\"\n    Return True if the given InstallationRequirement is satisfied by the\n    previously encountered version pin.\n    \"\"\"\n    version = next(iter(existing_pin.req.specifier)).version\n    return ireq.req.specifier.contains(\n        version, prereleases=existing_pin.req.specifier.prereleases\n    )\n\n\nclass LocalRequirementsRepository(BaseRepository):\n    \"\"\"\n    The LocalRequirementsRepository proxied the _real_ repository by first\n    checking if a requirement can be satisfied by existing pins (i.e. the\n    result of a previous compile step).\n\n    In effect, if a requirement can be satisfied with a version pinned in the\n    requirements file, we prefer that version over the best match found in\n    PyPI.  This keeps updates to the requirements.txt down to a minimum.\n    \"\"\"\n\n    def __init__(self, existing_pins, proxied_repository):\n        self.repository = proxied_repository\n        self.existing_pins = existing_pins\n\n    @property\n    def options(self):\n        return self.repository.options\n\n    @property\n    def finder(self):\n        return self.repository.finder\n\n    @property\n    def session(self):\n        return self.repository.session\n\n    @property\n    def DEFAULT_INDEX_URL(self):\n        return self.repository.DEFAULT_INDEX_URL\n\n    def clear_caches(self):\n        self.repository.clear_caches()\n\n    def freshen_build_caches(self):\n        self.repository.freshen_build_caches()\n\n    def find_best_match(self, ireq, prereleases=None):\n        key = key_from_ireq(ireq)\n        existing_pin = self.existing_pins.get(key)\n        if existing_pin and ireq_satisfied_by_existing_pin(ireq, existing_pin):\n            project, version, _ = as_tuple(existing_pin)\n            return make_install_requirement(\n                project, version, ireq.extras, constraint=ireq.constraint\n            )\n        else:\n            return self.repository.find_best_match(ireq, prereleases)\n\n    def get_dependencies(self, ireq):\n        return self.repository.get_dependencies(ireq)\n\n    def get_hashes(self, ireq):\n        key = key_from_ireq(ireq)\n        existing_pin = self.existing_pins.get(key)\n        if existing_pin and ireq_satisfied_by_existing_pin(ireq, existing_pin):\n            if PIP_VERSION[:2] <= (20, 0):\n                hashes = existing_pin.options.get(\"hashes\", {})\n            else:\n                hashes = existing_pin.hash_options\n            hexdigests = hashes.get(FAVORITE_HASH)\n            if hexdigests:\n                return {\n                    \":\".join([FAVORITE_HASH, hexdigest]) for hexdigest in hexdigests\n                }\n        return self.repository.get_hashes(ireq)\n\n    @contextmanager\n    def allow_all_wheels(self):\n        with self.repository.allow_all_wheels():\n            yield\n", "path": "piptools/repositories/local.py"}], "after_files": [{"content": "# coding: utf-8\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\nfrom abc import ABCMeta, abstractmethod\nfrom contextlib import contextmanager\n\nfrom six import add_metaclass\n\n\n@add_metaclass(ABCMeta)\nclass BaseRepository(object):\n    def clear_caches(self):\n        \"\"\"Should clear any caches used by the implementation.\"\"\"\n\n    def freshen_build_caches(self):\n        \"\"\"Should start with fresh build/source caches.\"\"\"\n\n    @abstractmethod\n    def find_best_match(self, ireq):\n        \"\"\"\n        Return a Version object that indicates the best match for the given\n        InstallRequirement according to the repository.\n        \"\"\"\n\n    @abstractmethod\n    def get_dependencies(self, ireq):\n        \"\"\"\n        Given a pinned, URL, or editable InstallRequirement, returns a set of\n        dependencies (also InstallRequirements, but not necessarily pinned).\n        They indicate the secondary dependencies for the given requirement.\n        \"\"\"\n\n    @abstractmethod\n    def get_hashes(self, ireq):\n        \"\"\"\n        Given a pinned InstallRequire, returns a set of hashes that represent\n        all of the files for a given requirement. It is not acceptable for an\n        editable or unpinned requirement to be passed to this function.\n        \"\"\"\n\n    @abstractmethod\n    @contextmanager\n    def allow_all_wheels(self):\n        \"\"\"\n        Monkey patches pip.Wheel to allow wheels from all platforms and Python versions.\n        \"\"\"\n\n    @abstractmethod\n    def copy_ireq_dependencies(self, source, dest):\n        \"\"\"\n        Notifies the repository that `dest` is a copy of `source`, and so it\n        has the same dependencies. Otherwise, once we prepare an ireq to assign\n        it its name, we would lose track of those dependencies on combining\n        that ireq with others.\n        \"\"\"\n", "path": "piptools/repositories/base.py"}, {"content": "# coding: utf-8\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\nfrom contextlib import contextmanager\n\nfrom pip._internal.utils.hashes import FAVORITE_HASH\n\nfrom .._compat import PIP_VERSION\nfrom .base import BaseRepository\n\nfrom piptools.utils import as_tuple, key_from_ireq, make_install_requirement\n\n\ndef ireq_satisfied_by_existing_pin(ireq, existing_pin):\n    \"\"\"\n    Return True if the given InstallationRequirement is satisfied by the\n    previously encountered version pin.\n    \"\"\"\n    version = next(iter(existing_pin.req.specifier)).version\n    return ireq.req.specifier.contains(\n        version, prereleases=existing_pin.req.specifier.prereleases\n    )\n\n\nclass LocalRequirementsRepository(BaseRepository):\n    \"\"\"\n    The LocalRequirementsRepository proxied the _real_ repository by first\n    checking if a requirement can be satisfied by existing pins (i.e. the\n    result of a previous compile step).\n\n    In effect, if a requirement can be satisfied with a version pinned in the\n    requirements file, we prefer that version over the best match found in\n    PyPI.  This keeps updates to the requirements.txt down to a minimum.\n    \"\"\"\n\n    def __init__(self, existing_pins, proxied_repository):\n        self.repository = proxied_repository\n        self.existing_pins = existing_pins\n\n    @property\n    def options(self):\n        return self.repository.options\n\n    @property\n    def finder(self):\n        return self.repository.finder\n\n    @property\n    def session(self):\n        return self.repository.session\n\n    @property\n    def DEFAULT_INDEX_URL(self):\n        return self.repository.DEFAULT_INDEX_URL\n\n    def clear_caches(self):\n        self.repository.clear_caches()\n\n    def freshen_build_caches(self):\n        self.repository.freshen_build_caches()\n\n    def find_best_match(self, ireq, prereleases=None):\n        key = key_from_ireq(ireq)\n        existing_pin = self.existing_pins.get(key)\n        if existing_pin and ireq_satisfied_by_existing_pin(ireq, existing_pin):\n            project, version, _ = as_tuple(existing_pin)\n            return make_install_requirement(\n                project, version, ireq.extras, constraint=ireq.constraint\n            )\n        else:\n            return self.repository.find_best_match(ireq, prereleases)\n\n    def get_dependencies(self, ireq):\n        return self.repository.get_dependencies(ireq)\n\n    def get_hashes(self, ireq):\n        key = key_from_ireq(ireq)\n        existing_pin = self.existing_pins.get(key)\n        if existing_pin and ireq_satisfied_by_existing_pin(ireq, existing_pin):\n            if PIP_VERSION[:2] <= (20, 0):\n                hashes = existing_pin.options.get(\"hashes\", {})\n            else:\n                hashes = existing_pin.hash_options\n            hexdigests = hashes.get(FAVORITE_HASH)\n            if hexdigests:\n                return {\n                    \":\".join([FAVORITE_HASH, hexdigest]) for hexdigest in hexdigests\n                }\n        return self.repository.get_hashes(ireq)\n\n    @contextmanager\n    def allow_all_wheels(self):\n        with self.repository.allow_all_wheels():\n            yield\n\n    def copy_ireq_dependencies(self, source, dest):\n        self.repository.copy_ireq_dependencies(source, dest)\n", "path": "piptools/repositories/local.py"}]}