Ronald Oussoren avatar Ronald Oussoren committed 4b28ee1

Initial version of CoreWLAN bindings

WARNING: The bindings should be code complete, but I haven't
performed any testing at this point.

Comments (0)

Files changed (26)

pyobjc-core/NEWS.txt

   available. This shouldn't affect normal code because these methods aren't
   part of the public API for PyObjC.
 
+* Added bindings to the CoreWLAN framework (Mac OS X 10.6 or later) in
+  package "pyobjc-framework-CoreWLAN"
 
 Version 2.6
 -----------

pyobjc-framework-CoreWLAN/Doc/api-notes-CoreWLAN.txt

+API notes: CoreWLAN framework
+=============================
+
+API Notes
+---------
+
+.. note::
+
+   The Accounts framework is only available in OSX 10.6 or later.
+
+
+CWKeychainCopyEAPIdentity
+.........................
+
+This function returns a SecIdentityRef (by reference), the security
+framework isn't wrapped by PyObjC at this time.
+
+CWKeychainSetEAPIdentity
+........................
+
+This function has a SecIdentityRef argument, but because the
+security framework isn't wrapped by PyObjC at this time it is
+not yet possible to create values for this argument.

pyobjc-framework-CoreWLAN/Examples/toggle-wlan.py

+#!/usr/bin/env python
+"""
+A simple script for toggling the power to the WLAN adaptor
+
+NOTE: Running this script might require administrator
+      privileges (depending on the Mac OS X settings)
+"""
+
+import CoreWLAN
+import sys
+
+iface = CoreWLAN.CWInterface.interface()
+
+ok, error = iface.setPower_error_(not iface.powerOn(), None)
+if ok:
+    print("Toggled WLAN power, current state is %s" % (
+        "on" if iface.powerOn() else "off",))
+
+    sys.exit(0)
+else:
+    print("Could not toggle WLAN power: %s" % (
+        error.localizedDescription(),))
+
+    sys.exit(1)

pyobjc-framework-CoreWLAN/Lib/CoreWLAN/__init__.py

+'''
+Python mapping for the CoreWLAN framework.
+
+This module does not contain docstrings for the wrapped code, check Apple's
+documentation for details on how to use these functions and classes.
+'''
+
+import objc
+import sys
+import Foundation
+
+from CoreWLAN import _metadata
+
+def CW8021XProfile__eq__(self, other):
+    if not isinstance(other, type(self)):
+        return False
+
+    return self.isEqualToProfile_(other)
+
+def CW8021XProfile__ne__(self, other):
+    if not isinstance(other, type(self)):
+        return True
+
+    return not self.isEqualToProfile_(other)
+
+objc.addConvenienceForClass('CW8021XProfile', {
+    '__eq__': _CW8021XProfile__eq__,
+    '__ne__': _CW8021XProfile__ne__,
+})
+
+
+def _CWChannel__eq__(self, other):
+    if not isinstance(other, type(self)):
+        return False
+
+    return self.isEqualToChannel_(other)
+
+def _CWChannel__ne__(self, other):
+    if not isinstance(other, type(self)):
+        return True
+
+    return not self.isEqualToChannel_(other)
+
+objc.addConvenienceForClass('CWChannel', {
+    '__eq__': _CWChannel__eq__,
+    '__ne__': _CWChannel__ne__,
+})
+
+def _CWConfiguration__eq__(self, other):
+    if not isinstance(other, type(self)):
+        return False
+
+    return self.isEqualToConfiguration_(other)
+
+def _CWConfiguration__ne__(self, other):
+    if not isinstance(other, type(self)):
+        return True
+
+    return not self.isEqualToConfiguration_(other)
+
+objc.addConvenienceForClass('CWConfiguration', {
+    '__eq__': _CWConfiguration__eq__,
+    '__ne__': _CWConfiguration__ne__,
+})
+
+def _CWNetwork__eq__(self, other):
+    if not isinstance(other, type(self)):
+        return False
+
+    return self.isEqualToNetwork_(other)
+
+def _CWNetwork__ne__(self, other):
+    if not isinstance(other, type(self)):
+        return True
+
+    return not self.isEqualToNetwork_(other)
+
+objc.addConvenienceForClass('CWNetwork', {
+    '__eq__': _CWNetwork__eq__,
+    '__ne__': _CWNetwork__ne__,
+})
+
+def _CWNetworkProfile__eq__(self, other):
+    if not isinstance(other, type(self)):
+        return False
+
+    return self.isEqualToNetworkProfile_(other)
+
+def _CWNetworkProfile__ne__(self, other):
+    if not isinstance(other, type(self)):
+        return True
+
+    return not self.isEqualToNetworkProfile_(other)
+
+objc.addConvenienceForClass('CWNetworkProfile', {
+    '__eq__': _CWNetworkProfile__eq__,
+    '__ne__': _CWNetworkProfile__ne__,
+})
+
+
+sys.modules['CoreWLAN'] = mod = objc.ObjCLazyModule(
+            "CoreWLAN",
+            "com.apple.framework.CoreWLAN",
+            objc.pathForFramework("/System/Library/Frameworks/CoreWLAN.framework"),
+            _metadata.__dict__, None, {
+                '__doc__': __doc__,
+                'objc': objc,
+                '__path__': __path__,
+            }, (Foundation,))

pyobjc-framework-CoreWLAN/Lib/CoreWLAN/_metadata.py

+# This file is generated by objective.metadata
+#
+# Last update: Tue Feb 26 13:48:46 2013
+
+import objc, sys
+
+if sys.maxsize > 2 ** 32:
+    def sel32or64(a, b): return b
+else:
+    def sel32or64(a, b): return a
+if sys.byteorder == 'little':
+    def littleOrBig(a, b): return a
+else:
+    def littleOrBig(a, b): return b
+
+misc = {
+}
+constants = '''$CWBSSIDDidChangeNotification$CWCountryCodeDidChangeNotification$CWErrorDomain$CWLinkDidChangeNotification$CWLinkQualityDidChangeNotification$CWLinkQualityNotificationRSSIKey$CWLinkQualityNotificationTransmitRateKey$CWModeDidChangeNotification$CWPowerDidChangeNotification$CWSSIDDidChangeNotification$CWScanCacheDidUpdateNotification$CWServiceDidChangeNotification$CoreWLANFrameworkVersionNumber@d$kCWAssocKey8021XProfile$kCWAssocKeyPassphrase$kCWBSSIDDidChangeNotification$kCWCountryCodeDidChangeNotification$kCWErrorDomain$kCWIBSSKeyChannel$kCWIBSSKeyPassphrase$kCWIBSSKeySSID$kCWLinkDidChangeNotification$kCWModeDidChangeNotification$kCWPowerDidChangeNotification$kCWSSIDDidChangeNotification$kCWScanKeyBSSID$kCWScanKeyDwellTime$kCWScanKeyMerge$kCWScanKeyRestTime$kCWScanKeySSID$kCWScanKeyScanType$'''
+enums = '''$CoreWLANFrameworkVersionNumber2_0@200$kCWAPFullErr@-3913$kCWAssociationDeniedErr@-3909$kCWAuthAlgUnsupportedErr@-3910$kCWAuthenticationAlgorithmUnsupportedErr@-3910$kCWChallengeFailureErr@-3912$kCWChannelBand2GHz@1$kCWChannelBand5GHz@2$kCWChannelBandUnknown@0$kCWChannelWidth20MHz@1$kCWChannelWidth40MHz@2$kCWChannelWidthUnknown@0$kCWCipherKeyFlagsMulticast@4$kCWCipherKeyFlagsNone@0$kCWCipherKeyFlagsRx@16$kCWCipherKeyFlagsTx@8$kCWCipherKeyFlagsUnicast@2$kCWCipherSuiteRejectedErr@-3923$kCWDSSSOFDMUnsupportedErr@-3916$kCWEAPOLErr@1$kCWErr@-3931$kCWError@-3931$kCWFormatErr@-3904$kCWHTFeaturesNotSupported@-3926$kCWHTFeaturesNotSupportedErr@-3926$kCWIBSSModeSecurityNone@0$kCWIBSSModeSecurityWEP104@2$kCWIBSSModeSecurityWEP40@1$kCWIPCError@-3929$kCWIPCFailureErr@-3929$kCWInterfaceModeHostAP@3$kCWInterfaceModeIBSS@2$kCWInterfaceModeNone@0$kCWInterfaceModeStation@1$kCWInterfaceStateAssociating@3$kCWInterfaceStateAuthenticating@2$kCWInterfaceStateInactive@0$kCWInterfaceStateRunning@4$kCWInterfaceStateScanning@1$kCWInvalidAKMPErr@-3920$kCWInvalidAuthSeqNumErr@-3911$kCWInvalidAuthenticationSequenceNumberErr@-3911$kCWInvalidFormatErr@-3904$kCWInvalidGroupCipherErr@-3918$kCWInvalidInfoElementErr@-3917$kCWInvalidInformationElementErr@-3917$kCWInvalidPMKErr@-3924$kCWInvalidPairwiseCipherErr@-3919$kCWInvalidParameterErr@-3900$kCWInvalidRSNCapabilitiesErr@-3922$kCWNoErr@0$kCWNoMemErr@-3901$kCWNoMemoryErr@-3901$kCWNotSupportedErr@-3903$kCWOpModeHostAP@2$kCWOpModeIBSS@1$kCWOpModeMonitorMode@3$kCWOpModeStation@0$kCWOpNotPermitted@-3930$kCWOperationNotPermittedErr@-3930$kCWPCOTransitionTimeNotSupported@-3927$kCWPCOTransitionTimeNotSupportedErr@-3927$kCWPHYMode11A@0$kCWPHYMode11B@1$kCWPHYMode11G@2$kCWPHYMode11N@3$kCWPHYMode11a@1$kCWPHYMode11b@2$kCWPHYMode11g@3$kCWPHYMode11n@4$kCWPHYModeNone@0$kCWParamErr@-3900$kCWReassociationDeniedErr@-3908$kCWRefNotBoundErr@-3928$kCWReferenceNotBoundErr@-3928$kCWScanTypeActive@0$kCWScanTypeFast@2$kCWScanTypePassive@1$kCWSecurityDynamicWEP@6$kCWSecurityEnterprise@10$kCWSecurityModeDynamicWEP@4$kCWSecurityModeOpen@0$kCWSecurityModeWEP@1$kCWSecurityModeWPA2_Enterprise@6$kCWSecurityModeWPA2_PSK@3$kCWSecurityModeWPA_Enterprise@5$kCWSecurityModeWPA_PSK@2$kCWSecurityModeWPS@7$kCWSecurityNone@0$kCWSecurityPersonal@5$kCWSecurityWEP@1$kCWSecurityWPA2Enterprise@9$kCWSecurityWPA2Personal@4$kCWSecurityWPAEnterprise@7$kCWSecurityWPAEnterpriseMixed@8$kCWSecurityWPAPersonal@2$kCWSecurityWPAPersonalMixed@3$kCWShortSlotUnsupportedErr@-3915$kCWSupplicantTimeoutErr@-3925$kCWTimeoutErr@-3905$kCWUknownErr@-3902$kCWUnknownErr@-3902$kCWUnspecifiedFailureErr@-3906$kCWUnsupportedCapabilitiesErr@-3907$kCWUnsupportedRSNVersionErr@-3921$kCWUnsupportedRateSetErr@-3914$'''
+misc.update({'kCWSecurityUnknown': sel32or64(2147483647, 9223372036854775807)})
+misc.update({})
+functions={'CWKeychainSetEAPIdentity': (sel32or64(b'l^{__CFData=}^{OpaqueSecIdentityRef=}', b'i^{__CFData=}^{OpaqueSecIdentityRef=}'),), 'CWKeychainDeletePassword': (sel32or64(b'l^{__CFData=}', b'i^{__CFData=}'),), 'CWKeychainCopyEAPIdentityList': (sel32or64(b'l^^{__CFArray=}', b'i^^{__CFArray=}'), '', {'retval': {'already_cfretained': True}, 'arguments': {0: {'already_cfretained': True, 'type_modifier': 'o'}}}), 'CWKeychainSetEAPUsernameAndPassword': (sel32or64(b'l^{__CFData=}^{__CFString=}^{__CFString=}', b'i^{__CFData=}^{__CFString=}^{__CFString=}'),), 'CWKeychainCopyEAPUsernameAndPassword': (sel32or64(b'l^{__CFData=}^^{__CFString=}^^{__CFString=}', b'i^{__CFData=}^^{__CFString=}^^{__CFString=}'), '', {'retval': {'already_cfretained': True}, 'arguments': {1: {'already_cfretained': True, 'type_modifier': 'o'}, 2: {'already_cfretained': True, 'type_modifier': 'o'}}}), 'CWKeychainSetPassword': (sel32or64(b'l^{__CFData=}^{__CFString=}', b'i^{__CFData=}^{__CFString=}'),), 'CWKeychainCopyPassword': (sel32or64(b'l^{__CFData=}^^{__CFString=}', b'i^{__CFData=}^^{__CFString=}'), '', {'retval': {'already_cfretained': True}, 'arguments': {1: {'already_cfretained': True, 'type_modifier': 'o'}}}), 'CWKeychainDeleteEAPUsernameAndPassword': (sel32or64(b'l^{__CFData=}', b'i^{__CFData=}'),), 'CWKeychainCopyEAPIdentity': (sel32or64(b'l^{__CFData=}^^{OpaqueSecIdentityRef=}', b'i^{__CFData=}^^{OpaqueSecIdentityRef=}'), '', {'retval': {'already_cfretained': True}, 'arguments': {1: {'already_cfretained': True, 'type_modifier': 'o'}}}), 'CWMergeNetworks': (b'@@',)}
+r = objc.registerMetaDataForSelector
+objc._updatingMetadata(True)
+try:
+    r(b'CW8021XProfile', b'alwaysPromptForPassword', {'retval': {'type': b'Z'}})
+    r(b'CW8021XProfile', b'isEqualToProfile:', {'retval': {'type': b'Z'}})
+    r(b'CW8021XProfile', b'setAlwaysPromptForPassword:', {'arguments': {2: {'type': b'Z'}}})
+    r(b'CWChannel', b'isEqualToChannel:', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'alwaysRememberNetworks', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'disconnectOnLogout', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'isEqualToConfiguration:', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'rememberJoinedNetworks', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'requireAdminForIBSSCreation', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'requireAdminForNetworkChange', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'requireAdminForPowerChange', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'requireAdministratorForAssociation', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'requireAdministratorForIBSSMode', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'requireAdministratorForPower', {'retval': {'type': b'Z'}})
+    r(b'CWConfiguration', b'setAlwaysRememberNetworks:', {'arguments': {2: {'type': b'Z'}}})
+    r(b'CWConfiguration', b'setDisconnectOnLogout:', {'arguments': {2: {'type': b'Z'}}})
+    r(b'CWConfiguration', b'setRequireAdminForIBSSCreation:', {'arguments': {2: {'type': b'Z'}}})
+    r(b'CWConfiguration', b'setRequireAdminForNetworkChange:', {'arguments': {2: {'type': b'Z'}}})
+    r(b'CWConfiguration', b'setRequireAdminForPowerChange:', {'arguments': {2: {'type': b'Z'}}})
+    r(b'CWInterface', b'associateToEnterpriseNetwork:identity:username:password:error:', {'retval': {'type': b'Z'}, 'arguments': {6: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'associateToNetwork:parameters:error:', {'retval': {'type': b'Z'}, 'arguments': {4: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'associateToNetwork:password:error:', {'retval': {'type': b'Z'}, 'arguments': {4: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'commitConfiguration:authorization:error:', {'retval': {'type': b'Z'}, 'arguments': {4: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'commitConfiguration:error:', {'retval': {'type': b'Z'}, 'arguments': {3: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'deviceAttached', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'enableIBSSWithParameters:error:', {'retval': {'type': b'Z'}, 'arguments': {3: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'isEqualToInterface:', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'power', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'powerOn', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'powerSave', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'scanForNetworksWithName:error:', {'arguments': {3: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'scanForNetworksWithParameters:error:', {'arguments': {3: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'scanForNetworksWithSSID:error:', {'arguments': {3: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'serviceActive', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'setChannel:error:', {'retval': {'type': b'Z'}, 'arguments': {3: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'setPairwiseMasterKey:error:', {'retval': {'type': b'Z'}, 'arguments': {3: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'setPower:error:', {'retval': {'type': b'Z'}, 'arguments': {2: {'type': b'Z'}, 3: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'setWEPKey:flags:index:error:', {'retval': {'type': b'Z'}, 'arguments': {5: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'setWLANChannel:error:', {'retval': {'type': b'Z'}, 'arguments': {3: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'startIBSSModeWithSSID:security:channel:password:error:', {'retval': {'type': b'Z'}, 'arguments': {6: {'type_modifier': b'o'}}})
+    r(b'CWInterface', b'supportsAES_CCM', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsHostAP', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsIBSS', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsMonitorMode', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsPMGT', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsShortGI20MHz', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsShortGI40MHz', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsTKIP', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsTSN', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsWEP', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsWME', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsWPA', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsWPA2', {'retval': {'type': b'Z'}})
+    r(b'CWInterface', b'supportsWoW', {'retval': {'type': b'Z'}})
+    r(b'CWMutableConfiguration', b'rememberJoinedNetworks', {'retval': {'type': b'Z'}})
+    r(b'CWMutableConfiguration', b'requireAdministratorForAssociation', {'retval': {'type': b'Z'}})
+    r(b'CWMutableConfiguration', b'requireAdministratorForIBSSMode', {'retval': {'type': b'Z'}})
+    r(b'CWMutableConfiguration', b'requireAdministratorForPower', {'retval': {'type': b'Z'}})
+    r(b'CWMutableConfiguration', b'setRememberJoinedNetworks:', {'arguments': {2: {'type': b'Z'}}})
+    r(b'CWMutableConfiguration', b'setRequireAdministratorForAssociation:', {'arguments': {2: {'type': b'Z'}}})
+    r(b'CWMutableConfiguration', b'setRequireAdministratorForIBSSMode:', {'arguments': {2: {'type': b'Z'}}})
+    r(b'CWMutableConfiguration', b'setRequireAdministratorForPower:', {'arguments': {2: {'type': b'Z'}}})
+    r(b'CWNetwork', b'ibss', {'retval': {'type': b'Z'}})
+    r(b'CWNetwork', b'isEqualToNetwork:', {'retval': {'type': b'Z'}})
+    r(b'CWNetwork', b'isIBSS', {'retval': {'type': b'Z'}})
+    r(b'CWNetwork', b'supportsPHYMode:', {'retval': {'type': b'Z'}})
+    r(b'CWNetwork', b'supportsSecurity:', {'retval': {'type': b'Z'}})
+    r(b'CWNetworkProfile', b'isEqualToNetworkProfile:', {'retval': {'type': b'Z'}})
+    r(b'CWWirelessProfile', b'isEqualToProfile:', {'retval': {'type': b'Z'}})
+finally:
+    objc._updatingMetadata(False)
+expressions = {}
+
+# END OF FILE

pyobjc-framework-CoreWLAN/PyObjCTest/__init__.py

+""" testsuite for CoreWLAN """

pyobjc-framework-CoreWLAN/PyObjCTest/test_corewlan.py

+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+
+class TestCoreWLAN (TestCase):
+    def testConstants(self):
+        self.assertEqual(CoreWLAN.CoreWLANFrameworkVersionNumber2_0, 200)
+        self.assertIsInstance(CoreWLAN.CoreWLANFrameworkVersionNumber, float)
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/PyObjCTest/test_corewlanconstants.py

+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+
+try:
+    unicode
+except NameError:
+    unicode = str
+
+class TestCoreWLANConstants (TestCase):
+    @min_os_level('10.7')
+    def testMethods10_7(self):
+        self.assertIsInstance(CoreWLAN.CWErrorDomain, unicode)
+        self.assertIsInstance(CoreWLAN.CWScanCacheDidUpdateNotification, unicode)
+        self.assertIsInstance(CoreWLAN.CWLinkQualityDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.CWLinkQualityNotificationRSSIKey, unicode)
+        self.assertIsInstance(CoreWLAN.CWLinkQualityNotificationTransmitRateKey, unicode)
+        self.assertIsInstance(CoreWLAN.CWServiceDidChangeNotification, unicode)
+
+    @min_os_level('10.6')
+    def testMethods10_6(self):
+        self.assertIsInstance(CoreWLAN.CWPowerDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.CWSSIDDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.CWBSSIDDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.CWLinkDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.CWModeDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.CWCountryCodeDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.kCWErrorDomain, unicode)
+        self.assertIsInstance(CoreWLAN.kCWPowerDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.kCWSSIDDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.kCWBSSIDDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.kCWLinkDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.kCWModeDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.kCWCountryCodeDidChangeNotification, unicode)
+        self.assertIsInstance(CoreWLAN.kCWAssocKeyPassphrase, unicode)
+        self.assertIsInstance(CoreWLAN.kCWAssocKey8021XProfile, unicode)
+        self.assertIsInstance(CoreWLAN.kCWIBSSKeySSID, unicode)
+        self.assertIsInstance(CoreWLAN.kCWIBSSKeyChannel, unicode)
+        self.assertIsInstance(CoreWLAN.kCWIBSSKeyPassphrase, unicode)
+        self.assertIsInstance(CoreWLAN.kCWScanKeySSID, unicode)
+        self.assertIsInstance(CoreWLAN.kCWScanKeyBSSID, unicode)
+        self.assertIsInstance(CoreWLAN.kCWScanKeyMerge, unicode)
+        self.assertIsInstance(CoreWLAN.kCWScanKeyScanType, unicode)
+        self.assertIsInstance(CoreWLAN.kCWScanKeyDwellTime, unicode)
+        self.assertIsInstance(CoreWLAN.kCWScanKeyRestTime, unicode)
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/PyObjCTest/test_corewlantypes.py

+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+import Foundation
+
+class TestCoreWLANTypes (TestCase):
+    def testConstants(Self):
+        self.assertEqual(CoreWLAN.kCWNoErr, 0)
+        self.assertEqual(CoreWLAN.kCWEAPOLErr, 1)
+        self.assertEqual(CoreWLAN.kCWInvalidParameterErr, -3900)
+        self.assertEqual(CoreWLAN.kCWNoMemoryErr, -3901)
+        self.assertEqual(CoreWLAN.kCWUnknownErr, -3902)
+        self.assertEqual(CoreWLAN.kCWNotSupportedErr, -3903)
+        self.assertEqual(CoreWLAN.kCWInvalidFormatErr, -3904)
+        self.assertEqual(CoreWLAN.kCWTimeoutErr, -3905)
+        self.assertEqual(CoreWLAN.kCWUnspecifiedFailureErr, -3906)
+        self.assertEqual(CoreWLAN.kCWUnsupportedCapabilitiesErr, -3907)
+        self.assertEqual(CoreWLAN.kCWReassociationDeniedErr, -3908)
+        self.assertEqual(CoreWLAN.kCWAssociationDeniedErr, -3909)
+        self.assertEqual(CoreWLAN.kCWAuthenticationAlgorithmUnsupportedErr, -3910)
+        self.assertEqual(CoreWLAN.kCWInvalidAuthenticationSequenceNumberErr, -3911)
+        self.assertEqual(CoreWLAN.kCWChallengeFailureErr, -3912)
+        self.assertEqual(CoreWLAN.kCWAPFullErr, -3913)
+        self.assertEqual(CoreWLAN.kCWUnsupportedRateSetErr, -3914)
+        self.assertEqual(CoreWLAN.kCWShortSlotUnsupportedErr, -3915)
+        self.assertEqual(CoreWLAN.kCWDSSSOFDMUnsupportedErr, -3916)
+        self.assertEqual(CoreWLAN.kCWInvalidInformationElementErr, -3917)
+        self.assertEqual(CoreWLAN.kCWInvalidGroupCipherErr, -3918)
+        self.assertEqual(CoreWLAN.kCWInvalidPairwiseCipherErr, -3919)
+        self.assertEqual(CoreWLAN.kCWInvalidAKMPErr, -3920)
+        self.assertEqual(CoreWLAN.kCWUnsupportedRSNVersionErr, -3921)
+        self.assertEqual(CoreWLAN.kCWInvalidRSNCapabilitiesErr, -3922)
+        self.assertEqual(CoreWLAN.kCWCipherSuiteRejectedErr, -3923)
+        self.assertEqual(CoreWLAN.kCWInvalidPMKErr, -3924)
+        self.assertEqual(CoreWLAN.kCWSupplicantTimeoutErr, -3925)
+        self.assertEqual(CoreWLAN.kCWHTFeaturesNotSupportedErr, -3926)
+        self.assertEqual(CoreWLAN.kCWPCOTransitionTimeNotSupportedErr, -3927)
+        self.assertEqual(CoreWLAN.kCWReferenceNotBoundErr, -3928)
+        self.assertEqual(CoreWLAN.kCWIPCFailureErr, -3929)
+        self.assertEqual(CoreWLAN.kCWOperationNotPermittedErr, -3930)
+        self.assertEqual(CoreWLAN.kCWErr, -3931)
+        self.assertEqual(CoreWLAN.kCWPHYModeNone, 0)
+        self.assertEqual(CoreWLAN.kCWPHYMode11a, 1)
+        self.assertEqual(CoreWLAN.kCWPHYMode11b, 2)
+        self.assertEqual(CoreWLAN.kCWPHYMode11g, 3)
+        self.assertEqual(CoreWLAN.kCWPHYMode11n, 4)
+        self.assertEqual(CoreWLAN.kCWInterfaceModeNone, 0)
+        self.assertEqual(CoreWLAN.kCWInterfaceModeStation, 1)
+        self.assertEqual(CoreWLAN.kCWInterfaceModeIBSS, 2)
+        self.assertEqual(CoreWLAN.kCWInterfaceModeHostAP, 3)
+        self.assertEqual(CoreWLAN.kCWSecurityNone, 0)
+        self.assertEqual(CoreWLAN.kCWSecurityWEP, 1)
+        self.assertEqual(CoreWLAN.kCWSecurityWPAPersonal, 2)
+        self.assertEqual(CoreWLAN.kCWSecurityWPAPersonalMixed, 3)
+        self.assertEqual(CoreWLAN.kCWSecurityWPA2Personal, 4)
+        self.assertEqual(CoreWLAN.kCWSecurityPersonal, 5)
+        self.assertEqual(CoreWLAN.kCWSecurityDynamicWEP, 6)
+        self.assertEqual(CoreWLAN.kCWSecurityWPAEnterprise, 7)
+        self.assertEqual(CoreWLAN.kCWSecurityWPAEnterpriseMixed, 8)
+        self.assertEqual(CoreWLAN.kCWSecurityWPA2Enterprise, 9)
+        self.assertEqual(CoreWLAN.kCWSecurityEnterprise, 10)
+        self.assertEqual(CoreWLAN.kCWSecurityUnknown, Foundation.NSIntegerMax)
+        self.assertEqual(CoreWLAN.kCWIBSSModeSecurityNone, 0)
+        self.assertEqual(CoreWLAN.kCWIBSSModeSecurityWEP40, 1)
+        self.assertEqual(CoreWLAN.kCWIBSSModeSecurityWEP104, 2)
+        self.assertEqual(CoreWLAN.kCWChannelWidthUnknown, 0)
+        self.assertEqual(CoreWLAN.kCWChannelWidth20MHz, 1)
+        self.assertEqual(CoreWLAN.kCWChannelWidth40MHz, 2)
+        self.assertEqual(CoreWLAN.kCWChannelBandUnknown, 0)
+        self.assertEqual(CoreWLAN.kCWChannelBand2GHz, 1)
+        self.assertEqual(CoreWLAN.kCWChannelBand5GHz, 2)
+        self.assertEqual(CoreWLAN.kCWCipherKeyFlagsNone, 0)
+        self.assertEqual(CoreWLAN.kCWCipherKeyFlagsUnicast, 1 << 1)
+        self.assertEqual(CoreWLAN.kCWCipherKeyFlagsMulticast, 1 << 2)
+        self.assertEqual(CoreWLAN.kCWCipherKeyFlagsTx, 1 << 3),
+        self.assertEqual(CoreWLAN.kCWCipherKeyFlagsRx, 1 << 4),
+        self.assertEqual(CoreWLAN.kCWParamErr, CoreWLAN.kCWInvalidParameterErr)
+        self.assertEqual(CoreWLAN.kCWNoMemErr, CoreWLAN.kCWNoMemoryErr)
+        self.assertEqual(CoreWLAN.kCWUknownErr, CoreWLAN.kCWUnknownErr)
+        self.assertEqual(CoreWLAN.kCWFormatErr, CoreWLAN.kCWInvalidFormatErr)
+        self.assertEqual(CoreWLAN.kCWAuthAlgUnsupportedErr, CoreWLAN.kCWAuthenticationAlgorithmUnsupportedErr)
+        self.assertEqual(CoreWLAN.kCWInvalidAuthSeqNumErr, CoreWLAN.kCWInvalidAuthenticationSequenceNumberErr)
+        self.assertEqual(CoreWLAN.kCWInvalidInfoElementErr, CoreWLAN.kCWInvalidInformationElementErr)
+        self.assertEqual(CoreWLAN.kCWHTFeaturesNotSupported, CoreWLAN.kCWHTFeaturesNotSupportedErr)
+        self.assertEqual(CoreWLAN.kCWPCOTransitionTimeNotSupported, CoreWLAN.kCWPCOTransitionTimeNotSupportedErr)
+        self.assertEqual(CoreWLAN.kCWRefNotBoundErr, CoreWLAN.kCWReferenceNotBoundErr)
+        self.assertEqual(CoreWLAN.kCWIPCError, CoreWLAN.kCWIPCFailureErr)
+        self.assertEqual(CoreWLAN.kCWOpNotPermitted, CoreWLAN.kCWOperationNotPermittedErr)
+        self.assertEqual(CoreWLAN.kCWError, CoreWLAN.kCWErr)
+        self.assertEqual(CoreWLAN.kCWPHYMode11A, 0)
+        self.assertEqual(CoreWLAN.kCWPHYMode11B, 1)
+        self.assertEqual(CoreWLAN.kCWPHYMode11G, 2)
+        self.assertEqual(CoreWLAN.kCWPHYMode11N, 3)
+        self.assertEqual(CoreWLAN.kCWOpModeStation, 0)
+        self.assertEqual(CoreWLAN.kCWOpModeIBSS, 1)
+        self.assertEqual(CoreWLAN.kCWOpModeHostAP, 2)
+        self.assertEqual(CoreWLAN.kCWOpModeMonitorMode, 3)
+        self.assertEqual(CoreWLAN.kCWSecurityModeOpen, 0)
+        self.assertEqual(CoreWLAN.kCWSecurityModeWEP, 1)
+        self.assertEqual(CoreWLAN.kCWSecurityModeWPA_PSK, 2)
+        self.assertEqual(CoreWLAN.kCWSecurityModeWPA2_PSK, 3)
+        self.assertEqual(CoreWLAN.kCWSecurityModeDynamicWEP, 4)
+        self.assertEqual(CoreWLAN.kCWSecurityModeWPA_Enterprise, 5)
+        self.assertEqual(CoreWLAN.kCWSecurityModeWPA2_Enterprise, 6)
+        self.assertEqual(CoreWLAN.kCWSecurityModeWPS, 7)
+        self.assertEqual(CoreWLAN.kCWInterfaceStateInactive, 0)
+        self.assertEqual(CoreWLAN.kCWInterfaceStateScanning, 1)
+        self.assertEqual(CoreWLAN.kCWInterfaceStateAuthenticating, 2)
+        self.assertEqual(CoreWLAN.kCWInterfaceStateAssociating, 3)
+        self.assertEqual(CoreWLAN.kCWInterfaceStateRunning 4)
+        self.assertEqual(CoreWLAN.kCWScanTypeActive, 0)
+        self.assertEqual(CoreWLAN.kCWScanTypePassive, 1)
+        self.assertEqual(CoreWLAN.kCWScanTypeFast, 2)
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/PyObjCTest/test_corewlanutil.py

+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+
+class TestCoreWLANUtil (TestCase):
+
+    @min_os_level('10.7')
+    def testFunctions10_7(self):
+        self.assertArgIsOut(CoreWLAN.CWKeychainCopyEAPUsernameAndPassword, 1)
+        self.assertArgIsCFRetained(CoreWLAN.CWKeychainCopyEAPUsernameAndPassword, 1)
+        self.assertArgIsOut(CoreWLAN.CWKeychainCopyEAPUsernameAndPassword, 2)
+        self.assertArgIsCFRetained(CoreWLAN.CWKeychainCopyEAPUsernameAndPassword, 2)
+
+        # Check it exists:
+        CoreWLAN.CWKeychainSetEAPUsernameAndPassword
+        CoreWLAN.CWKeychainDeleteEAPUsernameAndPassword
+        CoreWLAN.CWKeychainSetEAPIdentity
+        CoreWLAN.CWKeychainSetPassword
+        CoreWLAN.CWKeychainDeletePassword
+        CoreWLAN.CWMergeNetworks
+
+        self.assertArgIsOut(CoreWLAN.CWKeychainCopyEAPIdentityList, 0)
+        self.assertArgIsCFRetained(CoreWLAN.CWKeychainCopyEAPIdentityList, 0)
+
+        self.assertArgIsOut(CoreWLAN.CWKeychainCopyEAPIdentity, 1)
+        self.assertArgIsCFRetained(CoreWLAN.CWKeychainCopyEAPIdentity, 1)
+
+        self.assertArgIsOut(CoreWLAN.CWKeychainCopyPassword, 1)
+        self.assertArgIsCFRetained(CoreWLAN.CWKeychainCopyPassword, 1)
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/PyObjCTest/test_cw8021xprofile.py

+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+
+class TestCW8021XProfile (TestCase):
+    @min_os_level('10.6')
+    def testMethods10_6(self):
+        self.assertResultIsBOOL(CoreWLAN.CW8021XProfile.alwaysPromptForPassword)
+        self.assertArgIsBOOL(CoreWLAN.CW8021XProfile.setAlwaysPromptForPassword_, 0)
+        self.assertResultIsBOOL(CoreWLAN.CW8021XProfile.isEqualToProfile_)
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/PyObjCTest/test_cwchannel.py

+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+
+class TestCWChannel (TestCase):
+    @min_os_level('10.6')
+    def testMethods(self):
+        self.assertResultIsBOOL(CoreWLAN.CWChannel.isEqualToChannel_)
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/PyObjCTest/test_cwconfiguration.py

+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+
+class TestCWConfiguration (TestCase):
+    @min_os_level('10.6')
+    def testMethods10_6(self):
+        self.assertResultIsBOOL(CoreWLAN.CWConfiguration.alwaysRememberNetworks)
+        self.assertResultIsBOOL(CoreWLAN.CWConfiguration.disconnectOnLogout)
+        self.assertResultIsBOOL(CoreWLAN.CWConfiguration.requireAdminForNetworkChange)
+        self.assertResultIsBOOL(CoreWLAN.CWConfiguration.requireAdminForPowerChange)
+        self.assertResultIsBOOL(CoreWLAN.CWConfiguration.requireAdminForIBSSCreation)
+
+        self.assertArgIsBOOL(CoreWLAN.CWConfiguration.setAlwaysRememberNetworks_, 0)
+        self.assertArgIsBOOL(CoreWLAN.CWConfiguration.setDisconnectOnLogout_, 0)
+        self.assertArgIsBOOL(CoreWLAN.CWConfiguration.setRequireAdminForNetworkChange_, 0)
+        self.assertArgIsBOOL(CoreWLAN.CWConfiguration.setRequireAdminForPowerChange_, 0)
+        self.assertArgIsBOOL(CoreWLAN.CWConfiguration.setRequireAdminForIBSSCreation_, 0)
+
+    @min_os_level('10.7')
+    def testMethods10_7(self):
+        self.assertResultIsBOOL(CoreWLAN.CWConfiguration.requireAdministratorForAssociation)
+        self.assertResultIsBOOL(CoreWLAN.CWConfiguration.requireAdministratorForPower)
+        self.assertResultIsBOOL(CoreWLAN.CWConfiguration.requireAdministratorForIBSSMode)
+        self.assertResultIsBOOL(CoreWLAN.CWConfiguration.rememberJoinedNetworks)
+        self.assertResultIsBOOL(CoreWLAN.CWConfiguration.isEqualToConfiguration_)
+
+        self.assertArgIsBOOL(CoreWLAN.CWMutableConfiguration.setRequireAdministratorForAssociation_, 0)
+        self.assertArgIsBOOL(CoreWLAN.CWMutableConfiguration.setRequireAdministratorForPower_, 0)
+        self.assertArgIsBOOL(CoreWLAN.CWMutableConfiguration.setRequireAdministratorForIBSSMode_, 0)
+        self.assertArgIsBOOL(CoreWLAN.CWMutableConfiguration.setRememberJoinedNetworks_, 0)
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/PyObjCTest/test_cwinterface.py

+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+
+class TestCWInterface (TestCase):
+    @min_os_level('10.7')
+    def test_methods10_7(self):
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.powerOn);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.deviceAttached);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.serviceActive);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.setPower_error_);
+        self.assertArgIsBOOL(CoreWLAN.CWInterface.setPower_error_, 0);
+        self.assertArgIsOut(CoreWLAN.CWInterface.setPower_error_, 1);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.setWLANChannel_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.setWLANChannel_error_, 1);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.setPairwiseMasterKey_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.setPairwiseMasterKey_error_, 1);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.setWEPKey_flags_index_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.setWEPKey_flags_index_error_, 3);
+
+        self.assertArgIsOut(CoreWLAN.CWInterface.scanForNetworksWithSSID_error_, 1);
+        self.assertArgIsOut(CoreWLAN.CWInterface.scanForNetworksWithName_error_, 1);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.associateToNetwork_password_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.associateToNetwork_password_error_, 2);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.associateToEnterpriseNetwork_identity_username_password_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.associateToEnterpriseNetwork_identity_username_password_error_, 4);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.startIBSSModeWithSSID_security_channel_password_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.startIBSSModeWithSSID_security_channel_password_error_, 4);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.commitConfiguration_authorization_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.commitConfiguration_authorization_error_, 2);
+
+    @min_os_level('10.6')
+    def testMethods10_6(self):
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsWoW);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsWEP);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsAES_CCM);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsIBSS);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsTKIP);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsPMGT);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsHostAP);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsMonitorMode);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsWPA);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsWPA2);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsWME);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsShortGI40MHz);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsShortGI20MHz);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.supportsTSN);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.power);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.powerSave);
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.isEqualToInterface_);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.setChannel_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.setChannel_error_, 1);
+
+        self.assertArgIsOut(CoreWLAN.CWInterface.scanForNetworksWithParameters_error_, 1);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.associateToNetwork_parameters_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.associateToNetwork_parameters_error_, 2);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.enableIBSSWithParameters_parameters_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.enableIBSSWithParameters_parameters_error_, 2);
+
+        self.assertResultIsBOOL(CoreWLAN.CWInterface.commitConfiguration_error_);
+        self.assertArgIsOut(CoreWLAN.CWInterface.commitConfiguration_error_, 1);
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/PyObjCTest/test_cwnetwork.py

+
+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+
+class TestCWNetwork (TestCase):
+    @min_os_level('10.7')
+    def test_methods10_7(self):
+        self.assertResultIsBOOL(CoreWLAN.CWNetwork.ibss);
+
+    @min_os_level('10.6')
+    def test_methods10_6(self):
+        self.assertResultIsBOOL(CoreWLAN.CWNetwork.isEqualToNetwork_);
+        self.assertResultIsBOOL(CoreWLAN.CWNetwork.supportsSecurity_);
+        self.assertResultIsBOOL(CoreWLAN.CWNetwork.supportsPHYMode_);
+        self.assertResultIsBOOL(CoreWLAN.CWNetwork.isIBSS);
+
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/PyObjCTest/test_cwnetworkprofile.py

+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+
+class TestCWNetworkProfile (TestCase):
+    @min_os_level('10.7')
+    def test_methods10_7(self):
+        self.assertResultIsBOOL(CoreWLAN.CWNetworkProfile.isEqualToNetworkProfile_);
+        self.assertResultIsBOOL(CoreWLAN.CWNetworkProfile.isEqualToNetwork_);
+        self.assertResultIsBOOL(CoreWLAN.CWNetworkProfile.supportsSecurity_);
+        self.assertResultIsBOOL(CoreWLAN.CWNetworkProfile.supportsPHYMode_);
+        self.assertResultIsBOOL(CoreWLAN.CWNetworkProfile.isIBSS);
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/PyObjCTest/test_cwwirelessprofile.py

+from PyObjCTools.TestSupport import *
+
+import CoreWLAN
+
+class TestCWWirelessProfile (TestCase):
+    @min_os_level('10.6')
+    def test_methods10_6(self):
+        self.assertResultIsBOOL(CoreWLAN.CWWirelessProfile.isEqualToProfile_);
+
+if __name__ == "__main__":
+    main()

pyobjc-framework-CoreWLAN/metadata/CoreWLAN.fwinfo

+# objective.metada exceptions file, see its document
+# for information on how to update this file.
+{
+ "definitions": {
+  "classes": {
+   "CWInterface": {
+    "methods": [
+     {
+      "args": {
+       "1": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "setPower:error:"
+     },
+     {
+      "args": {
+       "1": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "setWLANChannel:error:"
+     },
+     {
+      "args": {
+       "1": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "setPairwiseMasterKey:error:"
+     },
+     {
+      "args": {
+       "3": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "setWEPKey:flags:index:error:"
+     },
+     {
+      "args": {
+       "1": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "scanForNetworksWithSSID:error:"
+     },
+     {
+      "args": {
+       "1": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "scanForNetworksWithName:error:"
+     },
+     {
+      "args": {
+       "2": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "associateToNetwork:password:error:"
+     },
+     {
+      "args": {
+       "1": {},
+       "4": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "associateToEnterpriseNetwork:identity:username:password:error:"
+     },
+     {
+      "args": {
+       "4": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "startIBSSModeWithSSID:security:channel:password:error:"
+     },
+     {
+      "args": {
+       "2": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "commitConfiguration:authorization:error:"
+     },
+     {
+      "args": {
+       "1": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "setChannel:error:"
+     },
+     {
+      "args": {
+       "1": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "scanForNetworksWithParameters:error:"
+     },
+     {
+      "args": {
+       "2": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "associateToNetwork:parameters:error:"
+     },
+     {
+      "args": {
+       "1": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "enableIBSSWithParameters:error:"
+     },
+     {
+      "args": {
+       "1": { "type_modifier": "o" }
+      },
+      "class_method": false,
+      "selector": "commitConfiguration:error:"
+     }
+    ]
+   }
+  },
+  "formal_protocols": {},
+  "functions": {
+   "CWKeychainCopyEAPIdentity": {
+    "args": {
+     "0": {},
+     "1": { "type_modifier": "o", "already_cfretained": true }
+    }
+   },
+   "CWKeychainCopyEAPIdentityList": {
+    "args": {
+     "0": { "type_modifier": "o", "already_cfretained": true }
+    }
+   },
+   "CWKeychainCopyEAPUsernameAndPassword": {
+    "args": {
+     "0": {},
+     "1": { "type_modifier": "o", "already_cfretained": true },
+     "2": { "type_modifier": "o", "already_cfretained": true }
+    }
+   },
+   "CWKeychainCopyPassword": {
+    "args": {
+     "0": {},
+     "1": { "type_modifier": "o", "already_cfretained": true }
+    }
+   },
+   "CWKeychainDeleteEAPUsernameAndPassword": {
+    "args": {
+     "0": {}
+    }
+   },
+   "CWKeychainDeletePassword": {
+    "args": {
+     "0": {}
+    }
+   },
+   "CWKeychainSetEAPIdentity": {
+    "args": {
+     "0": {},
+     "1": {}
+    }
+   },
+   "CWKeychainSetEAPUsernameAndPassword": {
+    "args": {
+     "0": {},
+     "1": {},
+     "2": {}
+    }
+   },
+   "CWKeychainSetPassword": {
+    "args": {
+     "0": {},
+     "1": {}
+    }
+   }
+  },
+  "informal_protocols": {}
+ }
+}

pyobjc-framework-CoreWLAN/metadata/metadata.ini

+[CoreWLAN]
+framework = CoreWLAN

pyobjc-framework-CoreWLAN/metadata/raw/i386-10.7.fwinfo

+#             GENERATED FILE DO NOT EDIT
+#
+# This file was generated by objective.metadata
+# Last update: Tue Feb 26 13:44:08 2013
+{
+ "arch": "i386", 
+ "definitions": {
+  "aliases": {}, 
+  "called_definitions": {}, 
+  "cftypes": {}, 
+  "classes": {
+   "CW8021XProfile": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "init", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "profile", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "isEqualToProfile:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "allUser8021XProfiles", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CW8021XProfile", 
+    "properties": [
+     {
+      "attributes": [
+       "readwrite", 
+       "copy"
+      ], 
+      "name": "userDefinedName", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "copy"
+      ], 
+      "name": "ssid", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "copy"
+      ], 
+      "name": "username", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "copy"
+      ], 
+      "name": "password", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [], 
+      "name": "alwaysPromptForPassword", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }
+    ], 
+    "protocols": [
+     "NSCoding", 
+     "NSCopying"
+    ], 
+    "super": "NSObject"
+   }, 
+   "CWChannel": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "isEqualToChannel:", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CWChannel", 
+    "properties": [
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "channelNumber", 
+      "typestr": "I", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "channelWidth", 
+      "typestr": "i", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "channelBand", 
+      "typestr": "i", 
+      "typestr_special": false
+     }
+    ], 
+    "protocols": [
+     "NSCoding", 
+     "NSCopying"
+    ], 
+    "super": "NSObject"
+   }, 
+   "CWConfiguration": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "configuration", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "init", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "initWithConfiguration:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "configurationWithConfiguration:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "isEqualToConfiguration:", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CWConfiguration", 
+    "properties": [
+     {
+      "attributes": [
+       "readonly", 
+       "copy"
+      ], 
+      "name": "networkProfiles", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "assign"
+      ], 
+      "name": "requireAdministratorForAssociation", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "assign"
+      ], 
+      "name": "requireAdministratorForPower", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "assign"
+      ], 
+      "name": "requireAdministratorForIBSSMode", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "assign"
+      ], 
+      "name": "rememberJoinedNetworks", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "copy"
+      ], 
+      "name": "rememberedNetworks", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "copy"
+      ], 
+      "name": "preferredNetworks", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "assign"
+      ], 
+      "name": "alwaysRememberNetworks", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "assign"
+      ], 
+      "name": "disconnectOnLogout", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "assign"
+      ], 
+      "name": "requireAdminForNetworkChange", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "assign"
+      ], 
+      "name": "requireAdminForPowerChange", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "assign"
+      ], 
+      "name": "requireAdminForIBSSCreation", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }
+    ], 
+    "protocols": [
+     "NSCoding", 
+     "NSCopying", 
+     "NSMutableCopying"
+    ], 
+    "super": "NSObject"
+   }, 
+   "CWInterface": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "interfaceNames", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "interface", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "interfaceWithName:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "initWithInterfaceName:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "Z", 
+        "typestr_special": true
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "setPower:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "setWLANChannel:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "setPairwiseMasterKey:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "I", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "I", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "setWEPKey:flags:index:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "scanForNetworksWithSSID:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "scanForNetworksWithName:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "associateToNetwork:password:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^{OpaqueSecIdentityRef=}", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "associateToEnterpriseNetwork:identity:username:password:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "i", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "I", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "startIBSSModeWithSSID:security:channel:password:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "disassociate", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "commitConfiguration:authorization:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "supportedInterfaces", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "isEqualToInterface:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "I", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "setChannel:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "scanForNetworksWithParameters:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "associateToNetwork:parameters:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "enableIBSSWithParameters:error:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "^@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "commitConfiguration:error:", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CWInterface", 
+    "properties": [
+     {
+      "attributes": [
+       "readonly", 
+       "assign"
+      ], 
+      "name": "powerOn", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "copy"
+      ], 
+      "name": "interfaceName", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportedWLANChannels", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "wlanChannel", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "activePHYMode", 
+      "typestr": "i", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "ssid", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "ssidData", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "bssid", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "rssiValue", 
+      "typestr": "i", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "noiseMeasurement", 
+      "typestr": "i", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "security", 
+      "typestr": "i", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "transmitRate", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "countryCode", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "interfaceMode", 
+      "typestr": "i", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "transmitPower", 
+      "typestr": "I", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "hardwareAddress", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "assign"
+      ], 
+      "name": "deviceAttached", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "serviceActive", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "cachedScanResults", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "configuration", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readwrite", 
+       "retain"
+      ], 
+      "name": "authorization", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsWoW", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsWEP", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsAES_CCM", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsIBSS", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsTKIP", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsPMGT", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsHostAP", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsMonitorMode", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsWPA", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsWPA2", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsWME", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly"
+      ], 
+      "name": "supportsShortGI40MHz", 
+      "typestr": "Z", 
+      "typestr_special": true