17
17
18
18
from more_itertools import unique_everseen
19
19
20
+ from ._path import StrPath
21
+
20
22
import distutils .errors
21
23
22
24
if TYPE_CHECKING :
@@ -135,7 +137,7 @@ def target_dir(self, hidex86=False, x64=False) -> str:
135
137
else rf'\{ self .target_cpu } '
136
138
)
137
139
138
- def cross_dir (self , forcex86 = False ):
140
+ def cross_dir (self , forcex86 = False ) -> str :
139
141
r"""
140
142
Cross platform specific subfolder.
141
143
@@ -306,7 +308,7 @@ def microsoft(self, key, x86=False):
306
308
node64 = '' if self .pi .current_is_x86 () or x86 else 'Wow6432Node'
307
309
return os .path .join ('Software' , node64 , 'Microsoft' , key )
308
310
309
- def lookup (self , key , name ) :
311
+ def lookup (self , key : str , name : str ) -> str | None :
310
312
"""
311
313
Look for values in registry in Microsoft software registry.
312
314
@@ -319,7 +321,7 @@ def lookup(self, key, name):
319
321
320
322
Return
321
323
------
322
- str
324
+ str | None
323
325
value
324
326
"""
325
327
key_read = winreg .KEY_READ
@@ -486,7 +488,7 @@ def _as_float_version(version):
486
488
return float ('.' .join (version .split ('.' )[:2 ]))
487
489
488
490
@property
489
- def VSInstallDir (self ):
491
+ def VSInstallDir (self ) -> str :
490
492
"""
491
493
Microsoft Visual Studio directory.
492
494
@@ -504,7 +506,7 @@ def VSInstallDir(self):
504
506
return self .ri .lookup (self .ri .vs , f'{ self .vs_ver :0.1f} ' ) or default
505
507
506
508
@property
507
- def VCInstallDir (self ):
509
+ def VCInstallDir (self ) -> str :
508
510
"""
509
511
Microsoft Visual C++ directory.
510
512
@@ -608,7 +610,7 @@ def WindowsSdkLastVersion(self):
608
610
return self ._use_last_dir_name (os .path .join (self .WindowsSdkDir , 'lib' ))
609
611
610
612
@property
611
- def WindowsSdkDir (self ) -> str | None : # noqa: C901 # is too complex (12) # FIXME
613
+ def WindowsSdkDir (self ) -> str : # noqa: C901 # is too complex (12) # FIXME
612
614
"""
613
615
Microsoft Windows SDK directory.
614
616
@@ -651,13 +653,13 @@ def WindowsSdkDir(self) -> str | None: # noqa: C901 # is too complex (12) # F
651
653
return sdkdir
652
654
653
655
@property
654
- def WindowsSDKExecutablePath (self ):
656
+ def WindowsSDKExecutablePath (self ) -> str | None :
655
657
"""
656
658
Microsoft Windows SDK executable directory.
657
659
658
660
Return
659
661
------
660
- str
662
+ str | None
661
663
path
662
664
"""
663
665
# Find WinSDK NetFx Tools registry dir name
@@ -688,7 +690,7 @@ def WindowsSDKExecutablePath(self):
688
690
return None
689
691
690
692
@property
691
- def FSharpInstallDir (self ):
693
+ def FSharpInstallDir (self ) -> str :
692
694
"""
693
695
Microsoft Visual F# directory.
694
696
@@ -701,7 +703,7 @@ def FSharpInstallDir(self):
701
703
return self .ri .lookup (path , 'productdir' ) or ''
702
704
703
705
@property
704
- def UniversalCRTSdkDir (self ):
706
+ def UniversalCRTSdkDir (self ) -> str :
705
707
"""
706
708
Microsoft Universal CRT SDK directory.
707
709
@@ -717,9 +719,9 @@ def UniversalCRTSdkDir(self):
717
719
for ver in vers :
718
720
sdkdir = self .ri .lookup (self .ri .windows_kits_roots , f'kitsroot{ ver } ' )
719
721
if sdkdir :
720
- return sdkdir or ''
722
+ return sdkdir
721
723
722
- return None
724
+ return ''
723
725
724
726
@property
725
727
def UniversalCRTSdkLastVersion (self ):
@@ -751,16 +753,15 @@ def NetFxSdkVersion(self):
751
753
)
752
754
753
755
@property
754
- def NetFxSdkDir (self ):
756
+ def NetFxSdkDir (self ) -> str | None :
755
757
"""
756
758
Microsoft .NET Framework SDK directory.
757
759
758
760
Return
759
761
------
760
- str
762
+ str | None
761
763
path
762
764
"""
763
- sdkdir = ''
764
765
for ver in self .NetFxSdkVersion :
765
766
loc = os .path .join (self .ri .netfx_sdk , ver )
766
767
sdkdir = self .ri .lookup (loc , 'kitsinstallationfolder' )
@@ -769,7 +770,7 @@ def NetFxSdkDir(self):
769
770
return sdkdir
770
771
771
772
@property
772
- def FrameworkDir32 (self ):
773
+ def FrameworkDir32 (self ) -> str :
773
774
"""
774
775
Microsoft .NET Framework 32bit directory.
775
776
@@ -785,7 +786,7 @@ def FrameworkDir32(self):
785
786
return self .ri .lookup (self .ri .vc , 'frameworkdir32' ) or guess_fw
786
787
787
788
@property
788
- def FrameworkDir64 (self ):
789
+ def FrameworkDir64 (self ) -> str :
789
790
"""
790
791
Microsoft .NET Framework 64bit directory.
791
792
@@ -855,7 +856,7 @@ def _find_dot_net_versions(self, bits) -> tuple[str, ...]:
855
856
return ()
856
857
857
858
@staticmethod
858
- def _use_last_dir_name (path , prefix = '' ):
859
+ def _use_last_dir_name (path : StrPath , prefix : str = '' ) -> str :
859
860
"""
860
861
Return name of the last dir in path or '' if no dir found.
861
862
@@ -877,7 +878,7 @@ def _use_last_dir_name(path, prefix=''):
877
878
if os .path .isdir (os .path .join (path , dir_name ))
878
879
and dir_name .startswith (prefix )
879
880
)
880
- return next (matching_dirs , None ) or ''
881
+ return next (matching_dirs , '' )
881
882
882
883
883
884
class _EnvironmentDict (TypedDict ):
@@ -1200,7 +1201,7 @@ def _sdk_tools(self):
1200
1201
yield self .si .WindowsSDKExecutablePath
1201
1202
1202
1203
@property
1203
- def _sdk_subdir (self ):
1204
+ def _sdk_subdir (self ) -> str :
1204
1205
"""
1205
1206
Microsoft Windows SDK version subdir.
1206
1207
@@ -1379,7 +1380,7 @@ def UCRTIncludes(self):
1379
1380
return [os .path .join (include , f'{ self ._ucrt_subdir } ucrt' )]
1380
1381
1381
1382
@property
1382
- def _ucrt_subdir (self ):
1383
+ def _ucrt_subdir (self ) -> str :
1383
1384
"""
1384
1385
Microsoft Universal C Runtime SDK version subdir.
1385
1386
0 commit comments