Small pip update helpers.

Overview

pipdate

PyPi Version Anaconda Cloud PyPI pyversions GitHub stars PyPi downloads

gh-actions codecov Code style: black

pipdate is a collection of small pip update helpers. The command

pipdate
# or python3.9 -m pipdate

updates all your pip-installed packages. (Only works on Unix.)

There's a Python interface as well that can be used for update notifications. This

import pipdate

pipdate.check("matplotlib", "0.4.5")

will print

This can, for example, be used by package authors to notify users of upgrades of their own packages.

If you guard the check with

import pipdate

if pipdate.needs_checking("matplotlib"):
    print(pipdate.check("matplotlib", "0.4.5"), end="")

then it will be performed at most every k seconds, where k is specified in the config file $HOME/.config/pipdate/config.ini, e.g., once a day

[DEFAULT]
secondsbetweenchecks = 86400

Installation

pipdate is available from the Python Package Index, so simply type

pip install pipdate

Testing

To run the pipdate unit tests, check out this repository and type

pytest

License

This software is published under the GPLv3 license.

Comments
  • pipdate doesn't show update instructions on Mac platforms

    pipdate doesn't show update instructions on Mac platforms

    I'd love to use pipdate, but unfortunately, pipdate seems to only print the run pip install -U package_name message if the target is linux or linux2.

    For macOS, where sys.platform is darwin, it doesn't show update instructions, nor does the API provide any way to do so manually.

    Is this something that you're interested in adding? Thanks!

    opened by jtrivedi 2
  • Support specifying a timeout for network operations

    Support specifying a timeout for network operations

    I think libraries checking for a new version on import should do so either with a timeout or asynchronously. I've just experienced my code not working anymore, because as a concrete example I've tried to import meshio on a bad network and got stuck at this line https://github.com/nschloe/meshio/blob/0142bd97547a30538682c0701cce813dc2a85052/meshio/init.py#L20 .

    Of course it should be optional as it otherwise might constitute a breaking change. I guess testing this functionality is a bit difficult, an easy option would be try making a request to httpbin.org 's /delay/:n endpoint, or no test at all.

    opened by leoschwarz 2
  • On Raspbian, I get You must give at least one requirement to install (see

    On Raspbian, I get You must give at least one requirement to install (see "pip help install")

    I installed pipdated via

    $sudo pip3 install pipdated
    

    Then, running

    $sudo -H pipdate
    

    returns

    You must give at least one requirement to install (see "pip help install")
    

    But your module works fine on my Mac so I'm not really sure what's messing this up.

    opened by gilgameshskytrooper 2
  • marked string containing an umlaut as Unicode

    marked string containing an umlaut as Unicode

    I confess to finding working with Unicode a bit confusing, so this may not be the correct fix, but to successfully 'pip install' pygmsh which depends on this package, I had to prepend the u to the string to avoid the UnicodeDecodeError.

    opened by gdmcbain 2
  • pipdate 0.5.5 doesnt work

    pipdate 0.5.5 doesnt work

    i updated pipdate, but it always gives me ModuleNotFound errors. while pipdate 0.5.3 works perfectly, 0.5.5 doesnt. im using windows 10, python 3.9.6 x64bit

    opened by 0lm 1
  • Only update pip packages for the version of Python pipdate was installed to.

    Only update pip packages for the version of Python pipdate was installed to.

    Hi!

    I'm using linux-mint and am running 4 different versions of python on it. To not mess with the default packages I use the command Python3.7 -m pip install pipdate to install pipdate only for Python3.7 (and this is performed correctly as I see pipdate when I run python3.7 -m pip freeze.

    The issue is that I can not run pipdate using this approach, I have to run it as just pipdate in the terminal. It would be really helpful if I could run it in each instance of pip to update them seperately, such as python3.8 -m pipdate and python3.6 -m pipdate.

    opened by Fooughhy 1
  • Can't import pipdated (decoding error on author's name)

    Can't import pipdated (decoding error on author's name)

    Hello

    (I'm quite new to github, so it may not be the exact place to post this (sorry in that case...))

    When importing pipdated, I got an error due to encoding system : import pipdated

    Traceback (most recent call last):
      File "<pyshell#1>", line 1, in <module>
        import pipdated
      File "C:\Users\thomas.grandjean\Desktop\WinPython-32bit-2.7.10.3\python-2.7.10\lib\site-packages\pipdated\__init__.py", line 15, in <module>
        from pipdated.helpers import *
      File "C:\Users\thomas.grandjean\Desktop\WinPython-32bit-2.7.10.3\python-2.7.10\lib\site-packages\pipdated\helpers.py", line 34, in <module>
        _log_dir = appdirs.user_log_dir('pipdated', 'Nico Schlömer')
      File "C:\Users\thomas.grandjean\Desktop\WinPython-32bit-2.7.10.3\python-2.7.10\lib\site-packages\appdirs.py", line 351, in user_log_dir
        path = user_data_dir(appname, appauthor, version)
      File "C:\Users\thomas.grandjean\Desktop\WinPython-32bit-2.7.10.3\python-2.7.10\lib\site-packages\appdirs.py", line 84, in user_data_dir
        path = os.path.join(path, appauthor, appname)
      File "C:\Users\thomas.grandjean\Desktop\WinPython-32bit-2.7.10.3\python-2.7.10\lib\ntpath.py", line 85, in join
        result_path = result_path + p_path
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 9: ordinal not in range(128)
    

    I had to replace 'Nico Schlömer' by u'Nico Schlömer' in the helper.py file. Regards tgrandje

    opened by tgrandje 1
  • bug(platform): Windows support

    bug(platform): Windows support

    1. Summary

    pipdate doesn't support my Windows 10. In Scripts folder I get file pipdate, not pipdate.exe.

    Your setup.py part:

    'Operating System :: OS Independent',
    

    I think, that Windows must be support.

    2. Environment

    • Windows 10 Enterprise LTSB 64-bit EN,
    • Python 3.6.4,
    • pip 9.0.1,
    • pip-show 0.2.2.

    3. Steps to reproduce

    D:\Kristinita>pip install pipdate
    Collecting pipdate
      Using cached pipdate-0.2.2-py2.py3-none-any.whl
    Requirement already satisfied: requests in c:\python36\lib\site-packages (from pipdate)
    Requirement already satisfied: appdirs in c:\python36\lib\site-packages (from pipdate)
    Requirement already satisfied: urllib3<1.23,>=1.21.1 in c:\python36\lib\site-packages (from requests->pipdate)
    Requirement already satisfied: idna<2.7,>=2.5 in c:\python36\lib\site-packages (from requests->pipdate)
    Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\python36\lib\site-packages (from requests->pipdate)
    Requirement already satisfied: certifi>=2017.4.17 in c:\python36\lib\site-packages (from requests->pipdate)
    Installing collected packages: pipdate
    Successfully installed pipdate-0.2.2
    
    D:\Kristinita>pipdate
    'pipdate' is not recognized as an internal or external command,
    operable program or batch file.
    

    I move to C:\Python36\Scripts folder → pipdate and pipdate3 haven't Windows exe extension.

    pipdate

    4. Possible solution

    Possible, it would be nice, if you add console_scripts parameter to your setup.py.

    Thanks.

    opened by Kristinita 7
  • Support private PyPi servers

    Support private PyPi servers

    Great module but it's hardcoded to PyPi. This means it doesn't respect the links and link-url settings in ~/.config/pip/pip.conf.

    It would be nice to have this feature!

    opened by brettswift 0
Releases(0.5.6)
Owner
Nico Schlömer
Mathematics, numerical analysis, scientific computing, Python. Always interested in new problems.
Nico Schlömer
Stack BOF Protection Bypass Techniques

Stack Buffer Overflow - Protection Bypass Techniques

ommadawn46 18 Dec 28, 2022
SimplePyBLE - Python bindings for SimpleBLE

The ultimate fully-fledged cross-platform Python BLE library, designed for simplicity and ease of use.

Open Bluetooth Toolbox 27 Aug 28, 2022
Code needed for hybrid land cover change analysis for NASA IDS project

Documentation for the NASA IDS change analysis Poley 10/21/2021 Required python packages: whitebox numpy rasterio rasterio.mask os glob math itertools

Andrew Poley 2 Nov 12, 2021
This repository can help you made a PocketMine-MP Server with Termux apps!

Hello This GitHub repository can made you a Server PocketMine-MP On development! How to Install Open Termux Type "pkg install git && python" If python

1 Mar 04, 2022
Monitoring of lake dynamics

slamcore_utils Description This repo contains the slamcore-setup-dataset script. It can be used for installing a sample dataset for offline testing an

10 Jun 23, 2022
Run Windows Applications on Linux as if they are native, Use linux applications to launch files files located in windows vm without needing to install applications on vm. With easy to use configuration GUI

Run Windows Applications on Linux as if they are native, Use linux applications to launch files files located in windows vm without needing to install applications on vm. With easy to use configurati

Casu Al Snek 2k Jan 02, 2023
This is the course repository for the Spring 2022 iteration of MACS 30123 "Large-Scale Computing for the Social Sciences" at the University of Chicago.

Large-Scale Computing for the Social Sciences Spring 2022 - MACS 30123/MAPS 30123/PLSC 30123 Instructor Information TA Information TA Information Cour

6 May 06, 2022
resultados (data) de elecciones 2021 y código para extraer data de la ONPE

elecciones-peru-2021-ONPE Resultados (data) de elecciones 2021 y código para extraer data de la ONPE Data Licencia liberal, pero si vas a usarlo por f

Ragi Yaser Burhum 21 Jun 14, 2021
Zeus is an open source flight intellingence tool which supports more than 13,000+ airlines and 250+ countries.

Zeus Zeus is an open source flight intellingence tool which supports more than 13,000+ airlines and 250+ countries. Any flight worldwide, at your fing

DeVickey 1 Oct 22, 2021
Sequence clustering and database creation using mmseqs, from local fasta files

Sequence clustering and database creation using mmseqs, from local fasta files

Ana Julia Velez Rueda 3 Oct 27, 2022
Get the stats of a (or more) Hypixel player(s)

Hypixel_Stats Get the statistics of a (or more) Hypixel player(s) Who needs this? Everyone who plays a lot of Minecraft and often plays on mc.hypixel.

Finnomator 1 Feb 12, 2022
Sathal's Python Projects Repository

Sathal's Python Projects Repository Purpose and Motivation I come from a mainly C Programming Language background and have previous classroom experien

Sam 1 Oct 20, 2021
Aoc 2021 kedro playground with python

AOC 2021 Overview This is your new Kedro project, which was generated using Kedro 0.17.5. Take a look at the Kedro documentation to get started. Rules

1 Dec 20, 2021
Svg-turtle - Use the Python turtle to write SVG files

SaVaGe Turtle Use the Python turtle to write SVG files If you're using the Pytho

Don Kirkby 7 Dec 21, 2022
Airplane reservation system python 2

airplane-reservation-system-python-2 Announcement 🔊 : 🔴 IMPORTANT 🔴 : Few new things have been added into the code [16/05/2021] different names is

voyager2005 1 Dec 06, 2021
Data Orchestration Platform

Table of contents What is DOP Design Concept A Typical DOP Orchestration Flow Prerequisites - Run in Docker For DOP Native Features For DBT Instructio

Datatonic 61 Mar 04, 2022
1. 네이버 카페 댓글을 빨리 다는 기능

naver_autoprogram 기능 설명 네이버 카페 댓글을 빨리 다는 기능 네이버 카페 자동 출석 체크 기능 동작 방식 카페 댓글 기능 기본 동작은 주기적인 스케쥴 동작으로 해당 카페 ID 와 특정 API 주소로 대상이 새글을 작성했는지 체크. 해당 대상이 새글 등

1 Dec 22, 2021
Python language from the beginning.

Python For Beginners Python Programming Language ♦️ Python is a very powerful and user friendly programming language. ❄️ ♦️ There are some basic sytax

Randula Yashasmith Mawaththa 6 Sep 18, 2022
Files for QMC Workshop 2021

QMC Workshop 2021 This repository contains the presented slides and example files for the Quantum Monte Carlo (QMC) Workshop 5 October - 23 November,

QMCPACK 39 Nov 04, 2022
This library attempts to abstract the handling of Sigma rules in Python

This library attempts to abstract the handling of Sigma rules in Python. The rules are parsed using a schema defined with pydantic, and can be easily loaded from YAML files into a structured Python o

Caleb Stewart 44 Oct 29, 2022