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 r'\%s' % 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 , '%0.1f' % self .vs_ver ) 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
@@ -607,7 +609,7 @@ def WindowsSdkLastVersion(self):
607
609
return self ._use_last_dir_name (os .path .join (self .WindowsSdkDir , 'lib' ))
608
610
609
611
@property
610
- def WindowsSdkDir (self ) -> str | None : # noqa: C901 # is too complex (12) # FIXME
612
+ def WindowsSdkDir (self ) -> str : # noqa: C901 # is too complex (12) # FIXME
611
613
"""
612
614
Microsoft Windows SDK directory.
613
615
@@ -650,13 +652,13 @@ def WindowsSdkDir(self) -> str | None: # noqa: C901 # is too complex (12) # F
650
652
return sdkdir
651
653
652
654
@property
653
- def WindowsSDKExecutablePath (self ):
655
+ def WindowsSDKExecutablePath (self ) -> str | None :
654
656
"""
655
657
Microsoft Windows SDK executable directory.
656
658
657
659
Return
658
660
------
659
- str
661
+ str | None
660
662
path
661
663
"""
662
664
# Find WinSDK NetFx Tools registry dir name
@@ -687,7 +689,7 @@ def WindowsSDKExecutablePath(self):
687
689
return None
688
690
689
691
@property
690
- def FSharpInstallDir (self ):
692
+ def FSharpInstallDir (self ) -> str :
691
693
"""
692
694
Microsoft Visual F# directory.
693
695
@@ -700,7 +702,7 @@ def FSharpInstallDir(self):
700
702
return self .ri .lookup (path , 'productdir' ) or ''
701
703
702
704
@property
703
- def UniversalCRTSdkDir (self ):
705
+ def UniversalCRTSdkDir (self ) -> str :
704
706
"""
705
707
Microsoft Universal CRT SDK directory.
706
708
@@ -716,9 +718,9 @@ def UniversalCRTSdkDir(self):
716
718
for ver in vers :
717
719
sdkdir = self .ri .lookup (self .ri .windows_kits_roots , 'kitsroot%s' % ver )
718
720
if sdkdir :
719
- return sdkdir or ''
721
+ return sdkdir
720
722
721
- return None
723
+ return ''
722
724
723
725
@property
724
726
def UniversalCRTSdkLastVersion (self ):
@@ -750,16 +752,15 @@ def NetFxSdkVersion(self):
750
752
)
751
753
752
754
@property
753
- def NetFxSdkDir (self ):
755
+ def NetFxSdkDir (self ) -> str | None :
754
756
"""
755
757
Microsoft .NET Framework SDK directory.
756
758
757
759
Return
758
760
------
759
- str
761
+ str | None
760
762
path
761
763
"""
762
- sdkdir = ''
763
764
for ver in self .NetFxSdkVersion :
764
765
loc = os .path .join (self .ri .netfx_sdk , ver )
765
766
sdkdir = self .ri .lookup (loc , 'kitsinstallationfolder' )
@@ -768,7 +769,7 @@ def NetFxSdkDir(self):
768
769
return sdkdir
769
770
770
771
@property
771
- def FrameworkDir32 (self ):
772
+ def FrameworkDir32 (self ) -> str :
772
773
"""
773
774
Microsoft .NET Framework 32bit directory.
774
775
@@ -784,7 +785,7 @@ def FrameworkDir32(self):
784
785
return self .ri .lookup (self .ri .vc , 'frameworkdir32' ) or guess_fw
785
786
786
787
@property
787
- def FrameworkDir64 (self ):
788
+ def FrameworkDir64 (self ) -> str :
788
789
"""
789
790
Microsoft .NET Framework 64bit directory.
790
791
@@ -854,7 +855,7 @@ def _find_dot_net_versions(self, bits) -> tuple[str, ...]:
854
855
return ()
855
856
856
857
@staticmethod
857
- def _use_last_dir_name (path , prefix = '' ):
858
+ def _use_last_dir_name (path : StrPath , prefix : str = '' ) -> str :
858
859
"""
859
860
Return name of the last dir in path or '' if no dir found.
860
861
@@ -876,7 +877,7 @@ def _use_last_dir_name(path, prefix=''):
876
877
if os .path .isdir (os .path .join (path , dir_name ))
877
878
and dir_name .startswith (prefix )
878
879
)
879
- return next (matching_dirs , None ) or ''
880
+ return next (matching_dirs , '' )
880
881
881
882
882
883
class _EnvironmentDict (TypedDict ):
@@ -1190,7 +1191,7 @@ def _sdk_tools(self):
1190
1191
yield self .si .WindowsSDKExecutablePath
1191
1192
1192
1193
@property
1193
- def _sdk_subdir (self ):
1194
+ def _sdk_subdir (self ) -> str :
1194
1195
"""
1195
1196
Microsoft Windows SDK version subdir.
1196
1197
@@ -1369,7 +1370,7 @@ def UCRTIncludes(self):
1369
1370
return [os .path .join (include , '%sucrt' % self ._ucrt_subdir )]
1370
1371
1371
1372
@property
1372
- def _ucrt_subdir (self ):
1373
+ def _ucrt_subdir (self ) -> str :
1373
1374
"""
1374
1375
Microsoft Universal C Runtime SDK version subdir.
1375
1376
0 commit comments