-
Notifications
You must be signed in to change notification settings - Fork 133
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
Feature/improve package info handling #161
base: master
Are you sure you want to change the base?
Feature/improve package info handling #161
Conversation
for the frequent need to install/uninstall pipsi, also useful for users who just want to uninstall/reinstall.
fix no scripts display when `list --versions`
re-org the relationship of the functions below: - save_package_info: receives data from installation process, use `make_package_info` to create the dict, save it to file - make_package_info: in charge of creating the package_info dict from scratch - get_package_info: if the json file exists, get and parse its data; if not, call `make_package_info` to get the dict Eventually, `get_package_info`'s behavior becomes consistent and predictable, so now we can use it in `list_everything` easily and intuitively.
pass the right scripts to `save_package_info`
as we already have get_package_info to provide us all we need, this function is just confusing and useless
to make it not so confusing when `normalize_package` exists
- move make_package_info to PackageInfo.create_from_venv_path - serialize/deserialize package info by PackageInfo methods to_json and create_from_json - get attributes by dot instead of slice
remove `from os.path import ...`, all functions are now referred by `os.path.xxx()`
because pipsi does not handle multiple version of a same package now, ultimately `pipsi install xxx=1.0.0` and `pipsi uninstall xxx=1.0.0` are seen as `xxx` package under the hood, so we should prompt `xxx is not installed`, `do you want to uninstall xxx` instead of `xxx=1.0.0` with version number.
rename to `list_package_infos`, change its return to list of PackageInfo, change the output rendering in `list_cmd`
I confirm this was the only way I got pipsi working. The command I used was a combination of #162 and this branch:
|
@mitsuhiko @RonnyPfannschmidt guys, reviewing of this project has been very inactivate recently, and I'm sad to see that. Pipsi is a very great tool, I personally use it a lot, I think it can make better difference, and it still has a lot of improvement space. I'm wondering if I can be one of the maintainers, I have at lease one day free to do open source coding each week. I really want to push pipsi forward, to release a stable and mature version for all the people who care about it. How do you think? Looking forward to your reply :) |
After installing Pipsi from this branch, I now have a functioning Pipsi installation which is backed by Python 3.6.6. I can also verify that the virtual environments are being made via the venv module instead of virtualenv. I'd love to see @reorx added as a maintainer and possibly a few others to help keep this project afloat. |
Thanks @reorx, the |
@reorx I did notice an issue however:
It seems like the file gets re-written with scripts that look like this: |
@sciyoshi hmm, I find that too, thanks for reporting, to make pipsi list work temporarily, you can change line 607 to |
change link_script method return to be list of dest path, this makes less confusion, and won't affect script when calling upgrade command
sort paths before removing so that files could be removed prior to dirs
@sciyoshi the new push should fix that issue, please check it out. For the infected It was a bug in |
I also got this issue when upgrading, which I was able to fix by removing and reinstalling. |
@sciyoshi could you try upgrading using the the updated version of this PR (ensure |
I was having issues upgrading pipsi installed packages (using master). I can confirm that this branch fixes those issues. |
Just wanted to note that I have started pipx which combines the functionality of pipsi and npx. I have implemented several of the features requested in pipsi, including upgrading all packages with one command ( I am actively responding to issues and PRs. Would love to hear what you think -- https://github.com/cs01/pipx. |
Goals:
package_info.json
) #124re-org the relationship of the functions below:
make_package_info
to create the dict, save it to filemake_package_info
to get the dictEventually,
get_package_info
's behavior becomes consistent and predictable, so now we can use it inlist_everything
easily and intuitively.Other changes:
uninstall-pipsi.py
script-e
to pip when runningget-pipsi.py .
list_everything
callTODO: