Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Poetry does not handle trailing slashes in Git urls #7326

Closed
4 tasks done
LK opened this issue Jan 9, 2023 · 5 comments · Fixed by #9205
Closed
4 tasks done

Poetry does not handle trailing slashes in Git urls #7326

LK opened this issue Jan 9, 2023 · 5 comments · Fixed by #9205
Labels
kind/bug Something isn't working as expected status/triage This issue needs to be triaged

Comments

@LK
Copy link

LK commented Jan 9, 2023

  • I am on the latest stable Poetry version, installed using a recommended method.
  • I have searched the issues of this repo and believe that this is not a duplicate.
  • I have consulted the FAQ and blog for any relevant entries or release notes.
  • If an exception occurs when executing a command, I executed it again in debug mode (-vvv option) and have included the output below.

Issue

When installing multiple packages from git repositories, we see a few different failures modes when running poetry install. This seems like maybe some kind of race condition, because this doesn't reliably reproduce when the pyproject.toml only includes the git packages, so might have to do with how the installs are scheduled with this particular configuration of packages.

  1. Failure 1 (Recoverable): this usually resolves itself by running poetry install.
Logs
❯ poetry install -vvv
Loading configuration file /Users/lennykhazan/Library/Preferences/pypoetry/config.toml
The currently activated Python version 3.7.3 is not supported by the project (3.9.15).
Trying to find and use a compatible version.
Trying python3
Trying python3.9
Using python3.9 (3.9.15)
Creating virtualenv api-server-apps-UDS0uKpv-py3.9 in /Users/lennykhazan/Library/Caches/pypoetry/virtualenvs
Using virtualenv: /Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9
Installing dependencies from lock file

Finding the necessary packages for the current system

Package operations: 47 installs, 0 updates, 0 removals

  • Installing pyasn1 (0.4.8): Pending...
  • Installing pyasn1 (0.4.8): Installing...
  • Installing pyasn1 (0.4.8)
  • Installing cachetools (5.2.1): Pending...
  • Installing cachetools (5.2.1): Installing...
  • Installing cachetools (5.2.1)
  • Installing certifi (2022.12.7): Pending...
  • Installing certifi (2022.12.7): Installing...
  • Installing certifi (2022.12.7)
  • Installing chardet (4.0.0): Pending...
  • Installing chardet (4.0.0): Installing...
  • Installing chardet (4.0.0)
  • Installing idna (2.10): Pending...
  • Installing idna (2.10): Installing...
  • Installing idna (2.10)
  • Installing protobuf (3.20.3): Pending...
  • Installing protobuf (3.20.3): Installing...
  • Installing protobuf (3.20.3)
  • Installing pyasn1-modules (0.2.8): Pending...
  • Installing pyasn1-modules (0.2.8): Installing...
  • Installing pyasn1-modules (0.2.8)
  • Installing pycparser (2.21): Pending...
  • Installing pycparser (2.21): Installing...
  • Installing pycparser (2.21)
  • Installing rsa (4.9): Pending...
  • Installing rsa (4.9): Installing...
  • Installing rsa (4.9)
  • Installing six (1.16.0): Pending...
  • Installing six (1.16.0): Installing...
  • Installing six (1.16.0)
  • Installing urllib3 (1.26.13): Pending...
  • Installing urllib3 (1.26.13): Installing...
  • Installing urllib3 (1.26.13)
  • Installing cffi (1.15.1): Pending...
  • Installing cffi (1.15.1): Installing...
  • Installing cffi (1.15.1)
  • Installing google-auth (2.15.0): Pending...
  • Installing google-auth (2.15.0): Installing...
  • Installing google-auth (2.15.0)
  • Installing googleapis-common-protos (1.58.0): Pending...
  • Installing googleapis-common-protos (1.58.0): Installing...
  • Installing googleapis-common-protos (1.58.0)
  • Installing requests (2.25.1): Pending...
  • Installing requests (2.25.1): Installing...
  • Installing requests (2.25.1)
  • Installing async-timeout (4.0.2): Pending...
  • Installing async-timeout (4.0.2): Installing...
  • Installing async-timeout (4.0.2)
  • Installing bcrypt (4.0.1): Pending...
  • Installing bcrypt (4.0.1): Installing...
  • Installing bcrypt (4.0.1)
  • Installing cryptography (39.0.0): Pending...
  • Installing cryptography (39.0.0): Installing...
  • Installing cryptography (39.0.0)
  • Installing google-api-core (1.34.0): Pending...
  • Installing google-api-core (1.34.0): Installing...
  • Installing google-api-core (1.34.0)
  • Installing opencensus-context (0.2.dev0): Pending...
  • Installing opencensus-context (0.2.dev0): Installing...
  • Installing opencensus-context (0.2.dev0)
  • Installing pynacl (1.5.0): Pending...
  • Installing pynacl (1.5.0): Installing...
  • Installing pynacl (1.5.0)
  • Installing charset-normalizer (3.0.1): Pending...
  • Installing charset-normalizer (3.0.1): Installing...
  • Installing charset-normalizer (3.0.1)
  • Installing future (0.18.2): Pending...
  • Installing future (0.18.2): Installing...
  • Installing future (0.18.2)
  • Installing mypy-extensions (0.4.3): Pending...
  • Installing mypy-extensions (0.4.3): Installing...
  • Installing mypy-extensions (0.4.3)
  • Installing numpy (1.24.1): Pending...
  • Installing numpy (1.24.1): Installing...
  • Installing numpy (1.24.1)
  • Installing opencensus (0.8.dev0 ec72cd3): Pending...
  • Installing opencensus (0.8.dev0 ec72cd3): Cloning...
  • Installing opencensus (0.8.dev0 ec72cd3): Building...
  • Installing opencensus (0.8.dev0 ec72cd3)
  • Installing paramiko (2.12.0): Pending...
  • Installing paramiko (2.12.0): Installing...
  • Installing paramiko (2.12.0)
  • Installing probableparsing (0.0.1): Pending...
  • Installing probableparsing (0.0.1): Installing...
  • Installing probableparsing (0.0.1)
  • Installing prometheus-client (0.15.0): Pending...
  • Installing prometheus-client (0.15.0): Installing...
  • Installing prometheus-client (0.15.0)
  • Installing python-crfsuite (0.9.8): Pending...
  • Installing python-crfsuite (0.9.8): Installing...
  • Installing python-crfsuite (0.9.8)
  • Installing python-dateutil (2.8.2): Pending...
  • Installing python-dateutil (2.8.2): Installing...
  • Installing python-dateutil (2.8.2)
  • Installing pytz (2022.7): Pending...
  • Installing pytz (2022.7): Installing...
  • Installing pytz (2022.7)
  • Installing redis (4.4.1): Pending...
  • Installing redis (4.4.1): Installing...
  • Installing redis (4.4.1)
  • Installing testing-common-database (2.0.3): Pending...
  • Installing testing-common-database (2.0.3): Installing...
  • Installing testing-common-database (2.0.3)
  • Installing typed-ast (1.4.3): Pending...
  • Installing typed-ast (1.4.3): Installing...
  • Installing typed-ast (1.4.3)
  • Installing typing-extensions (4.4.0): Pending...
  • Installing typing-extensions (4.4.0): Installing...
  • Installing typing-extensions (4.4.0)
  • Installing docstring-parser (0.15): Pending...
  • Installing docstring-parser (0.15): Installing...
  • Installing docstring-parser (0.15)
  • Installing mock (4.0.3): Pending...
  • Installing mock (4.0.3): Installing...
  • Installing mock (4.0.3)
  • Installing mypy (0.812): Pending...
  • Installing mypy (0.812): Installing...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Pending...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Cloning...
  • Installing pandas (1.1.5): Pending...
  • Installing pandas (1.1.5): Installing...
  • Installing pdfminer-six (20221210 47baa0d): Pending...
  • Installing pdfminer-six (20221210 47baa0d): Cloning...
  • Installing pdfminer-six (20221210 47baa0d): Failed

  Stack trace:

  12  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
       261│
       262│             try:
     → 263│                 result = self._do_execute_operation(operation)
       264│             except EnvCommandError as e:
       265│                 if e.e.returncode == -2:

  11  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
       332│             return 0
       333│
     → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
       335│
       336│         if result != 0:

  10  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
       452│
       453│     def _execute_install(self, operation: Install | Update) -> int:
     → 454│         status_code = self._install(operation)
       455│
       456│         self._save_url_reference(operation)

   9  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
       478│
       479│         if package.source_type == "git":
     → 480│             return self._install_git(operation)
       481│
       482│         if package.source_type == "file":

   8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:612 in _install_git
       610│             url=package.source_url,
       611│             source_root=self._env.path / "src",
     → 612│             revision=package.source_resolved_reference or package.source_reference,
       613│         )
       614│

   7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:424 in clone
       422│         try:
       423│             if not cls.is_using_legacy_client():
     → 424│                 local = cls._clone(url=url, refspec=refspec, target=target)
       425│                 cls._clone_submodules(repo=local)
       426│                 return local

   6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:256 in _clone
       254│             local = Repo(str(target))
       255│
     → 256│         remote_refs = cls._fetch_remote_refs(url=url, local=local)
       257│
       258│         logger.debug(

   5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:204 in _fetch_remote_refs
       202│                 path,
       203│                 local,
     → 204│                 determine_wants=local.object_store.determine_wants_all,
  • Installing mypy (0.812)
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Pending...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Cloning...
  • Installing pandas (1.1.5): Pending...
  • Installing pandas (1.1.5): Installing...
  • Installing pdfminer-six (20221210 47baa0d): Pending...
  • Installing pdfminer-six (20221210 47baa0d): Cloning...
  • Installing pdfminer-six (20221210 47baa0d): Failed

  Stack trace:

  12  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
       261│
       262│             try:
     → 263│                 result = self._do_execute_operation(operation)
       264│             except EnvCommandError as e:
       265│                 if e.e.returncode == -2:

  11  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
       332│             return 0
       333│
     → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
       335│
       336│         if result != 0:

  10  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
       452│
       453│     def _execute_install(self, operation: Install | Update) -> int:
     → 454│         status_code = self._install(operation)
       455│
       456│         self._save_url_reference(operation)

   9  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
       478│
       479│         if package.source_type == "git":
     → 480│             return self._install_git(operation)
       481│
       482│         if package.source_type == "file":

   8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:612 in _install_git
       610│             url=package.source_url,
       611│             source_root=self._env.path / "src",
     → 612│             revision=package.source_resolved_reference or package.source_reference,
       613│         )
       614│

   7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:424 in clone
       422│         try:
       423│             if not cls.is_using_legacy_client():
     → 424│                 local = cls._clone(url=url, refspec=refspec, target=target)
       425│                 cls._clone_submodules(repo=local)
       426│                 return local

   6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:256 in _clone
       254│             local = Repo(str(target))
       255│
     → 256│         remote_refs = cls._fetch_remote_refs(url=url, local=local)
       257│
       258│         logger.debug(

   5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:204 in _fetch_remote_refs
       202│                 path,
       203│                 local,
     → 204│                 determine_wants=local.object_store.determine_wants_all,
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Building...
  • Installing pandas (1.1.5): Pending...
  • Installing pandas (1.1.5): Installing...
  • Installing pdfminer-six (20221210 47baa0d): Pending...
  • Installing pdfminer-six (20221210 47baa0d): Cloning...
  • Installing pdfminer-six (20221210 47baa0d): Failed

  Stack trace:

  12  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
       261│
       262│             try:
     → 263│                 result = self._do_execute_operation(operation)
       264│             except EnvCommandError as e:
       265│                 if e.e.returncode == -2:

  11  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
       332│             return 0
       333│
     → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
       335│
       336│         if result != 0:

  10  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
       452│
       453│     def _execute_install(self, operation: Install | Update) -> int:
     → 454│         status_code = self._install(operation)
       455│
       456│         self._save_url_reference(operation)

   9  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
       478│
       479│         if package.source_type == "git":
     → 480│             return self._install_git(operation)
       481│
       482│         if package.source_type == "file":

   8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:612 in _install_git
       610│             url=package.source_url,
       611│             source_root=self._env.path / "src",
     → 612│             revision=package.source_resolved_reference or package.source_reference,
       613│         )
       614│

   7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:424 in clone
       422│         try:
       423│             if not cls.is_using_legacy_client():
     → 424│                 local = cls._clone(url=url, refspec=refspec, target=target)
       425│                 cls._clone_submodules(repo=local)
       426│                 return local

   6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:256 in _clone
       254│             local = Repo(str(target))
       255│
     → 256│         remote_refs = cls._fetch_remote_refs(url=url, local=local)
       257│
       258│         logger.debug(

   5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:204 in _fetch_remote_refs
       202│                 path,
       203│                 local,
     → 204│                 determine_wants=local.object_store.determine_wants_all,
       205│             )
  • Installing pandas (1.1.5)
  • Installing pdfminer-six (20221210 47baa0d): Pending...
  • Installing pdfminer-six (20221210 47baa0d): Cloning...
  • Installing pdfminer-six (20221210 47baa0d): Failed

  Stack trace:

  12  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
       261│
       262│             try:
     → 263│                 result = self._do_execute_operation(operation)
       264│             except EnvCommandError as e:
       265│                 if e.e.returncode == -2:

  11  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
       332│             return 0
       333│
     → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
       335│
       336│         if result != 0:

  10  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
       452│
       453│     def _execute_install(self, operation: Install | Update) -> int:
     → 454│         status_code = self._install(operation)
       455│
       456│         self._save_url_reference(operation)

   9  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
       478│
       479│         if package.source_type == "git":
     → 480│             return self._install_git(operation)
       481│
       482│         if package.source_type == "file":

   8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:612 in _install_git
       610│             url=package.source_url,
       611│             source_root=self._env.path / "src",
     → 612│             revision=package.source_resolved_reference or package.source_reference,
       613│         )
       614│

   7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:424 in clone
       422│         try:
       423│             if not cls.is_using_legacy_client():
     → 424│                 local = cls._clone(url=url, refspec=refspec, target=target)
       425│                 cls._clone_submodules(repo=local)
       426│                 return local

   6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:256 in _clone
       254│             local = Repo(str(target))
       255│
     → 256│         remote_refs = cls._fetch_remote_refs(url=url, local=local)
       257│
       258│         logger.debug(

   5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:204 in _fetch_remote_refs
       202│                 path,
       203│                 local,
     → 204│                 determine_wants=local.object_store.determine_wants_all,
       205│             )
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3)
  • Installing pandas (1.1.5): Pending...
  • Installing pandas (1.1.5): Installing...
  • Installing pandas (1.1.5)
  • Installing pdfminer-six (20221210 47baa0d): Pending...
  • Installing pdfminer-six (20221210 47baa0d): Cloning...
  • Installing pdfminer-six (20221210 47baa0d): Failed

  Stack trace:

  12  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
       261│
       262│             try:
     → 263│                 result = self._do_execute_operation(operation)
       264│             except EnvCommandError as e:
       265│                 if e.e.returncode == -2:

  11  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
       332│             return 0
       333│
     → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
       335│
       336│         if result != 0:

  10  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
       452│
       453│     def _execute_install(self, operation: Install | Update) -> int:
     → 454│         status_code = self._install(operation)
       455│
       456│         self._save_url_reference(operation)

   9  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
       478│
       479│         if package.source_type == "git":
     → 480│             return self._install_git(operation)
       481│
       482│         if package.source_type == "file":

   8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:612 in _install_git
       610│             url=package.source_url,
       611│             source_root=self._env.path / "src",
     → 612│             revision=package.source_resolved_reference or package.source_reference,
       613│         )
       614│

   7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:424 in clone
       422│         try:
       423│             if not cls.is_using_legacy_client():
     → 424│                 local = cls._clone(url=url, refspec=refspec, target=target)
       425│                 cls._clone_submodules(repo=local)
       426│                 return local

   6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:256 in _clone
       254│             local = Repo(str(target))
       255│
     → 256│         remote_refs = cls._fetch_remote_refs(url=url, local=local)
       257│
       258│         logger.debug(

   5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:204 in _fetch_remote_refs
       202│                 path,
       203│                 local,
     → 204│                 determine_wants=local.object_store.determine_wants_all,
       205│             )
       206│             return result

   4  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/dulwich/client.py:849 in fetch
        847│             raise
        848│         else:
     →  849│             commit()
        850│         target.update_shallow(result.new_shallow, result.new_unshallow)
        851│         return result

   3  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/dulwich/client.py:828 in commit
        826│                 if f.tell():
        827│                     f.seek(0)
     →  828│                     target.object_store.add_thin_pack(f.read, None)
        829│                 f.close()
        830│

   2  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/dulwich/object_store.py:856 in add_thin_pack
        854│         import tempfile
        855│
     →  856│         fd, path = tempfile.mkstemp(dir=self.path, prefix="tmp_pack_")
        857│         with os.fdopen(fd, "w+b") as f:
        858│             os.chmod(path, PACK_MODE)

   1  ~/.pyenv/versions/3.7.3/lib/python3.7/tempfile.py:340 in mkstemp
       338│         flags = _bin_openflags
       339│
     → 340│     return _mkstemp_inner(dir, prefix, suffix, flags, output_type)
       341│
       342│

  FileNotFoundError

  [Errno 2] No such file or directory: '/Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src/pdfminer.six.public/.git/objects/tmp_pack_bfjbllhk'

  at ~/.pyenv/versions/3.7.3/lib/python3.7/tempfile.py:258 in _mkstemp_inner
      254│     for seq in range(TMP_MAX):
      255│         name = next(names)
      256│         file = _os.path.join(dir, pre + name + suf)
      257│         try:
    → 258│             fd = _os.open(file, flags, 0o600)
      259│         except FileExistsError:
      260│             continue    # try again
      261│         except PermissionError:
      262│             # This exception is thrown when a directory with the chosen name

  • Installing pysftp (0.2.9): Pending...
  • Installing pysftp (0.2.9): Installing...
  • Installing pysftp (0.2.9)
  • Installing testing-redis (1.1.1): Pending...
  • Installing testing-redis (1.1.1): Installing...
  • Installing testing-redis (1.1.1)
  • Installing usaddress (0.5.10): Pending...
  • Installing usaddress (0.5.10): Installing...
  • Installing usaddress (0.5.10)
  • Installing xxhash (3.2.0): Pending...
  • Installing xxhash (3.2.0): Installing...
  • Installing xxhash (3.2.0)
  • Installing zipcodes (1.2.0): Pending...
  • Installing zipcodes (1.2.0): Installing...
  • Installing zipcodes (1.2.0)
  1. Failure 2 (Non-recoverable): most poetry command fail with [Errno 13] Permission denied: 'src'. Can only be fixed by sudo rm -rfing the venv directory.
Logs
❯ poetry install -vvv
Loading configuration file /Users/lennykhazan/Library/Preferences/pypoetry/config.toml
The currently activated Python version 3.7.3 is not supported by the project (3.9.15).
Trying to find and use a compatible version.
Trying python3
Trying python3.9
Using python3.9 (3.9.15)
Creating virtualenv api-server-apps-UDS0uKpv-py3.9 in /Users/lennykhazan/Library/Caches/pypoetry/virtualenvs
Using virtualenv: /Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9
Installing dependencies from lock file

Finding the necessary packages for the current system

Package operations: 47 installs, 0 updates, 0 removals

  • Installing pyasn1 (0.4.8): Pending...
  • Installing pyasn1 (0.4.8): Installing...
  • Installing pyasn1 (0.4.8)
  • Installing cachetools (5.2.1): Pending...
  • Installing cachetools (5.2.1): Installing...
  • Installing cachetools (5.2.1)
  • Installing certifi (2022.12.7): Pending...
  • Installing certifi (2022.12.7): Installing...
  • Installing certifi (2022.12.7)
  • Installing chardet (4.0.0): Pending...
  • Installing chardet (4.0.0): Installing...
  • Installing chardet (4.0.0)
  • Installing idna (2.10): Pending...
  • Installing idna (2.10): Installing...
  • Installing idna (2.10)
  • Installing protobuf (3.20.3): Pending...
  • Installing protobuf (3.20.3): Installing...
  • Installing protobuf (3.20.3)
  • Installing pyasn1-modules (0.2.8): Pending...
  • Installing pyasn1-modules (0.2.8): Installing...
  • Installing pyasn1-modules (0.2.8)
  • Installing pycparser (2.21): Pending...
  • Installing pycparser (2.21): Installing...
  • Installing pycparser (2.21)
  • Installing rsa (4.9): Pending...
  • Installing rsa (4.9): Installing...
  • Installing rsa (4.9)
  • Installing six (1.16.0): Pending...
  • Installing six (1.16.0): Installing...
  • Installing six (1.16.0)
  • Installing urllib3 (1.26.13): Pending...
  • Installing urllib3 (1.26.13): Installing...
  • Installing urllib3 (1.26.13)
  • Installing cffi (1.15.1): Pending...
  • Installing cffi (1.15.1): Installing...
  • Installing cffi (1.15.1)
  • Installing google-auth (2.15.0): Pending...
  • Installing google-auth (2.15.0): Installing...
  • Installing google-auth (2.15.0)
  • Installing googleapis-common-protos (1.58.0): Pending...
  • Installing googleapis-common-protos (1.58.0): Installing...
  • Installing googleapis-common-protos (1.58.0)
  • Installing requests (2.25.1): Pending...
  • Installing requests (2.25.1): Installing...
  • Installing requests (2.25.1)
  • Installing async-timeout (4.0.2): Pending...
  • Installing async-timeout (4.0.2): Installing...
  • Installing async-timeout (4.0.2)
  • Installing bcrypt (4.0.1): Pending...
  • Installing bcrypt (4.0.1): Installing...
  • Installing bcrypt (4.0.1)
  • Installing cryptography (39.0.0): Pending...
  • Installing cryptography (39.0.0): Installing...
  • Installing cryptography (39.0.0)
  • Installing google-api-core (1.34.0): Pending...
  • Installing google-api-core (1.34.0): Installing...
  • Installing google-api-core (1.34.0)
  • Installing opencensus-context (0.2.dev0): Pending...
  • Installing opencensus-context (0.2.dev0): Installing...
  • Installing opencensus-context (0.2.dev0)
  • Installing pynacl (1.5.0): Pending...
  • Installing pynacl (1.5.0): Installing...
  • Installing pynacl (1.5.0)
  • Installing charset-normalizer (3.0.1): Pending...
  • Installing charset-normalizer (3.0.1): Installing...
  • Installing charset-normalizer (3.0.1)
  • Installing future (0.18.2): Pending...
  • Installing future (0.18.2): Installing...
  • Installing future (0.18.2)
  • Installing mypy-extensions (0.4.3): Pending...
  • Installing mypy-extensions (0.4.3): Installing...
  • Installing mypy-extensions (0.4.3)
  • Installing numpy (1.24.1): Pending...
  • Installing numpy (1.24.1): Installing...
  • Installing numpy (1.24.1)
  • Installing opencensus (0.8.dev0 ec72cd3): Pending...
  • Installing opencensus (0.8.dev0 ec72cd3): Cloning...
  • Installing opencensus (0.8.dev0 ec72cd3): Building...
  • Installing opencensus (0.8.dev0 ec72cd3)
  • Installing paramiko (2.12.0): Pending...
  • Installing paramiko (2.12.0): Installing...
  • Installing paramiko (2.12.0)
  • Installing probableparsing (0.0.1): Pending...
  • Installing probableparsing (0.0.1): Installing...
  • Installing probableparsing (0.0.1)
  • Installing prometheus-client (0.15.0): Pending...
  • Installing prometheus-client (0.15.0): Installing...
  • Installing prometheus-client (0.15.0)
  • Installing python-crfsuite (0.9.8): Pending...
  • Installing python-crfsuite (0.9.8): Installing...
  • Installing python-crfsuite (0.9.8)
  • Installing python-dateutil (2.8.2): Pending...
  • Installing python-dateutil (2.8.2): Installing...
  • Installing python-dateutil (2.8.2)
  • Installing pytz (2022.7): Pending...
  • Installing pytz (2022.7): Installing...
  • Installing pytz (2022.7)
  • Installing redis (4.4.1): Pending...
  • Installing redis (4.4.1): Installing...
  • Installing redis (4.4.1)
  • Installing testing-common-database (2.0.3): Pending...
  • Installing testing-common-database (2.0.3): Installing...
  • Installing testing-common-database (2.0.3)
  • Installing typed-ast (1.4.3): Pending...
  • Installing typed-ast (1.4.3): Installing...
  • Installing typed-ast (1.4.3)
  • Installing typing-extensions (4.4.0): Pending...
  • Installing typing-extensions (4.4.0): Installing...
  • Installing typing-extensions (4.4.0)
  • Installing docstring-parser (0.15): Pending...
  • Installing docstring-parser (0.15): Installing...
  • Installing mock (4.0.3): Pending...
  • Installing mock (4.0.3): Installing...
  • Installing mypy (0.812): Pending...
  • Installing mypy (0.812): Installing...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Pending...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Cloning...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Failed

  Stack trace:

  1  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:403 in clone
      401│                 # check if the current local copy matches the requested ref spec
      402│                 try:
    → 403│                     current_repo = Repo(str(target))
      404│
      405│                     with current_repo:

  NotGitRepository

  No git repository was found at /Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src

  at ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/dulwich/repo.py:1127 in __init__
      1123│                     and os.path.isdir(os.path.join(root, REFSDIR))):
      1124│                 bare = True
      1125│             else:
      1126│                 raise NotGitRepository(
    → 1127│                     "No git repository was found at %(path)s" % dict(path=root)
      1128│                 )
      1129│
      1130│         self.bare = bare
      1131│         if bare is False:

The following error occurred when trying to handle this error:


  OSError

  [Errno 66] Directory not empty: '/Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src'

  at ~/.pyenv/versions/3.7.3/lib/python3.7/shutil.py:493 in rmtree
       489│         try:
       490│             if os.path.samestat(orig_st, os.fstat(fd)):
       491│                 _rmtree_safe_fd(fd, path, onerror)
       492│                 try:
    →  493│                     os.rmdir(path)
       494│                 except OSError:
       495│                     onerror(os.rmdir, path, sys.exc_info())
       496│             else:
       497│                 try:

The following error occurred when trying to handle this error:


  Stack trace:

  8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
      261│
      262│             try:
    → 263│                 result = self._do_execute_operation(operation)
      264│             except EnvCommandError as e:
      265│                 if e.e.returncode == -2:

  7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
      332│             return 0
      333│
    → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
      335│
      336│         if result != 0:

  6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
      452│
      453│     def _execute_install(self, operation: Install | Update) -> int:
    → 454│         status_code = self._install(operation)
      455│
      456│         self._save_url_reference(operation)

  5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
      478│
      479│         if package.source_type == "git":
    → 480│             return self._install_git(operation)
      481│
      482│         if package.source_type == "file":
  • Installing docstring-parser (0.15)
  • Installing mock (4.0.3): Pending...
  • Installing mock (4.0.3): Installing...
  • Installing mypy (0.812): Pending...
  • Installing mypy (0.812): Installing...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Pending...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Cloning...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Failed

  Stack trace:

  1  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:403 in clone
      401│                 # check if the current local copy matches the requested ref spec
      402│                 try:
    → 403│                     current_repo = Repo(str(target))
      404│
      405│                     with current_repo:

  NotGitRepository

  No git repository was found at /Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src

  at ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/dulwich/repo.py:1127 in __init__
      1123│                     and os.path.isdir(os.path.join(root, REFSDIR))):
      1124│                 bare = True
      1125│             else:
      1126│                 raise NotGitRepository(
    → 1127│                     "No git repository was found at %(path)s" % dict(path=root)
      1128│                 )
      1129│
      1130│         self.bare = bare
      1131│         if bare is False:

The following error occurred when trying to handle this error:


  OSError

  [Errno 66] Directory not empty: '/Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src'

  at ~/.pyenv/versions/3.7.3/lib/python3.7/shutil.py:493 in rmtree
       489│         try:
       490│             if os.path.samestat(orig_st, os.fstat(fd)):
       491│                 _rmtree_safe_fd(fd, path, onerror)
       492│                 try:
    →  493│                     os.rmdir(path)
       494│                 except OSError:
       495│                     onerror(os.rmdir, path, sys.exc_info())
       496│             else:
       497│                 try:

The following error occurred when trying to handle this error:


  Stack trace:

  8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
      261│
      262│             try:
    → 263│                 result = self._do_execute_operation(operation)
      264│             except EnvCommandError as e:
      265│                 if e.e.returncode == -2:

  7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
      332│             return 0
      333│
    → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
      335│
      336│         if result != 0:

  6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
      452│
      453│     def _execute_install(self, operation: Install | Update) -> int:
    → 454│         status_code = self._install(operation)
      455│
      456│         self._save_url_reference(operation)

  5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
      478│
      479│         if package.source_type == "git":
    → 480│             return self._install_git(operation)
      481│
      482│         if package.source_type == "file":

  • Installing mock (4.0.3)
  • Installing mypy (0.812): Pending...
  • Installing mypy (0.812): Installing...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Pending...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Cloning...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Failed

  Stack trace:

  1  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:403 in clone
      401│                 # check if the current local copy matches the requested ref spec
      402│                 try:
    → 403│                     current_repo = Repo(str(target))
      404│
      405│                     with current_repo:

  NotGitRepository

  No git repository was found at /Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src

  at ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/dulwich/repo.py:1127 in __init__
      1123│                     and os.path.isdir(os.path.join(root, REFSDIR))):
      1124│                 bare = True
      1125│             else:
      1126│                 raise NotGitRepository(
    → 1127│                     "No git repository was found at %(path)s" % dict(path=root)
      1128│                 )
      1129│
      1130│         self.bare = bare
      1131│         if bare is False:

The following error occurred when trying to handle this error:


  OSError

  [Errno 66] Directory not empty: '/Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src'

  at ~/.pyenv/versions/3.7.3/lib/python3.7/shutil.py:493 in rmtree
       489│         try:
       490│             if os.path.samestat(orig_st, os.fstat(fd)):
       491│                 _rmtree_safe_fd(fd, path, onerror)
       492│                 try:
    →  493│                     os.rmdir(path)
       494│                 except OSError:
       495│                     onerror(os.rmdir, path, sys.exc_info())
       496│             else:
       497│                 try:

The following error occurred when trying to handle this error:


  Stack trace:

  8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
      261│
      262│             try:
    → 263│                 result = self._do_execute_operation(operation)
      264│             except EnvCommandError as e:
      265│                 if e.e.returncode == -2:

  7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
      332│             return 0
      333│
    → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
      335│
      336│         if result != 0:

  6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
      452│
      453│     def _execute_install(self, operation: Install | Update) -> int:
    → 454│         status_code = self._install(operation)
      455│
      456│         self._save_url_reference(operation)

  5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
      478│
      479│         if package.source_type == "git":
    → 480│             return self._install_git(operation)
      481│
      482│         if package.source_type == "file":

  4  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:612 in _install_git
      610│             url=package.source_url,
      611│             source_root=self._env.path / "src",
    → 612│             revision=package.source_resolved_reference or package.source_reference,
      613│         )
      614│

  3  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:409 in clone
      407│                 except (NotGitRepository, AssertionError, KeyError):
      408│                     # something is wrong with the current checkout, clean it
    → 409│                     remove_directory(target, force=True)
      410│                 else:
      411│                     if not is_revision_sha(revision=current_sha):

  2  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/utils/helpers.py:81 in remove_directory
       79│
       80│     kwargs["onerror"] = kwargs.pop("onerror", _on_rm_error if force else None)
    →  81│     shutil.rmtree(path, *args, **kwargs)
       82│
       83│

  1  ~/.pyenv/versions/3.7.3/lib/python3.7/shutil.py:495 in rmtree
       493│                     os.rmdir(path)
       494│                 except OSError:
    →  495│                     onerror(os.rmdir, path, sys.exc_info())
       496│             else:
       497│                 try:

  OSError

  [Errno 66] Directory not empty: '/Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src'

  at ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/utils/helpers.py:64 in _on_rm_error
       60│     if not os.path.exists(path):
       61│         return
       62│
       63│     os.chmod(path, stat.S_IWRITE)
    →  64│     func(path)
       65│
       66│
       67│ def remove_directory(
       68│     path: Path | str, *args: Any, force: bool = False, **kwargs: Any

  • Installing pandas (1.1.5): Pending...
  • Installing pandas (1.1.5): Installing...
  • Installing pdfminer-six (20221210 47baa0d): Pending...
  • Installing pdfminer-six (20221210 47baa0d): Cloning...
  • Installing pdfminer-six (20221210 47baa0d): Failed

  Stack trace:

  12  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
       261│
       262│             try:
     → 263│                 result = self._do_execute_operation(operation)
       264│             except EnvCommandError as e:
       265│                 if e.e.returncode == -2:

  11  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
       332│             return 0
       333│
     → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
       335│
       336│         if result != 0:

  10  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
       452│
       453│     def _execute_install(self, operation: Install | Update) -> int:
     → 454│         status_code = self._install(operation)
       455│
       456│         self._save_url_reference(operation)

   9  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
       478│
       479│         if package.source_type == "git":
     → 480│             return self._install_git(operation)
       481│
       482│         if package.source_type == "file":

   8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:612 in _install_git
       610│             url=package.source_url,
       611│             source_root=self._env.path / "src",
     → 612│             revision=package.source_resolved_reference or package.source_reference,
       613│         )
       614│

   7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:424 in clone
       422│         try:
       423│             if not cls.is_using_legacy_client():
     → 424│                 local = cls._clone(url=url, refspec=refspec, target=target)
       425│                 cls._clone_submodules(repo=local)
       426│                 return local

   6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:256 in _clone
       254│             local = Repo(str(target))
       255│
     → 256│         remote_refs = cls._fetch_remote_refs(url=url, local=local)
       257│
       258│         logger.debug(

   5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:204 in _fetch_remote_refs
       202│                 path,
       203│                 local,
     → 204│                 determine_wants=local.object_store.determine_wants_all,
  • Installing mypy (0.812)
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Pending...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Cloning...
  • Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3): Failed

  Stack trace:

  1  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:403 in clone
      401│                 # check if the current local copy matches the requested ref spec
      402│                 try:
    → 403│                     current_repo = Repo(str(target))
      404│
      405│                     with current_repo:

  NotGitRepository

  No git repository was found at /Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src

  at ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/dulwich/repo.py:1127 in __init__
      1123│                     and os.path.isdir(os.path.join(root, REFSDIR))):
      1124│                 bare = True
      1125│             else:
      1126│                 raise NotGitRepository(
    → 1127│                     "No git repository was found at %(path)s" % dict(path=root)
      1128│                 )
      1129│
      1130│         self.bare = bare
      1131│         if bare is False:

The following error occurred when trying to handle this error:


  OSError

  [Errno 66] Directory not empty: '/Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src'

  at ~/.pyenv/versions/3.7.3/lib/python3.7/shutil.py:493 in rmtree
       489│         try:
       490│             if os.path.samestat(orig_st, os.fstat(fd)):
       491│                 _rmtree_safe_fd(fd, path, onerror)
       492│                 try:
    →  493│                     os.rmdir(path)
       494│                 except OSError:
       495│                     onerror(os.rmdir, path, sys.exc_info())
       496│             else:
       497│                 try:

The following error occurred when trying to handle this error:


  Stack trace:

  8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
      261│
      262│             try:
    → 263│                 result = self._do_execute_operation(operation)
      264│             except EnvCommandError as e:
      265│                 if e.e.returncode == -2:

  7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
      332│             return 0
      333│
    → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
      335│
      336│         if result != 0:

  6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
      452│
      453│     def _execute_install(self, operation: Install | Update) -> int:
    → 454│         status_code = self._install(operation)
      455│
      456│         self._save_url_reference(operation)

  5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
      478│
      479│         if package.source_type == "git":
    → 480│             return self._install_git(operation)
      481│
      482│         if package.source_type == "file":

  4  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:612 in _install_git
      610│             url=package.source_url,
      611│             source_root=self._env.path / "src",
    → 612│             revision=package.source_resolved_reference or package.source_reference,
      613│         )
      614│

  3  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:409 in clone
      407│                 except (NotGitRepository, AssertionError, KeyError):
      408│                     # something is wrong with the current checkout, clean it
    → 409│                     remove_directory(target, force=True)
      410│                 else:
      411│                     if not is_revision_sha(revision=current_sha):

  2  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/utils/helpers.py:81 in remove_directory
       79│
       80│     kwargs["onerror"] = kwargs.pop("onerror", _on_rm_error if force else None)
    →  81│     shutil.rmtree(path, *args, **kwargs)
       82│
       83│

  1  ~/.pyenv/versions/3.7.3/lib/python3.7/shutil.py:495 in rmtree
       493│                     os.rmdir(path)
       494│                 except OSError:
    →  495│                     onerror(os.rmdir, path, sys.exc_info())
       496│             else:
       497│                 try:

  OSError

  [Errno 66] Directory not empty: '/Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src'

  at ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/utils/helpers.py:64 in _on_rm_error
       60│     if not os.path.exists(path):
       61│         return
       62│
       63│     os.chmod(path, stat.S_IWRITE)
    →  64│     func(path)
       65│
       66│
       67│ def remove_directory(
       68│     path: Path | str, *args: Any, force: bool = False, **kwargs: Any

  • Installing pandas (1.1.5): Pending...
  • Installing pandas (1.1.5): Installing...
  • Installing pdfminer-six (20221210 47baa0d): Pending...
  • Installing pdfminer-six (20221210 47baa0d): Cloning...
  • Installing pdfminer-six (20221210 47baa0d): Failed

  Stack trace:

  12  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
       261│
       262│             try:
     → 263│                 result = self._do_execute_operation(operation)
       264│             except EnvCommandError as e:
       265│                 if e.e.returncode == -2:

  11  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
       332│             return 0
       333│
     → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
       335│
       336│         if result != 0:

  10  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
       452│
       453│     def _execute_install(self, operation: Install | Update) -> int:
     → 454│         status_code = self._install(operation)
       455│
       456│         self._save_url_reference(operation)

   9  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
       478│
       479│         if package.source_type == "git":
     → 480│             return self._install_git(operation)
       481│
       482│         if package.source_type == "file":

   8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:612 in _install_git
       610│             url=package.source_url,
       611│             source_root=self._env.path / "src",
     → 612│             revision=package.source_resolved_reference or package.source_reference,
       613│         )
       614│

   7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:424 in clone
       422│         try:
       423│             if not cls.is_using_legacy_client():
     → 424│                 local = cls._clone(url=url, refspec=refspec, target=target)
       425│                 cls._clone_submodules(repo=local)
       426│                 return local

   6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:256 in _clone
       254│             local = Repo(str(target))
       255│
     → 256│         remote_refs = cls._fetch_remote_refs(url=url, local=local)
       257│
       258│         logger.debug(

   5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:204 in _fetch_remote_refs
       202│                 path,
       203│                 local,
     → 204│                 determine_wants=local.object_store.determine_wants_all,
       205│             )
  • Installing pandas (1.1.5)
  • Installing pdfminer-six (20221210 47baa0d): Pending...
  • Installing pdfminer-six (20221210 47baa0d): Cloning...
  • Installing pdfminer-six (20221210 47baa0d): Failed

  Stack trace:

  12  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:263 in _execute_operation
       261│
       262│             try:
     → 263│                 result = self._do_execute_operation(operation)
       264│             except EnvCommandError as e:
       265│                 if e.e.returncode == -2:

  11  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:334 in _do_execute_operation
       332│             return 0
       333│
     → 334│         result: int = getattr(self, f"_execute_{method}")(operation)
       335│
       336│         if result != 0:

  10  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:454 in _execute_install
       452│
       453│     def _execute_install(self, operation: Install | Update) -> int:
     → 454│         status_code = self._install(operation)
       455│
       456│         self._save_url_reference(operation)

   9  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:480 in _install
       478│
       479│         if package.source_type == "git":
     → 480│             return self._install_git(operation)
       481│
       482│         if package.source_type == "file":

   8  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/installation/executor.py:612 in _install_git
       610│             url=package.source_url,
       611│             source_root=self._env.path / "src",
     → 612│             revision=package.source_resolved_reference or package.source_reference,
       613│         )
       614│

   7  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:424 in clone
       422│         try:
       423│             if not cls.is_using_legacy_client():
     → 424│                 local = cls._clone(url=url, refspec=refspec, target=target)
       425│                 cls._clone_submodules(repo=local)
       426│                 return local

   6  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:256 in _clone
       254│             local = Repo(str(target))
       255│
     → 256│         remote_refs = cls._fetch_remote_refs(url=url, local=local)
       257│
       258│         logger.debug(

   5  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/poetry/vcs/git/backend.py:204 in _fetch_remote_refs
       202│                 path,
       203│                 local,
     → 204│                 determine_wants=local.object_store.determine_wants_all,
       205│             )
       206│             return result

   4  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/dulwich/client.py:849 in fetch
        847│             raise
        848│         else:
     →  849│             commit()
        850│         target.update_shallow(result.new_shallow, result.new_unshallow)
        851│         return result

   3  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/dulwich/client.py:828 in commit
        826│                 if f.tell():
        827│                     f.seek(0)
     →  828│                     target.object_store.add_thin_pack(f.read, None)
        829│                 f.close()
        830│

   2  ~/Library/Application Support/pypoetry/venv/lib/python3.7/site-packages/dulwich/object_store.py:856 in add_thin_pack
        854│         import tempfile
        855│
     →  856│         fd, path = tempfile.mkstemp(dir=self.path, prefix="tmp_pack_")
        857│         with os.fdopen(fd, "w+b") as f:
        858│             os.chmod(path, PACK_MODE)

   1  ~/.pyenv/versions/3.7.3/lib/python3.7/tempfile.py:340 in mkstemp
       338│         flags = _bin_openflags
       339│
     → 340│     return _mkstemp_inner(dir, prefix, suffix, flags, output_type)
       341│
       342│

  PermissionError

  [Errno 13] Permission denied: '/Users/lennykhazan/Library/Caches/pypoetry/virtualenvs/api-server-apps-UDS0uKpv-py3.9/src/pdfminer.six.public/.git/objects/tmp_pack_pki1moyi'

  at ~/.pyenv/versions/3.7.3/lib/python3.7/tempfile.py:258 in _mkstemp_inner
      254│     for seq in range(TMP_MAX):
      255│         name = next(names)
      256│         file = _os.path.join(dir, pre + name + suf)
      257│         try:
    → 258│             fd = _os.open(file, flags, 0o600)
      259│         except FileExistsError:
      260│             continue    # try again
      261│         except PermissionError:
      262│             # This exception is thrown when a directory with the chosen name

  • Installing pysftp (0.2.9): Pending...
  • Installing pysftp (0.2.9): Installing...
  • Installing pysftp (0.2.9)
  • Installing testing-redis (1.1.1): Pending...
  • Installing testing-redis (1.1.1): Installing...
  • Installing testing-redis (1.1.1)
  • Installing usaddress (0.5.10): Pending...
  • Installing usaddress (0.5.10): Installing...
  • Installing usaddress (0.5.10)
  • Installing xxhash (3.2.0): Pending...
  • Installing xxhash (3.2.0): Installing...
  • Installing xxhash (3.2.0)
  • Installing zipcodes (1.2.0): Pending...
  • Installing zipcodes (1.2.0): Installing...
  • Installing zipcodes (1.2.0)

This may be related to #7113, but we aren't installing any deps with develop = true, so I'm filing this separately.

@LK LK added kind/bug Something isn't working as expected status/triage This issue needs to be triaged labels Jan 9, 2023
@dimbleby
Copy link
Contributor

dimbleby commented Jan 9, 2023

the trailing slash is again likely to cause damage here, as in #7327

@neersighted neersighted changed the title Poetry environment irrecoverably broken when installing multiple packages from git Poetry does not handle trailing slashes in Git urls Jan 10, 2023
@dimbleby
Copy link
Contributor

copying this comment from the other issue - I don't expect to do anything with this myself; but if anyone does care to take a look at it they might as well have this

Ah, it's the trailing slash on git = "/~https://github.com/instabase/opencensus-python/" - that causes poetry's Git.cls.get_name_from_source_url to get the wrong answer, from which the rest follows.

@abn
Copy link
Member

abn commented Mar 23, 2024

Unable to reproduce this issue with latest Poetry version. Closing for now. If issue still exists, please comment with additional information.

See logs below for successful install.

podman run --rm -i --entrypoint bash python:3.12 <<EOF
set -xe
python -m pip install --disable-pip-version-check -q poetry
install -d foobar
pushd foobar
cat > pyproject.toml <<TOML
[tool.poetry]
name = "api-server-apps"
version = "0.1.0"
description = ""
authors = []
readme = "README.md"
packages = []

[tool.poetry.dependencies]
python = "^3.12"
opencensus = {git = "/~https://github.com/instabase/opencensus-python", rev = "ec72cd39b431ec28ebcf72861852bccaef00c961"}
opencensus-ext-prometheus = {git = "/~https://github.com/instabase/opencensus-python/", rev = "ec72cd39b431ec28ebcf72861852bccaef00c961", subdirectory = "contrib/opencensus-ext-prometheus"}
"pdfminer.six" = {git = "/~https://github.com/instabase/pdfminer.six.public", rev = "47baa0dda534f8389a67c9c984c23b52bf4614e0"}


[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
TOML
poetry install
EOF
console.log

+ python -m pip install --disable-pip-version-check -q poetry
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+ install -d foobar
+ pushd foobar
/foobar /
+ cat
+ poetry install
Creating virtualenv api-server-apps-lWDpn5M1-py3.12 in /root/.cache/pypoetry/virtualenvs
Updating dependencies
Resolving dependencies...

Package operations: 21 installs, 0 updates, 0 removals

  - Installing pyasn1 (0.5.1)
  - Installing cachetools (5.3.3)
  - Installing certifi (2024.2.2)
  - Installing charset-normalizer (3.3.2)
  - Installing idna (3.6)
  - Installing protobuf (3.20.3)
  - Installing pyasn1-modules (0.3.0)
  - Installing rsa (4.9)
  - Installing urllib3 (2.2.1)
  - Installing google-auth (2.29.0)
  - Installing googleapis-common-protos (1.63.0)
  - Installing pycparser (2.21)
  - Installing requests (2.31.0)
  - Installing cffi (1.16.0)
  - Installing google-api-core (1.34.1)
  - Installing opencensus-context (0.2.dev0)
  - Installing cryptography (42.0.5)
  - Installing opencensus (0.8.dev0 ec72cd3)
  - Installing prometheus-client (0.20.0)
Installing /root/.cache/pypoetry/virtualenvs/api-server-apps-lWDpn5M1-py3.12/lib/python3.12/site-packages/opencensus/__init__.py over existing file
Installing /root/.cache/pypoetry/virtualenvs/api-server-apps-lWDpn5M1-py3.12/lib/python3.12/site-packages/opencensus/common/__init__.py over existing file
  - Installing opencensus-ext-prometheus (0.3.dev0 ec72cd3)
  - Installing pdfminer-six (20221210 47baa0d)
Installing /root/.cache/pypoetry/virtualenvs/api-server-apps-lWDpn5M1-py3.12/lib/python3.12/site-packages/opencensus/__init__.py over existing file

Writing lock file

Installing the current project: api-server-apps (0.1.0)

Warning: The current project could not be installed: [Errno 2] No such file or directory: '/foobar/README.md'
If you do not want to install the current project use --no-root.
If you want to use Poetry only for dependency management but not for packaging, you can disable package mode by setting package-mode = false in your pyproject.toml file.
In a future version of Poetry this warning will become an error!

@abn abn closed this as not planned Won't fix, can't repro, duplicate, stale Mar 23, 2024
@dimbleby
Copy link
Contributor

dimbleby commented Mar 23, 2024

the symptoms might have changed but get_name_from_source_url() is still broken for references that end in trailing slashes:

>>> from poetry.vcs.git.backend import Git
>>> Git.get_name_from_source_url("/~https://github.com/instabase/opencensus-python/")
''

eg after poetry lock on that pyproject.toml the git repository is wrongly cloned at the top-level ~/.virtualenvs/foo/src and not as it should be at ~/.virtualenvs/foo/src/opencensus-python. (Though in this very particular case both are there, because of the second git dependency pointing at the same repo without the trailing slash)

probably wants re-opening, anyway something should track this

dimbleby added a commit to dimbleby/poetry that referenced this issue Mar 23, 2024
dimbleby added a commit to dimbleby/poetry that referenced this issue Mar 23, 2024
@abn abn reopened this Mar 23, 2024
@abn abn closed this as completed in #9205 Mar 23, 2024
abn pushed a commit that referenced this issue Mar 23, 2024
neersighted pushed a commit to neersighted/poetry that referenced this issue Mar 24, 2024
radoering pushed a commit to neersighted/poetry that referenced this issue Apr 23, 2024
radoering pushed a commit that referenced this issue Apr 23, 2024
fixes #7326

(cherry picked from commit 7181557)
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
kind/bug Something isn't working as expected status/triage This issue needs to be triaged
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants