Packages¶
- 
class lsst.base.Packages(packages)¶
- Bases: - object- A table of packages and their versions. - There are a few different types of packages, and their versions are collected in different ways: - Run-time libraries (e.g., cfitsio, fftw): we get their version from interrogating the dynamic library
- Python modules (e.g., afw, numpy; galsim is also in this group even though
we only use it through the library, because no version information is
currently provided through the library): we get their version from the
__version__module variable. Note that this means that we’re only aware of modules that have already been imported.
- Other packages provide no run-time accessible version information (e.g., astrometry_net): we get their version from interrogating the environment. Currently, that means EUPS; if EUPS is replaced or dropped then we’ll need to consider an alternative means of getting this version information.
- Local versions of packages (a non-installed EUPS package, selected with
setup -r /path/to/package): we identify these through the environment (EUPS again) and use as a version the path supplemented with thegitSHA and, if the git repo isn’t clean, an MD5 of the diff.
 - These package versions are collected and stored in a Packages object, which provides useful comparison and persistence features. - Example usage: - from lsst.base import Packages pkgs = Packages.fromSystem() print("Current packages:", pkgs) old = Packages.read("/path/to/packages.pickle") print("Old packages:", old) print("Missing packages compared to before:", pkgs.missing(old)) print("Extra packages compared to before:", pkgs.extra(old)) print("Different packages: ", pkgs.difference(old)) old.update(pkgs) # Include any new packages in the old old.write("/path/to/packages.pickle") - Parameters: - Notes - This is essentially a wrapper around a dict with some conveniences. - Methods Summary - difference(other)- Get packages in symmetric difference of self and another - Packagesobject.- extra(other)- Get packages in self but not in another - Packagesobject.- fromSystem()- Construct a - Packagesby examining the system.- missing(other)- Get packages in another - Packagesobject but missing from self.- read(filename)- Read packages from filename. - update(other)- Update packages with contents of another set of packages. - write(filename)- Write to file. - Methods Documentation - 
difference(other)¶
- Get packages in symmetric difference of self and another - Packagesobject.- Parameters: - other : Packages
- Other packages to compare against. 
 - Returns: 
- other : 
 - 
extra(other)¶
- Get packages in self but not in another - Packagesobject.- Parameters: - other : Packages
- Other packages to compare against. 
 - Returns: 
- other : 
 - 
classmethod fromSystem()¶
- Construct a - Packagesby examining the system.- Determine packages by examining python’s - sys.modules, runtime libraries and EUPS.- Returns: - packages : Packages
 
- packages : 
 - 
missing(other)¶
- Get packages in another - Packagesobject but missing from self.- Parameters: - other : Packages
- Other packages to compare against. 
 - Returns: 
- other : 
 - 
classmethod read(filename)¶
- Read packages from filename. - Parameters: - filename : str
- Filename from which to read. 
 - Returns: - packages : Packages
 
- filename :