Coder Social home page Coder Social logo

pippel's People

Contributors

arifer612 avatar brotzeit avatar licebmi avatar syohex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pippel's Issues

Pippel fails to list packages

I have a virtual environment that is activated when Emacs starts up using pyvenv-activate. This virtual environment used to be python version 3.4.x. In this environment pippel-list-packages worked fine. I have upgraded the virtual environment to 3.6.1, now pippel-list-packages doesn't work any more. The minibuffer just say 'Pip processing... " without anything else happening. There are no messages in the Messages buffer related to this. How can I debug this further?

Parsing of version failed

Hello,
It looks like you are using version-to-list to parse the packages' version but the version formats supported by Emacs are different from those of PEP 440.

For example, I have a package which seems to have a pre-release version (https://www.python.org/dev/peps/pep-0440/#pre-releases) incompatible with version to list.

I can see the following error in my *Messages* buffer:

error in process sentinel: version-to-list: Invalid version syntax: ‘0.30.0a0’

And the pippel-list-packages seems to have broken, it won't complete but the minibuffer is now inaccessible due to the "Pip processing..." message still being updated indefinitely.

I don't know if you should temper with version-regexp-alist or not.

And some positive feedback,
Great idea of packages! 👍

Add emacs version requirement

Not really an Issue but including the emacs version on the requirements would be sweet.
I tried to install it on emacs24.5.1 but to my surprise I got the following message

package-compute-transaction: Package `emacs-25.1' is unavailable

Minor issues

Thanks for the package.
I have some minor suggestions and not sure each is worth it's own ticket.

  • Setting pipple-package-path is somewhat inconvenient. E.g. now I have it to
    (setq pippel-package-path "~/.emacs.d/elpa/pippel-20170317.417/") but now I have to update my config each time pipple updates.
  • after pressing 'x' it would be nice if it would (like package-list-packages) say e.g. 'Install these 2 packages (package1, package2) and update these 5 (package1, ....)` Instead of just 'Perform pending operations'
  • After 'x' it should automatically reload the screen.. Otherwise I just see 'Pip finished' in the minibuffer but the menu looks like before.

Thanks

Pip 21.3 error

On Ubuntu 20.04.2 LTS, I installed pippel with use-package as follows:

(use-package pippel)

When I call M-x pippel-list-packages, I get the following message:

Pip error

See the following screenshot for details:

image

Any hints for this problem?

Regards,
HZ

[FEATURE] Unit tests and documentation

IDEA

Pippel should be able to test against released Pip versions to make sure it functions as it advertises. The results should be reflected in the README file in the form of a table for users to see. Any known failures (such as known yanked Pip releases) should be reflected appropriately.

Implementation

The main issue every time Pip is released is the compatibility of pippel.py with Pip. For that, all we need to check is whether through pippel.py, are we able to list, install, and uninstall arbitrary Python packages in isolated environments. A simple PyTest should do the trick. We can go about it in one of 2 ways:

  1. A monolithic test module where a single test script checks against all relevant Python and Pip versions at once and update the documentation. This can be done on any machine.
  2. GitHub Actions matrix where we test against all Python and Pip versions separately. This is done purely through CI/CD.

The documentation needs to be updated properly. If the first choice is picked above, it can be built rather easily on the same machine or by CI/CD. If, however, the second choice above is picked, the documentation has to be built together with the test results through CI/CD.

Option to save package location

Due to the environment I'm in, I need to be able to choose where to save packages. Ex:

pip install django -t lib

Saves django in directory lib.

Possible to implement or nah? Thanks for the package, I was working on creating one myself. Looks like you beat me to it \o/

How to work with virtualenv?

Hello,

I was wondering how to list the packages only from my virtualenv?

I have python-shell-virtualenv-root properly configured but it does not look like to be sufficient even if I saw some references to it in the code.

Loading of package list takes long and there is no feedback while loading

Thanks for this great package, it makes managing python packages a lot easier.

My only complaint is that the loading of package list takes long (on my computer, it's about 20 seconds long when pippel is launching for the first time) and most importantly, there is no way to tell if the command is running correctly. It's not that I can't wait for the list buffer to show, but I would think the command is not responding if there is no feedback.

IMHO, it would be nice to have some echo messages in the minibuffer or some visual indicator, like a progress bar in the mode line, to tell me that the command is running. What is your thought? Am I missing the whole picture? Please let me know.

[FEATURE] PyTest Pippel on new Pip release

This is part of the goal to fully automate the checks to keep Pippel up to date
with the latest pip versions. The way this should work is that a daily cron
job should check pip for a new tag release from their GitHub repository. If
there is indeed a new tag release, the PIP_VERSIONS file is to be updated and
the PyTest workflow is to be called. Only that specific pip version should be
checked if the Pippel version is not updated, to save on resources. Finally, the
README file should be updated with the new results.

This should ideally be written as a reusable workflow so that I can call it from
a single 'chores' workflow.

Pippel on msys2?

I'm using Emacs 26.1 on windows. In addition to that I use msys2.
I have installed python3 and pip using:
pacman -S python3-pip
pip3 install --upgrade pip

Now I can:

$python
Python 3.6.6 (default, Jun 28 2018, 10:27:26)
[GCC 7.3.0] on msys
Type "help", "copyright", "credits" or "license" for more information.

and

$pip list
Package    Version
---------- -------
appdirs    1.4.3
packaging  16.8
pip        10.0.1
pyparsing  2.2.0
setuptools 39.2.0
six        1.10.0

But when I M-x pippel-list-package I just get Pip processessing... | No output window, nothing. Disclaimer: I'm an absolute noob. I just want to get startet. Is setting up a virtual environment a requirement? I did nothing more than mentioned above.

"Pip processing" makes helm unusable

Now the "pip processing" is constantly updating the mini-buffer that helm wants to use for actions as well.. meaning I can't use any helm function (probably any function that uses the mini-buffer) while waiting for the message to disappear (which hangs right now, so I can't do anything :( )

"Pip error" when pip --version > 19.1.1

pippel-list-packages fails with "Pip Error" for versions > 19.1.1.

The workaround (for other readers) is to pin the version explicitly to the last working version:

pip install 'pip==19.1.1'

Cannot list system packages

I use following command to make a virtual environment so that system packages installed via sudo apt install will be available.

mkvirtualenv --system-site-packages env1

However, I found pippel cannot read those system packages:

Here is what I got when calling pip freeze

alabaster==0.7.7
apptools==4.3.0
attrs==15.2.0
autobahn==0.10.3
Babel==1.3
BeautifulSoup==3.2.1
blinker==1.3
ccsm==0.9.12.3
chardet==2.3.0
compizconfig-python==0.9.12.3
configglue==1.1.2
configobj==5.0.6
cryptography==1.2.3
cycler==0.9.0
debtags==2.0
decorator==4.0.6
defer==1.0.6
dirspec==13.10
docutils==0.12
duplicity==0.7.6
ecdsa==0.13
enum34==1.1.2
envisage==4.4.0
feedparser==5.1.3
futures==3.0.5
gitdb==0.6.4
GitPython==1.0.1
httplib2==0.9.1
idna==2.0
ipaddress==1.0.16
ipython==2.4.1
Jinja2==2.8
lockfile==0.12.2
lxml==3.5.0
lz4==0.7.0
Mako==1.0.3
MarkupSafe==0.23
matplotlib==1.5.1
mayavi==4.4.3
minieigen==0.5.3
mpi4py==1.3.1
msgpack-python==0.4.6
netifaces==0.10.4
numpy==1.11.0
oauthlib==1.0.3
oneconf==0.3.9
PAM==0.4.2
paramiko==1.16.0
pbr==4.0.0
pexpect==4.0.1
Pillow==3.1.2
piston-mini-client==0.7.5
protobuf==2.6.1
psutil==3.4.2
ptyprocess==0.5
pyasn1==0.1.9
pyasn1-modules==0.0.7
pycrypto==2.6.1
pycups==1.9.73
pycurl==7.43.0
pyface==4.5.2
Pygments==2.1
pygobject==3.20.0
pygpgme==0.3
pygraphviz==1.3.1
pygts==0.3.1
pyinotify==0.9.6
PyJWT==1.3.0
pyOpenSSL==0.15.1
pyparsing==2.0.3
pyparted==3.10.7
pyserial==3.0.1
pysmbc==1.0.15.5
Pyste==0.9.10
python-apt==1.1.0b1+ubuntu0.16.4.1
python-bibtex==1.2.7
python-dateutil==2.4.2
python-debian==0.1.27
python-snappy==0.5
python-xlib==0.14
pytz==2014.10
pyxdg==0.25
reportlab==3.3.0
roman==2.0.0
service-identity==16.0.0
setproctitle==1.1.8
simplegeneric==0.8.1
six==1.11.0
smmap==0.9.0
Sphinx==1.3.6
sphinx-rtd-theme==0.1.9
stevedore==1.28.0
traits==4.5.0
traitsui==4.5.1
trollius==2.0.1
Twisted==16.0.0
txaio==1.0.0
uTidylib==0.2
virtualenv==15.2.0
virtualenv-clone==0.3.0
virtualenvwrapper==4.8.2
wxPython==3.0.2.0
wxPython-common==3.0.2.0
zope.interface==4.1.3

And this is what pippel got:

image

Is there a way for pippel to show system packages?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.