pyobjc-framework-LocalAuthentication 10.3.2__tar.gz → 11.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/LICENSE.txt +1 -1
  2. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/Lib/LocalAuthentication/__init__.py +5 -2
  3. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/Lib/LocalAuthentication/_metadata.py +27 -5
  4. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/Lib/pyobjc_framework_LocalAuthentication.egg-info/PKG-INFO +21 -9
  5. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/Lib/pyobjc_framework_LocalAuthentication.egg-info/SOURCES.txt +14 -1
  6. pyobjc_framework_localauthentication-11.1/Lib/pyobjc_framework_LocalAuthentication.egg-info/pyobjc-build-info.txt +3 -0
  7. pyobjc_framework_localauthentication-11.1/Lib/pyobjc_framework_LocalAuthentication.egg-info/requires.txt +3 -0
  8. pyobjc_framework_localauthentication-11.1/Modules/_LocalAuthentication.m +67 -0
  9. pyobjc_framework_localauthentication-11.1/Modules/_LocalAuthentication_protocols.m +13 -0
  10. pyobjc_framework_localauthentication-11.1/Modules/pyobjc-api.h +214 -0
  11. pyobjc_framework_localauthentication-11.1/Modules/pyobjc-compat.h +413 -0
  12. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/PKG-INFO +21 -9
  13. pyobjc_framework_localauthentication-11.1/PyObjCTest/__init__.py +1 -0
  14. pyobjc_framework_localauthentication-11.1/PyObjCTest/test_labiometrictype.py +26 -0
  15. pyobjc_framework_localauthentication-11.1/PyObjCTest/test_lacompaniontype.py +15 -0
  16. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/PyObjCTest/test_lacontext.py +30 -6
  17. pyobjc_framework_localauthentication-11.1/PyObjCTest/test_laenvironment.py +8 -0
  18. pyobjc_framework_localauthentication-11.1/PyObjCTest/test_laenvironmentmechanism.py +8 -0
  19. pyobjc_framework_localauthentication-11.1/PyObjCTest/test_laenvironmentmechanismbiometry.py +16 -0
  20. pyobjc_framework_localauthentication-11.1/PyObjCTest/test_laenvironmentmechanismuserpassword.py +10 -0
  21. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/PyObjCTest/test_laerror.py +4 -1
  22. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/PyObjCTest/test_lapublicdefines.py +24 -0
  23. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/LocalAuthentication.fwinfo +6 -0
  24. pyobjc_framework_localauthentication-11.1/metadata/raw/arm64-15.5.fwinfo +2397 -0
  25. pyobjc_framework_localauthentication-11.1/metadata/raw/x86_64-15.5.fwinfo +2397 -0
  26. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/pyobjc_setup.py +73 -53
  27. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/setup.py +14 -2
  28. pyobjc_framework_localauthentication-10.3.2/Lib/pyobjc_framework_LocalAuthentication.egg-info/requires.txt +0 -3
  29. pyobjc_framework_localauthentication-10.3.2/PyObjCTest/__init__.py +0 -1
  30. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/Lib/pyobjc_framework_LocalAuthentication.egg-info/dependency_links.txt +0 -0
  31. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/Lib/pyobjc_framework_LocalAuthentication.egg-info/not-zip-safe +0 -0
  32. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/Lib/pyobjc_framework_LocalAuthentication.egg-info/top_level.txt +0 -0
  33. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/MANIFEST.in +0 -0
  34. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/PyObjCTest/test_laprivatekey.py +0 -0
  35. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/PyObjCTest/test_lapublickey.py +0 -0
  36. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/PyObjCTest/test_laright.py +0 -0
  37. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/PyObjCTest/test_larightstore.py +0 -0
  38. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/PyObjCTest/test_lasecret.py +0 -0
  39. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/PyObjCTest/test_localauthentication.py +0 -0
  40. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/README.txt +0 -0
  41. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/metadata.ini +0 -0
  42. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/raw/arm64-12.3.fwinfo +0 -0
  43. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/raw/arm64-13.0.fwinfo +0 -0
  44. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/raw/arm64-14.5.fwinfo +0 -0
  45. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/raw/x86_64-10.10.fwinfo +0 -0
  46. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/raw/x86_64-10.15.fwinfo +0 -0
  47. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/raw/x86_64-10.16.fwinfo +0 -0
  48. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/raw/x86_64-12.3.fwinfo +0 -0
  49. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/raw/x86_64-13.0.fwinfo +0 -0
  50. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/metadata/raw/x86_64-14.5.fwinfo +0 -0
  51. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/pyproject.toml +0 -0
  52. {pyobjc_framework_localauthentication-10.3.2 → pyobjc_framework_localauthentication-11.1}/setup.cfg +0 -0
@@ -1,7 +1,7 @@
1
1
  (This is the MIT license, note that libffi-src is a separate product with its own license)
2
2
 
3
3
  Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
4
- Copyright 2003-2024 - Ronald Oussoren
4
+ Copyright 2003-2025 - Ronald Oussoren
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
7
 
@@ -11,7 +11,7 @@ def _setup():
11
11
 
12
12
  import Foundation
13
13
  import objc
14
- from . import _metadata
14
+ from . import _metadata, _LocalAuthentication
15
15
 
16
16
  dir_func, getattr_func = objc.createFrameworkDirAndGetattr(
17
17
  name="LocalAuthentication",
@@ -21,7 +21,10 @@ def _setup():
21
21
  ),
22
22
  globals_dict=globals(),
23
23
  inline_list=None,
24
- parents=(Foundation,),
24
+ parents=(
25
+ _LocalAuthentication,
26
+ Foundation,
27
+ ),
25
28
  metadict=_metadata.__dict__,
26
29
  )
27
30
 
@@ -1,6 +1,6 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Sat May 18 09:31:07 2024
3
+ # Last update: Mon May 5 09:44:43 2025
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -31,13 +31,14 @@ else:
31
31
 
32
32
  misc = {}
33
33
  constants = """$LAErrorDomain$LATouchIDAuthenticationMaximumAllowableReuseDuration@d$"""
34
- enums = """$LAAccessControlOperationCreateItem@0$LAAccessControlOperationCreateKey@2$LAAccessControlOperationUseItem@1$LAAccessControlOperationUseKeyDecrypt@4$LAAccessControlOperationUseKeyKeyExchange@5$LAAccessControlOperationUseKeySign@3$LABiometryNone@0$LABiometryTypeFaceID@2$LABiometryTypeNone@0$LABiometryTypeOpticID@4$LABiometryTypeTouchID@1$LACredentialTypeApplicationPassword@0$LACredentialTypeSmartCardPIN@-3$LAErrorAppCancel@-9$LAErrorAuthenticationFailed@-1$LAErrorBiometryDisconnected@-13$LAErrorBiometryLockout@-8$LAErrorBiometryNotAvailable@-6$LAErrorBiometryNotEnrolled@-7$LAErrorBiometryNotPaired@-12$LAErrorInvalidContext@-10$LAErrorInvalidDimensions@-14$LAErrorNotInteractive@-1004$LAErrorPasscodeNotSet@-5$LAErrorSystemCancel@-4$LAErrorTouchIDLockout@-8$LAErrorTouchIDNotAvailable@-6$LAErrorTouchIDNotEnrolled@-7$LAErrorUserCancel@-2$LAErrorUserFallback@-3$LAErrorWatchNotAvailable@-11$LAPolicyDeviceOwnerAuthentication@2$LAPolicyDeviceOwnerAuthenticationWithBiometrics@1$LAPolicyDeviceOwnerAuthenticationWithBiometricsOrWatch@4$LAPolicyDeviceOwnerAuthenticationWithWatch@3$LAPolicyDeviceOwnerAuthenticationWithWristDetection@5$LARightStateAuthorized@2$LARightStateAuthorizing@1$LARightStateNotAuthorized@3$LARightStateUnknown@0$kLABiometryTypeFaceID@2$kLABiometryTypeNone@0$kLABiometryTypeOpticID@4$kLABiometryTypeTouchID@1$kLACredentialCTKPIN@-3$kLACredentialSmartCardPIN@-3$kLACredentialTypeApplicationPassword@0$kLACredentialTypePasscode@-1$kLACredentialTypePassphrase@-2$kLAErrorAppCancel@-9$kLAErrorAuthenticationFailed@-1$kLAErrorBiometryDisconnected@-13$kLAErrorBiometryNotPaired@-12$kLAErrorInvalidContext@-10$kLAErrorInvalidDimensions@-14$kLAErrorNotInteractive@-1004$kLAErrorPasscodeNotSet@-5$kLAErrorSystemCancel@-4$kLAErrorTouchIDLockout@-8$kLAErrorTouchIDNotAvailable@-6$kLAErrorTouchIDNotEnrolled@-7$kLAErrorUserCancel@-2$kLAErrorUserFallback@-3$kLAErrorWatchNotAvailable@-11$kLAOptionAuthenticationReason@2$kLAOptionUserFallback@1$kLAPolicyDeviceOwnerAuthentication@2$kLAPolicyDeviceOwnerAuthenticationWithBiometrics@1$kLAPolicyDeviceOwnerAuthenticationWithBiometricsOrWatch@4$kLAPolicyDeviceOwnerAuthenticationWithWatch@3$kLAPolicyDeviceOwnerAuthenticationWithWristDetection@5$"""
34
+ enums = """$LAAccessControlOperationCreateItem@0$LAAccessControlOperationCreateKey@2$LAAccessControlOperationUseItem@1$LAAccessControlOperationUseKeyDecrypt@4$LAAccessControlOperationUseKeyKeyExchange@5$LAAccessControlOperationUseKeySign@3$LABiometryNone@0$LABiometryTypeFaceID@2$LABiometryTypeNone@0$LABiometryTypeOpticID@4$LABiometryTypeTouchID@1$LACompanionTypeMac@2$LACompanionTypeWatch@1$LACredentialTypeApplicationPassword@0$LACredentialTypeSmartCardPIN@-3$LAErrorAppCancel@-9$LAErrorAuthenticationFailed@-1$LAErrorBiometryDisconnected@-13$LAErrorBiometryLockout@-8$LAErrorBiometryNotAvailable@-6$LAErrorBiometryNotEnrolled@-7$LAErrorBiometryNotPaired@-12$LAErrorCompanionNotAvailable@-11$LAErrorInvalidContext@-10$LAErrorInvalidDimensions@-14$LAErrorNotInteractive@-1004$LAErrorPasscodeNotSet@-5$LAErrorSystemCancel@-4$LAErrorTouchIDLockout@-8$LAErrorTouchIDNotAvailable@-6$LAErrorTouchIDNotEnrolled@-7$LAErrorUserCancel@-2$LAErrorUserFallback@-3$LAErrorWatchNotAvailable@-11$LAPolicyDeviceOwnerAuthentication@2$LAPolicyDeviceOwnerAuthenticationWithBiometrics@1$LAPolicyDeviceOwnerAuthenticationWithBiometricsOrCompanion@4$LAPolicyDeviceOwnerAuthenticationWithBiometricsOrWatch@4$LAPolicyDeviceOwnerAuthenticationWithCompanion@3$LAPolicyDeviceOwnerAuthenticationWithWatch@3$LAPolicyDeviceOwnerAuthenticationWithWristDetection@5$LARightStateAuthorized@2$LARightStateAuthorizing@1$LARightStateNotAuthorized@3$LARightStateUnknown@0$kLAAccessControlOperationCreateItem@0$kLAAccessControlOperationCreateKey@2$kLAAccessControlOperationUseItem@1$kLAAccessControlOperationUseKeyDecrypt@4$kLAAccessControlOperationUseKeyKeyExchange@5$kLAAccessControlOperationUseKeySign@3$kLABiometryTypeFaceID@2$kLABiometryTypeNone@0$kLABiometryTypeOpticID@4$kLABiometryTypeTouchID@1$kLACompanionTypeMac@2$kLACompanionTypeWatch@1$kLACredentialCTKPIN@-3$kLACredentialSmartCardPIN@-3$kLACredentialTypeApplicationPassword@0$kLACredentialTypePasscode@-1$kLACredentialTypePassphrase@-2$kLAErrorAppCancel@-9$kLAErrorAuthenticationFailed@-1$kLAErrorBiometryDisconnected@-13$kLAErrorBiometryNotPaired@-12$kLAErrorInvalidContext@-10$kLAErrorInvalidDimensions@-14$kLAErrorNotInteractive@-1004$kLAErrorPasscodeNotSet@-5$kLAErrorSystemCancel@-4$kLAErrorTouchIDLockout@-8$kLAErrorTouchIDNotAvailable@-6$kLAErrorTouchIDNotEnrolled@-7$kLAErrorUserCancel@-2$kLAErrorUserFallback@-3$kLAErrorWatchNotAvailable@-11$kLAOptionAuthenticationReason@2$kLAOptionUserFallback@1$kLAPolicyDeviceOwnerAuthentication@2$kLAPolicyDeviceOwnerAuthenticationWithBiometrics@1$kLAPolicyDeviceOwnerAuthenticationWithBiometricsOrWatch@4$kLAPolicyDeviceOwnerAuthenticationWithWatch@3$kLAPolicyDeviceOwnerAuthenticationWithWristDetection@5$"""
35
35
  misc.update(
36
36
  {
37
+ "LACompanionType": NewType("LACompanionType", int),
37
38
  "LABiometryType": NewType("LABiometryType", int),
38
- "LAError": NewType("LAError", int),
39
- "LAAccessControlOperation": NewType("LAAccessControlOperation", int),
40
39
  "LACredentialType": NewType("LACredentialType", int),
40
+ "LAAccessControlOperation": NewType("LAAccessControlOperation", int),
41
+ "LAError": NewType("LAError", int),
41
42
  "LAPolicy": NewType("LAPolicy", int),
42
43
  "LARightState": NewType("LARightState", int),
43
44
  }
@@ -47,13 +48,16 @@ misc.update({"kLAErrorDomain": "com.apple.LocalAuthentication"})
47
48
  aliases = {
48
49
  "LACredentialTypeSmartCardPIN": "kLACredentialSmartCardPIN",
49
50
  "LAErrorBiometryLockout": "kLAErrorBiometryLockout",
50
- "LAErrorBiometryNotEnrolled": "kLAErrorBiometryNotEnrolled",
51
+ "kLAPolicyDeviceOwnerAuthenticationWithCompanion": "kLAPolicyDeviceOwnerAuthenticationWithWatch",
51
52
  "LABiometryNone": "LABiometryTypeNone",
52
53
  "kLAErrorBiometryNotEnrolled": "kLAErrorTouchIDNotEnrolled",
53
54
  "LAErrorBiometryNotAvailable": "kLAErrorBiometryNotAvailable",
54
55
  "kLAErrorBiometryNotAvailable": "kLAErrorTouchIDNotAvailable",
56
+ "LAErrorBiometryNotEnrolled": "kLAErrorBiometryNotEnrolled",
55
57
  "LABiometryTypeOpticID": "kLABiometryTypeOpticID",
58
+ "kLAErrorCompanionNotAvailable": "kLAErrorWatchNotAvailable",
56
59
  "kLAErrorBiometryLockout": "kLAErrorTouchIDLockout",
60
+ "kLAPolicyDeviceOwnerAuthenticationWithBiometricsOrCompanion": "kLAPolicyDeviceOwnerAuthenticationWithBiometricsOrWatch",
57
61
  }
58
62
  r = objc.registerMetaDataForSelector
59
63
  objc._updatingMetadata(True)
@@ -125,6 +129,15 @@ try:
125
129
  r(b"LAContext", b"setCredential:type:", {"retval": {"type": "Z"}})
126
130
  r(b"LAContext", b"setFallbackButtonVisible:", {"arguments": {2: {"type": "Z"}}})
127
131
  r(b"LAContext", b"setInteractionNotAllowed:", {"arguments": {2: {"type": "Z"}}})
132
+ r(b"LAEnvironmentMechanism", b"isUsable", {"retval": {"type": b"Z"}})
133
+ r(
134
+ b"LAEnvironmentMechanismBiometry",
135
+ b"builtInSensorInaccessible",
136
+ {"retval": {"type": b"Z"}},
137
+ )
138
+ r(b"LAEnvironmentMechanismBiometry", b"isEnrolled", {"retval": {"type": b"Z"}})
139
+ r(b"LAEnvironmentMechanismBiometry", b"isLockedOut", {"retval": {"type": b"Z"}})
140
+ r(b"LAEnvironmentMechanismUserPassword", b"isSet", {"retval": {"type": b"Z"}})
128
141
  r(b"LAPrivateKey", b"canDecryptUsingSecKeyAlgorithm:", {"retval": {"type": b"Z"}})
129
142
  r(
130
143
  b"LAPrivateKey",
@@ -394,6 +407,15 @@ try:
394
407
  }
395
408
  },
396
409
  )
410
+ r(
411
+ b"NSObject",
412
+ b"environment:stateDidChangeFromOldState:",
413
+ {
414
+ "required": False,
415
+ "retval": {"type": b"v"},
416
+ "arguments": {2: {"type": b"@"}, 3: {"type": b"@"}},
417
+ },
418
+ )
397
419
  finally:
398
420
  objc._updatingMetadata(False)
399
421
 
@@ -1,39 +1,51 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-LocalAuthentication
3
- Version: 10.3.2
3
+ Version: 11.1
4
4
  Summary: Wrappers for the framework LocalAuthentication on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
7
7
  Author-email: pyobjc-dev@lists.sourceforge.net
8
- License: MIT License
8
+ License: MIT
9
9
  Keywords: PyObjC,LocalAuthentication
10
10
  Platform: MacOS X (>=10.10)
11
11
  Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Environment :: Console
13
13
  Classifier: Environment :: MacOS X :: Cocoa
14
14
  Classifier: Intended Audience :: Developers
15
- Classifier: License :: OSI Approved :: MIT License
16
15
  Classifier: Natural Language :: English
17
16
  Classifier: Operating System :: MacOS :: MacOS X
18
17
  Classifier: Programming Language :: Python
19
18
  Classifier: Programming Language :: Python :: 3
20
19
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
20
  Classifier: Programming Language :: Python :: 3.9
23
21
  Classifier: Programming Language :: Python :: 3.10
24
22
  Classifier: Programming Language :: Python :: 3.11
25
23
  Classifier: Programming Language :: Python :: 3.12
26
24
  Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
27
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
27
  Classifier: Programming Language :: Objective C
29
28
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
29
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.8
30
+ Requires-Python: >=3.9
32
31
  Description-Content-Type: text/x-rst; charset=UTF-8
33
32
  License-File: LICENSE.txt
34
- Requires-Dist: pyobjc-core>=10.3.2
35
- Requires-Dist: pyobjc-framework-Cocoa>=10.3.2
36
- Requires-Dist: pyobjc-framework-Security>=10.3.2
33
+ Requires-Dist: pyobjc-core>=11.1
34
+ Requires-Dist: pyobjc-framework-Cocoa>=11.1
35
+ Requires-Dist: pyobjc-framework-Security>=11.1
36
+ Dynamic: author
37
+ Dynamic: author-email
38
+ Dynamic: classifier
39
+ Dynamic: description
40
+ Dynamic: description-content-type
41
+ Dynamic: home-page
42
+ Dynamic: keywords
43
+ Dynamic: license
44
+ Dynamic: license-file
45
+ Dynamic: platform
46
+ Dynamic: requires-dist
47
+ Dynamic: requires-python
48
+ Dynamic: summary
37
49
  Project-URL: Documentation, https://pyobjc.readthedocs.io/en/latest/
38
50
  Project-URL: Issue tracker, https://github.com/ronaldoussoren/pyobjc/issues
39
51
  Project-URL: Repository, https://github.com/ronaldoussoren/pyobjc
@@ -10,10 +10,21 @@ Lib/pyobjc_framework_LocalAuthentication.egg-info/PKG-INFO
10
10
  Lib/pyobjc_framework_LocalAuthentication.egg-info/SOURCES.txt
11
11
  Lib/pyobjc_framework_LocalAuthentication.egg-info/dependency_links.txt
12
12
  Lib/pyobjc_framework_LocalAuthentication.egg-info/not-zip-safe
13
+ Lib/pyobjc_framework_LocalAuthentication.egg-info/pyobjc-build-info.txt
13
14
  Lib/pyobjc_framework_LocalAuthentication.egg-info/requires.txt
14
15
  Lib/pyobjc_framework_LocalAuthentication.egg-info/top_level.txt
16
+ Modules/_LocalAuthentication.m
17
+ Modules/_LocalAuthentication_protocols.m
18
+ Modules/pyobjc-api.h
19
+ Modules/pyobjc-compat.h
15
20
  PyObjCTest/__init__.py
21
+ PyObjCTest/test_labiometrictype.py
22
+ PyObjCTest/test_lacompaniontype.py
16
23
  PyObjCTest/test_lacontext.py
24
+ PyObjCTest/test_laenvironment.py
25
+ PyObjCTest/test_laenvironmentmechanism.py
26
+ PyObjCTest/test_laenvironmentmechanismbiometry.py
27
+ PyObjCTest/test_laenvironmentmechanismuserpassword.py
17
28
  PyObjCTest/test_laerror.py
18
29
  PyObjCTest/test_laprivatekey.py
19
30
  PyObjCTest/test_lapublicdefines.py
@@ -27,9 +38,11 @@ metadata/metadata.ini
27
38
  metadata/raw/arm64-12.3.fwinfo
28
39
  metadata/raw/arm64-13.0.fwinfo
29
40
  metadata/raw/arm64-14.5.fwinfo
41
+ metadata/raw/arm64-15.5.fwinfo
30
42
  metadata/raw/x86_64-10.10.fwinfo
31
43
  metadata/raw/x86_64-10.15.fwinfo
32
44
  metadata/raw/x86_64-10.16.fwinfo
33
45
  metadata/raw/x86_64-12.3.fwinfo
34
46
  metadata/raw/x86_64-13.0.fwinfo
35
- metadata/raw/x86_64-14.5.fwinfo
47
+ metadata/raw/x86_64-14.5.fwinfo
48
+ metadata/raw/x86_64-15.5.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 15.5 (24F74)
2
+ Apple clang version 17.0.0 (clang-1700.0.13.5)
3
+ SDK: macOS 15.5
@@ -0,0 +1,3 @@
1
+ pyobjc-core>=11.1
2
+ pyobjc-framework-Cocoa>=11.1
3
+ pyobjc-framework-Security>=11.1
@@ -0,0 +1,67 @@
1
+ #define PY_SSIZE_T_CLEAN
2
+ #include "Python.h"
3
+ #include "pyobjc-api.h"
4
+
5
+ #import <LocalAuthentication/LocalAuthentication.h>
6
+ #import <Foundation/Foundation.h>
7
+
8
+ /* We include the source code here instead of
9
+ * using the linker due to limitations in pyobjc-api.h
10
+ */
11
+ #include "_LocalAuthentication_protocols.m"
12
+
13
+ static PyMethodDef mod_methods[] = {
14
+ {0, 0, 0, 0} /* sentinel */
15
+ };
16
+
17
+ static int mod_exec_module(PyObject* m)
18
+ {
19
+ return 0;
20
+ }
21
+
22
+ static struct PyModuleDef_Slot mod_slots[] = {
23
+ {
24
+ .slot = Py_mod_exec,
25
+ .value = (void*)mod_exec_module
26
+ },
27
+ #if PY_VERSION_HEX >= 0x030c0000
28
+ {
29
+ /* This extension does not use the CPython API other than initializing
30
+ * the module, hence is safe with subinterpreters and per-interpreter
31
+ * GILs
32
+ */
33
+ .slot = Py_mod_multiple_interpreters,
34
+ .value = Py_MOD_PER_INTERPRETER_GIL_SUPPORTED,
35
+ },
36
+ #endif
37
+ #if PY_VERSION_HEX >= 0x030d0000
38
+ {
39
+ /* The code in this extension should be safe to use without the GIL */
40
+ .slot = Py_mod_gil,
41
+ .value = Py_MOD_GIL_NOT_USED,
42
+ },
43
+ #endif
44
+ { /* Sentinel */
45
+ .slot = 0,
46
+ .value = 0
47
+ }
48
+ };
49
+
50
+ static struct PyModuleDef mod_module = {
51
+ .m_base = PyModuleDef_HEAD_INIT,
52
+ .m_name = "_LocalAuthentication",
53
+ .m_doc = NULL,
54
+ .m_size = 0,
55
+ .m_methods = mod_methods,
56
+ .m_slots = mod_slots,
57
+ .m_traverse = NULL,
58
+ .m_clear = NULL,
59
+ .m_free = NULL,
60
+ };
61
+
62
+ PyObject* PyInit__LocalAuthentication(void);
63
+
64
+ PyObject* __attribute__((__visibility__("default"))) PyInit__LocalAuthentication(void)
65
+ {
66
+ return PyModuleDef_Init(&mod_module);
67
+ }
@@ -0,0 +1,13 @@
1
+ /*
2
+ * This file is generated by objective.metadata
3
+ *
4
+ * Last update: Wed Jun 19 21:41:38 2024
5
+ */
6
+
7
+ static void __attribute__((__used__)) use_protocols(void)
8
+ {
9
+ PyObject* p __attribute__((__unused__));
10
+ #if PyObjC_BUILD_RELEASE >= 1500
11
+ p = PyObjC_IdToPython(@protocol(LAEnvironmentObserver)); Py_XDECREF(p);
12
+ #endif /* PyObjC_BUILD_RELEASE >= 1500 */
13
+ }
@@ -0,0 +1,214 @@
1
+ #ifndef PyObjC_API_H
2
+ #define PyObjC_API_H
3
+
4
+ /*
5
+ * Use this in helper modules for the objc package, and in wrappers
6
+ * for functions that deal with objective-C objects/classes
7
+ *
8
+ * This header defines some utility wrappers for importing and using
9
+ * the core bridge.
10
+ *
11
+ * This is the *only* header file that should be used to access
12
+ * functionality in the core bridge.
13
+ *
14
+ * WARNING: this file is not part of the public interface of PyObjC and
15
+ * might change or be removed without warning or regard for backward
16
+ * compatibility.
17
+ */
18
+
19
+ #include <objc/objc.h>
20
+
21
+ #import <Foundation/Foundation.h>
22
+
23
+ #include "pyobjc-compat.h"
24
+
25
+ #ifdef Py_LIMITED_API
26
+ /*
27
+ * Make sure PyObjC framework wrappers can build using the limited API
28
+ */
29
+ typedef void Py_buffer;
30
+ #endif
31
+
32
+ #include <objc/objc-runtime.h>
33
+
34
+ NS_ASSUME_NONNULL_BEGIN
35
+
36
+ /* Current API version, increase whenever:
37
+ * - Semantics of current functions change
38
+ * - Functions are removed
39
+ *
40
+ * Do not increase when adding a new function, the struct_len field
41
+ * can be used for detecting if a function has been added.
42
+ */
43
+ #ifndef PYOBJC_API_VERSION
44
+ #define PYOBJC_API_VERSION 25
45
+ #endif
46
+
47
+ #define PYOBJC_API_NAME "__C_API__"
48
+
49
+ #ifndef PyObjC_EXPECTED_STRUCT_SIZE
50
+ #define PyObjC_EXPECTED_STRUCT_SIZE (sizeof(struct pyobjc_api))
51
+ #endif
52
+
53
+ /*
54
+ * Only add items to the end of this list!
55
+ */
56
+ typedef int(RegisterMethodMappingFunctionType)(
57
+ Class, SEL,
58
+ PyObject* _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull,
59
+ PyObject* _Nonnull const* _Nonnull, size_t),
60
+ IMP _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull));
61
+
62
+ struct pyobjc_api {
63
+ int api_version; /* API version */
64
+ size_t struct_len; /* Length of this struct */
65
+ RegisterMethodMappingFunctionType* register_method_mapping;
66
+ id _Nullable (*_Nonnull obj_get_object)(PyObject* _Nonnull);
67
+ Class _Nullable (*_Nonnull cls_get_class)(PyObject* _Nonnull);
68
+ int (*_Nonnull depythonify_python_object)(PyObject* _Nonnull, id _Nullable* _Nonnull);
69
+ PyObject* _Nullable (*_Nonnull id_to_python)(id _Nullable);
70
+ void (*_Nonnull err_objc_to_python)(NSObject* _Nonnull);
71
+ int (*_Nonnull py_to_objc)(const char* _Nonnull, PyObject* _Nonnull, void* _Nonnull);
72
+ PyObject* _Nullable (*_Nonnull objc_to_py)(const char* _Nonnull,
73
+ const void* _Nonnull);
74
+ Py_ssize_t (*_Nonnull sizeof_type)(const char* _Nonnull);
75
+ Class _Nullable (*_Nonnull sel_get_class)(PyObject* _Nonnull sel);
76
+ SEL _Nullable (*_Nonnull sel_get_sel)(PyObject* _Nonnull sel);
77
+ int (*_Nonnull register_pointer_wrapper)(
78
+ const char* _Nonnull, const char* _Nonnull,
79
+ PyObject* _Nullable (*_Nonnull pythonify)(void* _Nonnull),
80
+ int (*_Nonnull depythonify)(PyObject* _Nonnull, void* _Nonnull));
81
+ IMP _Nullable (*_Nonnull unsupported_method_imp)(PyObject* _Nonnull,
82
+ PyObject* _Nonnull);
83
+ PyObject* _Nullable (*_Nonnull unsupported_method_caller)(
84
+ PyObject* _Nonnull, PyObject* _Nonnull, PyObject* _Nonnull const* _Nonnull,
85
+ size_t);
86
+ void (*_Nonnull err_python_to_objc_gil)(PyGILState_STATE* _Nonnull state) __attribute__((__noreturn__));
87
+ int (*_Nonnull simplify_sig)(const char* signature, char* buf, size_t buflen);
88
+ void (*_Nonnull free_c_array)(int, Py_buffer*);
89
+ int (*_Nonnull py_to_c_array)(BOOL, BOOL, const char* _Nonnull, PyObject* _Nonnull,
90
+ void* _Nullable* _Nonnull, Py_ssize_t* _Nullable,
91
+ PyObject* _Nonnull* _Nonnull, Py_buffer* _Nonnull);
92
+ PyObject* _Nullable (*_Nonnull c_array_to_py)(const char* _Nonnull,
93
+ const void* _Nonnull, Py_ssize_t);
94
+ PyTypeObject* _Nonnull imp_type;
95
+ IMP _Nullable (*_Nonnull imp_get_imp)(PyObject* _Nonnull);
96
+ SEL _Nullable (*_Nonnull imp_get_sel)(PyObject* _Nonnull);
97
+ PyObject* _Nullable (*_Nonnull newtransient)(id _Nullable objc_object,
98
+ int* _Nonnull cookie);
99
+ void (*_Nonnull releasetransient)(PyObject* _Nonnull proxy, int cookie);
100
+ PyObject* _Nonnull* _Nonnull pyobjc_null;
101
+ int (*_Nonnull dep_c_array_count)(const char* _Nonnull type, Py_ssize_t count,
102
+ BOOL strict, PyObject* _Nonnull value,
103
+ void* _Nonnull datum, BOOL, BOOL);
104
+ PyObject* _Nullable (*_Nonnull varlistnew)(const char* _Nonnull tp,
105
+ void* _Nonnull array);
106
+ int (*_Nonnull pyobjcobject_convert)(PyObject* _Nonnull, void* _Nonnull);
107
+ int (*_Nonnull register_id_alias)(const char* _Nonnull, const char* _Nonnull);
108
+ int (*_Nonnull memview_check)(PyObject* _Nonnull);
109
+ PyObject* _Nullable (*_Nonnull memview_new)(void);
110
+ Py_buffer* _Nullable (*_Nonnull memview_getbuffer)(PyObject* _Nonnull);
111
+ int (*_Nonnull checkargcount)(PyObject* _Nonnull callable, size_t min_args,
112
+ size_t max_args, size_t nargsf);
113
+ int (*_Nonnull checknokwnames)(PyObject* _Nonnull callable,
114
+ PyObject* _Nullable kwnames);
115
+
116
+ PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*, const char*);
117
+ };
118
+
119
+ #ifndef PYOBJC_BUILD
120
+
121
+ #ifndef PYOBJC_METHOD_STUB_IMPL
122
+ static struct pyobjc_api* PyObjC_API;
123
+ #endif /* PYOBJC_METHOD_STUB_IMPL */
124
+
125
+ #define PyObjCIMP_Check(obj) PyObject_TypeCheck(obj, PyObjC_API->imp_type)
126
+ #define PyObjCObject_GetObject (PyObjC_API->obj_get_object)
127
+ #define PyObjCClass_GetClass (PyObjC_API->cls_get_class)
128
+ #define PyObjCSelector_GetClass (PyObjC_API->sel_get_class)
129
+ #define PyObjCSelector_GetSelector (PyObjC_API->sel_get_sel)
130
+ #define depythonify_python_object (PyObjC_API->depythonify_python_object)
131
+ #define PyObjC_IdToPython (PyObjC_API->id_to_python)
132
+ #define PyObjCErr_FromObjC (PyObjC_API->err_objc_to_python)
133
+ #define PyObjCErr_ToObjCWithGILState (PyObjC_API->err_python_to_objc_gil)
134
+ #define PyObjC_PythonToObjC (PyObjC_API->py_to_objc)
135
+ #define PyObjC_ObjCToPython (PyObjC_API->objc_to_py)
136
+ #define PyObjC_RegisterMethodMapping (PyObjC_API->register_method_mapping)
137
+ #define PyObjCPointerWrapper_Register (PyObjC_API->register_pointer_wrapper)
138
+ #define PyObjCUnsupportedMethod_IMP (PyObjC_API->unsupported_method_imp)
139
+ #define PyObjCUnsupportedMethod_Caller (PyObjC_API->unsupported_method_caller)
140
+ #define PyObjCRT_SizeOfType (PyObjC_API->sizeof_type)
141
+ #define PyObjC_FreeCArray (PyObjC_API->free_c_array)
142
+ #define PyObjC_PythonToCArray (PyObjC_API->py_to_c_array)
143
+ #define PyObjC_CArrayToPython (PyObjC_API->c_array_to_py)
144
+ #define PyObjCIMP_GetIMP (PyObjC_API->imp_get_imp)
145
+ #define PyObjCIMP_GetSelector (PyObjC_API->imp_get_sel)
146
+ #define PyObjCObject_NewTransient (PyObjC_API->newtransient)
147
+ #define PyObjCObject_ReleaseTransient (PyObjC_API->releasetransient)
148
+ #define PyObjC_NULL (*(PyObjC_API->pyobjc_null))
149
+ #define PyObjC_DepythonifyCArray (PyObjC_API->dep_c_array_count)
150
+ #define PyObjCVarList_New (PyObjC_API->varlistnew)
151
+ #define PyObjCObject_Convert (PyObjC_API->pyobjcobject_convert)
152
+ #define PyObjCPointerWrapper_RegisterID (PyObjC_API->register_id_alias)
153
+ #define PyObjCMemView_Check (PyObjC_API->memview_check)
154
+ #define PyObjCMemView_New (PyObjC_API->memview_new)
155
+ #define PyObjCMemView_GetBuffer (PyObjC_API->memview_getbuffer)
156
+ #define PyObjC_CheckArgCount (PyObjC_API->checkargcount)
157
+ #define PyObjC_CheckNoKwnames (PyObjC_API->checknokwnames)
158
+ #define PyObjCCreateOpaquePointerType (PyObjC_API->createopaquepointertype)
159
+
160
+ typedef void (*PyObjC_Function_Pointer)(void);
161
+ typedef struct PyObjC_function_map {
162
+ const char* name;
163
+ PyObjC_Function_Pointer function;
164
+ } PyObjC_function_map;
165
+
166
+ #ifndef PYOBJC_METHOD_STUB_IMPL
167
+
168
+ static inline PyObject*
169
+ PyObjC_CreateInlineTab(PyObjC_function_map* map)
170
+ {
171
+ return PyCapsule_New(map, "objc.__inline__", NULL);
172
+ }
173
+
174
+ static inline int
175
+ PyObjC_ImportAPI(PyObject* calling_module)
176
+ {
177
+ PyObjC_API = (struct pyobjc_api*)PyCapsule_Import("objc." PYOBJC_API_NAME, 0);
178
+ if (PyObjC_API == NULL) {
179
+ return -1;
180
+ }
181
+ if (PyObjC_API->api_version != PYOBJC_API_VERSION) {
182
+ PyErr_Format(PyExc_RuntimeError,
183
+ "Wrong version of PyObjC C API (got %d, expected %d)",
184
+ (int)PyObjC_API->api_version, (int)PYOBJC_API_VERSION);
185
+ return -1;
186
+ }
187
+
188
+ if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) {
189
+ PyErr_Format(PyExc_RuntimeError,
190
+ "Wrong struct-size of PyObjC C API (got %d, expected %d)",
191
+ (int)PyObjC_API->struct_len, (int)sizeof(struct pyobjc_api));
192
+ return -1;
193
+ }
194
+
195
+ /* Current pyobjc implementation doesn't allow deregistering
196
+ * information, avoid unloading of users of the C-API.
197
+ * (Yes this is ugle, patches to fix this situation are apriciated)
198
+ */
199
+ Py_INCREF(calling_module);
200
+
201
+ return 0;
202
+ }
203
+ #endif /* PYOBJC_METHOD_STUB_IMPL */
204
+
205
+ #else /* PyObjC_BUILD */
206
+
207
+ extern struct pyobjc_api objc_api;
208
+ extern int PyObjCAPI_Register(PyObject* module);
209
+
210
+ #endif /* !PYOBJC_BUILD */
211
+
212
+ NS_ASSUME_NONNULL_END
213
+
214
+ #endif /* PyObjC_API_H */