LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
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: