Skip to content

Commit 1fbeb4e

Browse files
fix: empty lineages can be uncompressed
1 parent 9c6d943 commit 1fbeb4e

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

src/pango_aliasor/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
## Testing
2+
3+
Run `pytest` from the project root to run all tests.
4+
5+
## Release
6+
7+
```bash
8+
pip install build
9+
python -m build --sdist --outdir dist .
10+
pip install twine
11+
rm -rf dist
12+
twine upload dist/*
13+
```

src/pango_aliasor/aliasor.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def compress(self,name):
2929
name_split = name.split('.')
3030
levels = len(name_split) - 1
3131
num_indirections = (levels -1) // 3
32-
if num_indirections == 0:
32+
if num_indirections <= 0:
3333
return name
3434
alias = ".".join(name_split[0:(3*num_indirections + 1)])
3535
ending = ".".join(name_split[(3*num_indirections + 1):])
@@ -38,7 +38,10 @@ def compress(self,name):
3838
def uncompress(self,name):
3939
name_split = name.split('.')
4040
letter = name_split[0]
41-
unaliased = self.alias_dict[letter]
41+
try:
42+
unaliased = self.alias_dict[letter]
43+
except KeyError:
44+
return name
4245
if len(name_split) == 1:
4346
return name
4447
if len(name_split) == 2:

tests/test_aliasor.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ def test_uncompression():
99
assert aliasor.uncompress('AY.4') == 'B.1.617.2.4'
1010
assert aliasor.uncompress('AY.4.3.2') == 'B.1.617.2.4.3.2'
1111
assert aliasor.uncompress('B.1') == 'B.1'
12+
assert aliasor.uncompress('B') == 'B'
13+
assert aliasor.uncompress('') == ''
1214

1315
def test_compression():
1416
aliasor = Aliasor()
@@ -17,6 +19,8 @@ def test_compression():
1719
assert aliasor.compress('B.1.617.2.4.3.1') == 'AY.4.3.1'
1820
assert aliasor.compress('B.1.617.2') == 'B.1.617.2'
1921
assert aliasor.compress('B.1') == 'B.1'
22+
assert aliasor.compress('B') == 'B'
23+
assert aliasor.compress('') == ''
2024

2125
def test_except_recombinants():
2226
aliasor = Aliasor()

0 commit comments

Comments
 (0)