spacetelescope/verhawk

Name: verhawk

Owner: Space Telescope Science Institute

Description: A simple Python package version scanner.

Created: 2016-08-08 19:47:47.0

Updated: 2018-05-01 14:26:26.0

Pushed: 2018-05-01 14:26:25.0

Homepage:

Size: 11

Language: Python

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

What is verhawk?

A simple Python package version scanner.

What isn't verhawk?

A complex Python package version scanner. Verhawk does not account for every edge case, nor does it provide advanced filtering of any kind. For example, depending how modules are nested for each sub-package you may even encounter output such as "package.thing=module <module '/path/to/module/module.py'>", and it breaks JSON. In which case, use --exclude to remove the offending module from the output stream, or pipe verhawk through grep and filter such results, then convert the keypairs (module=version) manually.

These are known issues and unlikely to be addressed.

Usage
e: verhawk [-h] [-V] [-e EXCLUDE] [-v] [-j] [-p] [-r] parent_package

tional arguments:
rent_package

onal arguments:
, --help            show this help message and exit
, --version         Display version information
 EXCLUDE, --exclude EXCLUDE
                    Ignore sub-[package|module] by name.
, --verbose         Show packages without version data.
, --json            Emit JSON to stdout
, --packages-only   Ignore non-packages (i.e modules)
, --recursive       Descend into package looking for additional version
                    data.
Examples
Examining the top-level version of a package
rhawk drizzlepac
zlepac=2.1.5
Examining the top-level and all sub-packages (including modules)
rhawk -r drizzlepac
rtError(drizzlepac.mdriz): cannot import name 'AstroDrizzle'
zlepac=2.1.5
zlepac.ablot=2.1.5
zlepac.adrizzle=2.1.5
zlepac.astrodrizzle=2.1.5
zlepac.buildwcs=0.1.0
zlepac.createMedian=2.1.5
zlepac.drizCR=2.1.5
zlepac.imageObject=2.1.5
zlepac.imagefindpars=2.1.5
zlepac.linearfit=0.4.0
zlepac.mapreg=0.1
zlepac.minmed=2.1.5
zlepac.photeq=0.2
zlepac.pixreplace=0.1
zlepac.pixtopix=0.1
zlepac.pixtosky=0.1
zlepac.quickDeriv=2.1.5
zlepac.refimagefindpars=2.1.5
zlepac.regfilter=0.1
zlepac.resetbits=1.0.0
zlepac.runastrodriz=1.5.2
zlepac.sky=2.1.5
zlepac.skytopix=0.1
zlepac.tweakback=0.4.0
zlepac.tweakreg=1.4.3
zlepac.updatehdr=0.2.0
zlepac.updatenpol=1.1.0
zlepac.util=2.1.5
zlepac.version=2.1.5
Examining the top-level and all sub-packages (excluding modules)
izzlepac does not use sub-packages interally, as you can see.
ly the top-level is returned.

rhawk -r -p drizzlepac
zlepac=2.1.5
Examining the top-level and all sub-packages (with modules; with verbose mode)
rbose mode returns sub-packages and/or modules regardless if it defines '__version__'

rhawk -r -v drizzlepac
rtError(drizzlepac.mdriz): cannot import name 'AstroDrizzle'
zlepac=2.1.5
zlepac.ablot=2.1.5
zlepac.acsData=None
zlepac.adrizzle=2.1.5
zlepac.astrodrizzle=2.1.5
zlepac.buildmask=None
zlepac.buildwcs=0.1.0
zlepac.catalogs=None
zlepac.cdriz=None
zlepac.createMedian=2.1.5
zlepac.drizCR=2.1.5
zlepac.findobj=None
zlepac.imageObject=2.1.5
zlepac.imagefindpars=2.1.5
zlepac.imgclasses=None
zlepac.irData=None
zlepac.linearfit=0.4.0
zlepac.mapreg=0.1
zlepac.mdzhandler=None
zlepac.minmed=2.1.5
zlepac.nicmosData=None
zlepac.outputimage=None
zlepac.photeq=0.2
zlepac.pixreplace=0.1
zlepac.pixtopix=0.1
zlepac.pixtosky=0.1
zlepac.processInput=None
zlepac.quickDeriv=2.1.5
zlepac.refimagefindpars=2.1.5
zlepac.regfilter=0.1
zlepac.resetbits=1.0.0
zlepac.runastrodriz=1.5.2
zlepac.sky=2.1.5
zlepac.skytopix=0.1
zlepac.staticMask=None
zlepac.stisData=None
zlepac.tests=None
zlepac.tweakback=0.4.0
zlepac.tweakreg=1.4.3
zlepac.tweakutils=None
zlepac.updatehdr=0.2.0
zlepac.updatenpol=1.1.0
zlepac.util=2.1.5
zlepac.version=2.1.5
zlepac.wcs_functions=None
zlepac.wfc3Data=None
zlepac.wfpc2Data=None
Exporting to JSON
e "ImportError" is written to stderr, so redirecting stdout will not be an issue.

rhawk -r -j -v drizzlepac
rtError(drizzlepac.mdriz): cannot import name 'AstroDrizzle'
izzlepac": "2.1.5", "drizzlepac.ablot": "2.1.5", "drizzlepac.acsData": null, "drizzlepac.adrizzle": "2.1.5", "drizzlepac.astrodrizzle": "2.1.5", "drizzlepac.buildmask": null, "drizzlepac.buildwcs": "0.1.0", "drizzlepac.catalogs": null, "drizzlepac.cdriz": null, "drizzlepac.createMedian": "2.1.5", "drizzlepac.drizCR": "2.1.5", "drizzlepac.findobj": null, "drizzlepac.imageObject": "2.1.5", "drizzlepac.imagefindpars": "2.1.5", "drizzlepac.imgclasses": null, "drizzlepac.irData": null, "drizzlepac.linearfit": "0.4.0", "drizzlepac.mapreg": "0.1", "drizzlepac.mdzhandler": null, "drizzlepac.minmed": "2.1.5", "drizzlepac.nicmosData": null, "drizzlepac.outputimage": null, "drizzlepac.photeq": "0.2", "drizzlepac.pixreplace": "0.1", "drizzlepac.pixtopix": "0.1", "drizzlepac.pixtosky": "0.1", "drizzlepac.processInput": null, "drizzlepac.quickDeriv": "2.1.5", "drizzlepac.refimagefindpars": "2.1.5", "drizzlepac.regfilter": "0.1", "drizzlepac.resetbits": "1.0.0", "drizzlepac.runastrodriz": "1.5.2", "drizzlepac.sky": "2.1.5", "drizzlepac.skytopix": "0.1", "drizzlepac.staticMask": null, "drizzlepac.stisData": null, "drizzlepac.tests": null, "drizzlepac.tweakback": "0.4.0", "drizzlepac.tweakreg": "1.4.3", "drizzlepac.tweakutils": null, "drizzlepac.updatehdr": "0.2.0", "drizzlepac.updatenpol": "1.1.0", "drizzlepac.util": "2.1.5", "drizzlepac.version": "2.1.5", "drizzlepac.wcs_functions": null, "drizzlepac.wfc3Data": null, "drizzlepac.wfpc2Data": null}

nfirming stderr claim

rhawk -r -j -v drizzlepac > drizzle.json
rtError(drizzlepac.mdriz): cannot import name 'AstroDrizzle'

t drizzle.json
izzlepac": "2.1.5", "drizzlepac.ablot": "2.1.5", "drizzlepac.acsData": null, "drizzlepac.adrizzle": "2.1.5", "drizzlepac.astrodrizzle": "2.1.5", "drizzlepac.buildmask": null, "drizzlepac.buildwcs": "0.1.0", "drizzlepac.catalogs": null, "drizzlepac.cdriz": null, "drizzlepac.createMedian": "2.1.5", "drizzlepac.drizCR": "2.1.5", "drizzlepac.findobj": null, "drizzlepac.imageObject": "2.1.5", "drizzlepac.imagefindpars": "2.1.5", "drizzlepac.imgclasses": null, "drizzlepac.irData": null, "drizzlepac.linearfit": "0.4.0", "drizzlepac.mapreg": "0.1", "drizzlepac.mdzhandler": null, "drizzlepac.minmed": "2.1.5", "drizzlepac.nicmosData": null, "drizzlepac.outputimage": null, "drizzlepac.photeq": "0.2", "drizzlepac.pixreplace": "0.1", "drizzlepac.pixtopix": "0.1", "drizzlepac.pixtosky": "0.1", "drizzlepac.processInput": null, "drizzlepac.quickDeriv": "2.1.5", "drizzlepac.refimagefindpars": "2.1.5", "drizzlepac.regfilter": "0.1", "drizzlepac.resetbits": "1.0.0", "drizzlepac.runastrodriz": "1.5.2", "drizzlepac.sky": "2.1.5", "drizzlepac.skytopix": "0.1", "drizzlepac.staticMask": null, "drizzlepac.stisData": null, "drizzlepac.tests": null, "drizzlepac.tweakback": "0.4.0", "drizzlepac.tweakreg": "1.4.3", "drizzlepac.tweakutils": null, "drizzlepac.updatehdr": "0.2.0", "drizzlepac.updatenpol": "1.1.0", "drizzlepac.util": "2.1.5", "drizzlepac.version": "2.1.5", "drizzlepac.wcs_functions": null, "drizzlepac.wfc3Data": null, "drizzlepac.wfpc2Data": null}
Importing JSON data (Python 3.x)
rt json

 open('drizzle.json') as infile:
data = json.load(infile)

module, version in sorted(data.items()):
print('{0:.<30s}: {1}'.format(module, version))
Outputs
zlepac....................: 2.1.5
zlepac.ablot..............: 2.1.5
zlepac.acsData............: None
zlepac.adrizzle...........: 2.1.5
zlepac.astrodrizzle.......: 2.1.5
zlepac.buildmask..........: None
zlepac.buildwcs...........: 0.1.0
zlepac.catalogs...........: None
zlepac.cdriz..............: None
zlepac.createMedian.......: 2.1.5
zlepac.drizCR.............: 2.1.5
zlepac.findobj............: None
zlepac.imageObject........: 2.1.5
zlepac.imagefindpars......: 2.1.5
zlepac.imgclasses.........: None
zlepac.irData.............: None
zlepac.linearfit..........: 0.4.0
zlepac.mapreg.............: 0.1
zlepac.mdzhandler.........: None
zlepac.minmed.............: 2.1.5
zlepac.nicmosData.........: None
zlepac.outputimage........: None
zlepac.photeq.............: 0.2
zlepac.pixreplace.........: 0.1
zlepac.pixtopix...........: 0.1
zlepac.pixtosky...........: 0.1
zlepac.processInput.......: None
zlepac.quickDeriv.........: 2.1.5
zlepac.refimagefindpars...: 2.1.5
zlepac.regfilter..........: 0.1
zlepac.resetbits..........: 1.0.0
zlepac.runastrodriz.......: 1.5.2
zlepac.sky................: 2.1.5
zlepac.skytopix...........: 0.1
zlepac.staticMask.........: None
zlepac.stisData...........: None
zlepac.tests..............: None
zlepac.tweakback..........: 0.4.0
zlepac.tweakreg...........: 1.4.3
zlepac.tweakutils.........: None
zlepac.updatehdr..........: 0.2.0
zlepac.updatenpol.........: 1.1.0
zlepac.util...............: 2.1.5
zlepac.version............: 2.1.5
zlepac.wcs_functions......: None
zlepac.wfc3Data...........: None
zlepac.wfpc2Data..........: None

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.