| 
    LSST Applications
    21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
    
   LSST Data Management Base Package 
   | 
 
Public Member Functions | |
| def | __init__ (self, packages) | 
| def | fromSystem (cls) | 
| def | fromBytes (cls, data, format) | 
| def | read (cls, filename) | 
| def | toBytes (self, format) | 
| def | write (self, filename) | 
| def | __len__ (self) | 
| def | __str__ (self) | 
| def | __repr__ (self) | 
| def | __contains__ (self, pkg) | 
| def | __iter__ (self) | 
| def | __eq__ (self, other) | 
| def | update (self, other) | 
| def | extra (self, other) | 
| def | missing (self, other) | 
| def | difference (self, other) | 
Static Public Attributes | |
| dictionary | formats | 
A table of packages and their versions.
There are a few different types of packages, and their versions are
collected in different ways:
1. Run-time libraries (e.g., cfitsio, fftw): we get their version from
   interrogating the dynamic library
2. 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.
3. 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.
4. 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
   the ``git`` SHA 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:
.. code-block:: python
    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
----------
packages : `dict`
    A mapping {package: version} where both keys and values are type `str`.
Notes
-----
This is essentially a wrapper around a dict with some conveniences.
 
Definition at line 262 of file packages.py.
| def lsst.base.packages.Packages.__init__ | ( | self, | |
| packages | |||
| ) | 
Definition at line 317 of file packages.py.
| def lsst.base.packages.Packages.__contains__ | ( | self, | |
| pkg | |||
| ) | 
Definition at line 438 of file packages.py.
| def lsst.base.packages.Packages.__eq__ | ( | self, | |
| other | |||
| ) | 
Definition at line 444 of file packages.py.
| def lsst.base.packages.Packages.__iter__ | ( | self | ) | 
Definition at line 441 of file packages.py.
| def lsst.base.packages.Packages.__len__ | ( | self | ) | 
Definition at line 424 of file packages.py.
| def lsst.base.packages.Packages.__repr__ | ( | self | ) | 
Definition at line 435 of file packages.py.
| def lsst.base.packages.Packages.__str__ | ( | self | ) | 
Definition at line 427 of file packages.py.
| def lsst.base.packages.Packages.difference | ( | self, | |
| other | |||
| ) | 
Get packages in symmetric difference of self and another `Packages`
object.
Parameters
----------
other : `Packages`
    Other packages to compare against.
Returns
-------
difference : `dict`
    Packages in symmetric difference.  Keys (type `str`) are package
    names; values (type `str`) are their versions.
 
Definition at line 497 of file packages.py.
| def lsst.base.packages.Packages.extra | ( | self, | |
| other | |||
| ) | 
Get packages in self but not in another `Packages` object.
Parameters
----------
other : `Packages`
    Other packages to compare against.
Returns
-------
extra : `dict`
    Extra packages. Keys (type `str`) are package names; values
    (type `str`) are their versions.
 
Definition at line 465 of file packages.py.
| def lsst.base.packages.Packages.fromBytes | ( | cls, | |
| data, | |||
| format | |||
| ) | 
Construct the object from a byte representation.
Parameters
----------
data : `bytes`
    The serialized form of this object in bytes.
format : `str`
    The format of those bytes. Can be ``yaml`` or ``pickle``.
 
Definition at line 341 of file packages.py.
| def lsst.base.packages.Packages.fromSystem | ( | cls | ) | 
Construct a `Packages` by examining the system. Determine packages by examining python's `sys.modules`, runtime libraries and EUPS. Returns ------- packages : `Packages`
Definition at line 323 of file packages.py.
| def lsst.base.packages.Packages.missing | ( | self, | |
| other | |||
| ) | 
Get packages in another `Packages` object but missing from self.
Parameters
----------
other : `Packages`
    Other packages to compare against.
Returns
-------
missing : `dict`
    Missing packages. Keys (type `str`) are package names; values
    (type `str`) are their versions.
 
Definition at line 481 of file packages.py.
| def lsst.base.packages.Packages.read | ( | cls, | |
| filename | |||
| ) | 
Read packages from filename.
Parameters
----------
filename : `str`
    Filename from which to read. The format is determined from the
    file extension.  Currently support ``.pickle``, ``.pkl``
    and ``.yaml``.
Returns
-------
packages : `Packages`
 
Definition at line 362 of file packages.py.
| def lsst.base.packages.Packages.toBytes | ( | self, | |
| format | |||
| ) | 
Convert the object to a serialized bytes form using the
specified format.
Parameters
----------
format : `str`
    Format to use when serializing. Can be ``yaml`` or ``pickle``.
Returns
-------
data : `bytes`
    Byte string representing the serialized object.
 
Definition at line 385 of file packages.py.
| def lsst.base.packages.Packages.update | ( | self, | |
| other | |||
| ) | 
Update packages with contents of another set of packages.
Parameters
----------
other : `Packages`
    Other packages to merge with self.
Notes
-----
No check is made to see if we're clobbering anything.
 
Definition at line 450 of file packages.py.
| def lsst.base.packages.Packages.write | ( | self, | |
| filename | |||
| ) | 
Write to file.
Parameters
----------
filename : `str`
    Filename to which to write. The format of the data file
    is determined from the file extension. Currently supports
    ``.pickle`` and ``.yaml``
 
Definition at line 406 of file packages.py.
      
  | 
  static | 
Definition at line 313 of file packages.py.