pyobjc-framework-NetworkExtension 12.2.1__tar.gz → 13.0__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 (67) hide show
  1. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Lib/NetworkExtension/_metadata.py +57 -9
  2. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Lib/pyobjc_framework_NetworkExtension.egg-info/PKG-INFO +5 -5
  3. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Lib/pyobjc_framework_NetworkExtension.egg-info/SOURCES.txt +3 -4
  4. pyobjc_framework_networkextension-13.0/Lib/pyobjc_framework_NetworkExtension.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_networkextension-13.0/Lib/pyobjc_framework_NetworkExtension.egg-info/requires.txt +2 -0
  6. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Modules/_NetworkExtension.m +9 -2
  7. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Modules/_NetworkExtension_protocols.m +8 -5
  8. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Modules/pyobjc-api.h +18 -4
  9. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Modules/pyobjc-compat.h +0 -18
  10. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PKG-INFO +5 -5
  11. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_neappproxyflow.py +6 -7
  12. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_neappproxyprovider.py +3 -3
  13. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_neappproxyprovidermanager.py +1 -1
  14. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_neappproxytcpflow.py +1 -1
  15. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_neappproxyudpflow.py +2 -2
  16. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nednsproxymanager.py +9 -1
  17. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nednssettings.py +1 -3
  18. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nednssettingsmanager.py +1 -3
  19. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nefailurehandlerprovider.py +1 -1
  20. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nefiltercontrolprovider.py +2 -2
  21. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nefilterdataprovider.py +2 -4
  22. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nefilterflow.py +1 -1
  23. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nefiltermanager.py +5 -6
  24. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nefilterpacketprovider.py +1 -3
  25. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nefilterprovider.py +17 -19
  26. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nefilterproviderconfiguration.py +2 -2
  27. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nenetworkrule.py +2 -4
  28. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_neondemandrule.py +8 -11
  29. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nepackettunnelflow.py +2 -2
  30. pyobjc_framework_networkextension-13.0/PyObjCTest/test_nepackettunnelnetworksettings.py +41 -0
  31. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nepackettunnelprovider.py +1 -1
  32. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_neprovider.py +3 -6
  33. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_neproxysettings.py +1 -1
  34. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nerelaymanager.py +1 -1
  35. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_netransparentproxymanager.py +1 -1
  36. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_netunnelprovider.py +5 -6
  37. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_netunnelprovidermanager.py +5 -1
  38. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_netunnelprovidersession.py +1 -1
  39. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_neurlfilter.py +1 -1
  40. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nevpnconnection.py +6 -8
  41. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nevpnmanager.py +4 -5
  42. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nevpnprotocol.py +5 -5
  43. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nevpnprotocolikev2.py +30 -34
  44. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nevpnprotocolipsec.py +2 -5
  45. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nsdnssettings.py +1 -1
  46. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nwpath.py +2 -5
  47. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nwtcpconnection.py +9 -9
  48. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nwudpsession.py +2 -5
  49. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/metadata/NetworkExtension.fwinfo +0 -413
  50. pyobjc_framework_networkextension-12.2.1/metadata/raw/arm64-26.5.fwinfo → pyobjc_framework_networkextension-13.0/metadata/raw/arm64-27.fwinfo +279 -3
  51. pyobjc_framework_networkextension-12.2.1/metadata/raw/x86_64-26.5.fwinfo → pyobjc_framework_networkextension-13.0/metadata/raw/x86_64-27.fwinfo +279 -3
  52. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/pyobjc_setup.py +7 -7
  53. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/setup.py +1 -1
  54. pyobjc_framework_networkextension-12.2.1/Lib/pyobjc_framework_NetworkExtension.egg-info/pyobjc-build-info.txt +0 -3
  55. pyobjc_framework_networkextension-12.2.1/Lib/pyobjc_framework_NetworkExtension.egg-info/requires.txt +0 -2
  56. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Lib/NetworkExtension/__init__.py +0 -0
  57. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Lib/pyobjc_framework_NetworkExtension.egg-info/dependency_links.txt +0 -0
  58. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Lib/pyobjc_framework_NetworkExtension.egg-info/not-zip-safe +0 -0
  59. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/Lib/pyobjc_framework_NetworkExtension.egg-info/top_level.txt +0 -0
  60. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/License.txt +0 -0
  61. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/MANIFEST.in +0 -0
  62. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/__init__.py +0 -0
  63. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_nednsproxyprovider.py +0 -0
  64. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/PyObjCTest/test_networkextension.py +0 -0
  65. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/metadata/metadata.ini +0 -0
  66. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/pyproject.toml +0 -0
  67. {pyobjc_framework_networkextension-12.2.1 → pyobjc_framework_networkextension-13.0}/setup.cfg +0 -0
@@ -1,7 +1,5 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Thu May 28 22:45:08 2026
4
- #
5
3
  # flake8: noqa
6
4
 
7
5
  import objc, sys
@@ -31,7 +29,7 @@ else:
31
29
 
32
30
  misc = {}
33
31
  constants = """$NEAppProxyErrorDomain$NEAppPushErrorDomain$NEDNSProxyConfigurationDidChangeNotification$NEDNSProxyErrorDomain$NEDNSSettingsConfigurationDidChangeNotification$NEDNSSettingsErrorDomain$NEFilterConfigurationDidChangeNotification$NEFilterErrorDomain$NEFilterProviderRemediationMapRemediationButtonTexts$NEFilterProviderRemediationMapRemediationURLs$NEHotspotConfigurationErrorDomain$NERelayClientErrorDomain$NERelayConfigurationDidChangeNotification$NERelayErrorDomain$NETunnelProviderErrorDomain$NEVPNConfigurationChangeNotification$NEVPNConnectionErrorDomain$NEVPNConnectionStartOptionPassword$NEVPNConnectionStartOptionUsername$NEVPNErrorDomain$NEVPNStatusDidChangeNotification$kNEHotspotHelperOptionDisplayName$"""
34
- enums = """$NEAppProxyFlowErrorAborted@5$NEAppProxyFlowErrorDatagramTooLarge@9$NEAppProxyFlowErrorHostUnreachable@3$NEAppProxyFlowErrorInternal@8$NEAppProxyFlowErrorInvalidArgument@4$NEAppProxyFlowErrorNotConnected@1$NEAppProxyFlowErrorPeerReset@2$NEAppProxyFlowErrorReadAlreadyPending@10$NEAppProxyFlowErrorRefused@6$NEAppProxyFlowErrorTimedOut@7$NEAppPushManagerErrorConfigurationInvalid@1$NEAppPushManagerErrorConfigurationNotLoaded@2$NEAppPushManagerErrorInactiveSession@4$NEAppPushManagerErrorInternalError@3$NEDNSProtocolCleartext@1$NEDNSProtocolHTTPS@3$NEDNSProtocolTLS@2$NEDNSProxyManagerErrorConfigurationCannotBeRemoved@4$NEDNSProxyManagerErrorConfigurationDisabled@2$NEDNSProxyManagerErrorConfigurationInvalid@1$NEDNSProxyManagerErrorConfigurationStale@3$NEDNSSettingsManagerErrorConfigurationCannotBeRemoved@4$NEDNSSettingsManagerErrorConfigurationDisabled@2$NEDNSSettingsManagerErrorConfigurationInvalid@1$NEDNSSettingsManagerErrorConfigurationStale@3$NEEvaluateConnectionRuleActionConnectIfNeeded@1$NEEvaluateConnectionRuleActionNeverConnect@2$NEFilterActionAllow@1$NEFilterActionDrop@2$NEFilterActionFilterData@4$NEFilterActionInvalid@0$NEFilterActionRemediate@3$NEFilterDataAttributeHasIPHeader@1$NEFilterFlowBytesMax@18446744073709551615$NEFilterManagerErrorConfigurationCannotBeRemoved@4$NEFilterManagerErrorConfigurationDisabled@2$NEFilterManagerErrorConfigurationInternalError@6$NEFilterManagerErrorConfigurationInvalid@1$NEFilterManagerErrorConfigurationPermissionDenied@5$NEFilterManagerErrorConfigurationStale@3$NEFilterManagerGradeFirewall@1$NEFilterManagerGradeInspector@2$NEFilterPacketProviderVerdictAllow@0$NEFilterPacketProviderVerdictDelay@2$NEFilterPacketProviderVerdictDrop@1$NEFilterReportEventDataDecision@2$NEFilterReportEventFlowClosed@3$NEFilterReportEventNewFlow@1$NEFilterReportEventStatistics@4$NEFilterReportFrequencyHigh@3$NEFilterReportFrequencyLow@1$NEFilterReportFrequencyMedium@2$NEFilterReportFrequencyNone@0$NEHotspotConfigurationEAPTLSVersion_1_0@0$NEHotspotConfigurationEAPTLSVersion_1_1@1$NEHotspotConfigurationEAPTLSVersion_1_2@2$NEHotspotConfigurationEAPTTLSInnerAuthenticationCHAP@1$NEHotspotConfigurationEAPTTLSInnerAuthenticationEAP@4$NEHotspotConfigurationEAPTTLSInnerAuthenticationMSCHAP@2$NEHotspotConfigurationEAPTTLSInnerAuthenticationMSCHAPv2@3$NEHotspotConfigurationEAPTTLSInnerAuthenticationPAP@0$NEHotspotConfigurationEAPTypeEAPFAST@43$NEHotspotConfigurationEAPTypeEAPPEAP@25$NEHotspotConfigurationEAPTypeEAPTLS@13$NEHotspotConfigurationEAPTypeEAPTTLS@21$NEHotspotConfigurationErrorAlreadyAssociated@13$NEHotspotConfigurationErrorApplicationIsNotInForeground@14$NEHotspotConfigurationErrorInternal@8$NEHotspotConfigurationErrorInvalid@0$NEHotspotConfigurationErrorInvalidEAPSettings@4$NEHotspotConfigurationErrorInvalidHS20DomainName@6$NEHotspotConfigurationErrorInvalidHS20Settings@5$NEHotspotConfigurationErrorInvalidSSID@1$NEHotspotConfigurationErrorInvalidSSIDPrefix@15$NEHotspotConfigurationErrorInvalidWEPPassphrase@3$NEHotspotConfigurationErrorInvalidWPAPassphrase@2$NEHotspotConfigurationErrorJoinOnceNotSupported@12$NEHotspotConfigurationErrorPending@9$NEHotspotConfigurationErrorSystemConfiguration@10$NEHotspotConfigurationErrorSystemDenied@17$NEHotspotConfigurationErrorUnknown@11$NEHotspotConfigurationErrorUserDenied@7$NEHotspotConfigurationErrorUserUnauthorized@16$NEHotspotNetworkSecurityTypeEnterprise@3$NEHotspotNetworkSecurityTypeOpen@0$NEHotspotNetworkSecurityTypePersonal@2$NEHotspotNetworkSecurityTypeUnknown@4$NEHotspotNetworkSecurityTypeWEP@1$NENetworkRuleProtocolAny@0$NENetworkRuleProtocolTCP@1$NENetworkRuleProtocolUDP@2$NEOnDemandRuleActionConnect@1$NEOnDemandRuleActionDisconnect@2$NEOnDemandRuleActionEvaluateConnection@3$NEOnDemandRuleActionIgnore@4$NEOnDemandRuleInterfaceTypeAny@0$NEOnDemandRuleInterfaceTypeCellular@3$NEOnDemandRuleInterfaceTypeEthernet@1$NEOnDemandRuleInterfaceTypeWiFi@2$NEProviderStopReasonAppUpdate@16$NEProviderStopReasonAuthenticationCanceled@6$NEProviderStopReasonConfigurationDisabled@9$NEProviderStopReasonConfigurationFailed@7$NEProviderStopReasonConfigurationRemoved@10$NEProviderStopReasonConnectionFailed@14$NEProviderStopReasonIdleTimeout@8$NEProviderStopReasonInternalError@17$NEProviderStopReasonNoNetworkAvailable@3$NEProviderStopReasonNone@0$NEProviderStopReasonProviderDisabled@5$NEProviderStopReasonProviderFailed@2$NEProviderStopReasonSleep@15$NEProviderStopReasonSuperceded@11$NEProviderStopReasonUnrecoverableNetworkChange@4$NEProviderStopReasonUserInitiated@1$NEProviderStopReasonUserLogout@12$NEProviderStopReasonUserSwitch@13$NERelayManagerClientErrorCertificateExpired@7$NERelayManagerClientErrorCertificateInvalid@6$NERelayManagerClientErrorCertificateMissing@5$NERelayManagerClientErrorDNSFailed@2$NERelayManagerClientErrorNone@1$NERelayManagerClientErrorOther@10$NERelayManagerClientErrorPvDConfigurationTruncated@11$NERelayManagerClientErrorServerCertificateExpired@9$NERelayManagerClientErrorServerCertificateInvalid@8$NERelayManagerClientErrorServerDisconnected@4$NERelayManagerClientErrorServerUnreachable@3$NERelayManagerErrorConfigurationCannotBeRemoved@4$NERelayManagerErrorConfigurationDisabled@2$NERelayManagerErrorConfigurationInvalid@1$NERelayManagerErrorConfigurationStale@3$NETrafficDirectionAny@0$NETrafficDirectionInbound@1$NETrafficDirectionOutbound@2$NETunnelProviderErrorNetworkSettingsCanceled@2$NETunnelProviderErrorNetworkSettingsFailed@3$NETunnelProviderErrorNetworkSettingsInvalid@1$NETunnelProviderRoutingMethodDestinationIP@1$NETunnelProviderRoutingMethodNetworkRule@3$NETunnelProviderRoutingMethodSourceApplication@2$NEURLFilterVerdictAllow@2$NEURLFilterVerdictDeny@3$NEURLFilterVerdictUnknown@1$NEVPNConnectionErrorAuthenticationFailed@8$NEVPNConnectionErrorClientCertificateExpired@11$NEVPNConnectionErrorClientCertificateInvalid@9$NEVPNConnectionErrorClientCertificateNotYetValid@10$NEVPNConnectionErrorConfigurationFailed@4$NEVPNConnectionErrorConfigurationNotFound@13$NEVPNConnectionErrorNegotiationFailed@15$NEVPNConnectionErrorNoNetworkAvailable@2$NEVPNConnectionErrorOverslept@1$NEVPNConnectionErrorPluginDisabled@14$NEVPNConnectionErrorPluginFailed@12$NEVPNConnectionErrorServerAddressResolutionFailed@5$NEVPNConnectionErrorServerCertificateExpired@19$NEVPNConnectionErrorServerCertificateInvalid@17$NEVPNConnectionErrorServerCertificateNotYetValid@18$NEVPNConnectionErrorServerDead@7$NEVPNConnectionErrorServerDisconnected@16$NEVPNConnectionErrorServerNotResponding@6$NEVPNConnectionErrorUnrecoverableNetworkChange@3$NEVPNErrorConfigurationDisabled@2$NEVPNErrorConfigurationInvalid@1$NEVPNErrorConfigurationReadWriteFailed@5$NEVPNErrorConfigurationStale@4$NEVPNErrorConfigurationUnknown@6$NEVPNErrorConnectionFailed@3$NEVPNIKEAuthenticationMethodCertificate@1$NEVPNIKEAuthenticationMethodNone@0$NEVPNIKEAuthenticationMethodSharedSecret@2$NEVPNIKEv2CertificateTypeECDSA256@2$NEVPNIKEv2CertificateTypeECDSA384@3$NEVPNIKEv2CertificateTypeECDSA521@4$NEVPNIKEv2CertificateTypeEd25519@5$NEVPNIKEv2CertificateTypeRSA@1$NEVPNIKEv2CertificateTypeRSAPSS@6$NEVPNIKEv2DeadPeerDetectionRateHigh@3$NEVPNIKEv2DeadPeerDetectionRateLow@1$NEVPNIKEv2DeadPeerDetectionRateMedium@2$NEVPNIKEv2DeadPeerDetectionRateNone@0$NEVPNIKEv2DiffieHellmanGroup0@0$NEVPNIKEv2DiffieHellmanGroup1@1$NEVPNIKEv2DiffieHellmanGroup14@14$NEVPNIKEv2DiffieHellmanGroup15@15$NEVPNIKEv2DiffieHellmanGroup16@16$NEVPNIKEv2DiffieHellmanGroup17@17$NEVPNIKEv2DiffieHellmanGroup18@18$NEVPNIKEv2DiffieHellmanGroup19@19$NEVPNIKEv2DiffieHellmanGroup2@2$NEVPNIKEv2DiffieHellmanGroup20@20$NEVPNIKEv2DiffieHellmanGroup21@21$NEVPNIKEv2DiffieHellmanGroup31@31$NEVPNIKEv2DiffieHellmanGroup32@32$NEVPNIKEv2DiffieHellmanGroup5@5$NEVPNIKEv2DiffieHellmanGroupInvalid@0$NEVPNIKEv2EncryptionAlgorithm3DES@2$NEVPNIKEv2EncryptionAlgorithmAES128@3$NEVPNIKEv2EncryptionAlgorithmAES128GCM@5$NEVPNIKEv2EncryptionAlgorithmAES256@4$NEVPNIKEv2EncryptionAlgorithmAES256GCM@6$NEVPNIKEv2EncryptionAlgorithmChaCha20Poly1305@7$NEVPNIKEv2EncryptionAlgorithmDES@1$NEVPNIKEv2IntegrityAlgorithmSHA160@2$NEVPNIKEv2IntegrityAlgorithmSHA256@3$NEVPNIKEv2IntegrityAlgorithmSHA384@4$NEVPNIKEv2IntegrityAlgorithmSHA512@5$NEVPNIKEv2IntegrityAlgorithmSHA96@1$NEVPNIKEv2PostQuantumKeyExchangeMethod36@36$NEVPNIKEv2PostQuantumKeyExchangeMethod37@37$NEVPNIKEv2PostQuantumKeyExchangeMethodNone@0$NEVPNIKEv2TLSVersion1_0@1$NEVPNIKEv2TLSVersion1_1@2$NEVPNIKEv2TLSVersion1_2@3$NEVPNIKEv2TLSVersionDefault@0$NEVPNStatusConnected@3$NEVPNStatusConnecting@2$NEVPNStatusDisconnected@1$NEVPNStatusDisconnecting@5$NEVPNStatusInvalid@0$NEVPNStatusReasserting@4$NWPathStatusInvalid@0$NWPathStatusSatisfiable@3$NWPathStatusSatisfied@1$NWPathStatusUnsatisfied@2$NWTCPConnectionStateCancelled@5$NWTCPConnectionStateConnected@3$NWTCPConnectionStateConnecting@1$NWTCPConnectionStateDisconnected@4$NWTCPConnectionStateInvalid@0$NWTCPConnectionStateWaiting@2$NWUDPSessionStateCancelled@5$NWUDPSessionStateFailed@4$NWUDPSessionStateInvalid@0$NWUDPSessionStatePreparing@2$NWUDPSessionStateReady@3$NWUDPSessionStateWaiting@1$kNEHotspotHelperCommandTypeAuthenticate@3$kNEHotspotHelperCommandTypeEvaluate@2$kNEHotspotHelperCommandTypeFilterScanList@1$kNEHotspotHelperCommandTypeLogoff@6$kNEHotspotHelperCommandTypeMaintain@5$kNEHotspotHelperCommandTypeNone@0$kNEHotspotHelperCommandTypePresentUI@4$kNEHotspotHelperConfidenceHigh@2$kNEHotspotHelperConfidenceLow@1$kNEHotspotHelperConfidenceNone@0$kNEHotspotHelperResultAuthenticationRequired@4$kNEHotspotHelperResultCommandNotRecognized@3$kNEHotspotHelperResultFailure@1$kNEHotspotHelperResultSuccess@0$kNEHotspotHelperResultTemporaryFailure@6$kNEHotspotHelperResultUIRequired@2$kNEHotspotHelperResultUnsupportedNetwork@5$"""
32
+ enums = """$NEAppProxyFlowErrorAborted@5$NEAppProxyFlowErrorDatagramTooLarge@9$NEAppProxyFlowErrorHostUnreachable@3$NEAppProxyFlowErrorInternal@8$NEAppProxyFlowErrorInvalidArgument@4$NEAppProxyFlowErrorNotConnected@1$NEAppProxyFlowErrorPeerReset@2$NEAppProxyFlowErrorReadAlreadyPending@10$NEAppProxyFlowErrorRefused@6$NEAppProxyFlowErrorTimedOut@7$NEAppPushManagerErrorConfigurationInvalid@1$NEAppPushManagerErrorConfigurationNotLoaded@2$NEAppPushManagerErrorInactiveSession@4$NEAppPushManagerErrorInternalError@3$NEDNSProtocolCleartext@1$NEDNSProtocolHTTPS@3$NEDNSProtocolTLS@2$NEDNSProxyManagerErrorConfigurationCannotBeRemoved@4$NEDNSProxyManagerErrorConfigurationDisabled@2$NEDNSProxyManagerErrorConfigurationInvalid@1$NEDNSProxyManagerErrorConfigurationStale@3$NEDNSSettingsManagerErrorConfigurationCannotBeRemoved@4$NEDNSSettingsManagerErrorConfigurationDisabled@2$NEDNSSettingsManagerErrorConfigurationInvalid@1$NEDNSSettingsManagerErrorConfigurationStale@3$NEEvaluateConnectionRuleActionConnectIfNeeded@1$NEEvaluateConnectionRuleActionNeverConnect@2$NEFilterActionAllow@1$NEFilterActionDrop@2$NEFilterActionFilterData@4$NEFilterActionInvalid@0$NEFilterActionRemediate@3$NEFilterDataAttributeHasIPHeader@1$NEFilterFlowBytesMax@18446744073709551615$NEFilterManagerErrorConfigurationCannotBeRemoved@4$NEFilterManagerErrorConfigurationDisabled@2$NEFilterManagerErrorConfigurationInternalError@6$NEFilterManagerErrorConfigurationInvalid@1$NEFilterManagerErrorConfigurationPermissionDenied@5$NEFilterManagerErrorConfigurationStale@3$NEFilterManagerGradeFirewall@1$NEFilterManagerGradeInspector@2$NEFilterPacketProviderVerdictAllow@0$NEFilterPacketProviderVerdictDelay@2$NEFilterPacketProviderVerdictDrop@1$NEFilterReportEventDataDecision@2$NEFilterReportEventFlowClosed@3$NEFilterReportEventNewFlow@1$NEFilterReportEventStatistics@4$NEFilterReportFrequencyHigh@3$NEFilterReportFrequencyLow@1$NEFilterReportFrequencyMedium@2$NEFilterReportFrequencyNone@0$NEHotspotConfigurationEAPTLSVersion_1_0@0$NEHotspotConfigurationEAPTLSVersion_1_1@1$NEHotspotConfigurationEAPTLSVersion_1_2@2$NEHotspotConfigurationEAPTTLSInnerAuthenticationCHAP@1$NEHotspotConfigurationEAPTTLSInnerAuthenticationEAP@4$NEHotspotConfigurationEAPTTLSInnerAuthenticationMSCHAP@2$NEHotspotConfigurationEAPTTLSInnerAuthenticationMSCHAPv2@3$NEHotspotConfigurationEAPTTLSInnerAuthenticationPAP@0$NEHotspotConfigurationEAPTypeEAPFAST@43$NEHotspotConfigurationEAPTypeEAPPEAP@25$NEHotspotConfigurationEAPTypeEAPTLS@13$NEHotspotConfigurationEAPTypeEAPTTLS@21$NEHotspotConfigurationErrorAlreadyAssociated@13$NEHotspotConfigurationErrorApplicationIsNotInForeground@14$NEHotspotConfigurationErrorInternal@8$NEHotspotConfigurationErrorInvalid@0$NEHotspotConfigurationErrorInvalidEAPSettings@4$NEHotspotConfigurationErrorInvalidHS20DomainName@6$NEHotspotConfigurationErrorInvalidHS20Settings@5$NEHotspotConfigurationErrorInvalidSSID@1$NEHotspotConfigurationErrorInvalidSSIDPrefix@15$NEHotspotConfigurationErrorInvalidWEPPassphrase@3$NEHotspotConfigurationErrorInvalidWPAPassphrase@2$NEHotspotConfigurationErrorJoinOnceNotSupported@12$NEHotspotConfigurationErrorPending@9$NEHotspotConfigurationErrorSystemConfiguration@10$NEHotspotConfigurationErrorSystemDenied@17$NEHotspotConfigurationErrorUnknown@11$NEHotspotConfigurationErrorUserDenied@7$NEHotspotConfigurationErrorUserUnauthorized@16$NEHotspotNetworkSecurityTypeEnterprise@3$NEHotspotNetworkSecurityTypeOpen@0$NEHotspotNetworkSecurityTypePersonal@2$NEHotspotNetworkSecurityTypeUnknown@4$NEHotspotNetworkSecurityTypeWEP@1$NENetworkRuleProtocolAny@0$NENetworkRuleProtocolTCP@1$NENetworkRuleProtocolUDP@2$NEOnDemandRuleActionConnect@1$NEOnDemandRuleActionDisconnect@2$NEOnDemandRuleActionEvaluateConnection@3$NEOnDemandRuleActionIgnore@4$NEOnDemandRuleInterfaceTypeAny@0$NEOnDemandRuleInterfaceTypeCellular@3$NEOnDemandRuleInterfaceTypeEthernet@1$NEOnDemandRuleInterfaceTypeWiFi@2$NEPacketTunnelNetworkSettingsIPFamilyAny@1$NEPacketTunnelNetworkSettingsIPFamilyIPv4@2$NEPacketTunnelNetworkSettingsIPFamilyIPv6@3$NEPacketTunnelNetworkSettingsIPFamilyNone@0$NEProviderStopReasonAppUpdate@16$NEProviderStopReasonAuthenticationCanceled@6$NEProviderStopReasonConfigurationDisabled@9$NEProviderStopReasonConfigurationFailed@7$NEProviderStopReasonConfigurationRemoved@10$NEProviderStopReasonConnectionFailed@14$NEProviderStopReasonIdleTimeout@8$NEProviderStopReasonInternalError@17$NEProviderStopReasonNoNetworkAvailable@3$NEProviderStopReasonNone@0$NEProviderStopReasonProviderDisabled@5$NEProviderStopReasonProviderFailed@2$NEProviderStopReasonSleep@15$NEProviderStopReasonSuperceded@11$NEProviderStopReasonUnrecoverableNetworkChange@4$NEProviderStopReasonUserInitiated@1$NEProviderStopReasonUserLogout@12$NEProviderStopReasonUserSwitch@13$NERelayManagerClientErrorCertificateExpired@7$NERelayManagerClientErrorCertificateInvalid@6$NERelayManagerClientErrorCertificateMissing@5$NERelayManagerClientErrorDNSFailed@2$NERelayManagerClientErrorNone@1$NERelayManagerClientErrorOther@10$NERelayManagerClientErrorPvDConfigurationTruncated@11$NERelayManagerClientErrorServerCertificateExpired@9$NERelayManagerClientErrorServerCertificateInvalid@8$NERelayManagerClientErrorServerDisconnected@4$NERelayManagerClientErrorServerUnreachable@3$NERelayManagerErrorConfigurationCannotBeRemoved@4$NERelayManagerErrorConfigurationDisabled@2$NERelayManagerErrorConfigurationInvalid@1$NERelayManagerErrorConfigurationStale@3$NETrafficDirectionAny@0$NETrafficDirectionInbound@1$NETrafficDirectionOutbound@2$NETunnelProviderErrorNetworkSettingsCanceled@2$NETunnelProviderErrorNetworkSettingsFailed@3$NETunnelProviderErrorNetworkSettingsInvalid@1$NETunnelProviderRoutingMethodDestinationIP@1$NETunnelProviderRoutingMethodNetworkRule@3$NETunnelProviderRoutingMethodSourceApplication@2$NEURLFilterVerdictAllow@2$NEURLFilterVerdictDeny@3$NEURLFilterVerdictUnknown@1$NEVPNConnectionErrorAuthenticationFailed@8$NEVPNConnectionErrorClientCertificateExpired@11$NEVPNConnectionErrorClientCertificateInvalid@9$NEVPNConnectionErrorClientCertificateNotYetValid@10$NEVPNConnectionErrorConfigurationFailed@4$NEVPNConnectionErrorConfigurationNotFound@13$NEVPNConnectionErrorNegotiationFailed@15$NEVPNConnectionErrorNoNetworkAvailable@2$NEVPNConnectionErrorOverslept@1$NEVPNConnectionErrorPluginDisabled@14$NEVPNConnectionErrorPluginFailed@12$NEVPNConnectionErrorServerAddressResolutionFailed@5$NEVPNConnectionErrorServerCertificateExpired@19$NEVPNConnectionErrorServerCertificateInvalid@17$NEVPNConnectionErrorServerCertificateNotYetValid@18$NEVPNConnectionErrorServerDead@7$NEVPNConnectionErrorServerDisconnected@16$NEVPNConnectionErrorServerNotResponding@6$NEVPNConnectionErrorUnrecoverableNetworkChange@3$NEVPNErrorConfigurationDisabled@2$NEVPNErrorConfigurationInvalid@1$NEVPNErrorConfigurationReadWriteFailed@5$NEVPNErrorConfigurationStale@4$NEVPNErrorConfigurationUnknown@6$NEVPNErrorConnectionFailed@3$NEVPNIKEAuthenticationMethodCertificate@1$NEVPNIKEAuthenticationMethodNone@0$NEVPNIKEAuthenticationMethodSharedSecret@2$NEVPNIKEv2CertificateTypeECDSA256@2$NEVPNIKEv2CertificateTypeECDSA384@3$NEVPNIKEv2CertificateTypeECDSA521@4$NEVPNIKEv2CertificateTypeEd25519@5$NEVPNIKEv2CertificateTypeRSA@1$NEVPNIKEv2CertificateTypeRSAPSS@6$NEVPNIKEv2DeadPeerDetectionRateHigh@3$NEVPNIKEv2DeadPeerDetectionRateLow@1$NEVPNIKEv2DeadPeerDetectionRateMedium@2$NEVPNIKEv2DeadPeerDetectionRateNone@0$NEVPNIKEv2DiffieHellmanGroup1@1$NEVPNIKEv2DiffieHellmanGroup14@14$NEVPNIKEv2DiffieHellmanGroup15@15$NEVPNIKEv2DiffieHellmanGroup16@16$NEVPNIKEv2DiffieHellmanGroup17@17$NEVPNIKEv2DiffieHellmanGroup18@18$NEVPNIKEv2DiffieHellmanGroup19@19$NEVPNIKEv2DiffieHellmanGroup2@2$NEVPNIKEv2DiffieHellmanGroup20@20$NEVPNIKEv2DiffieHellmanGroup21@21$NEVPNIKEv2DiffieHellmanGroup31@31$NEVPNIKEv2DiffieHellmanGroup32@32$NEVPNIKEv2DiffieHellmanGroup5@5$NEVPNIKEv2DiffieHellmanGroupInvalid@0$NEVPNIKEv2EncryptionAlgorithm3DES@2$NEVPNIKEv2EncryptionAlgorithmAES128@3$NEVPNIKEv2EncryptionAlgorithmAES128GCM@5$NEVPNIKEv2EncryptionAlgorithmAES256@4$NEVPNIKEv2EncryptionAlgorithmAES256GCM@6$NEVPNIKEv2EncryptionAlgorithmChaCha20Poly1305@7$NEVPNIKEv2EncryptionAlgorithmDES@1$NEVPNIKEv2IntegrityAlgorithmSHA160@2$NEVPNIKEv2IntegrityAlgorithmSHA256@3$NEVPNIKEv2IntegrityAlgorithmSHA384@4$NEVPNIKEv2IntegrityAlgorithmSHA512@5$NEVPNIKEv2IntegrityAlgorithmSHA96@1$NEVPNIKEv2PostQuantumKeyExchangeMethod36@36$NEVPNIKEv2PostQuantumKeyExchangeMethod37@37$NEVPNIKEv2PostQuantumKeyExchangeMethodNone@0$NEVPNIKEv2TLSVersion1_0@1$NEVPNIKEv2TLSVersion1_1@2$NEVPNIKEv2TLSVersion1_2@3$NEVPNIKEv2TLSVersion1_3@4$NEVPNIKEv2TLSVersionDefault@0$NEVPNStatusConnected@3$NEVPNStatusConnecting@2$NEVPNStatusDisconnected@1$NEVPNStatusDisconnecting@5$NEVPNStatusInvalid@0$NEVPNStatusReasserting@4$NWPathStatusInvalid@0$NWPathStatusSatisfiable@3$NWPathStatusSatisfied@1$NWPathStatusUnsatisfied@2$NWTCPConnectionStateCancelled@5$NWTCPConnectionStateConnected@3$NWTCPConnectionStateConnecting@1$NWTCPConnectionStateDisconnected@4$NWTCPConnectionStateInvalid@0$NWTCPConnectionStateWaiting@2$NWUDPSessionStateCancelled@5$NWUDPSessionStateFailed@4$NWUDPSessionStateInvalid@0$NWUDPSessionStatePreparing@2$NWUDPSessionStateReady@3$NWUDPSessionStateWaiting@1$kNEHotspotHelperCommandTypeAuthenticate@3$kNEHotspotHelperCommandTypeEvaluate@2$kNEHotspotHelperCommandTypeFilterScanList@1$kNEHotspotHelperCommandTypeLogoff@6$kNEHotspotHelperCommandTypeMaintain@5$kNEHotspotHelperCommandTypeNone@0$kNEHotspotHelperCommandTypePresentUI@4$kNEHotspotHelperConfidenceHigh@2$kNEHotspotHelperConfidenceLow@1$kNEHotspotHelperConfidenceNone@0$kNEHotspotHelperResultAuthenticationRequired@4$kNEHotspotHelperResultCommandNotRecognized@3$kNEHotspotHelperResultFailure@1$kNEHotspotHelperResultSuccess@0$kNEHotspotHelperResultTemporaryFailure@6$kNEHotspotHelperResultUIRequired@2$kNEHotspotHelperResultUnsupportedNetwork@5$"""
35
33
  misc.update(
36
34
  {
37
35
  "NEVPNConnectionError": NewType("NEVPNConnectionError", int),
@@ -54,8 +52,8 @@ misc.update(
54
52
  "NETrafficDirection": NewType("NETrafficDirection", int),
55
53
  "NEVPNIKEv2DiffieHellmanGroup": NewType("NEVPNIKEv2DiffieHellmanGroup", int),
56
54
  "NEVPNIKEv2IntegrityAlgorithm": NewType("NEVPNIKEv2IntegrityAlgorithm", int),
57
- "NEVPNIKEv2DeadPeerDetectionRate": NewType(
58
- "NEVPNIKEv2DeadPeerDetectionRate", int
55
+ "NEPacketTunnelNetworkSettingsIPFamily": NewType(
56
+ "NEPacketTunnelNetworkSettingsIPFamily", int
59
57
  ),
60
58
  "NWPathStatus": NewType("NWPathStatus", int),
61
59
  "NEHotspotHelperResult": NewType("NEHotspotHelperResult", int),
@@ -66,7 +64,9 @@ misc.update(
66
64
  "NEVPNIKEv2PostQuantumKeyExchangeMethod", int
67
65
  ),
68
66
  "NETunnelProviderError": NewType("NETunnelProviderError", int),
69
- "NEVPNIKEv2EncryptionAlgorithm": NewType("NEVPNIKEv2EncryptionAlgorithm", int),
67
+ "NEVPNIKEv2DeadPeerDetectionRate": NewType(
68
+ "NEVPNIKEv2DeadPeerDetectionRate", int
69
+ ),
70
70
  "NEProviderStopReason": NewType("NEProviderStopReason", int),
71
71
  "NEVPNIKEv2CertificateType": NewType("NEVPNIKEv2CertificateType", int),
72
72
  "NEFilterManagerGrade": NewType("NEFilterManagerGrade", int),
@@ -80,6 +80,7 @@ misc.update(
80
80
  "NEHotspotConfigurationEAPTLSVersion", int
81
81
  ),
82
82
  "NWTCPConnectionState": NewType("NWTCPConnectionState", int),
83
+ "NEVPNIKEv2EncryptionAlgorithm": NewType("NEVPNIKEv2EncryptionAlgorithm", int),
83
84
  "NEFilterReportFrequency": NewType("NEFilterReportFrequency", int),
84
85
  "NEEvaluateConnectionRuleAction": NewType(
85
86
  "NEEvaluateConnectionRuleAction", int
@@ -331,6 +332,7 @@ try:
331
332
  },
332
333
  )
333
334
  r(b"NEAppPushManager", b"matchEthernet", {"retval": {"type": b"Z"}})
335
+ r(b"NEAppPushManager", b"matchMissionCriticalService", {"retval": {"type": b"Z"}})
334
336
  r(
335
337
  b"NEAppPushManager",
336
338
  b"removeFromPreferencesWithCompletionHandler:",
@@ -361,6 +363,11 @@ try:
361
363
  )
362
364
  r(b"NEAppPushManager", b"setEnabled:", {"arguments": {2: {"type": b"Z"}}})
363
365
  r(b"NEAppPushManager", b"setMatchEthernet:", {"arguments": {2: {"type": b"Z"}}})
366
+ r(
367
+ b"NEAppPushManager",
368
+ b"setMatchMissionCriticalService:",
369
+ {"arguments": {2: {"type": b"Z"}}},
370
+ )
364
371
  r(
365
372
  b"NEAppPushProvider",
366
373
  b"startWithCompletionHandler:",
@@ -886,6 +893,38 @@ try:
886
893
  )
887
894
  r(b"NEPacketTunnelFlow", b"writePacketObjects:", {"retval": {"type": "Z"}})
888
895
  r(b"NEPacketTunnelFlow", b"writePackets:withProtocols:", {"retval": {"type": "Z"}})
896
+ r(b"NEPacketTunnelNetworkSettings", b"enforceRoutes", {"retval": {"type": b"Z"}})
897
+ r(b"NEPacketTunnelNetworkSettings", b"excludeAPNs", {"retval": {"type": b"Z"}})
898
+ r(
899
+ b"NEPacketTunnelNetworkSettings",
900
+ b"excludeCellularServices",
901
+ {"retval": {"type": b"Z"}},
902
+ )
903
+ r(
904
+ b"NEPacketTunnelNetworkSettings",
905
+ b"excludeDeviceCommunication",
906
+ {"retval": {"type": b"Z"}},
907
+ )
908
+ r(
909
+ b"NEPacketTunnelNetworkSettings",
910
+ b"setEnforceRoutes:",
911
+ {"arguments": {2: {"type": b"Z"}}},
912
+ )
913
+ r(
914
+ b"NEPacketTunnelNetworkSettings",
915
+ b"setExcludeAPNs:",
916
+ {"arguments": {2: {"type": b"Z"}}},
917
+ )
918
+ r(
919
+ b"NEPacketTunnelNetworkSettings",
920
+ b"setExcludeCellularServices:",
921
+ {"arguments": {2: {"type": b"Z"}}},
922
+ )
923
+ r(
924
+ b"NEPacketTunnelNetworkSettings",
925
+ b"setExcludeDeviceCommunication:",
926
+ {"arguments": {2: {"type": b"Z"}}},
927
+ )
889
928
  r(
890
929
  b"NEPacketTunnelProvider",
891
930
  b"createTCPConnectionThroughTunnelToEndpoint:enableTLS:TLSParameters:delegate:",
@@ -1106,6 +1145,11 @@ try:
1106
1145
  }
1107
1146
  },
1108
1147
  )
1148
+ r(
1149
+ b"NETunnelProviderManager",
1150
+ b"copyAppRules",
1151
+ {"retval": {"already_retained": True}},
1152
+ )
1109
1153
  r(
1110
1154
  b"NETunnelProviderManager",
1111
1155
  b"loadAllFromPreferencesWithCompletionHandler:",
@@ -1145,7 +1189,7 @@ try:
1145
1189
  r(
1146
1190
  b"NETunnelProviderSession",
1147
1191
  b"startTunnelWithOptions:andReturnError:",
1148
- {"retval": {"type": "Z"}, "arguments": {3: {"type_modifier": b"o"}}},
1192
+ {"retval": {"type": b"Z"}, "arguments": {3: {"type_modifier": b"o"}}},
1149
1193
  )
1150
1194
  r(
1151
1195
  b"NEURLFilter",
@@ -1178,12 +1222,12 @@ try:
1178
1222
  r(
1179
1223
  b"NEVPNConnection",
1180
1224
  b"startVPNTunnelAndReturnError:",
1181
- {"retval": {"type": "Z"}, "arguments": {2: {"type_modifier": b"o"}}},
1225
+ {"retval": {"type": b"Z"}, "arguments": {2: {"type_modifier": b"o"}}},
1182
1226
  )
1183
1227
  r(
1184
1228
  b"NEVPNConnection",
1185
1229
  b"startVPNTunnelWithOptions:andReturnError:",
1186
- {"retval": {"type": "Z"}, "arguments": {3: {"type_modifier": b"o"}}},
1230
+ {"retval": {"type": b"Z"}, "arguments": {3: {"type_modifier": b"o"}}},
1187
1231
  )
1188
1232
  r(b"NEVPNIKEv2PPKConfiguration", b"isMandatory", {"retval": {"type": b"Z"}})
1189
1233
  r(
@@ -1568,5 +1612,9 @@ objc.registerNewKeywords(
1568
1612
  "NWHostEndpoint", ("hostname", "port"), "endpointWithHostname_port_"
1569
1613
  )
1570
1614
  expressions = {}
1615
+ formal_protocols = {
1616
+ "NEAppPushDelegate": "NEAppPushDelegate",
1617
+ "NWTCPConnectionAuthenticationDelegate": "NWTCPConnectionAuthenticationDelegate",
1618
+ }
1571
1619
 
1572
1620
  # END OF FILE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-NetworkExtension
3
- Version: 12.2.1
3
+ Version: 13.0
4
4
  Summary: Wrappers for the framework NetworkExtension on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,21 +17,21 @@ Classifier: Operating System :: MacOS :: MacOS X
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
21
  Classifier: Programming Language :: Python :: 3.12
23
22
  Classifier: Programming Language :: Python :: 3.13
24
23
  Classifier: Programming Language :: Python :: 3.14
25
24
  Classifier: Programming Language :: Python :: 3.15
25
+ Classifier: Programming Language :: Python :: 3.16
26
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
27
27
  Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.10
31
+ Requires-Python: >=3.11
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=12.2.1
34
- Requires-Dist: pyobjc-framework-Cocoa>=12.2.1
33
+ Requires-Dist: pyobjc-core>=13.0
34
+ Requires-Dist: pyobjc-framework-Cocoa>=13.0
35
35
  Dynamic: author
36
36
  Dynamic: author-email
37
37
  Dynamic: classifier
@@ -17,8 +17,6 @@ Modules/_NetworkExtension_protocols.m
17
17
  Modules/pyobjc-api.h
18
18
  Modules/pyobjc-compat.h
19
19
  PyObjCTest/__init__.py
20
- PyObjCTest/test_NEFilterProvider.py
21
- PyObjCTest/test_NWTCPConnection.py
22
20
  PyObjCTest/test_neappproxyflow.py
23
21
  PyObjCTest/test_neappproxyprovider.py
24
22
  PyObjCTest/test_neappproxyprovidermanager.py
@@ -39,6 +37,7 @@ PyObjCTest/test_nefilterproviderconfiguration.py
39
37
  PyObjCTest/test_nenetworkrule.py
40
38
  PyObjCTest/test_neondemandrule.py
41
39
  PyObjCTest/test_nepackettunnelflow.py
40
+ PyObjCTest/test_nepackettunnelnetworksettings.py
42
41
  PyObjCTest/test_nepackettunnelprovider.py
43
42
  PyObjCTest/test_neprovider.py
44
43
  PyObjCTest/test_neproxysettings.py
@@ -60,5 +59,5 @@ PyObjCTest/test_nwtcpconnection.py
60
59
  PyObjCTest/test_nwudpsession.py
61
60
  metadata/NetworkExtension.fwinfo
62
61
  metadata/metadata.ini
63
- metadata/raw/arm64-26.5.fwinfo
64
- metadata/raw/x86_64-26.5.fwinfo
62
+ metadata/raw/arm64-27.fwinfo
63
+ metadata/raw/x86_64-27.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 27.2 (26B123)
2
+ Apple clang version 21.0.0 (clang-2100.4.1.1)
3
+ SDK: macOS 27.2
@@ -0,0 +1,2 @@
1
+ pyobjc-core>=13.0
2
+ pyobjc-framework-Cocoa>=13.0
@@ -2,6 +2,10 @@
2
2
  #include "Python.h"
3
3
  #include "pyobjc-api.h"
4
4
 
5
+ #ifdef USE_STATIC_ANALYZER
6
+ #include "../../pyobjc-core/Modules/objc/python-api-used.h"
7
+ #endif
8
+
5
9
  #import <Foundation/Foundation.h>
6
10
  #import <NetworkExtension/NetworkExtension.h>
7
11
 
@@ -10,6 +14,8 @@
10
14
  */
11
15
  #include "_NetworkExtension_protocols.m"
12
16
 
17
+ NS_ASSUME_NONNULL_BEGIN
18
+
13
19
  static PyMethodDef mod_methods[] = {
14
20
  {0, 0, 0, 0} /* sentinel */
15
21
  };
@@ -55,10 +61,11 @@ static struct PyModuleDef mod_module = {
55
61
  .m_free = NULL,
56
62
  };
57
63
 
58
- PyObject* PyInit__NetworkExtension(void);
64
+ PyObject* _Nullable PyInit__NetworkExtension(void);
59
65
 
60
- PyObject* __attribute__((__visibility__("default")))
66
+ PyObject* _Nullable __attribute__((__visibility__("default")))
61
67
  PyInit__NetworkExtension(void)
62
68
  {
63
69
  return PyModuleDef_Init(&mod_module);
64
70
  }
71
+ NS_ASSUME_NONNULL_END
@@ -1,8 +1,8 @@
1
- /*
2
- * This file is generated by objective.metadata
3
- *
4
- * Last update: Wed Jan 16 13:10:52 2013
5
- */
1
+ // LCOV_EXCL_START
2
+ // This function is only present to ensure protocols are
3
+ // available at runtime.
4
+ NS_ASSUME_NONNULL_BEGIN
5
+
6
6
  static void __attribute__((__used__))
7
7
  use_protocols(void)
8
8
  {
@@ -12,3 +12,6 @@ use_protocols(void)
12
12
  Py_XDECREF(p);
13
13
  #endif
14
14
  }
15
+
16
+ NS_ASSUME_NONNULL_END
17
+ // LCOV_EXCL_STOP
@@ -60,6 +60,11 @@ typedef int(RegisterMethodMappingFunctionType)(
60
60
  PyObject* _Nonnull const* _Nonnull, size_t),
61
61
  IMP _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull));
62
62
 
63
+ #ifndef PyObjC_FUNCTION_CALL_H
64
+ typedef PyObject* _Nullable (*PyObjC_FunctionCallFunc)(
65
+ PyObject* meth, PyObject* _Nonnull const* _Nonnull args, size_t nargs);
66
+ #endif
67
+
63
68
  struct pyobjc_api {
64
69
  int api_version; /* API version */
65
70
  size_t struct_len; /* Length of this struct */
@@ -117,6 +122,9 @@ struct pyobjc_api {
117
122
 
118
123
  PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*,
119
124
  const char*);
125
+ int (*_Nonnull register_functioncaller)(void*, PyObjC_FunctionCallFunc);
126
+ PyObject* _Nullable (*_Nonnull create_registered_struct)(
127
+ const char*, Py_ssize_t, const char* _Nonnull* _Nullable, Py_ssize_t*);
120
128
  };
121
129
 
122
130
  #ifndef PYOBJC_BUILD
@@ -159,6 +167,8 @@ static struct pyobjc_api* PyObjC_API;
159
167
  #define PyObjC_CheckArgCount (PyObjC_API->checkargcount)
160
168
  #define PyObjC_CheckNoKwnames (PyObjC_API->checknokwnames)
161
169
  #define PyObjCCreateOpaquePointerType (PyObjC_API->createopaquepointertype)
170
+ #define PyObjCRegister_FunctionCaller (PyObjC_API->register_functioncaller)
171
+ #define PyObjC_CreateRegisteredStruct (PyObjC_API->create_registered_struct)
162
172
 
163
173
  typedef void (*PyObjC_Function_Pointer)(void);
164
174
  typedef struct PyObjC_function_map {
@@ -178,21 +188,25 @@ static inline int
178
188
  PyObjC_ImportAPI(PyObject* calling_module)
179
189
  {
180
190
  PyObjC_API = (struct pyobjc_api*)PyCapsule_Import("objc." PYOBJC_API_NAME, 0);
181
- if (PyObjC_API == NULL) {
182
- return -1;
191
+ if (PyObjC_API == NULL) { // LCOV_BR_EXCL_LINE
192
+ return -1; // LCOV_EXCL_LINE
183
193
  }
184
- if (PyObjC_API->api_version != PYOBJC_API_VERSION) {
194
+ if (PyObjC_API->api_version != PYOBJC_API_VERSION) { // LCOV_BR_EXCL_LINE
195
+ // LCOV_EXCL_START
185
196
  PyErr_Format(PyExc_RuntimeError,
186
197
  "Wrong version of PyObjC C API (got %d, expected %d)",
187
198
  (int)PyObjC_API->api_version, (int)PYOBJC_API_VERSION);
188
199
  return -1;
200
+ // LCOV_EXCL_STOP
189
201
  }
190
202
 
191
- if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) {
203
+ if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) { // LCOV_EXCL_LINE
204
+ // LCOV_EXCL_START
192
205
  PyErr_Format(PyExc_RuntimeError,
193
206
  "Wrong struct-size of PyObjC C API (got %d, expected %d)",
194
207
  (int)PyObjC_API->struct_len, (int)sizeof(struct pyobjc_api));
195
208
  return -1;
209
+ // LCOV_EXCL_STOP
196
210
  }
197
211
 
198
212
  /* Current pyobjc implementation doesn't allow deregistering
@@ -167,24 +167,6 @@ _PyObjCTuple_GetItem(PyObject* tuple, Py_ssize_t idx)
167
167
  PyGILState_Release(_GILState); \
168
168
  } while (0)
169
169
 
170
- #if PY_VERSION_HEX < 0x030a0000
171
-
172
- static inline PyObject*
173
- Py_NewRef(PyObject* o)
174
- {
175
- Py_INCREF(o);
176
- return o;
177
- }
178
-
179
- static inline PyObject*
180
- Py_XNewRef(PyObject* o)
181
- {
182
- Py_XINCREF(o);
183
- return o;
184
- }
185
-
186
- #endif /* PY_VERSION_HEX < 0x030a0000 */
187
-
188
170
  #if PY_VERSION_HEX < 0x030d0000
189
171
  #define Py_BEGIN_CRITICAL_SECTION(value) \
190
172
  { \
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-NetworkExtension
3
- Version: 12.2.1
3
+ Version: 13.0
4
4
  Summary: Wrappers for the framework NetworkExtension on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,21 +17,21 @@ Classifier: Operating System :: MacOS :: MacOS X
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
21
  Classifier: Programming Language :: Python :: 3.12
23
22
  Classifier: Programming Language :: Python :: 3.13
24
23
  Classifier: Programming Language :: Python :: 3.14
25
24
  Classifier: Programming Language :: Python :: 3.15
25
+ Classifier: Programming Language :: Python :: 3.16
26
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
27
27
  Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.10
31
+ Requires-Python: >=3.11
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=12.2.1
34
- Requires-Dist: pyobjc-framework-Cocoa>=12.2.1
33
+ Requires-Dist: pyobjc-core>=13.0
34
+ Requires-Dist: pyobjc-framework-Cocoa>=13.0
35
35
  Dynamic: author
36
36
  Dynamic: author-email
37
37
  Dynamic: classifier
@@ -3,11 +3,8 @@ import NetworkExtension
3
3
 
4
4
 
5
5
  class TestNEAppProxyFlow(TestCase):
6
- def test_enum_types(self):
6
+ def test_enums(self):
7
7
  self.assertIsEnumType(NetworkExtension.NEAppProxyFlowError)
8
-
9
- @min_os_level("10.11")
10
- def testConstants(self):
11
8
  self.assertEqual(NetworkExtension.NEAppProxyFlowErrorNotConnected, 1)
12
9
  self.assertEqual(NetworkExtension.NEAppProxyFlowErrorPeerReset, 2)
13
10
  self.assertEqual(NetworkExtension.NEAppProxyFlowErrorHostUnreachable, 3)
@@ -19,10 +16,12 @@ class TestNEAppProxyFlow(TestCase):
19
16
  self.assertEqual(NetworkExtension.NEAppProxyFlowErrorDatagramTooLarge, 9)
20
17
  self.assertEqual(NetworkExtension.NEAppProxyFlowErrorReadAlreadyPending, 10)
21
18
 
19
+ @min_os_level("10.11")
20
+ def test_constants(self):
22
21
  self.assertIsInstance(NetworkExtension.NEAppProxyErrorDomain, str)
23
22
 
24
23
  @min_os_level("10.11")
25
- def testMethods(self):
24
+ def test_methods(self):
26
25
  self.assertArgIsBlock(
27
26
  NetworkExtension.NEAppProxyFlow.openWithLocalEndpoint_completionHandler_,
28
27
  1,
@@ -30,11 +29,11 @@ class TestNEAppProxyFlow(TestCase):
30
29
  )
31
30
 
32
31
  @min_os_level("11.1")
33
- def testMethods11_1(self):
32
+ def test_methods11_1(self):
34
33
  self.assertResultIsBOOL(NetworkExtension.NEAppProxyFlow.isBound)
35
34
 
36
35
  @min_os_level("15.0")
37
- def testMethods15_0(self):
36
+ def test_methods15_0(self):
38
37
  self.assertArgIsBlock(
39
38
  NetworkExtension.NEAppProxyFlow.openWithLocalFlowEndpoint_completionHandler_,
40
39
  1,
@@ -4,7 +4,7 @@ import NetworkExtension
4
4
 
5
5
  class TestNEAppProxyProvider(TestCase):
6
6
  @min_os_level("10.11")
7
- def testMethods(self):
7
+ def test_methods(self):
8
8
  self.assertArgIsBlock(
9
9
  NetworkExtension.NEAppProxyProvider.startProxyWithOptions_completionHandler_,
10
10
  1,
@@ -18,13 +18,13 @@ class TestNEAppProxyProvider(TestCase):
18
18
  self.assertResultIsBOOL(NetworkExtension.NEAppProxyProvider.handleNewFlow_)
19
19
 
20
20
  @min_os_level("10.15")
21
- def testMethods10_15(self):
21
+ def test_methods10_15(self):
22
22
  self.assertResultIsBOOL(
23
23
  NetworkExtension.NEAppProxyProvider.handleNewUDPFlow_initialRemoteEndpoint_
24
24
  )
25
25
 
26
26
  @min_os_level("15.0")
27
- def testMethods15_0(self):
27
+ def test_methods15_0(self):
28
28
  self.assertResultIsBOOL(NetworkExtension.NEAppProxyProvider.handleNewFlow_)
29
29
  self.assertResultIsBOOL(
30
30
  NetworkExtension.NEAppProxyProvider.handleNewUDPFlow_initialRemoteFlowEndpoint_
@@ -4,7 +4,7 @@ import NetworkExtension
4
4
 
5
5
  class TestNEAppProxyProviderManager(TestCase):
6
6
  @min_os_level("10.11")
7
- def testMethods(self):
7
+ def test_methods(self):
8
8
  self.assertArgIsBlock(
9
9
  NetworkExtension.NEAppProxyProviderManager.loadAllFromPreferencesWithCompletionHandler_,
10
10
  0,
@@ -4,7 +4,7 @@ import NetworkExtension
4
4
 
5
5
  class TestNEAppProxyTCPFlow(TestCase):
6
6
  @min_os_level("10.11")
7
- def testMethods(self):
7
+ def test_methods(self):
8
8
  self.assertArgIsBlock(
9
9
  NetworkExtension.NEAppProxyTCPFlow.readDataWithCompletionHandler_, 0, b"v@@"
10
10
  )
@@ -4,7 +4,7 @@ import NetworkExtension
4
4
 
5
5
  class TestNEAppProxyUDPFlow(TestCase):
6
6
  @min_os_level("10.11")
7
- def testMethods(self):
7
+ def test_methods(self):
8
8
  self.assertArgIsBlock(
9
9
  NetworkExtension.NEAppProxyUDPFlow.readDatagramsWithCompletionHandler_,
10
10
  0,
@@ -17,7 +17,7 @@ class TestNEAppProxyUDPFlow(TestCase):
17
17
  )
18
18
 
19
19
  @min_os_level("15.0")
20
- def testMethods15_0(self):
20
+ def test_methods15_0(self):
21
21
  self.assertArgIsBlock(
22
22
  NetworkExtension.NEAppProxyUDPFlow.readDatagramsAndFlowEndpointsWithCompletionHandler_,
23
23
  0,
@@ -3,8 +3,16 @@ import NetworkExtension
3
3
 
4
4
 
5
5
  class TestNEDNSProxyManager(TestCase):
6
- def test_enum_types(self):
6
+ def test_enums(self):
7
7
  self.assertIsEnumType(NetworkExtension.NEDNSProxyManagerError)
8
+ self.assertEqual(NetworkExtension.NEDNSProxyManagerErrorConfigurationInvalid, 1)
9
+ self.assertEqual(
10
+ NetworkExtension.NEDNSProxyManagerErrorConfigurationDisabled, 2
11
+ )
12
+ self.assertEqual(NetworkExtension.NEDNSProxyManagerErrorConfigurationStale, 3)
13
+ self.assertEqual(
14
+ NetworkExtension.NEDNSProxyManagerErrorConfigurationCannotBeRemoved, 4
15
+ )
8
16
 
9
17
  @min_os_level("10.15")
10
18
  def test_constants10_15(self):
@@ -3,10 +3,8 @@ import NetworkExtension
3
3
 
4
4
 
5
5
  class TestNEDNSSettings(TestCase):
6
- def test_enum_types(self):
6
+ def test_enums(self):
7
7
  self.assertIsEnumType(NetworkExtension.NEDNSProtocol)
8
-
9
- def testConstants(self):
10
8
  self.assertEqual(NetworkExtension.NEDNSProtocolCleartext, 1)
11
9
  self.assertEqual(NetworkExtension.NEDNSProtocolTLS, 2)
12
10
  self.assertEqual(NetworkExtension.NEDNSProtocolHTTPS, 3)
@@ -3,10 +3,8 @@ import NetworkExtension
3
3
 
4
4
 
5
5
  class TestNEDNSSettingsManager(TestCase):
6
- def test_enum_types(self):
6
+ def test_enums(self):
7
7
  self.assertIsEnumType(NetworkExtension.NEDNSSettingsManagerError)
8
-
9
- def test_constants(self):
10
8
  self.assertEqual(
11
9
  NetworkExtension.NEDNSSettingsManagerErrorConfigurationInvalid, 1
12
10
  )
@@ -4,7 +4,7 @@ import NetworkExtension
4
4
 
5
5
  class TestNEFailureHandlerProvider(TestCase):
6
6
  @os_level_between("14.0", "14.1")
7
- def testMethods(self):
7
+ def test_methods(self):
8
8
  self.assertArgIsBlock(
9
9
  NetworkExtension.NEFailureHandlerProvider.handleFailure_completionHandler_,
10
10
  1,
@@ -4,7 +4,7 @@ import NetworkExtension
4
4
 
5
5
  class TestNEFilterControlProvider(TestCase):
6
6
  @min_os_level("10.11")
7
- def testMethods(self):
7
+ def test_methods(self):
8
8
  self.assertArgIsBlock(
9
9
  NetworkExtension.NEFilterControlProvider.handleRemediationForFlow_completionHandler_,
10
10
  1,
@@ -17,7 +17,7 @@ class TestNEFilterControlProvider(TestCase):
17
17
  )
18
18
 
19
19
  @min_os_level("10.15")
20
- def testMethods10_15(self):
20
+ def test_methods10_15(self):
21
21
  self.assertArgIsBlock(
22
22
  NetworkExtension.NEFilterControlProvider.handleNewFlow_completionHandler_,
23
23
  1,
@@ -3,14 +3,12 @@ import NetworkExtension
3
3
 
4
4
 
5
5
  class TestNEFilterDataProvider(TestCase):
6
- def test_enum_types(self):
6
+ def test_enums(self):
7
7
  self.assertIsEnumType(NetworkExtension.NEFilterDataAttribute)
8
-
9
- def test_constants(self):
10
8
  self.assertEqual(NetworkExtension.NEFilterDataAttributeHasIPHeader, 0x00000001)
11
9
 
12
10
  @min_os_level("10.15")
13
- def testMethods10_15(self):
11
+ def test_methods10_15(self):
14
12
  self.assertArgIsBlock(
15
13
  NetworkExtension.NEFilterDataProvider.applySettings_completionHandler_,
16
14
  1,
@@ -4,5 +4,5 @@ import NetworkExtension
4
4
 
5
5
  class TestNEAppProxyFlow(TestCase):
6
6
  @min_os_level("10.11")
7
- def testConstants(self):
7
+ def test_constants(self):
8
8
  self.assertEqual(NetworkExtension.NEFilterFlowBytesMax, (1 << 64) - 1)