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
A common, beautiful interface to tabular data, no matter the format

rows No matter in which format your tabular data is: rows will import it, automatically detect types and give you high-level Python objects so you can

Álvaro Justen 834 Jan 03, 2023
Check bookings for TUM libraries.

TUM Library Checker Only for educational purposes This repository contains a crawler to save bookings for TUM libraries in a CSV file. Sample data fro

Leon Blumenthal 3 Jan 27, 2022
This interactive script demonstrates the Menezes-Vanstone-EC-Cryptosystem

Menezes-Vanstone-EC-Cryptosystem This interactive script demonstrates the Meneze

Nishaant Goswamy 1 Jan 02, 2022
BlackMamba is a multi client C2/post exploitation framework

BlackMamba is a multi client C2/post exploitation framework with some spyware features. Powered by Python 3.8.6 and QT Framework.

Gustavo 873 Dec 29, 2022
A modern Python build backend

trampolim A modern Python build backend. Features Task system, allowing to run arbitrary Python code during the build process (Planned) Easy to use CL

Filipe Laíns 39 Nov 08, 2022
Get information about what a Python frame is currently doing, particularly the AST node being executed

executing This mini-package lets you get information about what a frame is currently doing, particularly the AST node being executed. Usage Getting th

Alex Hall 211 Jan 01, 2023
PyWorkflow(PyWF) - A Python Binding of C++ Workflow

PyWorkflow(PyWF) - A Python Binding of C++ Workflow 概览 C++ Workflow是一个高性能的异步引擎,本项目着力于实现一个Python版的Workflow,让Python用户也能享受Workflow带来的绝佳体验。

Sogou-inc 108 Dec 01, 2022
A small program to vote for Councilors at 42 Heilbronn.

This Docker container is build to run on server an provide an easy to use interface for every student to vote for their councillors. To run docker on

Kevin Hirsig 2 Jan 17, 2022
Advent of Code 2021 challenges

Data analysis Document here the project: AoC21 Description: Project Description Data Source: Type of analysis: Please document the project the better

Daniel Wendel 1 Jan 07, 2022
This script provides LIVE feedback for On-The-Fly data collection with RELION

README This script provides LIVE feedback for On-The-Fly data collection with RELION (very useful to explore already processed datasets too!) Creating

cryoEM CNIO 6 Jul 14, 2022
A simple weather app.

keather A simple weather app. This is currently not finished. Dependencies: yay -S python-beautifulsoup4 tk

1 Jan 09, 2022
Vehicle Identification Speed Detection (VISD) extracts vehicle information like License Plate number, Manufacturer and colour from a video and provides this data in the form of a CSV file

Vehicle Identification Speed Detection (VISD) extracts vehicle information like License Plate number, Manufacturer and colour from a video and provides this data in the form of a CSV file. VISD can a

6 Feb 22, 2022
AlexaUsingPython - Alexa will pay attention to your order, as: Hello Alexa, play music, Hello Alexa

AlexaUsingPython - Alexa will pay attention to your order, as: Hello Alexa, play music, Hello Alexa, what's the time? Alexa will pay attention to your order, get it, and afterward do some activity as

Abubakar Sattar 10 Aug 18, 2022
InfiniPy has some neat features - like the endpoint for function

InfiniPy has some neat features - like the endpoint for function

ZeroTwo 7 Nov 20, 2022
A deployer and package manager for OceanBase open-source software.

OceanBase Deploy OceanBase Deploy (简称 OBD)是 OceanBase 开源软件的安装部署工具。OBD 同时也是包管理器,可以用来管理 OceanBase 所有的开源软件。本文介绍如何安装 OBD、使用 OBD 和 OBD 的命令。 安装 OBD 您可以使用以下方

OceanBase 59 Dec 27, 2022
Python module used to generate random facts

Randfacts is a python library that generates random facts. You can use randfacts.get_fact() to return a random fun fact. Disclaimer: Facts are not gua

Tabulate 14 Dec 14, 2022
A novel dual model approach for categorization of unbalanced skin lesion image classes (Presented technical paper 📃)

A novel dual model approach for categorization of unbalanced skin lesion image classes (Presented technical paper 📃)

1 Jan 19, 2022
Un script en python qui permet d'automatique bumpée (disboard.org) tout les 2h

auto-bumper Un script en python qui permet d'automatique bumpée (disboard.org) tout les 2h Pour la première utilisation, 1.Lancer Install.bat 2.(faire

!! 1 Jan 09, 2022
Easy Alias's for bash

easy-alias Easy Alias's for bash Setup Your system needs to have 'echo' which every 21st century computer has You dont need any python requirments but

Hashm 2 Jan 18, 2022
This is an independent project to track Nubank expenses

Nubank expense tracker This is an independent project to track Nubank expenses. To fetch Nubank data we are going to use an unofficial Nubank API, tha

Ramon Gazoni Lacerda 0 Aug 28, 2022