File tree Expand file tree Collapse file tree 3 files changed +42
-3
lines changed
Expand file tree Collapse file tree 3 files changed +42
-3
lines changed Original file line number Diff line number Diff line change 1+ v6.1.0
2+ ======
3+
4+ * #428: ``packages_distributions `` now honors packages and modules
5+ with Python modules that not ``.py `` sources (e.g. ``.pyc ``,
6+ ``.so ``).
7+
18v6.0.1
29======
310
Original file line number Diff line number Diff line change 1313import itertools
1414import posixpath
1515import collections
16+ import inspect
1617
1718from . import _adapters , _meta , _py39compat
1819from ._collections import FreezableDefaultDict , Pair
@@ -897,8 +898,8 @@ def _top_level_declared(dist):
897898
898899
899900def _top_level_inferred (dist ):
900- return {
901- f .parts [0 ] if len (f .parts ) > 1 else f . with_suffix ( '' ). name
901+ opt_names = {
902+ f .parts [0 ] if len (f .parts ) > 1 else inspect . getmodulename ( f )
902903 for f in always_iterable (dist .files )
903- if f .suffix == ".py"
904904 }
905+ return filter (None , opt_names )
Original file line number Diff line number Diff line change @@ -322,3 +322,34 @@ def test_packages_distributions_neither_toplevel_nor_files(self):
322322 prefix = self .site_dir ,
323323 )
324324 packages_distributions ()
325+
326+ def test_packages_distributions_all_module_types (self ):
327+ """
328+ Test top-level modules detected on a package without 'top-level.txt'.
329+ """
330+ suffixes = importlib .machinery .all_suffixes ()
331+ fixtures .build_files (
332+ {
333+ 'all_distributions-1.0.0.dist-info' : {
334+ 'METADATA' : """
335+ Name: all_distributions
336+ Version: 1.0.0
337+ """ ,
338+ 'RECORD' : '' .join (
339+ f'{ i } -top-level{ suffix } ,,\n '
340+ f'{ i } -in-namespace/mod{ suffix } ,,\n '
341+ f'{ i } -in-package/__init__.py,,\n '
342+ f'{ i } -in-package/mod{ suffix } ,,\n '
343+ for i , suffix in enumerate (suffixes )
344+ ),
345+ },
346+ },
347+ prefix = self .site_dir ,
348+ )
349+
350+ distributions = packages_distributions ()
351+
352+ for i in range (len (suffixes )):
353+ assert distributions [f'{ i } -top-level' ] == ['all_distributions' ]
354+ assert distributions [f'{ i } -in-namespace' ] == ['all_distributions' ]
355+ assert distributions [f'{ i } -in-package' ] == ['all_distributions' ]
You can’t perform that action at this time.
0 commit comments