LSST Applications g06d8191974+b5247657d3,g180d380827+b23588344e,g2079a07aa2+86d27d4dc4,g2305ad1205+0130fb9023,g29320951ab+7714a6b20a,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+8783ab7716,g48712c4677+72a8b1060b,g487adcacf7+bbaada240a,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ecccb6240b,g5a732f18d5+53520f316c,g5ea96fc03c+33ab2bc355,g64a986408d+b5247657d3,g858d7b2824+b5247657d3,g8a8a8dda67+585e252eca,g99cad8db69+1453026da9,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+3751ca9c65,gc120e1dc64+c91d1388df,gc28159a63d+0e5473021a,gc3e9b769f7+241adb7c58,gcf0d15dbbd+8783ab7716,gdaeeff99f8+f9a426f77a,ge6526c86ff+acdbe9a537,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+b5247657d3,w.2024.17
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
lsst.dax.apdb.versionTuple.VersionTuple Class Reference
Inheritance diagram for lsst.dax.apdb.versionTuple.VersionTuple:

Public Member Functions

VersionTuple fromString (cls, str versionStr)
 
bool checkCompatibility (self, VersionTuple database_version, bool update)
 
str __str__ (self)
 

Static Public Attributes

int major
 
int minor
 
int patch
 

Detailed Description

Class representing a version number.

Parameters
----------
major, minor, patch : `int`
    Version number components

Definition at line 42 of file versionTuple.py.

Member Function Documentation

◆ __str__()

str lsst.dax.apdb.versionTuple.VersionTuple.__str__ ( self)
Transform version tuple into a canonical string form.

Definition at line 119 of file versionTuple.py.

119 def __str__(self) -> str:
120 """Transform version tuple into a canonical string form."""
121 return f"{self.major}.{self.minor}.{self.patch}"

◆ checkCompatibility()

bool lsst.dax.apdb.versionTuple.VersionTuple.checkCompatibility ( self,
VersionTuple database_version,
bool update )
Compare implementation schema version with schema version in
database.

Parameters
----------
database_version : `VersionTuple`
    Version of the database schema.
update : `bool`
    If True then read-write access is expected.

Returns
-------
compatible : `bool`
    True if schema versions are compatible.

Notes
-----
This method implements default rules for checking schema compatibility:

    - if major numbers differ, schemas are not compatible;
    - otherwise, if minor versions are different then newer version can
      read schema made by older version, but cannot write into it;
      older version can neither read nor write into newer schema;
    - otherwise, different patch versions are totally compatible.

Definition at line 83 of file versionTuple.py.

83 def checkCompatibility(self, database_version: VersionTuple, update: bool) -> bool:
84 """Compare implementation schema version with schema version in
85 database.
86
87 Parameters
88 ----------
89 database_version : `VersionTuple`
90 Version of the database schema.
91 update : `bool`
92 If True then read-write access is expected.
93
94 Returns
95 -------
96 compatible : `bool`
97 True if schema versions are compatible.
98
99 Notes
100 -----
101 This method implements default rules for checking schema compatibility:
102
103 - if major numbers differ, schemas are not compatible;
104 - otherwise, if minor versions are different then newer version can
105 read schema made by older version, but cannot write into it;
106 older version can neither read nor write into newer schema;
107 - otherwise, different patch versions are totally compatible.
108 """
109 if self.major != database_version.major:
110 # different major versions are not compatible at all
111 return False
112 if self.minor != database_version.minor:
113 # different minor versions are backward compatible for read
114 # access only
115 return self.minor > database_version.minor and not update
116 # patch difference does not matter
117 return True
118

◆ fromString()

VersionTuple lsst.dax.apdb.versionTuple.VersionTuple.fromString ( cls,
str versionStr )
Extract version number from a string.

Parameters
----------
versionStr : `str`
    Version number in string form "X.Y.Z", all components must be
    present.

Returns
-------
version : `VersionTuple`
    Parsed version tuple.

Raises
------
ValueError
    Raised if string has an invalid format.

Definition at line 56 of file versionTuple.py.

56 def fromString(cls, versionStr: str) -> VersionTuple:
57 """Extract version number from a string.
58
59 Parameters
60 ----------
61 versionStr : `str`
62 Version number in string form "X.Y.Z", all components must be
63 present.
64
65 Returns
66 -------
67 version : `VersionTuple`
68 Parsed version tuple.
69
70 Raises
71 ------
72 ValueError
73 Raised if string has an invalid format.
74 """
75 try:
76 version = tuple(int(v) for v in versionStr.split("."))
77 except ValueError as exc:
78 raise ValueError(f"Invalid version string '{versionStr}'") from exc
79 if len(version) != 3:
80 raise ValueError(f"Invalid version string '{versionStr}', must consist of three numbers")
81 return cls(*version)
82

Member Data Documentation

◆ major

int lsst.dax.apdb.versionTuple.VersionTuple.major
static

Definition at line 51 of file versionTuple.py.

◆ minor

int lsst.dax.apdb.versionTuple.VersionTuple.minor
static

Definition at line 52 of file versionTuple.py.

◆ patch

int lsst.dax.apdb.versionTuple.VersionTuple.patch
static

Definition at line 53 of file versionTuple.py.


The documentation for this class was generated from the following file: