* Upgrade `pythonfinder==2.1.0`
* Try to normalize on using pathlib basics and storing string paths in dataclass to compare against.
* Completely remove posix path conversions.
* Round 2 of pydantic conversions -- pydantic removal from pipenv.
* Add news fragment
* Refactor this path logic to file url bug and re-use relative pathing logic.
* Handle case where the drive letter is different and so relative path may not be possible
* Add news fragment
Currently these fail. Will be fixed shortly in the next patch.
Pipfiles can contain different formats for package specifications.
Current default behaivour is to sort packages into groups - all string values will be sorted first, followed by all dictionary values. e.g.
```
aa = "*"
bb = "*"
cc = "*"
aaa = {version = "*"}
bbb = {version = "*"}
ccc = {version = "*"}
```
This will have to be fixed.
When installing any package, sort all package names alphabetically inside the category, for easier reading.
Unsure if this is the best place or way to implement.
Small prototype to add to discussion in https://github.com/pypa/pipenv/issues/5964
Tests:
before patch:
```
AssertionError: assert ['atomicwrite...ama', 'build'] == ['atomicwrite...', 'colorama']
At index 1 diff: 'colorama' != 'build'
Full diff:
- ['atomicwrites', 'build', 'colorama']
? ---------
+ ['atomicwrites', 'colorama', 'build']
? +++++++++
```
after patch: pass.
* Solving issue 5934 where slashes or other less usual symbols in vcs refs were not being interpreted correctly.
* add some new unit-style integration tests
* Attempt to fix the local/editable file installs
* More refinements to handling directories vs files and when it is relative vs not
* Add back missing egg fragment (I removed it during the initial removal of requirementslib). Also fix the latest ruff error.
* Move away from requirementslib models
* Revise test since PEP-440 does not support wildcard versions but does support equivalent compatible release specifiers.
* simplify and remove dead code
* Ensure the os_name marker is AND with the other markers.
* Move what we still need from requirementslib into the pipenv utils and stop vendoring it.
* Remove requirementslib.
* force upgrade of virtualenv for python 3.12
* remove virtualenv-clone
* Update vcs specifiers documentation; infer name from specific pip line formats where possible.
* Provide helpful text and error for recently removed commands
* Set the right log levels and verbosity to show users the errors generated by pip resolver when supplying -v flag
* Fix the collection of all matching package hashes for non-pypi indexes. Plus lesson from testing torch which contains local identifiers.
We get this when we have subtables that do not
directly follow their parent table.
Fixes: #5794
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>