diff --git a/f5/utils/iapp_parser.py b/f5/utils/iapp_parser.py
index 5418909..8b5abfc 100644
--- a/f5/utils/iapp_parser.py
+++ b/f5/utils/iapp_parser.py
@@ -21,48 +21,48 @@ from f5.sdk_exception import F5SDKError
 class IappParser(object):
 
     template_sections = [
-        u'presentation',
-        u'implementation',
-        u'html-help',
-        u'role-acl'
+        'presentation',
+        'implementation',
+        'html-help',
+        'role-acl'
     ]
 
     tcl_list_for_attr_re = '{(\s*(\w+)?\s*)+}'
     tcl_list_for_section_re = '(\s*\w+\s*)+'
     section_map = {
-        u'html-help': u'htmlHelp',
-        u'role-acl': u'roleAcl'
+        'html-help': 'htmlHelp',
+        'role-acl': 'roleAcl'
     }
     attr_map = {
-        u'requires-modules': u'requiresModules',
-        u'ignore-verification': u'ignoreVerification',
-        u'tmpl-signature': u'tmplSignature',
-        u'requires-bigip-version-min': u'requiresBigipVersionMin',
-        u'requires-bigip-version-max': u'requiresBigipVersionMax',
-        u'total-signing-status': u'totalSigningStatus',
-        u'prerequisite-errors': u'prerequisiteErrors',
-        u'verification-status': u'verificationStatus',
-        u'signing-key': u'signingKey',
-        u'tmpl-checksum': u'tmplChecksum'
+        'requires-modules': 'requiresModules',
+        'ignore-verification': 'ignoreVerification',
+        'tmpl-signature': 'tmplSignature',
+        'requires-bigip-version-min': 'requiresBigipVersionMin',
+        'requires-bigip-version-max': 'requiresBigipVersionMax',
+        'total-signing-status': 'totalSigningStatus',
+        'prerequisite-errors': 'prerequisiteErrors',
+        'verification-status': 'verificationStatus',
+        'signing-key': 'signingKey',
+        'tmpl-checksum': 'tmplChecksum'
     }
-    sections_not_required = [u'html-help', u'role-acl', u'macro']
+    sections_not_required = ['html-help', 'role-acl', 'macro']
     tcl_list_patterns = {
-        u'requires-modules': tcl_list_for_attr_re,
-        u'role-acl': tcl_list_for_section_re
+        'requires-modules': tcl_list_for_attr_re,
+        'role-acl': tcl_list_for_section_re
     }
     template_attrs = [
-        u'description',
-        u'partition',
-        u'requires-modules',
-        u'ignore-verification',
-        u'requires-bigip-version-max',
-        u'requires-bigip-version-min',
-        u'signing-key',
-        u'tmpl-checksum',
-        u'tmpl-signature',
-        u'total-signing-status',
-        u'prerequisite-errors',
-        u'verification-status',
+        'description',
+        'partition',
+        'requires-modules',
+        'ignore-verification',
+        'requires-bigip-version-max',
+        'requires-bigip-version-min',
+        'signing-key',
+        'tmpl-checksum',
+        'tmpl-signature',
+        'total-signing-status',
+        'prerequisite-errors',
+        'verification-status',
     ]
 
     def __init__(self, template_str):
@@ -73,7 +73,7 @@ class IappParser(object):
         '''
 
         if template_str:
-            self.template_str = unicode(template_str)
+            self.template_str = str(template_str)
         else:
             raise EmptyTemplateException('Template empty or None value.')
 
@@ -115,9 +115,9 @@ class IappParser(object):
                 elif char == '"' and in_quote:
                     in_quote = False
 
-            if char == u'{' and not in_quote:
+            if char == '{' and not in_quote:
                 brace_count += 1
-            elif char == u'}' and not in_quote:
+            elif char == '}' and not in_quote:
                 brace_count -= 1
 
             if brace_count is 0:
@@ -298,7 +298,7 @@ class IappParser(object):
 
         self.templ_dict = {'actions': {'definition': {}}}
 
-        self.templ_dict[u'name'] = self._get_template_name()
+        self.templ_dict['name'] = self._get_template_name()
 
         self._add_cli_scripts()
         self._add_sections()

make iapp_parser code python3 compat
as part of the py3 effort, make the iapp parser compatible.
diff --git a/f5/utils/test/unit/test_iapp_parser.py b/f5/utils/test/unit/test_iapp_parser.py
index ba4fd62..c367019 100644
--- a/f5/utils/test/unit/test_iapp_parser.py
+++ b/f5/utils/test/unit/test_iapp_parser.py
@@ -407,166 +407,166 @@ sys application template unbalanced_quote_templ {
 
 
 good_templ_dict = {
-    u'name': u'good_templ',
-    u'description': u'<template description>',
-    u'partition': u'<partition name>',
-    u'requiresModules': [u'ltm'],
+    'name': 'good_templ',
+    'description': '<template description>',
+    'partition': '<partition name>',
+    'requiresModules': ['ltm'],
     'actions': {
         'definition': {
-            u'htmlHelp': u'# HTML Help for the template',
-            u'roleAcl': [u'hello', u'test'],
-            u'implementation': u'# TMSH implementation code',
-            u'presentation': u'# APL presentation language'
+            'htmlHelp': '# HTML Help for the template',
+            'roleAcl': ['hello', 'test'],
+            'implementation': '# TMSH implementation code',
+            'presentation': '# APL presentation language'
         }
     }
 }
 
 unbalanced__quote_templ_dict = {
-    u'name': u'good_templ',
-    u'description': u'<template description>',
-    u'partition': u'<partition name>',
-    u'requiresModules': [u'ltm'],
+    'name': 'good_templ',
+    'description': '<template description>',
+    'partition': '<partition name>',
+    'requiresModules': ['ltm'],
     'actions': {
         'definition': {
-            u'htmlHelp': u'',
-            u'roleAcl': [u'hello', u'test'],
-            u'implementation': u'set val [string map {\" ""} $val]',
-            u'presentation': u''
+            'htmlHelp': '',
+            'roleAcl': ['hello', 'test'],
+            'implementation': 'set val [string map {\" ""} $val]',
+            'presentation': ''
         }
     }
 }
 
 brace_in_quote_templ_dict = {
-    u'name': u'good_templ',
-    u'description': u'<template description>',
-    u'partition': u'<partition name>',
-    u'requiresModules': [u'ltm'],
+    'name': 'good_templ',
+    'description': '<template description>',
+    'partition': '<partition name>',
+    'requiresModules': ['ltm'],
     'actions': {
         'definition': {
-            u'htmlHelp': u'# HTML Help for "" the template',
-            u'roleAcl': [u'hello', u'test'],
-            u'implementation': u'# TMSH"{}{{}}}}}""{{{{}}"implementation code',
-            u'presentation': u'# APL"{}{}{{{{{{" presentation language'
+            'htmlHelp': '# HTML Help for "" the template',
+            'roleAcl': ['hello', 'test'],
+            'implementation': '# TMSH"{}{{}}}}}""{{{{}}"implementation code',
+            'presentation': '# APL"{}{}{{{{{{" presentation language'
         }
     }
 }
 
 no_help_templ_dict = {
-    u'name': u'good_templ',
-    u'description': u'<template description>',
-    u'partition': u'<partition name>',
-    u'requiresModules': [u'ltm', u'asm'],
+    'name': 'good_templ',
+    'description': '<template description>',
+    'partition': '<partition name>',
+    'requiresModules': ['ltm', 'asm'],
     'actions': {
         'definition': {
-            u'roleAcl': [u'hello', u'test'],
-            u'implementation': u'# TMSH implementation code',
-            u'presentation': u'# APL presentation language'
+            'roleAcl': ['hello', 'test'],
+            'implementation': '# TMSH implementation code',
+            'presentation': '# APL presentation language'
         }
     }
 }
 
 none_rm_templ_dict = {
-    u'name': u'good_templ',
-    u'partition': u'<partition name>',
-    u'requiresModules': u'none',
+    'name': 'good_templ',
+    'partition': '<partition name>',
+    'requiresModules': 'none',
     'actions': {
         'definition': {
-            u'htmlHelp': u'# HTML Help for the template',
-            u'roleAcl': [u'hello', u'test'],
-            u'implementation': u'# TMSH implementation code',
-            u'presentation': u'# APL presentation language'
+            'htmlHelp': '# HTML Help for the template',
+            'roleAcl': ['hello', 'test'],
+            'implementation': '# TMSH implementation code',
+            'presentation': '# APL presentation language'
         }
     }
 }
 
 dot_name_templ_dict = {
-    u'name': u'good.dot.templ',
-    u'description': u'<template description>',
-    u'partition': u'<partition name>',
-    u'requiresModules': [u'ltm'],
+    'name': 'good.dot.templ',
+    'description': '<template description>',
+    'partition': '<partition name>',
+    'requiresModules': ['ltm'],
     'actions': {
         'definition': {
-            u'htmlHelp': u'# HTML Help for the template',
-            u'roleAcl': [u'hello', u'test'],
-            u'implementation': u'# TMSH implementation code',
-            u'presentation': u'# APL presentation language'
+            'htmlHelp': '# HTML Help for the template',
+            'roleAcl': ['hello', 'test'],
+            'implementation': '# TMSH implementation code',
+            'presentation': '# APL presentation language'
         }
     }
 }
 
 
 dot_hyphen_name_templ_dict = {
-    u'name': u'good.-dot-hyphen.-templ',
-    u'description': u'<template description>',
-    u'partition': u'<partition name>',
-    u'requiresModules': [u'ltm'],
+    'name': 'good.-dot-hyphen.-templ',
+    'description': '<template description>',
+    'partition': '<partition name>',
+    'requiresModules': ['ltm'],
     'actions': {
         'definition': {
-            u'htmlHelp': u'# HTML Help for the template',
-            u'roleAcl': [u'hello', u'test'],
-            u'implementation': u'# TMSH implementation code',
-            u'presentation': u'# APL presentation language'
+            'htmlHelp': '# HTML Help for the template',
+            'roleAcl': ['hello', 'test'],
+            'implementation': '# TMSH implementation code',
+            'presentation': '# APL presentation language'
         }
     }
 }
 
 slashes_name_templ_dict = {
-    u'name': u'good_slashes_templ',
-    u'description': u'<template description>',
-    u'partition': u'<partition name>',
-    u'requiresModules': [u'ltm'],
+    'name': 'good_slashes_templ',
+    'description': '<template description>',
+    'partition': '<partition name>',
+    'requiresModules': ['ltm'],
     'actions': {
         'definition': {
-            u'htmlHelp': u'# HTML Help for the template',
-            u'roleAcl': [u'hello', u'test'],
-            u'implementation': u'# TMSH implementation code',
-            u'presentation': u'# APL presentation language'
+            'htmlHelp': '# HTML Help for the template',
+            'roleAcl': ['hello', 'test'],
+            'implementation': '# TMSH implementation code',
+            'presentation': '# APL presentation language'
         }
     }
 }
 
 cli_scripts_templ_dict = {
-    u'name': u'good_templ',
-    u'description': u'<template description>',
-    u'partition': u'<partition name>',
-    u'requiresModules': [u'ltm'],
-    u'ignoreVerification': u'<verification>',
-    u'requiresBigipVersionMax': u'<max version>',
-    u'requiresBigipVersionMin': u'<min version>',
-    u'signingKey': u'<signing key>',
-    u'tmplChecksum': u'<checksum>',
-    u'tmplSignature': u'<signature>',
-    u'prerequisiteErrors': u'<errors>',
+    'name': 'good_templ',
+    'description': '<template description>',
+    'partition': '<partition name>',
+    'requiresModules': ['ltm'],
+    'ignoreVerification': '<verification>',
+    'requiresBigipVersionMax': '<max version>',
+    'requiresBigipVersionMin': '<min version>',
+    'signingKey': '<signing key>',
+    'tmplChecksum': '<checksum>',
+    'tmplSignature': '<signature>',
+    'prerequisiteErrors': '<errors>',
     'actions': {
         'definition': {
-            u'htmlHelp': u'# HTML Help for the template',
-            u'roleAcl': [u'hello', u'test'],
-            u'implementation': u'# TMSH implementation code',
-            u'presentation': u'# APL presentation language'
+            'htmlHelp': '# HTML Help for the template',
+            'roleAcl': ['hello', 'test'],
+            'implementation': '# TMSH implementation code',
+            'presentation': '# APL presentation language'
         }
     },
     'scripts': [
         {
-            'name': u'script.one',
-            'script': u'# TMSH script 1 code',
+            'name': 'script.one',
+            'script': '# TMSH script 1 code',
         },
         {
-            'name': u'script.two',
-            'script': u'# TMSH script 2 code',
+            'name': 'script.two',
+            'script': '# TMSH script 2 code',
         },
     ]
 }
 
 empty_rm_templ_dict = {
-    u'name': u'good_templ',
-    u'partition': u'<partition name>',
-    u'requiresModules': [],
+    'name': 'good_templ',
+    'partition': '<partition name>',
+    'requiresModules': [],
     'actions': {
         'definition': {
-            u'htmlHelp': u'# HTML Help for the template',
-            u'roleAcl': [u'hello', u'test'],
-            u'implementation': u'# TMSH implementation code',
-            u'presentation': u'# APL presentation language'
+            'htmlHelp': '# HTML Help for the template',
+            'roleAcl': ['hello', 'test'],
+            'implementation': '# TMSH implementation code',
+            'presentation': '# APL presentation language'
         }
     }
 }
@@ -589,18 +589,17 @@ def test__init__():
 
 def test__init__error():
     prsr = None
-    with pytest.raises(ip.EmptyTemplateException) as EmptyTemplateExceptInfo:
+    with pytest.raises(ip.EmptyTemplateException) as ex:
         prsr = ip.IappParser('')
-    assert EmptyTemplateExceptInfo.value.message == \
-        'Template empty or None value.'
+    assert str(ex.value) == 'Template empty or None value.'
     assert prsr is None
 
 
 def test_get_section_end_index():
     prsr = ip.IappParser(good_templ)
-    impl_start = prsr._get_section_start_index(u'implementation')
-    impl_end = prsr._get_section_end_index(u'implementation', impl_start)
-    templ_impl = unicode('''{
+    impl_start = prsr._get_section_start_index('implementation')
+    impl_end = prsr._get_section_end_index('implementation', impl_start)
+    templ_impl = str('''{
         # TMSH implementation code
       }''')
     assert good_templ[impl_start:impl_end+1] == templ_impl
@@ -608,21 +607,17 @@ def test_get_section_end_index():
 
 def test_get_section_start_index_no_open_brace_error():
     prsr = ip.IappParser(no_open_brace_templ)
-    with pytest.raises(ip.NonextantSectionException) as \
-            NonextantSectionExceptInfo:
-        prsr._get_section_start_index(u'html-help')
-    assert NonextantSectionExceptInfo.value.message == \
-        'Section html-help not found in template'
+    with pytest.raises(ip.NonextantSectionException) as ex:
+        prsr._get_section_start_index('html-help')
+    assert str(ex.value) == 'Section html-help not found in template'
 
 
 def test_get_section_end_no_close_brace_error():
     prsr = ip.IappParser(no_close_brace_templ)
-    with pytest.raises(ip.CurlyBraceMismatchException) as \
-            CurlyBraceMismatchExceptInfo:
-        help_start = prsr._get_section_start_index(u'html-help')
-        prsr._get_section_end_index(u'html_help', help_start)
-    assert CurlyBraceMismatchExceptInfo.value.message == \
-        'Curly braces mismatch in section html_help.'
+    with pytest.raises(ip.CurlyBraceMismatchException) as ex:
+        help_start = prsr._get_section_start_index('html-help')
+        prsr._get_section_end_index('html_help', help_start)
+    assert str(ex.value) == 'Curly braces mismatch in section html_help.'
 
 
 def test_unbalanced_quote_error():
@@ -632,30 +627,26 @@ def test_unbalanced_quote_error():
 
 def test_get_template_name():
     prsr = ip.IappParser(good_templ)
-    assert prsr._get_template_name() == u'good_templ'
+    assert prsr._get_template_name() == 'good_templ'
 
 
 def test_get_template_name_next_to_brace():
     prsr = ip.IappParser(name_brace_templ)
-    assert prsr._get_template_name() == u'name_next_to_brace'
+    assert prsr._get_template_name() == 'name_next_to_brace'
 
 
 def test_get_template_name_error():
     prsr = ip.IappParser(no_name_templ)
-    with pytest.raises(ip.NonextantTemplateNameException) as \
-            NonextantTemplateNameExceptInfo:
+    with pytest.raises(ip.NonextantTemplateNameException) as ex:
         prsr._get_template_name()
-    assert NonextantTemplateNameExceptInfo.value.message == \
-        'Template name not found.'
+    assert str(ex.value) == 'Template name not found.'
 
 
 def test_get_template_name_bad_name_error():
     prsr = ip.IappParser(bad_name_templ)
-    with pytest.raises(ip.NonextantTemplateNameException) as \
-            NonextantTemplateNameExceptInfo:
+    with pytest.raises(ip.NonextantTemplateNameException) as ex:
         prsr._get_template_name()
-    assert NonextantTemplateNameExceptInfo.value.message == \
-        'Template name not found.'
+    assert str(ex.value) == 'Template name not found.'
 
 
 def test_get_template_name_with_dot():
@@ -689,12 +680,10 @@ def test_count_template_cli_scripts():
 
 
 def test_parse_template_no_section_found(TemplateSectionSetup):
-    with pytest.raises(ip.NonextantSectionException) as \
-            NonextantSectionExceptInfo:
+    with pytest.raises(ip.NonextantSectionException) as ex:
         TemplateSectionSetup.parse_template()
     assert 'notfound' in TemplateSectionSetup.template_sections
-    assert 'Section notfound not found in template' in \
-        NonextantSectionExceptInfo.value.message
+    assert 'Section notfound not found in template' in str(ex.value)
 
 
 def test_parse_template_no_section_found_not_required():
@@ -705,13 +694,13 @@ def test_parse_template_no_section_found_not_required():
 
 def test_get_template_attr():
     prsr = ip.IappParser(good_attr_templ)
-    attr = prsr._get_template_attr(u'partition')
-    assert attr == u'just_a_partition name'
+    attr = prsr._get_template_attr('partition')
+    assert attr == 'just_a_partition name'
 
 
 def test_get_template_attr_attr_not_exists():
     prsr = ip.IappParser(good_attr_templ)
-    attr = prsr._get_template_attr(u'bad_attr')
+    attr = prsr._get_template_attr('bad_attr')
     assert attr is None
 
 

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio pytest-bdd pytest-benchmark pytest-randomly responses mock hypothesis freezegun trustme requests-mock requests tomlkit
apt-get update apt-get install -y gcc
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==25.3.0
certifi==2025.1.31
cffi==1.17.1
charset-normalizer==3.4.1
coverage==7.8.0
cryptography==44.0.2
exceptiongroup==1.2.2
execnet==2.1.1
f5-icontrol-rest==1.1.0
-e git+https://github.com/F5Networks/f5-common-python.git@7cb5a9e7e4121a64a2a00e768431d92a8e4d050b#egg=f5_sdk
freezegun==1.5.1
gherkin-official==29.0.0
hypothesis==6.130.6
idna==3.10
importlib_metadata==8.6.1
iniconfig==2.1.0
Mako==1.3.9
MarkupSafe==3.0.2
mock==5.2.0
packaging==24.2
parse==1.20.2
parse_type==0.6.4
pluggy==1.5.0
py-cpuinfo==9.0.0
pycparser==2.22
pytest==8.3.5
pytest-asyncio==0.26.0
pytest-bdd==8.1.0
pytest-benchmark==5.1.0
pytest-cov==6.0.0
pytest-mock==3.14.0
pytest-randomly==3.16.0
pytest-xdist==3.6.1
python-dateutil==2.9.0.post0
PyYAML==6.0.2
requests==2.32.3
requests-mock==1.12.1
responses==0.25.7
six==1.17.0
sortedcontainers==2.4.0
tomli==2.2.1
tomlkit==0.13.2
trustme==1.2.1
typing_extensions==4.13.0
urllib3==2.3.0
zipp==3.21.0

name: f5-common-python
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==25.3.0
      - certifi==2025.1.31
      - cffi==1.17.1
      - charset-normalizer==3.4.1
      - coverage==7.8.0
      - cryptography==44.0.2
      - exceptiongroup==1.2.2
      - execnet==2.1.1
      - f5-icontrol-rest==1.1.0
      - freezegun==1.5.1
      - gherkin-official==29.0.0
      - hypothesis==6.130.6
      - idna==3.10
      - importlib-metadata==8.6.1
      - iniconfig==2.1.0
      - mako==1.3.9
      - markupsafe==3.0.2
      - mock==5.2.0
      - packaging==24.2
      - parse==1.20.2
      - parse-type==0.6.4
      - pluggy==1.5.0
      - py-cpuinfo==9.0.0
      - pycparser==2.22
      - pytest==8.3.5
      - pytest-asyncio==0.26.0
      - pytest-bdd==8.1.0
      - pytest-benchmark==5.1.0
      - pytest-cov==6.0.0
      - pytest-mock==3.14.0
      - pytest-randomly==3.16.0
      - pytest-xdist==3.6.1
      - python-dateutil==2.9.0.post0
      - pyyaml==6.0.2
      - requests==2.32.3
      - requests-mock==1.12.1
      - responses==0.25.7
      - six==1.17.0
      - sortedcontainers==2.4.0
      - tomli==2.2.1
      - tomlkit==0.13.2
      - trustme==1.2.1
      - typing-extensions==4.13.0
      - urllib3==2.3.0
      - zipp==3.21.0
prefix: /opt/conda/envs/f5-common-python

f5/utils/test/unit/test_iapp_parser.py::test_parse_template_no_section_found f5/utils/test/unit/test_iapp_parser.py::test_attr_empty_rm f5/utils/test/unit/test_iapp_parser.py::test_get_template_name f5/utils/test/unit/test_iapp_parser.py::test_get_template_attr f5/utils/test/unit/test_iapp_parser.py::test_get_template_name_next_to_brace f5/utils/test/unit/test_iapp_parser.py::test_get_section_end_no_close_brace_error f5/utils/test/unit/test_iapp_parser.py::test_get_template_name_error f5/utils/test/unit/test_iapp_parser.py::test_get_template_name_with_dot_hyphen f5/utils/test/unit/test_iapp_parser.py::test_parse_template_no_section_found_not_required f5/utils/test/unit/test_iapp_parser.py::test_unbalanced_quote_error f5/utils/test/unit/test_iapp_parser.py::test_get_section_end_index f5/utils/test/unit/test_iapp_parser.py::test_get_section_start_index_no_open_brace_error f5/utils/test/unit/test_iapp_parser.py::test__init__ f5/utils/test/unit/test_iapp_parser.py::test_get_template_name_with_slashes f5/utils/test/unit/test_iapp_parser.py::test_get_template_name_bad_name_error f5/utils/test/unit/test_iapp_parser.py::test_parse_template f5/utils/test/unit/test_iapp_parser.py::test_parse_template_brace_in_quote f5/utils/test/unit/test_iapp_parser.py::test_attr_none_rm f5/utils/test/unit/test_iapp_parser.py::test_count_template_cli_scripts f5/utils/test/unit/test_iapp_parser.py::test_get_template_name_with_dot f5/utils/test/unit/test_iapp_parser.py::test_get_template_attr_attr_not_exists f5/utils/test/unit/test_iapp_parser.py::test_attr_no_description
f5/utils/test/unit/test_iapp_parser.py::test__init__error
f5/utils/iapp_parser.py
f5/utils/iapp_parser.py