File tree 3 files changed +42
-3
lines changed
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
+
1
8
v6.0.1
2
9
======
3
10
Original file line number Diff line number Diff line change 13
13
import itertools
14
14
import posixpath
15
15
import collections
16
+ import inspect
16
17
17
18
from . import _adapters , _meta , _py39compat
18
19
from ._collections import FreezableDefaultDict , Pair
@@ -897,8 +898,8 @@ def _top_level_declared(dist):
897
898
898
899
899
900
def _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 )
902
903
for f in always_iterable (dist .files )
903
- if f .suffix == ".py"
904
904
}
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):
322
322
prefix = self .site_dir ,
323
323
)
324
324
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