22
33from dataclasses import dataclass
44from datetime import date , datetime
5- from typing import Optional
65
76__author__ = "Jayaram Kancherla"
87__copyright__ = "Jayaram Kancherla"
@@ -14,18 +13,18 @@ class TxDbRecord:
1413 """Container for a single TxDb entry."""
1514
1615 txdb_id : str
17- release_date : Optional [ date ]
16+ release_date : date | None
1817 url : str
1918
20- organism : Optional [ str ] = None # e.g. "Hsapiens"
21- source : Optional [ str ] = None # e.g. "UCSC", "BioMart"
22- build : Optional [ str ] = None # e.g. "hg38.knownGene"
19+ organism : str | None = None # e.g. "Hsapiens"
20+ source : str | None = None # e.g. "UCSC", "BioMart"
21+ build : str | None = None # e.g. "hg38.knownGene"
2322
2423 # Parsed from URL path (e.g. .../3.22/TxDb...)
25- bioc_version : Optional [ str ] = None
24+ bioc_version : str | None = None
2625
2726 @classmethod
28- def from_config_entry (cls , txdb_id : str , entry : dict ) -> " TxDbRecord" :
27+ def from_config_entry (cls , txdb_id : str , entry : dict ) -> TxDbRecord :
2928 """Build a record from a TXDB_CONFIG entry:
3029 {
3130 "release_date": "YYYY-MM-DD", # optional
@@ -35,7 +34,7 @@ def from_config_entry(cls, txdb_id: str, entry: dict) -> "TxDbRecord":
3534 url = entry ["url" ]
3635
3736 date_str = entry .get ("release_date" )
38- rel_date : Optional [ date ]
37+ rel_date : date | None
3938 if date_str :
4039 rel_date = datetime .strptime (date_str , "%Y-%m-%d" ).date ()
4140 else :
@@ -62,10 +61,8 @@ def _parse_txdb_id(txdb_id: str):
6261 into (organism, source, build).
6362 """
6463 name = txdb_id
65- if name .startswith ("TxDb." ):
66- name = name [len ("TxDb." ) :]
67- if name .endswith (".sqlite" ):
68- name = name [: - len (".sqlite" )]
64+ name = name .removeprefix ("TxDb." )
65+ name = name .removesuffix (".sqlite" )
6966
7067 parts = name .split ("." )
7168 if len (parts ) < 2 :
@@ -77,7 +74,7 @@ def _parse_txdb_id(txdb_id: str):
7774 return organism , source , build
7875
7976
80- def _parse_bioc_version (url : str ) -> Optional [ str ] :
77+ def _parse_bioc_version (url : str ) -> str | None :
8178 """Extract the Bioconductor/AnnotationHub-like version from URL.
8279
8380 Example:
0 commit comments