diff --git a/swh/storage/migrate_extrinsic_metadata.py b/swh/storage/migrate_extrinsic_metadata.py --- a/swh/storage/migrate_extrinsic_metadata.py +++ b/swh/storage/migrate_extrinsic_metadata.py @@ -117,7 +117,7 @@ def pypi_project_from_filename(filename): match = re.match( r"^(?P[a-zA-Z0-9_.-]+)" - r"-[0-9.]+([a-z]+[0-9]+)?(\.dev[0-9]+)?\.(tar\.gz|zip)$", + r"-[0-9.]+([a-z]+[0-9]+)?(dev|\.dev[0-9]+)?(-[a-z][a-z0-9]*)?\.(tar\.gz|zip)$", filename, ) assert match, filename diff --git a/swh/storage/tests/migrate_extrinsic_metadata/test_pypi.py b/swh/storage/tests/migrate_extrinsic_metadata/test_pypi.py --- a/swh/storage/tests/migrate_extrinsic_metadata/test_pypi.py +++ b/swh/storage/tests/migrate_extrinsic_metadata/test_pypi.py @@ -57,6 +57,9 @@ ("py-evm-0.2.0a9.tar.gz", "py-evm"), ("collective.texttospeech-1.0rc1.tar.gz", "collective.texttospeech"), ("flatland-fork-0.4.post1.dev40550160.zip", "flatland-fork"), + ("fake-factory-0.5.6-proper.tar.gz", "fake-factory"), + ("ariane_procos-0.1.2-b05.tar.gz", "ariane_procos"), + ("Yelpy-0.2.2dev.tar.gz", "Yelpy"), ] for (filename, project) in files: