With [CDMS](https://cdms.astro.uni-koeln.de/) removing the new Portal version, the downloading of the catalogs is broken. Until it's fixed (if ever), the functions are disabled. Currently, there is a hope of partial replacing the source of the data.
The CDMS data for an entry is available at `https://cdms.astro.uni-koeln.de/classic/entries/e032508.cat` and similar. The list of the species tags can be grepped from https://cdms.astro.uni-koeln.de/classic/entries/catdir.html or from https://cdms.astro.uni-koeln.de/classic/entries/partition_function.html; they are expected to be the same.
The list of species tags of the JPL catalog is at https://spec.jpl.nasa.gov//ftp//pub/catalog/catdir.cat. However, the species description, as at `https://spec.jpl.nasa.gov//ftp//pub/catalog/doc/d018004.cat`, is in TeX format and lacks the rich-text representations of the states.
CDMS also provides databases at https://cdms.astro.uni-koeln.de/cdms/portal/cdms_lite__official.db.gz and https://cdms.astro.uni-koeln.de/cdms/portal/cdms_lite.db.gz, which are in the SQLite format 3 and are equal in size (as of now).
python
import sqlite3
connection: sqlite3.Connection = sqlite3.connect("cdms_lite.db")
cursor: sqlite3.Cursor = connection.cursor()
cursor.execute("SELECT * FROM sqlite_master;")
print(*[t[-1] for t in cursor.fetchall()], sep='\n')
<details>
<summary>The result of the code above</summary>
sql
CREATE TABLE Transitions (
T_Name TEXT,
T_Frequency REAL,
T_Intensity REAL,
T_EinsteinA REAL,
T_Uncertainty REAL,
T_EnergyLower REAL,
T_UpperStateDegeneracy INTEGER,
T_NuclearSpinIsomer TEXT,
T_HFS TEXT,
T_Case TEXT,
T_UpperStateQuantumNumbers TEXT,
T_LowerStateQuantumNumbers TEXT)
CREATE TABLE Partitionfunctions (
PF_Name TEXT,
PF_VamdcSpeciesID TEXT,
PF_SpeciesID TEXT,
PF_NuclearSpinIsomer TEXT,
PF_HFS TEXT,
PF_1_072 REAL,
PF_1_148 REAL,
PF_1_230 REAL,
PF_1_318 REAL,
PF_1_413 REAL,
PF_1_514 REAL,
PF_1_622 REAL,
PF_1_738 REAL,
PF_1_862 REAL,
PF_1_995 REAL,
PF_2_138 REAL,
PF_2_291 REAL,
PF_2_455 REAL,
PF_2_630 REAL,
PF_2_725 REAL,
PF_2_818 REAL,
PF_3_020 REAL,
PF_3_236 REAL,
PF_3_467 REAL,
PF_3_715 REAL,
PF_3_981 REAL,
PF_4_266 REAL,
PF_4_571 REAL,
PF_4_898 REAL,
PF_5_000 REAL,
PF_5_248 REAL,
PF_5_623 REAL,
PF_6_026 REAL,
PF_6_457 REAL,
PF_6_918 REAL,
PF_7_413 REAL,
PF_7_943 REAL,
PF_8_511 REAL,
PF_9_120 REAL,
PF_9_375 REAL,
PF_9_772 REAL,
PF_10_471 REAL,
PF_11_220 REAL,
PF_12_023 REAL,
PF_12_882 REAL,
PF_13_804 REAL,
PF_14_791 REAL,
PF_15_849 REAL,
PF_16_982 REAL,
PF_18_197 REAL,
PF_18_750 REAL,
PF_19_498 REAL,
PF_20_893 REAL,
PF_22_387 REAL,
PF_23_988 REAL,
PF_25_704 REAL,
PF_27_542 REAL,
PF_29_512 REAL,
PF_31_623 REAL,
PF_33_884 REAL,
PF_36_308 REAL,
PF_37_500 REAL,
PF_38_905 REAL,
PF_41_687 REAL,
PF_44_668 REAL,
PF_47_863 REAL,
PF_51_286 REAL,
PF_54_954 REAL,
PF_58_884 REAL,
PF_63_096 REAL,
PF_67_608 REAL,
PF_72_444 REAL,
PF_75_000 REAL,
PF_77_625 REAL,
PF_83_176 REAL,
PF_89_125 REAL,
PF_95_499 REAL,
PF_102_329 REAL,
PF_109_648 REAL,
PF_117_490 REAL,
PF_125_893 REAL,
PF_134_896 REAL,
PF_144_544 REAL,
PF_150_000 REAL,
PF_154_882 REAL,
PF_165_959 REAL,
PF_177_828 REAL,
PF_190_546 REAL,
PF_204_174 REAL,
PF_218_776 REAL,
PF_225_000 REAL,
PF_234_423 REAL,
PF_251_189 REAL,
PF_269_153 REAL,
PF_288_403 REAL,
PF_300_000 REAL,
PF_309_030 REAL,
PF_331_131 REAL,
PF_354_813 REAL,
PF_380_189 REAL,
PF_407_380 REAL,
PF_436_516 REAL,
PF_467_735 REAL,
PF_500_000 REAL,
PF_501_187 REAL,
PF_537_032 REAL,
PF_575_440 REAL,
PF_616_595 REAL,
PF_660_693 REAL,
PF_707_946 REAL,
PF_758_578 REAL,
PF_812_831 REAL,
PF_870_964 REAL,
PF_933_254 REAL,
PF_1000_000 REAL,
PF_ResourceID TEXT,
PF_URL TEXT,
PF_Comment TEXT,
PF_Timestamp, PF_SPLAT_ID Integer, PF_SPLAT_NAME Text)
CREATE INDEX 'IDX_PF_Name' ON Partitionfunctions (PF_Name)
CREATE INDEX 'IDX_T_Name' ON Transitions (T_Name, T_Frequency, T_EnergyLower)
CREATE INDEX 'IDX_T_Frequency' ON Transitions (T_Frequency, T_EnergyLower)
</details>