core-parser-app 2.10.0__tar.gz → 2.12.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 (198) hide show
  1. core_parser_app-2.12.0/PKG-INFO +59 -0
  2. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/access_control.py +1 -0
  3. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/admin.py +1 -0
  4. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/data_structure/admin_site.py +1 -0
  5. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/data_structure/models.py +9 -7
  6. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/data_structure_element/admin_site.py +1 -0
  7. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/data_structure_element/api.py +1 -0
  8. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/module/admin_site.py +1 -0
  9. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/module/api.py +1 -0
  10. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/module/models.py +1 -0
  11. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/management/commands/loadmodules.py +1 -0
  12. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/settings.py +1 -0
  13. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/system/api.py +13 -6
  14. core_parser_app-2.12.0/core_parser_app/tasks.py +27 -0
  15. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/discover.py +1 -0
  16. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/sanitize.py +1 -0
  17. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/builtin/autocomplete_module.py +1 -0
  18. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/builtin/checkboxes_module.py +1 -0
  19. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/builtin/input_button_module.py +1 -0
  20. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/builtin/input_module.py +1 -0
  21. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/builtin/options_module.py +1 -0
  22. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/builtin/popup_module.py +1 -0
  23. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/builtin/sync_input_module.py +1 -0
  24. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/builtin/textarea_module.py +1 -0
  25. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/module.py +1 -0
  26. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/views.py +1 -0
  27. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/parser.py +12 -13
  28. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/renderer/__init__.py +6 -3
  29. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/renderer/checkbox.py +1 -0
  30. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/renderer/list.py +1 -0
  31. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/renderer/table.py +1 -0
  32. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/renderer/xml.py +1 -0
  33. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/utils/rendering.py +1 -0
  34. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/utils/xml.py +1 -0
  35. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/urls.py +1 -0
  36. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/views/admin/views.py +1 -0
  37. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/views/common/ajax.py +1 -0
  38. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/views/common/views.py +1 -0
  39. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/views/user/ajax.py +1 -0
  40. core_parser_app-2.12.0/core_parser_app.egg-info/PKG-INFO +59 -0
  41. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app.egg-info/SOURCES.txt +3 -0
  42. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app.egg-info/requires.txt +2 -2
  43. core_parser_app-2.12.0/requirements.core.txt +1 -0
  44. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/requirements.txt +1 -1
  45. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/setup.py +2 -1
  46. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/commands/tests_unit.py +1 -0
  47. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/data_structure/tests_unit.py +40 -1
  48. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/data_structure_element/fixtures/fixtures.py +149 -0
  49. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/data_structure_element/test_int_access_control.py +1 -0
  50. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/data_structure_element/tests_int.py +1 -0
  51. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/data_structure_element/tests_unit.py +1 -0
  52. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/discover/tests_unit.py +1 -0
  53. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/fixtures_utils.py +1 -0
  54. core_parser_app-2.12.0/tests/tasks/tests_unit.py +26 -0
  55. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/test_settings.py +3 -0
  56. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/test_utils.py +4 -3
  57. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/modules/tests/tests_unit_checkboxes_module.py +1 -0
  58. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/modules/tests/tests_unit_module.py +1 -0
  59. {core_parser_app-2.10.0/tests/tools/parser → core_parser_app-2.12.0/tests/tools}/parser/__init__.py +0 -0
  60. {core_parser_app-2.10.0/tests/tools/parser/renderer → core_parser_app-2.12.0/tests/tools/parser/parser}/__init__.py +0 -0
  61. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/parser/parser/test_choice.py +1 -0
  62. core_parser_app-2.12.0/tests/tools/parser/parser/test_choice_extensions.py +71 -0
  63. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/parser/parser/test_complex_content.py +1 -0
  64. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/parser/parser/test_complex_type.py +1 -0
  65. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/parser/parser/test_element.py +1 -0
  66. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/parser/parser/test_extension.py +1 -0
  67. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/parser/parser/test_parser.py +1 -0
  68. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/parser/parser/test_restriction.py +1 -0
  69. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/parser/parser/test_sequence.py +1 -0
  70. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/parser/renderer/list/tests_unit.py +1 -0
  71. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/parser/renderer/tests_unit.py +1 -0
  72. {core_parser_app-2.10.0/tests/views/common → core_parser_app-2.12.0/tests/views}/__init__.py +0 -0
  73. {core_parser_app-2.10.0/tests/views/user → core_parser_app-2.12.0/tests/views/common}/__init__.py +0 -0
  74. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/views/common/test_unit.py +1 -0
  75. core_parser_app-2.12.0/tests/views/user/ajax/__init__.py +0 -0
  76. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/views/user/ajax/fixtures.py +1 -0
  77. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/views/user/ajax/test_int_access_control.py +1 -0
  78. core_parser_app-2.10.0/PKG-INFO +0 -55
  79. core_parser_app-2.10.0/core_parser_app/tasks.py +0 -16
  80. core_parser_app-2.10.0/core_parser_app.egg-info/PKG-INFO +0 -55
  81. core_parser_app-2.10.0/requirements.core.txt +0 -1
  82. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/LICENSE.md +0 -0
  83. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/MANIFEST.in +0 -0
  84. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/README.rst +0 -0
  85. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/__init__.py +0 -0
  86. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/apps.py +0 -0
  87. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/__init__.py +0 -0
  88. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/data_structure/__init__.py +0 -0
  89. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/data_structure/api.py +0 -0
  90. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/data_structure_element/__init__.py +0 -0
  91. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/components/module/__init__.py +0 -0
  92. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/management/__init__.py +0 -0
  93. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/management/commands/__init__.py +0 -0
  94. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/migrations/0001_initial.py +0 -0
  95. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/migrations/__init__.py +0 -0
  96. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/static/core_parser_app/common/css/modules.css +0 -0
  97. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/static/core_parser_app/common/js/module_manager.js +0 -0
  98. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/static/core_parser_app/common/js/module_manager.raw.js +0 -0
  99. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/static/core_parser_app/common/xsd/annotations.xsd +0 -0
  100. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/static/core_parser_app/common/xsd/boolean.xsd +0 -0
  101. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/static/core_parser_app/common/xsd/date.xsd +0 -0
  102. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/system/__init__.py +0 -0
  103. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/templates/core_parser_app/common/modals/add_module.html +0 -0
  104. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/templates/core_parser_app/common/module_manager.html +0 -0
  105. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/templates/core_parser_app/common/module_manager_box.html +0 -0
  106. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/templates/core_parser_app/common/modules.html +0 -0
  107. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/__init__.py +0 -0
  108. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/__init__.py +0 -0
  109. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/exceptions.py +0 -0
  110. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/css/builtin/checkboxes.css +0 -0
  111. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/css/builtin/textarea.css +0 -0
  112. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/js/builtin/autocomplete.js +0 -0
  113. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/js/builtin/checkboxes.js +0 -0
  114. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/js/builtin/input.js +0 -0
  115. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/js/builtin/options.js +0 -0
  116. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/js/builtin/popup.js +0 -0
  117. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/js/builtin/sync_input.js +0 -0
  118. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/js/builtin/textarea.js +0 -0
  119. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/js/commons/file_uploader.js +0 -0
  120. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/js/modules.js +0 -0
  121. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/js/modules.raw.js +0 -0
  122. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/static/core_parser_app/xsl/xsd2html4modules.xsl +0 -0
  123. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/builtin/autocomplete.html +0 -0
  124. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/builtin/checkboxes.html +0 -0
  125. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/builtin/input.html +0 -0
  126. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/builtin/input_button.html +0 -0
  127. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/builtin/modal_wrapper.html +0 -0
  128. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/builtin/options.html +0 -0
  129. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/builtin/popup.html +0 -0
  130. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/builtin/sync_input.html +0 -0
  131. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/builtin/textarea.html +0 -0
  132. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/commons/file_uploader.html +0 -0
  133. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/templates/core_parser_app/module.html +0 -0
  134. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/urls.py +0 -0
  135. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/__init__.py +0 -0
  136. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/views/builtin/__init__.py +0 -0
  137. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/modules/xpathaccessor.py +0 -0
  138. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/__init__.py +0 -0
  139. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/exceptions.py +0 -0
  140. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/static/core_parser_app/css/use.css +0 -0
  141. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/static/core_parser_app/js/autosave.js +0 -0
  142. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/static/core_parser_app/js/autosave.raw.js +0 -0
  143. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/static/core_parser_app/js/autosave_checkbox.js +0 -0
  144. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/static/core_parser_app/js/buttons.js +0 -0
  145. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/static/core_parser_app/js/choice.js +0 -0
  146. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/buttons/add.html +0 -0
  147. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/buttons/collapse.html +0 -0
  148. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/buttons/delete.html +0 -0
  149. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/form-error.html +0 -0
  150. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/inputs/boolean.html +0 -0
  151. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/inputs/checkbox.html +0 -0
  152. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/inputs/date.html +0 -0
  153. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/inputs/input.html +0 -0
  154. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/inputs/select.html +0 -0
  155. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/test/sample_no_data.html +0 -0
  156. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/test/sample_with_data.html +0 -0
  157. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/ul.html +0 -0
  158. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/default/warning.html +0 -0
  159. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/list/attributes.html +0 -0
  160. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/list/li.html +0 -0
  161. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/list/ul.html +0 -0
  162. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/table/table.html +0 -0
  163. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/table/tr.html +0 -0
  164. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/table/wrap.html +0 -0
  165. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/templates/renderer/xml/element.html +0 -0
  166. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/tools/parser/utils/__init__.py +0 -0
  167. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/utils/__init__.py +0 -0
  168. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/utils/xml.py +0 -0
  169. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/views/__init__.py +0 -0
  170. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/views/admin/__init__.py +0 -0
  171. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/views/common/__init__.py +0 -0
  172. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app/views/user/__init__.py +0 -0
  173. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app.egg-info/dependency_links.txt +0 -0
  174. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/core_parser_app.egg-info/top_level.txt +0 -0
  175. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/pyproject.toml +0 -0
  176. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/setup.cfg +0 -0
  177. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/__init__.py +0 -0
  178. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/access_control/__init__.py +0 -0
  179. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/access_control/test_unit.py +0 -0
  180. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/commands/__init__.py +0 -0
  181. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/__init__.py +0 -0
  182. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/data_structure/__init__.py +0 -0
  183. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/data_structure/tests_int.py +0 -0
  184. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/data_structure_element/__init__.py +0 -0
  185. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/data_structure_element/fixtures/__init__.py +0 -0
  186. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/module/__init__.py +0 -0
  187. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/components/module/tests_unit.py +0 -0
  188. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/discover/__init__.py +0 -0
  189. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/models.py +0 -0
  190. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/rights.py +0 -0
  191. {core_parser_app-2.10.0/tests/tools → core_parser_app-2.12.0/tests/tasks}/__init__.py +0 -0
  192. {core_parser_app-2.10.0/tests/tools/modules → core_parser_app-2.12.0/tests/tools}/__init__.py +0 -0
  193. {core_parser_app-2.10.0/tests/tools/modules/tests → core_parser_app-2.12.0/tests/tools/modules}/__init__.py +0 -0
  194. {core_parser_app-2.10.0/tests/tools/parser → core_parser_app-2.12.0/tests/tools/modules/tests}/__init__.py +0 -0
  195. {core_parser_app-2.10.0 → core_parser_app-2.12.0}/tests/tools/modules/tests/tests_unit_sanitize.py +0 -0
  196. {core_parser_app-2.10.0/tests/tools/parser/renderer/list → core_parser_app-2.12.0/tests/tools/parser/renderer}/__init__.py +0 -0
  197. {core_parser_app-2.10.0/tests/views → core_parser_app-2.12.0/tests/tools/parser/renderer/list}/__init__.py +0 -0
  198. {core_parser_app-2.10.0/tests/views/user/ajax → core_parser_app-2.12.0/tests/views/user}/__init__.py +0 -0
@@ -0,0 +1,59 @@
1
+ Metadata-Version: 2.1
2
+ Name: core_parser_app
3
+ Version: 2.12.0
4
+ Summary: XSD parser tools for the curator core project
5
+ Home-page: https://github.com/usnistgov/core_parser_app
6
+ Author: NIST IT Lab
7
+ Author-email: itl_inquiries@nist.gov
8
+ License-File: LICENSE.md
9
+ Requires-Dist: celery
10
+ Requires-Dist: Django
11
+ Requires-Dist: djangorestframework
12
+ Requires-Dist: lxml==5.2.*
13
+ Requires-Dist: core-main-app==2.12.*
14
+
15
+ ===============
16
+ Core Parser App
17
+ ===============
18
+
19
+ XSD parser, renderers and modules for the curator core project.
20
+
21
+ Quick start
22
+ ===========
23
+
24
+ 1. Add "core_parser_app" to your INSTALLED_APPS setting
25
+ -------------------------------------------------------
26
+
27
+ .. code:: python
28
+
29
+ INSTALLED_APPS = [
30
+ ...
31
+ "core_parser_app",
32
+ "core_parser_app.tools.modules",
33
+ "core_parser_app.tools.parser",
34
+ ]
35
+
36
+ 2. Include the core_parser_app URLconf in your project urls.py
37
+ --------------------------------------------------------------
38
+
39
+ .. code:: python
40
+
41
+ url(r'^parser/', include("core_parser_app.urls")),
42
+
43
+
44
+ Migration to the Bootstrap modal
45
+ ================================
46
+ Breaking changes during the migration from the jQuery UI modal to the Bootstrap modal for the module :
47
+
48
+ - The JavaScript global variables **openModule**, **openPopUp** and **initialState** from the popup.js file have been deleted.
49
+ - The JavaScript variable **openModule** has been renamed to **moduleElement**.
50
+ - The modal management has been changed. JQuery UI reused the same DOM element for all modal loaded in the page. Bootstrap use a unique DOM element for each modal. Consequently the main modal container will have the following unique ID : **modal-{{module_id}}**.
51
+ - The save callback uses the new variable **openModule** to get the unique DOM container and get the value to save.
52
+ - The Django form id must be changed be because it is not unique and can create conflict if the page includes a module more than one time (example with the BLOBHostForm):
53
+
54
+ .. code:: python
55
+
56
+ form = BLOBHostForm()
57
+ form.fields["file"].widget.attrs.update(
58
+ {"id": "file-input-%s" % str(module_id)}
59
+ )
@@ -1,5 +1,6 @@
1
1
  """ Access control functions
2
2
  """
3
+
3
4
  import logging
4
5
 
5
6
  from django.contrib.auth.models import Group, User
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Url router for the administration views
3
3
  """
4
+
4
5
  from django.contrib import admin
5
6
  from django.contrib.admin.views.decorators import staff_member_required
6
7
  from django.urls import re_path
@@ -1,5 +1,6 @@
1
1
  """ Custom admin site for the Data Structure model
2
2
  """
3
+
3
4
  from django.contrib import admin
4
5
 
5
6
 
@@ -1,5 +1,6 @@
1
1
  """ Data structure model
2
2
  """
3
+
3
4
  import logging
4
5
  from abc import abstractmethod
5
6
 
@@ -8,7 +9,6 @@ from django.db import models
8
9
 
9
10
  from core_main_app.commons import exceptions
10
11
  from core_main_app.components.template.models import Template
11
- from core_parser_app.tasks import delete_branch_task
12
12
 
13
13
  logger = logging.getLogger(__name__)
14
14
 
@@ -204,15 +204,15 @@ class DataStructure(models.Model):
204
204
  "No data structure found for the given id."
205
205
  )
206
206
 
207
- @classmethod
208
- def pre_delete(cls, sender, instance, **kwargs):
209
- """Pre delete operations
207
+ def delete_data_structure_with_elements(self):
208
+ """delete_data_structure
210
209
 
211
210
  Returns:
212
-
213
211
  """
214
- # Delete data structure elements
215
- instance.delete_data_structure_elements_from_root()
212
+ from core_parser_app.tasks import delete_data_structure_task
213
+
214
+ # Delete data structure
215
+ delete_data_structure_task.apply_async((str(self.id),))
216
216
 
217
217
  def delete_data_structure_elements_from_root(self):
218
218
  """Delete all data structure elements from the root
@@ -220,6 +220,8 @@ class DataStructure(models.Model):
220
220
  Returns:
221
221
 
222
222
  """
223
+ from core_parser_app.tasks import delete_branch_task
224
+
223
225
  if self.data_structure_element_root is not None:
224
226
  delete_branch_task.apply_async(
225
227
  (str(self.data_structure_element_root.id),)
@@ -1,5 +1,6 @@
1
1
  """ Custom admin site for the Data Structure Element model
2
2
  """
3
+
3
4
  from django.contrib import admin
4
5
 
5
6
 
@@ -1,5 +1,6 @@
1
1
  """API for Data Structure Element
2
2
  """
3
+
3
4
  from core_main_app.access_control.decorators import access_control
4
5
  from core_parser_app import access_control as parser_access_control
5
6
  from core_parser_app.components.data_structure.models import (
@@ -1,5 +1,6 @@
1
1
  """ Custom admin site for the Module model
2
2
  """
3
+
3
4
  from django.contrib import admin
4
5
 
5
6
 
@@ -1,5 +1,6 @@
1
1
  """API for modules
2
2
  """
3
+
3
4
  from core_main_app.commons.exceptions import XSDError
4
5
  from core_main_app.components.template import api as template_api
5
6
  from core_main_app.components.template.models import Template
@@ -1,5 +1,6 @@
1
1
  """Module models
2
2
  """
3
+
3
4
  from django.core.exceptions import ObjectDoesNotExist
4
5
  from django.db import models
5
6
 
@@ -1,5 +1,6 @@
1
1
  """Load modules command
2
2
  """
3
+
3
4
  from django.core.management.base import BaseCommand
4
5
  from django.urls import get_resolver
5
6
 
@@ -3,6 +3,7 @@
3
3
  Settings with the following syntax can be overwritten at the project level:
4
4
  SETTING_NAME = getattr(settings, "SETTING_NAME", "Default Value")
5
5
  """
6
+
6
7
  from os.path import join, dirname, realpath
7
8
 
8
9
  from django.conf import settings
@@ -2,14 +2,10 @@
2
2
  """
3
3
 
4
4
 
5
- # TODO: look into using delete cascade
6
- # FIXME: not removing all data structure elements
7
5
  def delete_branch_from_db(element_id):
8
6
  """Delete a branch from the database
9
-
10
7
  Args:
11
8
  element_id:
12
-
13
9
  Returns:
14
10
  """
15
11
  from core_parser_app.components.data_structure.models import (
@@ -17,8 +13,19 @@ def delete_branch_from_db(element_id):
17
13
  )
18
14
 
19
15
  element = DataStructureElement.get_by_id(element_id)
20
-
21
16
  for child in element.children.all():
22
17
  delete_branch_from_db(str(child.pk))
23
-
24
18
  element.delete()
19
+
20
+
21
+ def get_data_structure_by_id(data_structure_id):
22
+ """get_data_structure_by_id
23
+ Args:
24
+ data_structure_id:
25
+ Returns:
26
+ """
27
+ from core_parser_app.components.data_structure.models import (
28
+ DataStructure,
29
+ )
30
+
31
+ return DataStructure.get_by_id(data_structure_id)
@@ -0,0 +1,27 @@
1
+ """ Parser tasks
2
+ """
3
+
4
+ from celery import shared_task
5
+
6
+
7
+ @shared_task
8
+ def delete_branch_task(data_structure_element_root_id):
9
+ """
10
+ Args:
11
+ data_structure_element_root_id: Data Structure Element Root id.
12
+ """
13
+ from core_parser_app.system import api as system_api
14
+
15
+ system_api.delete_branch_from_db(data_structure_element_root_id)
16
+
17
+
18
+ @shared_task
19
+ def delete_data_structure_task(data_structure_id):
20
+ """
21
+ Args:
22
+ data_structure_id: Data Structure id
23
+ """
24
+ from core_parser_app.system import api as system_api
25
+
26
+ data_structure = system_api.get_data_structure_by_id(data_structure_id)
27
+ data_structure.delete()
@@ -1,5 +1,6 @@
1
1
  """Auto discovery of modules
2
2
  """
3
+
3
4
  import logging
4
5
 
5
6
  from django.db import IntegrityError
@@ -1,5 +1,6 @@
1
1
  """Sanitize util
2
2
  """
3
+
3
4
  import json
4
5
  import logging
5
6
  from builtins import str
@@ -1,5 +1,6 @@
1
1
  """Auto Complete Module
2
2
  """
3
+
3
4
  from abc import ABCMeta
4
5
 
5
6
  from core_parser_app.tools.modules.views.module import AbstractModule
@@ -1,5 +1,6 @@
1
1
  """ Checkboxes Module
2
2
  """
3
+
3
4
  from abc import ABCMeta
4
5
 
5
6
  from core_parser_app.tools.modules.exceptions import ModuleError
@@ -1,5 +1,6 @@
1
1
  """ Input Button Module
2
2
  """
3
+
3
4
  from abc import ABCMeta
4
5
 
5
6
  from core_parser_app.tools.modules.views.module import AbstractModule
@@ -1,5 +1,6 @@
1
1
  """ Input Module
2
2
  """
3
+
3
4
  from abc import ABCMeta
4
5
 
5
6
  from core_parser_app.tools.modules.views.module import AbstractModule
@@ -1,5 +1,6 @@
1
1
  """ Options Module
2
2
  """
3
+
3
4
  from abc import ABCMeta
4
5
 
5
6
  from core_parser_app.tools.modules.views.module import AbstractModule
@@ -1,5 +1,6 @@
1
1
  """ Pop up module
2
2
  """
3
+
3
4
  from abc import ABCMeta, abstractmethod
4
5
 
5
6
  from core_parser_app.tools.modules.views.module import AbstractModule
@@ -1,5 +1,6 @@
1
1
  """ Synchronous Input Module
2
2
  """
3
+
3
4
  from abc import ABCMeta
4
5
 
5
6
  from core_parser_app.tools.modules.exceptions import ModuleError
@@ -1,5 +1,6 @@
1
1
  """ Text area Module
2
2
  """
3
+
3
4
  from abc import ABCMeta
4
5
 
5
6
  from core_parser_app.tools.modules.views.module import AbstractModule
@@ -1,5 +1,6 @@
1
1
  """Abstract Class Module
2
2
  """
3
+
3
4
  import importlib
4
5
  import json
5
6
  from abc import ABCMeta, abstractmethod
@@ -1,5 +1,6 @@
1
1
  """Views for the module system
2
2
  """
3
+
3
4
  import json
4
5
 
5
6
  from django.contrib.staticfiles import finders
@@ -1,5 +1,6 @@
1
1
  """Parser class
2
2
  """
3
+
3
4
  import logging
4
5
  import numbers
5
6
  import re
@@ -1883,7 +1884,7 @@ class XSDParser:
1883
1884
  )
1884
1885
  )
1885
1886
 
1886
- for (counter, choiceChild) in enumerate(list(element)):
1887
+ for counter, choiceChild in enumerate(list(element)):
1887
1888
  # For unbounded choice, explicitly don't generate the choices not selected
1888
1889
  if choiceChild.tag == "{0}element".format(
1889
1890
  LXML_SCHEMA_NAMESPACE
@@ -1892,9 +1893,9 @@ class XSDParser:
1892
1893
  xml_tree_str = XSDTree.tostring(xml_tree)
1893
1894
  namespaces = get_namespaces(xml_tree_str)
1894
1895
  # add the XSI prefix used by extensions
1895
- namespaces[
1896
- "xsi"
1897
- ] = "http://www.w3.org/2001/XMLSchema-instance"
1896
+ namespaces["xsi"] = (
1897
+ "http://www.w3.org/2001/XMLSchema-instance"
1898
+ )
1898
1899
  (
1899
1900
  target_namespace,
1900
1901
  target_namespace_prefix,
@@ -2137,9 +2138,9 @@ class XSDParser:
2137
2138
  "value": None,
2138
2139
  "children": [],
2139
2140
  "options": {
2140
- "name": element.attrib["name"]
2141
- if "name" in element.attrib
2142
- else "",
2141
+ "name": (
2142
+ element.attrib["name"] if "name" in element.attrib else ""
2143
+ ),
2143
2144
  "xmlns": get_element_namespace(element, xml_tree),
2144
2145
  },
2145
2146
  }
@@ -2289,9 +2290,9 @@ class XSDParser:
2289
2290
  "value": None,
2290
2291
  "children": [],
2291
2292
  "options": {
2292
- "name": element.attrib["name"]
2293
- if "name" in element.attrib
2294
- else "",
2293
+ "name": (
2294
+ element.attrib["name"] if "name" in element.attrib else ""
2295
+ ),
2295
2296
  "xmlns": get_element_namespace(element, xml_tree),
2296
2297
  },
2297
2298
  }
@@ -2524,7 +2525,7 @@ class XSDParser:
2524
2525
  }
2525
2526
  self.check_in_memory_elements()
2526
2527
 
2527
- for (counter, choiceChild) in enumerate(list(element)):
2528
+ for counter, choiceChild in enumerate(list(element)):
2528
2529
 
2529
2530
  if is_root:
2530
2531
  if target_namespace_prefix != "":
@@ -2577,8 +2578,6 @@ class XSDParser:
2577
2578
 
2578
2579
  if opt_label and ":" in opt_label:
2579
2580
  opt_label = opt_label.split(":")[1]
2580
- # if ":" in opt_label:
2581
- # opt_label = opt_label.split(":")[1]
2582
2581
 
2583
2582
  # look for active choice when editing
2584
2583
  if self.editing:
@@ -1,5 +1,6 @@
1
1
  """Base Renderer class
2
2
  """
3
+
3
4
  import logging
4
5
  from os.path import join
5
6
 
@@ -226,9 +227,11 @@ class DefaultRenderer:
226
227
  "select_class": select_class,
227
228
  "option_list": option_list,
228
229
  "fixed": is_fixed,
229
- "tooltip": element_options["tooltip"]
230
- if "tooltip" in element_options
231
- else "",
230
+ "tooltip": (
231
+ element_options["tooltip"]
232
+ if "tooltip" in element_options
233
+ else ""
234
+ ),
232
235
  }
233
236
 
234
237
  return self._load_template("select", data)
@@ -1,5 +1,6 @@
1
1
  """Checkbox Renderer class
2
2
  """
3
+
3
4
  import logging
4
5
 
5
6
  from core_parser_app.tools.parser.renderer.list import ListRenderer
@@ -1,5 +1,6 @@
1
1
  """List Renderer class
2
2
  """
3
+
3
4
  import logging
4
5
  from os.path import join
5
6
 
@@ -1,5 +1,6 @@
1
1
  """Table Renderer class
2
2
  """
3
+
3
4
  import logging
4
5
  from os.path import join
5
6
 
@@ -1,5 +1,6 @@
1
1
  """XML Renderer class
2
2
  """
3
+
3
4
  import logging
4
5
  import numbers
5
6
  from os.path import join
@@ -1,5 +1,6 @@
1
1
  """Form rendering utils
2
2
  """
3
+
3
4
  import re
4
5
  import textwrap
5
6
 
@@ -1,5 +1,6 @@
1
1
  """XML utils
2
2
  """
3
+
3
4
  import logging
4
5
  from urllib.parse import urlparse
5
6
 
@@ -1,5 +1,6 @@
1
1
  """ Url router for the parser application
2
2
  """
3
+
3
4
  from django.conf.urls import include
4
5
  from django.urls import re_path
5
6
 
@@ -1,5 +1,6 @@
1
1
  """Core parser app admin views
2
2
  """
3
+
3
4
  from django.views.generic import View
4
5
 
5
6
  from core_main_app.utils.rendering import admin_render
@@ -1,5 +1,6 @@
1
1
  """AJAX views
2
2
  """
3
+
3
4
  import json
4
5
 
5
6
  from django.contrib.auth.decorators import login_required
@@ -1,5 +1,6 @@
1
1
  """ Common views
2
2
  """
3
+
3
4
  from django.contrib.auth.decorators import login_required
4
5
  from django.urls import reverse, NoReverseMatch
5
6
  from django.utils.decorators import method_decorator
@@ -1,5 +1,6 @@
1
1
  """AJAX views
2
2
  """
3
+
3
4
  import json
4
5
 
5
6
  from django.contrib.auth.decorators import login_required
@@ -0,0 +1,59 @@
1
+ Metadata-Version: 2.1
2
+ Name: core_parser_app
3
+ Version: 2.12.0
4
+ Summary: XSD parser tools for the curator core project
5
+ Home-page: https://github.com/usnistgov/core_parser_app
6
+ Author: NIST IT Lab
7
+ Author-email: itl_inquiries@nist.gov
8
+ License-File: LICENSE.md
9
+ Requires-Dist: celery
10
+ Requires-Dist: Django
11
+ Requires-Dist: djangorestframework
12
+ Requires-Dist: lxml==5.2.*
13
+ Requires-Dist: core-main-app==2.12.*
14
+
15
+ ===============
16
+ Core Parser App
17
+ ===============
18
+
19
+ XSD parser, renderers and modules for the curator core project.
20
+
21
+ Quick start
22
+ ===========
23
+
24
+ 1. Add "core_parser_app" to your INSTALLED_APPS setting
25
+ -------------------------------------------------------
26
+
27
+ .. code:: python
28
+
29
+ INSTALLED_APPS = [
30
+ ...
31
+ "core_parser_app",
32
+ "core_parser_app.tools.modules",
33
+ "core_parser_app.tools.parser",
34
+ ]
35
+
36
+ 2. Include the core_parser_app URLconf in your project urls.py
37
+ --------------------------------------------------------------
38
+
39
+ .. code:: python
40
+
41
+ url(r'^parser/', include("core_parser_app.urls")),
42
+
43
+
44
+ Migration to the Bootstrap modal
45
+ ================================
46
+ Breaking changes during the migration from the jQuery UI modal to the Bootstrap modal for the module :
47
+
48
+ - The JavaScript global variables **openModule**, **openPopUp** and **initialState** from the popup.js file have been deleted.
49
+ - The JavaScript variable **openModule** has been renamed to **moduleElement**.
50
+ - The modal management has been changed. JQuery UI reused the same DOM element for all modal loaded in the page. Bootstrap use a unique DOM element for each modal. Consequently the main modal container will have the following unique ID : **modal-{{module_id}}**.
51
+ - The save callback uses the new variable **openModule** to get the unique DOM container and get the value to save.
52
+ - The Django form id must be changed be because it is not unique and can create conflict if the page includes a module more than one time (example with the BLOBHostForm):
53
+
54
+ .. code:: python
55
+
56
+ form = BLOBHostForm()
57
+ form.fields["file"].widget.attrs.update(
58
+ {"id": "file-input-%s" % str(module_id)}
59
+ )
@@ -160,6 +160,8 @@ tests/components/module/__init__.py
160
160
  tests/components/module/tests_unit.py
161
161
  tests/discover/__init__.py
162
162
  tests/discover/tests_unit.py
163
+ tests/tasks/__init__.py
164
+ tests/tasks/tests_unit.py
163
165
  tests/tools/__init__.py
164
166
  tests/tools/modules/__init__.py
165
167
  tests/tools/modules/tests/__init__.py
@@ -169,6 +171,7 @@ tests/tools/modules/tests/tests_unit_sanitize.py
169
171
  tests/tools/parser/__init__.py
170
172
  tests/tools/parser/parser/__init__.py
171
173
  tests/tools/parser/parser/test_choice.py
174
+ tests/tools/parser/parser/test_choice_extensions.py
172
175
  tests/tools/parser/parser/test_complex_content.py
173
176
  tests/tools/parser/parser/test_complex_type.py
174
177
  tests/tools/parser/parser/test_element.py
@@ -1,5 +1,5 @@
1
1
  celery
2
2
  Django
3
3
  djangorestframework
4
- lxml==4.9.*
5
- core-main-app==2.10.*
4
+ lxml==5.2.*
5
+ core-main-app==2.12.*
@@ -0,0 +1 @@
1
+ core-main-app==2.12.*
@@ -1,4 +1,4 @@
1
1
  celery
2
2
  Django
3
3
  djangorestframework
4
- lxml==4.9.*
4
+ lxml==5.2.*
@@ -1,5 +1,6 @@
1
1
  """ Setup for core parser app
2
2
  """
3
+
3
4
  from os import chdir, pardir
4
5
  from os.path import join, exists, dirname, normpath, abspath
5
6
  from re import sub
@@ -41,7 +42,7 @@ required = [req_link(r) if r.startswith("https://") else r for r in required]
41
42
 
42
43
  setup(
43
44
  name="core_parser_app",
44
- version="2.10.0",
45
+ version="2.12.0",
45
46
  description="XSD parser tools for the curator core project",
46
47
  long_description=long_desc,
47
48
  author="NIST IT Lab",
@@ -1,5 +1,6 @@
1
1
  """Module command unit testing
2
2
  """
3
+
3
4
  from io import StringIO
4
5
  from unittest.case import TestCase
5
6