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
Stop python warnings, no matter what!

SHUTUP - Stop python warnings, no matter what! Sometimes you just can't mute python warnings. Use this library to solve this. Installation pip install

80 Jan 04, 2023
Este projeto se trata de uma análise de campanhas de marketing de uma empresa que vende acessórios para veículos.

Marketing Campaigns Este projeto se trata de uma análise de campanhas de marketing de uma empresa que vende acessórios para veículos. 1. Problema A em

Bibiana Prevedello 1 Jan 12, 2022
A Python program that generates a maze that solves itself using DFS

Maze Generator And Solver Program Purpose: Generates a maze that then solves itself Language: Python and Pygame Algorithm: Randomized DFS / Floodfill

Joshua Liu 1 Jul 25, 2022
Cirq is a Python library for writing, manipulating, and optimizing quantum circuits and running them against quantum computers and simulators

Cirq is a Python library for writing, manipulating, and optimizing quantum circuits and running them against quantum computers and simulators. Install

quantumlib 3.6k Jan 07, 2023
A script to automatically update bot status at GitHub as well as in Telegram channel.

A simple & short repository to show your bot's status in your GitHub README.md file as well as in you channel.

Jainam Oswal 55 Dec 13, 2022
All solutions for the 2021 Advent of Code event.

Advent of Code 2021 Solutions All solutions for the 2021 Advent of Code event. Setup Create a file called .session. Go to adventofcode.com and copy th

Bruce Berrios 6 Dec 26, 2021
Implementation of the MDMC method to search for magnetic ground state using VASP

Implementation of MDMC method ( by Olga Vekilova ) to search for magnetic ground state using VASP

Utkarsh Singh 1 Nov 27, 2021
Beatsaber for Python

beatsaber Beatsaber for Python It was automatically generated with mkpylib. If you're reading this message, it m

Shawn Presser 3 Jul 30, 2021
Eatlocal - This package helps users solve PyBites code challenges on their local machine

eatlocal This package helps the user solve Pybites code challenges locally. Inst

Russell 0 Jul 25, 2022
Make your Discord Account Online 24/7!

Online-Forever Make your Discord Account Online 24/7! A Code written in Python that helps you to keep your account 24/7. The main.py is the main file.

SealedSaucer 0 Mar 16, 2022
Project5 Data processing system

Project5-Data-processing-system User just needed to copy both these file to a folder and open Project5.py using cmd or using any python ide. It is to

1 Nov 23, 2021
Replit theme sync; Github theme sync but in Replit.

This is a Replit theme sync, basically meaning that it keeps track of the current time (which may need to be edited later on), and if the time passes morning, afternoon, etc, the theme switches. The

Glitch 8 Jun 25, 2022
Lightweight and Modern kernel for VK Bots

This is the kernel for creating VK Bots written in Python 3.9

Yrvijo 4 Nov 21, 2021
My Solutions to 120 commonly asked data science interview questions.

Data_Science_Interview_Questions Introduction 👋 Here are the answers to 120 Data Science Interview Questions The above answer some is modified based

Milaan Parmar / Милан пармар / _米兰 帕尔马 181 Dec 31, 2022
An improved version of the common ˙pacman -S˙

BetterPacmanLook An improved version of the common pacman -S. Installation I know that this is probably one of the worst solutions and i will be worki

1 Nov 06, 2021
sawa (ꦱꦮ) is an open source programming language, an interpreter to be precise, where you can write python code using javanese character.

ꦱꦮ sawa (ꦱꦮ) is an open source programming language, an interpreter to be precise, where you can write python code using javanese character. sawa iku

Rony Lantip 307 Jan 07, 2023
Custom python interface to xstan (a modified (cmd)stan)

Custom python interface to xstan (a modified (cmd)stan) Use at your own risk, currently everything is very brittle and will probably be changed in the

2 Dec 16, 2021
pyToledo is a Python library to interact with the common virtual learning environment for the Association KU Leuven (Toledo).

pyToledo pyToledo is a Python library to interact with the common virtual learning environment for the Association KU Leuven a.k.a Toledo. Motivation

Daan Vervacke 5 Jan 03, 2022
免杀shellcode加载器

bypassAV 条件触发式远控 VT 5/70 免杀国内杀软及defender、卡巴斯基等主流杀软 原理 https://pureqh.top/?p=5412 use 将shellcode填至go_shellcode_encode.py生成混淆后的base64 payload 然后将生成的payl

405 Dec 14, 2022
Secret santa is a fun and easy way to get together with your friends and/or family with a gift for them.

Vaccine Validator Tool to validate domestic New Zealand vaccine passes Create a new virtual environment: python3 -m venv ./venv Activate virtual envi

2 Dec 06, 2021