Skip to content

podhmo/ppic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ppic

ppic is python package information collector.

how to use

if your environment is such as below.

$ pip freeze
SQLAlchemy==0.9.7

ppic command can collect information that need available updates are existed or not.

$ ppic sqlalchemy ansible
collection information .. takes at least 0.05 sec
{ 'packages': [ { 'name': 'SQLAlchemy',
                  '_previous_version': '0.9.7',
                  'version': '0.9.8',
                  'last_modified': '2014-10-13T17:16:15'},
                { 'name': 'ansible',
                  'version': '1.8.2',
                  'last_modified': '2014-12-04T23:16:25'}],
  'update_candidates': ["SQLAlchemy: '0.9.7' -> '0.9.8'"], # update is found.
  'new_install_candidates': ["ansible: '' -> '1.8.2'"]}  # ansible is not found in your environment

--installed option

--installed (or -i) option with ppic then collect all information in your in environment.

$ ppic --installed
collection information .. takes at least 0.00 sec
{ 'packages': [ { 'name': 'SQLAlchemy',
                  '_previous_version': '0.9.7',
                  'version': '0.9.8',
                  'last_modified': '2014-10-13T17:16:15'}],
  'update_candidates': ["SQLAlchemy: '0.9.7' -> '0.9.8'"], # update is found.
  'new_install_candidates': []}

--stable-only option

--stable-only (or -s) option with ppic then collecting stable version only(but this is heuristic aproach maybe wrong, maybe)

$ ppic django
collecting information .. takes at least 0.0 sec
{
  "packages": [
    {
      "name": "Django",
      "version": "1.8a1",
      "last_modified": "2015-01-16T22:25:13"
    }
  ],
  "update_candidates": [],
  "new_install_candidates": [
    "Django: '' -> '1.8a1'"
  ]
}
$ ppic django --stable-only
collecting information .. takes at least 0.0 sec
{
  "packages": [
    {
      "name": "Django",
      "version": "1.7.4",
      "last_modified": "2015-01-27T17:22:19"
    }
  ],
  "update_candidates": [],
  "new_install_candidates": [
    "Django: '' -> '1.7.4'"
  ]
}

--dependency option

--dependency (or -d) option with ppic then, collecting information in consideration of package dependency, so including dependents packages.

{
  "packages": [
    {
      "name": "PasteDeploy",
      "_previous_version": "1.5.2",
      "version": "1.5.2",
      "last_modified": "2013-12-27T17:41:02"
    },
    {
      "name": "WebOb",
      "_previous_version": "1.4",
      "version": "1.4",
      "last_modified": "2014-05-15T01:30:57"
    },
    {
      "name": "pyramid",
      "_previous_version": "1.5.1",
      "version": "1.5.2",
      "last_modified": "2014-11-10T05:06:15"
    },
    {
      "name": "repoze.lru",
      "_previous_version": "0.6",
      "version": "0.6",
      "last_modified": "2012-07-12T20:48:40"
    },
    {
      "name": "setuptools",
      "_previous_version": "3.6",
      "version": "12.1",
      "last_modified": "2015-02-11T01:16:43"
    },
    {
      "name": "translationstring",
      "_previous_version": "1.1",
      "version": "1.3",
      "last_modified": "2014-11-05T20:19:35"
    },
    {
      "name": "venusian",
      "_previous_version": "1.0",
      "version": "1.0",
      "last_modified": "2014-06-30T17:27:36"
    },
    {
      "name": "zope.deprecation",
      "_previous_version": "4.1.1",
      "version": "4.1.2",
      "last_modified": "2015-01-13T15:28:52"
    },
    {
      "name": "zope.interface",
      "_previous_version": "4.1.1",
      "version": "4.1.2",
      "last_modified": "2014-12-28T01:05:28"
    }
  ],
  "update_candidates": [
    "pyramid: '1.5.1' -> '1.5.2'",
    "setuptools: '3.6' -> '12.1'",
    "translationstring: '1.1' -> '1.3'",
    "zope.deprecation: '4.1.1' -> '4.1.2'",
    "zope.interface: '4.1.1' -> '4.1.2'"
  ],
  "new_install_candidates": [],
  "dependencies": [
    {
      "pyramid": [
        "setuptools",
        "WebOb",
        "repoze.lru",
        {
          "zope.interface": [
            "setuptools"
          ]
        },
        {
          "zope.deprecation": [
            "setuptools"
          ]
        },
        "venusian",
        "translationstring",
        "PasteDeploy"
      ]
    },
    {
      "zope.deprecation": [
        "setuptools"
      ]
    },
    {
      "zope.interface": [
        "setuptools"
      ]
    }
  ]
}

appendix: using with jq

$ ppic pyramid --dependency| jq .update_candidates
collecting information .. takes at least 0.4 sec
[
  "pyramid: '1.5.1' -> '1.5.2'",
  "setuptools: '3.6' -> '12.1'",
  "translationstring: '1.1' -> '1.3'",
  "zope.deprecation: '4.1.1' -> '4.1.2'",
  "zope.interface: '4.1.1' -> '4.1.2'"
]

About

tiny python package information collector.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages