1. 18 Sep, 2022 2 commits
  2. 17 Sep, 2022 9 commits
    • update env remove logic (#6195) · 2def3571
      Resolves: #6018 
      
      1. Added a check so that if `python` argument is a file (then it should
      be a python path) - extract it's venv name and raise `IncorrectEnvError`
      if it doesn't belong to this project
          **Before**
          ```
      └❯ poetry env remove
      ~/.cache/pypoetry/virtualenvs/different-project-OKfJHH_5-py3.10/bin/python
          /bin/sh: 1: different-project-OKfJHH_5-py3.10: not found
      
      Deleted virtualenv: ~/.cache/pypoetry/virtualenvs/poetry-4pWfmigs-py3.10
          ```
          Removes current project's env, which is wrong.
          **After**
          ```
      └❯ poetry env remove
      ~/.cache/pypoetry/virtualenvs/different-project-OKfJHH_5-py3.10/bin/python
      
      Env different-project-OKfJHH_5-py3.10 doesn't belong to this project.
          ```
      2. Added the exact same check as before ^, but for cases where env name
      is passed.
          **Before**
          ```
          └❯ poetry env remove different-project-OKfJHH_5-py3.10      
           /bin/sh: 1: different-project-OKfJHH_5-py3.10: not found
      
      Command different-project-OKfJHH_5-py3.10 -c "import sys;
      print('.'.join([str(s) for s in sys.version_info[:3]]))" errored with
      the following return code 127, and output:
          ```
      Errors while trying to exec env name as an interpreter, error is not
      clear.
          **After**
          ```
      └❯ poetry env remove different-project-OKfJHH_5-py3.10
      
      Env different-project-OKfJHH_5-py3.10 doesn't belong to this project.
          ```
      3. Added a couple of tests for **new** and for **old** scenarios which
      weren't tested.
      4. Added `venv_name` fixture for `tests/utils` directory to use in
      `test_env`. Also replaced some of `"simple-project"` hardcoded value to
      use `poetry.package.name`
      
      It's up to maintainers to choose what they want for this project - I'm
      happy either way if we at least fix the bug. I can remove/change any of
      the stuff I added on top of the fix. But yeah I just decided that if we
      fix the bug, we might also make some improvements/changes in this area
      of code. Any thoughts on this are welcome, thanks!
      Alexey committed
    • Avoid the deprecated JSON API (#6081) · b61a4ddb
      Resolves #6076 
      
      I've taken the JSON version of the simple API and converted it into a
      `LinkSource` so that the package-finding logic in the `PyPiRepository`
      is very similar to - but annoyingly not quite the same as! - the
      `LegacyRepository`.
      
      I've also taken the opportunity to refactor the `LegacyRepository` ever
      so slightly to emphasise that similarity. I think I've probably fixed a
      small bug re caching and pre-releases: previously the processing for
      ignored pre-releases was skipped when reading from the cache.
      
      I believe this change will tend to be a modest performance hit. Eg
      consider a package like `cryptography`, for which there are maybe a
      couple of dozen downloads available at each release: to get the
      available versions we now have to iterate over each of those files and
      parse their names, rather than simply reading the answer.
      
      However if the API that poetry currently uses is truly deprecated I see
      little choice but to suck that up - or risk being in an awkward spot
      when it is turned off. cf #5970, but worse.
      
      Most of the changes are in the test fixtures:
      - unversioned fixtures were generated from the existing fixtures: I
      didn't want to download fresh data and start getting different answers
      than the tests were expecting
      - new versioned fixtures were downloaded fresh
      David Hotham committed
    • ci: use flake8-pie (#6164) · c1aff5c9
      Relates-to: #4776 
      
      Adding the hook leads to four new warnings for the repo.
      -
      [PIE803](https://github.com/sbdchd/flake8-pie#pie803-prefer-logging-interpolation):
      prefer-logging-interpolation
      This check produces false positives (`debug()` calls are always flagged
      as if they belong to a logger). PR ignores such instances and fixes the
      rest.
      -
      [PIE786](https://github.com/sbdchd/flake8-pie#pie786-precise-exception-handlers):
      precise-exception-handlers
      PR ignores instances where the intention is indeed to catch any
      exceptions and fixes the rest.
      -
      [PIE798](https://github.com/sbdchd/flake8-pie#pie798-no-unnecessary-class):
      no-unnecessary-class
      All instances are ignored via an additional entry in flake8 config.
      Alp Arıbal committed
    • refactor(uploader): don't use normalize_version() or escape_version() (#6476) · a14a93d9
      When you already have a `Version` in hand,
      `normalize_version(version.text)` is a very roundabout way of calling
      `version.to_string()`: it re-parses the version text to give you the
      same `Version` you already had and then calls `to_string()` on that.
      
      https://github.com/python-poetry/poetry-core/blob/37cee90a5dd4c7ee2c5ee836216ba813242b3ade/src/poetry/core/utils/helpers.py#L27-L28
      
      Then calling `escape_version()` on such a version is actually
      counter-productive, per #6466.
      
      Similar changes can and should be made over in poetry-core, but it
      should be safe to merge this before that is done.
      David Hotham committed
    • solver: make results of `poetry update` more deterministic and similar to results of `poetry lock` · 4914c265
      When running `poetry lock`, dependencies with less candidates are chosen first.
      Prior to this change when running `poetry update`, all whitelisted dependencies (aka `use_latest`) got the same priority which results in a more or less random resolution order.
      Randy Döring committed
    • chore: post 1.2.1 cleanup · ebee342c
      Randy Döring committed
  3. 16 Sep, 2022 2 commits
  4. 15 Sep, 2022 2 commits
  5. 14 Sep, 2022 2 commits
  6. 13 Sep, 2022 1 commit
  7. 12 Sep, 2022 2 commits
  8. 11 Sep, 2022 3 commits
  9. 10 Sep, 2022 1 commit
  10. 09 Sep, 2022 3 commits
  11. 08 Sep, 2022 2 commits
  12. 07 Sep, 2022 1 commit
  13. 06 Sep, 2022 5 commits
    • Fix shell activation for zsh (#5795) · 28d0175d
      # Fix Shell Activation For ZSH
      
      This PR resolves an issue wherein poetry will clear the `PATH` on zsh.
      The activation script contains a number of if statements of the
      following form:
      
      ```bash
          # ...
          if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then
              PATH="$_OLD_VIRTUAL_PATH"
              export PATH
              unset _OLD_VIRTUAL_PATH
          fi
      ```
      These constructs are valid in bash, although zsh fails to negate the
      conditional except when placed in emulation mode:
      
      ```zsh
      # Causes PATH to be cleared, leading to other issues
      . /home/alecto/.cache/pypoetry/virtualenvs/poetry-E-aAiPjf-py3.10/bin/activate
      ```
      
      When bash is used as an emulator to source the script, it functions
      correctly:
      
      ```zsh
      # Functions correctly
      emulate bash -c '. /home/alecto/.cache/pypoetry/virtualenvs/poetry-E-aAiPjf-py3.10/bin/activate'
      ```
      
      It's important to note that this doesn't place the *entire* shell into
      bash emulation mode; only the activate script is sourced as bash.
      
      Any guidance on what tests should be added for this PR would be
      appreciated.
      
      Co-authored-by: Alecto Irene Perez <alecto.perez@voladynamics.com>
      Co-authored-by: Bartosz Sokorski <b.sokorski@gmail.com>
      Alecto Irene Perez committed
    • fix: write to stderr in utils.env · 47255c44
      This is a quick fix to avoid polluting stdout unexpectedly when Poetry's
      environment management comes into play.
      
      It's apparent from how much the complexity of this file has grown that
      this needs to be refactored moderately, as well as each major class
      deserving its own source file.
      
      Future work should also include a rethink of how IO objects are passed
      around the codebase, how we reason about verbosity at a function level,
      and how code is re-used -- one command may wish to output to stdout, but
      if that code is reused by another command, the calculus of what is
      command output and what is informative (or even needs to be hidden/shown
      based on verbosity level) changes.
      
      Work on output would likely have to be fairly comprehensive and
      invasive, but things have grown complex enough that a top-down design
      pass is likely the best route.
      
      Regardless, this is a simple change today, and low risk. Resolves #6427.
      Bjorn Neergaard committed
    • [pre-commit.ci] pre-commit autoupdate (#6414) · 40780824
      <!--pre-commit.ci start-->
      updates:
      - [github.com/psf/black: 22.6.0 → 22.8.0](https://github.com/psf/black/compare/22.6.0...22.8.0)
      <!--pre-commit.ci end-->
      
      Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
      pre-commit-ci[bot] committed
  14. 05 Sep, 2022 3 commits
  15. 04 Sep, 2022 2 commits