somef_core 0.0.1__tar.gz → 0.0.2__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 (431) hide show
  1. {somef_core-0.0.1 → somef_core-0.0.2}/PKG-INFO +22 -4
  2. {somef_core-0.0.1 → somef_core-0.0.2}/README.md +18 -1
  3. {somef_core-0.0.1 → somef_core-0.0.2}/pyproject.toml +4 -3
  4. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/__init__.py +1 -1
  5. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/__main__.py +5 -0
  6. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/header_analysis.py +32 -11
  7. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/codemeta_parser.py +16 -10
  8. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/codeowners_parser.py +18 -6
  9. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/description_parser.py +3 -1
  10. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/gemspec_parser.py +3 -1
  11. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/python_parser.py +3 -1
  12. somef_core-0.0.2/src/somef_core/parser/zenodo_parser.py +162 -0
  13. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/process_files.py +14 -4
  14. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/process_repository.py +111 -24
  15. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/regular_expressions.py +24 -19
  16. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/somef_cli.py +58 -14
  17. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_JSON_export.py +30 -4
  18. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_cli.py +104 -36
  19. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_codemeta_export.py +1 -1
  20. somef_core-0.0.2/src/somef_core/test/test_data/api_responses/zenodo/zenodo_somef_22943101.json +168 -0
  21. somef_core-0.0.2/src/somef_core/test/test_data/repositories/cloud-genomics/.zenodo.json +69 -0
  22. somef_core-0.0.2/src/somef_core/test/test_data/repositories/epic/.zenodo.json +41 -0
  23. somef_core-0.0.2/src/somef_core/test/test_data/repositories/fake_zenodo/.zenodo.json +35 -0
  24. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_description_parser.py +24 -1
  25. somef_core-0.0.2/src/somef_core/test/test_doi_zenodo.py +108 -0
  26. somef_core-0.0.2/src/somef_core/test/test_enrichment.py +292 -0
  27. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_header_analysis.py +52 -2
  28. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_process_repository.py +107 -70
  29. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_python_parser.py +25 -0
  30. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_regular_expressions.py +13 -0
  31. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_wiki.py +19 -11
  32. somef_core-0.0.2/src/somef_core/test/test_zenodo_parser.py +135 -0
  33. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/utils/constants.py +74 -7
  34. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/utils/enrichment.py +150 -40
  35. somef_core-0.0.2/src/somef_core/zenodo_deposit.py +200 -0
  36. somef_core-0.0.1/src/somef_core/test/test_enrichment.py +0 -169
  37. {somef_core-0.0.1 → somef_core-0.0.2}/LICENSE +0 -0
  38. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/configuration.py +0 -0
  39. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/export/__init__.py +0 -0
  40. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/export/google_codemeta_export.py +0 -0
  41. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/export/json_export.py +0 -0
  42. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/extract_software_type.py +0 -0
  43. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/extract_workflows.py +0 -0
  44. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/__init__.py +0 -0
  45. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/authors_parser.py +0 -0
  46. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/bower_parser.py +0 -0
  47. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/cabal_parser.py +0 -0
  48. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/composer_parser.py +0 -0
  49. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/conda_environment_parser.py +0 -0
  50. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/create_excerpts.py +0 -0
  51. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/dockerfile_parser.py +0 -0
  52. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/mardown_parser.py +0 -0
  53. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/package_json_parser.py +0 -0
  54. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/pom_xml_parser.py +0 -0
  55. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/publiccode_parser.py +0 -0
  56. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/setupcfg_parser.py +0 -0
  57. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/parser/toml_parser.py +0 -0
  58. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/process_results.py +0 -0
  59. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/__init__.py +0 -0
  60. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/conftest.py +0 -0
  61. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_bitbucket.py +0 -0
  62. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_bower_parser.py +0 -0
  63. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_cabal_parser.py +0 -0
  64. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_codeberg.py +0 -0
  65. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_codemeta_gitlab_export.py +0 -0
  66. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_codemeta_parser.py +0 -0
  67. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_composer_parser.py +0 -0
  68. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_conda_environment_parser.py +0 -0
  69. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_configuration.py +0 -0
  70. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-EUVpy.md +0 -0
  71. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-FTR.md +0 -0
  72. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-GENI.md +0 -0
  73. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-MEL-TNNT.md +0 -0
  74. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-OBA-SPARQL.md +0 -0
  75. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-OWL-To-OAS.md +0 -0
  76. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-PPool.md +0 -0
  77. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-TINTO.md +0 -0
  78. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-agora.md +0 -0
  79. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-almost-empty.md +0 -0
  80. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-base-images.md +0 -0
  81. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-ci-sample-project.md +0 -0
  82. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-citation-file-format.md +0 -0
  83. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-componentinstaller.md +0 -0
  84. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-csl-editor.md +0 -0
  85. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-devilog.md +0 -0
  86. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-easytv-annotator.md +0 -0
  87. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-epw2rdf-contents.md +0 -0
  88. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-epw2rdf.md +0 -0
  89. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-fair-ontologies.md +0 -0
  90. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-fastify.md +0 -0
  91. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-gammalearn.md +0 -0
  92. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-gammapy.rst +0 -0
  93. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-kgtk-notebooks.md +0 -0
  94. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-laueNN.md +0 -0
  95. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-licensius.md +0 -0
  96. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-lighttwin.md +0 -0
  97. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-loupe-api.md +0 -0
  98. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-manim.md +0 -0
  99. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-mapeathor.md +0 -0
  100. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-mapshaper.md +0 -0
  101. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-menty.md +0 -0
  102. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-os-platforms.md +0 -0
  103. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-panda.md +0 -0
  104. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-pylops.md +0 -0
  105. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-pytorch.md +0 -0
  106. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-raidologist.md +0 -0
  107. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-reggae.md +0 -0
  108. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-stract.md +0 -0
  109. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-sunpy.rst +0 -0
  110. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-tada-gam.md +0 -0
  111. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-tensorflow-2.6.0.md +0 -0
  112. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-tokei.md +0 -0
  113. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-tpronk.md +0 -0
  114. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-unboundedsystems.md +0 -0
  115. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-uncbiag.md +0 -0
  116. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-urllib3.md +0 -0
  117. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-widoco-duplicate-dois.md +0 -0
  118. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-widoco-swh.md +0 -0
  119. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-widoco.md +0 -0
  120. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-wothive.md +0 -0
  121. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/README-ya2o.md +0 -0
  122. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/SimulatedReads2Map.wdl +0 -0
  123. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/bitbucket/bitbucket_response.json +0 -0
  124. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/bitbucket/bitbucket_tags.json +0 -0
  125. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/codeberg/codeberg_forgejo.json +0 -0
  126. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/codeberg/codeberg_forgejo_languages.json +0 -0
  127. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/codeberg/codeberg_forgejo_releases.json +0 -0
  128. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/somef-demo.json +0 -0
  129. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/api_responses/widoco_api_response.json +0 -0
  130. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/authors_files/docker_AUTHORS.txt +0 -0
  131. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/authors_files/ireeOrg_AUTHORS.txt +0 -0
  132. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/authors_files/jetBrain_AUTHORS.txt +0 -0
  133. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/authors_files/pluginsGLPI_AUTHORS.txt +0 -0
  134. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/authors_files/tensorFlow_AUTHORS.txt +0 -0
  135. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/expected/Widoco.yaml +0 -0
  136. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/expected/aladin-lite.yaml +0 -0
  137. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/expected/gammapy.yaml +0 -0
  138. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/expected/r3broot2.yaml +0 -0
  139. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/expected/runtime_platform_repo.yaml +0 -0
  140. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/export_test.json +0 -0
  141. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/extract_bash_code.txt +0 -0
  142. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/input-test.txt +0 -0
  143. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/package_neors.json +0 -0
  144. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/package_npm.json +0 -0
  145. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/pyansys-README.rst +0 -0
  146. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/rasterio-README.md +0 -0
  147. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/A-Dynamic-E-Commerce-Website-master/README.md +0 -0
  148. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/A-Dynamic-E-Commerce-Website-master/admin.php +0 -0
  149. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/A-Dynamic-E-Commerce-Website-master/admin_orders.php +0 -0
  150. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/A-Dynamic-E-Commerce-Website-master/delete_from_cart.php +0 -0
  151. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/A-Dynamic-E-Commerce-Website-master/mangola.sql +0 -0
  152. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Clamp/README.md +0 -0
  153. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Fairwinds/Dockerfile +0 -0
  154. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Fermi/README.md +0 -0
  155. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Flux.jl/Project.toml +0 -0
  156. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/README +0 -0
  157. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/README.md +0 -0
  158. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/cwl/converter.cwl +0 -0
  159. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/cwl/smcFusion-jaffa-workflow.cwl +0 -0
  160. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/cwl/tar.cwl +0 -0
  161. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/JAFFA-master/cwl/twoBitToFa.cwl +0 -0
  162. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/OWL-To-OAS-Specification-master/README.md +0 -0
  163. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/OWL-To-OAS-Specification-master/mkdocs.yml +0 -0
  164. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/OWL-To-OAS-Specification-master/requirements.txt +0 -0
  165. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Pluto.jl/Project.toml +0 -0
  166. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Prometeus/Dockerfile +0 -0
  167. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/RDFChess/.gitignore +0 -0
  168. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/RDFChess/README.md +0 -0
  169. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/RDFChess/pom.xml +0 -0
  170. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/RDFChess/rdfchess.config +0 -0
  171. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/RDFChess/run.bat +0 -0
  172. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/CITATION.cff +0 -0
  173. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/CONTRIBUTING.md +0 -0
  174. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/Dockerfile +0 -0
  175. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/LICENSE +0 -0
  176. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/README.md +0 -0
  177. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/codemeta.json +0 -0
  178. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/docs/pom.sml +0 -0
  179. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/docs/pom.xml +0 -0
  180. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/CITATION.cff +0 -0
  181. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/README.md +0 -0
  182. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/license.md +0 -0
  183. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/ontology.nt +0 -0
  184. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/ontology.ttl +0 -0
  185. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/example_onto/test.ttl +0 -0
  186. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/pom.xml +0 -0
  187. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/target/maven-archiver/pom.properties +0 -0
  188. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/test/CITATION.cff +0 -0
  189. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/test/test/CITATION.cff +0 -0
  190. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/Widoco/test/test/test/CITATION.cff +0 -0
  191. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ack/ACKNOWLEDGMENT.md +0 -0
  192. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ack/README.md +0 -0
  193. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/aladin-lite/codemeta.json +0 -0
  194. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/auroral-ontology-core/ontology.rdf +0 -0
  195. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/auroral-ontology-core/ontology.xml +0 -0
  196. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/auroral-ontology-core/readme.md +0 -0
  197. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/basis_functions_approach_to_GP-master/BF_1D_notebook.Rmd +0 -0
  198. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/basis_functions_approach_to_GP-master/Diagnosis_HSGP_v2.Rmd +0 -0
  199. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/basis_functions_approach_to_GP-master/Rnb_case3D_diagnosis.Rmd +0 -0
  200. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/bimerr-epw/LICENSE +0 -0
  201. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/bimerr-epw/README.md +0 -0
  202. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/bootstrap-datepicker-rails/bootstrap-datepicker-rails-2.gemspec +0 -0
  203. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/bootstrap-datepicker-rails/bootstrap-datepicker-rails.gemspec +0 -0
  204. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/.gitattributes +0 -0
  205. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/.gitignore +0 -0
  206. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/AWESOME_LIST.md +0 -0
  207. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/CITATION +0 -0
  208. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/CODE_OF_CONDUCT.md +0 -0
  209. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/CONTRIBUTING.md +0 -0
  210. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/LICENSE +0 -0
  211. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/README.md +0 -0
  212. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/environment.yml +0 -0
  213. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/pyproject.toml +0 -0
  214. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/setup.cfg +0 -0
  215. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/captum/setup.py +0 -0
  216. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/chosen/bower.json +0 -0
  217. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/codecov/composer.json +0 -0
  218. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/codemeta_repo/codemeta.json +0 -0
  219. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/componentInstaller/CITATION.cff +0 -0
  220. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/componentInstaller/LICENSE +0 -0
  221. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/componentInstaller/README.md +0 -0
  222. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/composer/composer.json +0 -0
  223. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/corpuser/README.md +0 -0
  224. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/cropwater/DESCRIPTION +0 -0
  225. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/cropwater/LICENSE.md +0 -0
  226. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/cropwater/README.md +0 -0
  227. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/cropwater/codemeta.json +0 -0
  228. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fair-ontologies/README.md +0 -0
  229. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fair-ontologies/citation.cff +0 -0
  230. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fair-ontologies/codemeta.json +0 -0
  231. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fair-ontologies/pom.xml +0 -0
  232. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fuji/AUTHORS +0 -0
  233. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fuji/CITATION.cff +0 -0
  234. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fuji/README.md +0 -0
  235. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/fuji/pyproject.toml +0 -0
  236. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/gammalearn/pyproject.toml +0 -0
  237. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/gammapy/codemeta.json +0 -0
  238. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ggplot2/DESCRIPTION +0 -0
  239. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ggstatsplot/DESCRIPTION +0 -0
  240. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ggstatsplot/codemeta.json +0 -0
  241. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/haskell/cabal.cabal +0 -0
  242. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/CITATION.cff +0 -0
  243. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/README.md +0 -0
  244. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/docs/requirements.txt +0 -0
  245. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/pyproject.toml +0 -0
  246. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/requirements.txt +0 -0
  247. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/inspect4py/setup.py +0 -0
  248. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ipynb-master/__init__.py +0 -0
  249. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ipynb-master/bogus_ipynb.ipynb +0 -0
  250. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/ipynb-master/r_notebook.ipynb +0 -0
  251. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/js-template/bower.json +0 -0
  252. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/js-template/package.json +0 -0
  253. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/LICENSE +0 -0
  254. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/README.md +0 -0
  255. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/tutorial/01-kgtk-introduction.ipynb +0 -0
  256. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/tutorial/02-kg-profiling.ipynb +0 -0
  257. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/tutorial/03-kg-graph-embeddings.ipynb +0 -0
  258. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/tutorial/04-kg-enrichment-with-csv.ipynb +0 -0
  259. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/tutorial/05-kg-enrichment-with-lod.ipynb +0 -0
  260. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/tutorial/06-kg-network-analysis.ipynb +0 -0
  261. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/tutorial/07-kg-constraint-validation.ipynb +0 -0
  262. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/tutorial/kgtk-browser.ipynb +0 -0
  263. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/use-cases/Visualize-force-graph-example.ipynb +0 -0
  264. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/use-cases/browser-profiling.ipynb +0 -0
  265. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/use-cases/class-visualization.ipynb +0 -0
  266. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/use-cases/ontology-examples.ipynb +0 -0
  267. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/kgtk-notebooks/use-cases/properties-for-this-type.ipynb +0 -0
  268. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/maven/pom.xml +0 -0
  269. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/maykinMedia/publiccode.yaml +0 -0
  270. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/mir_eval/LICENSE.txt +0 -0
  271. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/mir_eval/README.rst +0 -0
  272. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/mir_eval/setup.py +0 -0
  273. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/mira/LICENSE +0 -0
  274. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/mira/README.md +0 -0
  275. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/nemo/CITATION.cff +0 -0
  276. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/nemo/README.md +0 -0
  277. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/pcake/README.md +0 -0
  278. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/pcake/setup.py +0 -0
  279. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/.editorconfig +0 -0
  280. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/.gitignore +0 -0
  281. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/CODE_OF_CONDUCT.md +0 -0
  282. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/CONTRIBUTING.md +0 -0
  283. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/LICENSE +0 -0
  284. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/README.md +0 -0
  285. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/README.pt-br.md +0 -0
  286. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/probot-12.1.1/codecov.yml +0 -0
  287. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/publicCode-Example/publiccode.yml +0 -0
  288. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/r3broot2/codemeta.json +0 -0
  289. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/CHANGELOG.md +0 -0
  290. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/CONTRIBUTORS +0 -0
  291. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/LICENSE +0 -0
  292. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/MANIFEST.in +0 -0
  293. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/Makefile +0 -0
  294. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/README.md +0 -0
  295. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/black.toml +0 -0
  296. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/docker-compose.tests.yml +0 -0
  297. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/pull_request_template.md +0 -0
  298. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/requirements.dev.txt +0 -0
  299. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/requirements.txt +0 -0
  300. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/run_tests.py +0 -0
  301. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/run_tests.sh +0 -0
  302. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/run_tests_with_coverage_report.sh +0 -0
  303. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/setup.cfg +0 -0
  304. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/setup.py +0 -0
  305. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/skiptests.list +0 -0
  306. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rdflib-6.0.2/tox.ini +0 -0
  307. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/repos_oeg/bimerr-core/README.md +0 -0
  308. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/resolver_deco/LICENSE.txt +0 -0
  309. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/resolver_deco/README.txt +0 -0
  310. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/resolver_deco/resolver_deco.py +0 -0
  311. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/resolver_deco/setup.py +0 -0
  312. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/runtime_platform_repo/codemeta.json +0 -0
  313. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/rustdesk/Cargo.toml +0 -0
  314. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/soca/README.md +0 -0
  315. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/soca/codemeta.json +0 -0
  316. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/soca/pyproject.toml +0 -0
  317. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/soca/setup.cfg +0 -0
  318. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/software_catalog/LICENSE +0 -0
  319. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/software_catalog/README.md +0 -0
  320. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/software_catalog/repo_icons/acknowledgement.png +0 -0
  321. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/software_catalog/repo_icons/citation.png +0 -0
  322. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/somef_repo/CITATION.cff +0 -0
  323. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/somef_repo/README.md +0 -0
  324. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/somef_repo/lib/python/pip-24.2.dist-info/AUTHORS.txt +0 -0
  325. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/somef_repo/pyproject.toml +0 -0
  326. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sprint-main/netex_accounting_version.xsd.rdf +0 -0
  327. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sprint-main/setup.sh +0 -0
  328. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/stable-diffusion/README.md +0 -0
  329. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/stable-diffusion/environment.yaml +0 -0
  330. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sunpy/CITATION.cff +0 -0
  331. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sunpy/pyproject.toml +0 -0
  332. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sunpy_short_desc/README.rst +0 -0
  333. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/sunpy_short_desc/pyproject.toml +0 -0
  334. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/tensorflow/CODEOWNERS +0 -0
  335. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/tensorflow/README.md +0 -0
  336. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/termlex-main/README.md +0 -0
  337. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/termlex-main/ontology/termlex.ttl +0 -0
  338. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/termlex-main/termlex_core.png +0 -0
  339. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/tidyverse/DESCRIPTION +0 -0
  340. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/unused/unused.cabal +0 -0
  341. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/CMakeLists.txt +0 -0
  342. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/CODE_OF_CONDUCT.md +0 -0
  343. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/CONTRIBUTING.md +0 -0
  344. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/Decode.cpp +0 -0
  345. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/LICENSE +0 -0
  346. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/README.md +0 -0
  347. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/Test.cpp +0 -0
  348. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/Train.cpp +0 -0
  349. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/docs/DecoderSketch.png +0 -0
  350. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/docs/arch.md +0 -0
  351. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/docs/decoder.md +0 -0
  352. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/docs/installation.md +0 -0
  353. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/docs/train.md +0 -0
  354. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/OptimizeSortParams.cpp +0 -0
  355. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/Seq2SeqAnalysis.cpp +0 -0
  356. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/arrayfire_parser.py +0 -0
  357. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/fair_cluster/w2l_fair_cluster_build.sh +0 -0
  358. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/fair_cluster/w2l_fair_cluster_decode.sh +0 -0
  359. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/fair_cluster/w2l_fair_cluster_distributed_training_benchmarks.sh +0 -0
  360. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/fair_cluster/w2l_fair_cluster_train.sh +0 -0
  361. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/imgcat +0 -0
  362. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/launch_distributed_chronos.sh +0 -0
  363. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/tensorboard.py +0 -0
  364. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/wavdiff +0 -0
  365. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/wavextract +0 -0
  366. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/wavplot +0 -0
  367. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wav2letter/scripts/wavstatus +0 -0
  368. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/fonts.css +0 -0
  369. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/header.js +0 -0
  370. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/image.js +0 -0
  371. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/index.html +0 -0
  372. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/index.js +0 -0
  373. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/layout.js +0 -0
  374. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/privacy.js +0 -0
  375. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/website-static-master/terms.js +0 -0
  376. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/workloopr/LICENSE +0 -0
  377. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/workloopr/README.md +0 -0
  378. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/workloopr/codemeta.json +0 -0
  379. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wot-hive/README.md +0 -0
  380. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wot-hive/docker/auroral-hive/Dockerfile +0 -0
  381. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wot-hive/docker/docker-compose.yml +0 -0
  382. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repositories/wot-hive/docker/fuseki/Dockerfile +0 -0
  383. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repostatus-README-2.md +0 -0
  384. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/repostatus-README.md +0 -0
  385. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_465.md +0 -0
  386. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_arxiv_links.txt +0 -0
  387. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_bibtex.txt +0 -0
  388. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_binder_links.txt +0 -0
  389. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_dois.txt +0 -0
  390. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_gitter_chat.txt +0 -0
  391. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_header_content_hash.txt +0 -0
  392. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_header_content_hash_complex.txt +0 -0
  393. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_header_content_underline.txt +0 -0
  394. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_readthedocs_1.txt +0 -0
  395. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_readthedocs_2.txt +0 -0
  396. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_readthedocs_3.txt +0 -0
  397. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_title_hash.txt +0 -0
  398. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_title_underline.txt +0 -0
  399. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_extract_title_with_md.txt +0 -0
  400. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_images.txt +0 -0
  401. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_issue_181.txt +0 -0
  402. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_issue_181_2.txt +0 -0
  403. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_issue_181_3.txt +0 -0
  404. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_issue_270.txt +0 -0
  405. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_issue_images.txt +0 -0
  406. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_logo.txt +0 -0
  407. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_logo2.txt +0 -0
  408. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_logo_tensorflow.txt +0 -0
  409. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_logo_uscisii2.txt +0 -0
  410. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_pypi.md +0 -0
  411. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_repo_status.txt +0 -0
  412. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/test_wiki.md +0 -0
  413. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_data/widoco_readme.md +0 -0
  414. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_dockerfile_parser.py +0 -0
  415. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_extract_authors.py +0 -0
  416. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_extract_workflows.py +0 -0
  417. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_gemspec_parser.py +0 -0
  418. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_gitlab_selfhosted.py +0 -0
  419. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_gitlab_token_handling.py +0 -0
  420. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_google_compliant_export.py +0 -0
  421. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_package_json_parser.py +0 -0
  422. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_parser_somef.py +0 -0
  423. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_pom_parser.py +0 -0
  424. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_process_results.py +0 -0
  425. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_publiccode_parser.py +0 -0
  426. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_setupcfg_parser.py +0 -0
  427. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_software_type.py +0 -0
  428. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_toml_parser.py +0 -0
  429. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/test/test_verify_token.py +0 -0
  430. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/utils/__init__.py +0 -0
  431. {somef_core-0.0.1 → somef_core-0.0.2}/src/somef_core/utils/markdown_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: somef_core
3
- Version: 0.0.1
3
+ Version: 0.0.2
4
4
  Summary: SOMEF-Core: lightweight metadata extraction engine for software repositories, usable as a CLI tool or as a library, without the ML-based classifiers and ontology detection of the full SOMEF tool.
5
5
  License-File: LICENSE
6
6
  Author: Daniel Garijo
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
- Requires-Dist: bibtexparser (>=1.4.1,<2.0.0)
15
+ Requires-Dist: bibtexparser (>=2.1.0,<3.0.0)
16
16
  Requires-Dist: bs4 (>=0.0.1,<0.0.3)
17
17
  Requires-Dist: chardet (>=5.2,<8.0)
18
18
  Requires-Dist: click (>=8.1.7,<9.0.0)
@@ -29,16 +29,21 @@ Requires-Dist: numpy (>=1.26.3,<3.0.0)
29
29
  Requires-Dist: pandas (>=2.1.4,<3.0.0)
30
30
  Requires-Dist: pytest (>=8,<10)
31
31
  Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
32
+ Requires-Dist: rapidfuzz (>=3.14.6,<4.0.0)
32
33
  Requires-Dist: requests (>=2.34.2,<3.0.0)
33
34
  Requires-Dist: scipy (>=1.11.4,<2.0.0)
34
35
  Requires-Dist: textblob (>=0.17.1,<0.21.0)
35
- Requires-Dist: validators (>=0.35.0,<0.36.0)
36
+ Requires-Dist: validators (>=0.35,<0.37)
36
37
  Project-URL: homepage, https://github.com/SciCodes/somef-core
37
38
  Description-Content-Type: text/markdown
38
39
 
39
40
  # SOMEF - Core package functionality
40
41
 
41
- SOMEF-Core is the lightweight metadata extraction engine behind SOMEF. It works both as a command line tool and as a reusable library, without the machine learning components (supervised classifiers, ontology detection) that are part of the full SOMEF tool. See the SOMEF repository for the full documentation and ML capabilities.
42
+ [![PyPI version](https://img.shields.io/pypi/v/somef-core.svg)](https://pypi.org/project/somef-core/)
43
+
44
+ SOMEF-Core is a lightweight export of [SOMEF](https://github.com/KnowledgeCaptureAndDiscovery/somef) (the parent project), containing its core metadata extraction functionality. It works both as a command line tool and as a reusable library, without the machine learning components (supervised classifiers, ontology detection) that are part of the full SOMEF tool. See the SOMEF repository for the full documentation and ML capabilities.
45
+
46
+ > This release of SOMEF-Core (0.0.2) corresponds to SOMEF [0.11.5](https://github.com/KnowledgeCaptureAndDiscovery/somef/releases/tag/0.11.5).
42
47
 
43
48
  **Demo:** See a [demo running somef as a service](https://somef.linkeddata.es), through the [SOMEF-Vider tool](https://github.com/SoftwareUnderstanding/SOMEF-Vider/).
44
49
 
@@ -96,6 +101,7 @@ When using `-e`, publication metadata is enriched via OpenAlex. We recognize the
96
101
  - **Identifier**: Identifier associated with the software (if any), such as Digital Object Identifiers and Software Heritage identifiers (SWH). DOIs associated with publications will also be detected. When using `-e`, the following enrichment identifiers are also added:
97
102
  - `openaire_id`: URL to the OpenAIRE explore page for the software
98
103
  - `swhid`: Software Heritage identifier (for Zenodo DOIs)
104
+ - `provider`: Name of the identifier provider. For Software Heritage identifiers this is set to Software Heritage. For DOIs registered with DataCite, this is set to the DataCite provider name (e.g., CERN - European Organization for Nuclear Research).
99
105
  - **Images**: Images used to illustrate the software component
100
106
  - **Installation instructions**: A set of instructions that indicate how to install a target repository
101
107
  - **Invocation**: Execution command(s) needed to run a scientific software component
@@ -194,6 +200,18 @@ SOMEF-Core has been tested on Unix, MacOS and Windows Microsoft operating system
194
200
  If you face any issues when installing SOME-Core, please make sure you have installed the following packages: `build-essential`, `libssl-dev`, `libffi-dev` and `python3-dev`.
195
201
 
196
202
 
203
+ ## Install from Pypi
204
+
205
+ SOMEF-Core [is available in Pypi!](https://pypi.org/project/somef-core/) To install it just type:
206
+
207
+ ```
208
+ pip install somef-core
209
+ ```
210
+
211
+ ### NLTK data
212
+
213
+ SOMEF-Core uses [NLTK](https://www.nltk.org/) / WordNet to match README section headers (e.g. "Getting Started", "Citation") against metadata categories. Running `somef_core configure` (see below) takes care of downloading the required NLTK data automatically.
214
+
197
215
  ## Install from GitHub
198
216
 
199
217
  To run SOMEF, please follow the next steps:
@@ -1,6 +1,10 @@
1
1
  # SOMEF - Core package functionality
2
2
 
3
- SOMEF-Core is the lightweight metadata extraction engine behind SOMEF. It works both as a command line tool and as a reusable library, without the machine learning components (supervised classifiers, ontology detection) that are part of the full SOMEF tool. See the SOMEF repository for the full documentation and ML capabilities.
3
+ [![PyPI version](https://img.shields.io/pypi/v/somef-core.svg)](https://pypi.org/project/somef-core/)
4
+
5
+ SOMEF-Core is a lightweight export of [SOMEF](https://github.com/KnowledgeCaptureAndDiscovery/somef) (the parent project), containing its core metadata extraction functionality. It works both as a command line tool and as a reusable library, without the machine learning components (supervised classifiers, ontology detection) that are part of the full SOMEF tool. See the SOMEF repository for the full documentation and ML capabilities.
6
+
7
+ > This release of SOMEF-Core (0.0.2) corresponds to SOMEF [0.11.5](https://github.com/KnowledgeCaptureAndDiscovery/somef/releases/tag/0.11.5).
4
8
 
5
9
  **Demo:** See a [demo running somef as a service](https://somef.linkeddata.es), through the [SOMEF-Vider tool](https://github.com/SoftwareUnderstanding/SOMEF-Vider/).
6
10
 
@@ -58,6 +62,7 @@ When using `-e`, publication metadata is enriched via OpenAlex. We recognize the
58
62
  - **Identifier**: Identifier associated with the software (if any), such as Digital Object Identifiers and Software Heritage identifiers (SWH). DOIs associated with publications will also be detected. When using `-e`, the following enrichment identifiers are also added:
59
63
  - `openaire_id`: URL to the OpenAIRE explore page for the software
60
64
  - `swhid`: Software Heritage identifier (for Zenodo DOIs)
65
+ - `provider`: Name of the identifier provider. For Software Heritage identifiers this is set to Software Heritage. For DOIs registered with DataCite, this is set to the DataCite provider name (e.g., CERN - European Organization for Nuclear Research).
61
66
  - **Images**: Images used to illustrate the software component
62
67
  - **Installation instructions**: A set of instructions that indicate how to install a target repository
63
68
  - **Invocation**: Execution command(s) needed to run a scientific software component
@@ -156,6 +161,18 @@ SOMEF-Core has been tested on Unix, MacOS and Windows Microsoft operating system
156
161
  If you face any issues when installing SOME-Core, please make sure you have installed the following packages: `build-essential`, `libssl-dev`, `libffi-dev` and `python3-dev`.
157
162
 
158
163
 
164
+ ## Install from Pypi
165
+
166
+ SOMEF-Core [is available in Pypi!](https://pypi.org/project/somef-core/) To install it just type:
167
+
168
+ ```
169
+ pip install somef-core
170
+ ```
171
+
172
+ ### NLTK data
173
+
174
+ SOMEF-Core uses [NLTK](https://www.nltk.org/) / WordNet to match README section headers (e.g. "Getting Started", "Citation") against metadata categories. Running `somef_core configure` (see below) takes care of downloading the required NLTK data automatically.
175
+
159
176
  ## Install from GitHub
160
177
 
161
178
  To run SOMEF, please follow the next steps:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "somef_core"
3
- version = "0.0.1"
3
+ version = "0.0.2"
4
4
  description = "SOMEF-Core: lightweight metadata extraction engine for software repositories, usable as a CLI tool or as a library, without the ML-based classifiers and ontology detection of the full SOMEF tool."
5
5
  authors = ["Daniel Garijo <daniel.garijo@upm.es>"]
6
6
  readme = "README.md"
@@ -27,19 +27,20 @@ homepage = "https://github.com/SciCodes/somef-core"
27
27
  numpy = ">=1.26.3,<3.0.0"
28
28
  pandas = "^2.1.4"
29
29
  textblob = ">=0.17.1,<0.21.0"
30
- validators = "^0.35.0"
30
+ validators = ">=0.35,<0.37"
31
31
  scipy = "^1.11.4"
32
32
  inflect = "^7.0.0"
33
33
  contractions = "^0.1.73"
34
34
  chardet = ">=5.2,<8.0"
35
35
  pytest = ">=8,<10"
36
- bibtexparser = "^1.4.1"
36
+ bibtexparser = "^2.1.0"
37
37
  nbformat = "^5.9.2"
38
38
  markdown = "^3.5.2"
39
39
  requests = "^2.34.2"
40
40
  pyyaml = "^6.0.2"
41
41
  lxml = "^6.1.1"
42
42
  markdown-it-py = ">=3,<5"
43
+ rapidfuzz = "^3.14.6"
43
44
 
44
45
  [tool.poetry.scripts]
45
46
  somef_core = "somef_core.__main__:cli"
@@ -1,3 +1,3 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- __version__ = "0.0.1"
3
+ __version__ = "0.0.2"
@@ -111,6 +111,11 @@ def test():
111
111
  type=URLParamType(),
112
112
  help="Github/Gitlab Repository URL",
113
113
  )
114
+ @optgroup.option(
115
+ "--doi",
116
+ help="Zenodo DOI or record URL (e.g. https://doi.org/10.5281/zenodo.22943101, "
117
+ "10.5281/zenodo.22943101or https://zenodo.org/records/22943101)",
118
+ )
114
119
  @optgroup.option(
115
120
  "--doc_src",
116
121
  "-d",
@@ -5,7 +5,8 @@ import string
5
5
  import numpy as np
6
6
  import pandas as pd
7
7
  from textblob import Word
8
-
8
+ from rapidfuzz import process
9
+ from rapidfuzz.distance import Levenshtein
9
10
  from .process_results import Result
10
11
  from .parser import mardown_parser
11
12
  from .utils import constants
@@ -306,17 +307,20 @@ def label_text(text: str, similarity_threshold=constants.CONF_DEFAULT_SIMILARITY
306
307
  for token in tokenize_header(text):
307
308
  synsets = get_synsets(token)
308
309
  if synsets:
309
- grp = match_group(synsets, similarity_threshold )
310
+ # grp = match_group(synsets, similarity_threshold )
310
311
  # Skip if the header matches a known false positive for this group
311
-
312
- # if isinstance(text, list):
313
- # text = " ".join(text)
314
-
315
- if is_false_positive_header(text, grp):
316
- # print(f"Skipping false positive header '{text}' for category '{grp}'")
317
- continue
318
- if grp and grp not in labels:
319
- labels.append(grp)
312
+ grp = match_group(synsets, similarity_threshold)
313
+ else:
314
+ grp = fuzzy_group(token)
315
+
316
+ # if isinstance(text, list):
317
+ # text = " ".join(text)
318
+
319
+ if is_false_positive_header(text, grp):
320
+ # print(f"Skipping false positive header '{text}' for category '{grp}'")
321
+ continue
322
+ if grp and grp not in labels:
323
+ labels.append(grp)
320
324
  return labels
321
325
 
322
326
  def is_false_positive_header(text: str, category: str) -> bool:
@@ -710,3 +714,20 @@ def extract_os_from_content(text: str) -> List[dict]:
710
714
  })
711
715
 
712
716
  return results
717
+
718
+ def fuzzy_group(token, max_distance=1, min_length=5):
719
+
720
+ """
721
+ Try to match a word to a category, allowing small typos (ej: 'Instalation' would be accpet as 'installation').
722
+ See the dictionary in constants.
723
+ """
724
+
725
+ t = token.lower()
726
+ if t in constants.HEADER_VOCABULARY:
727
+ return constants.HEADER_VOCABULARY[t]
728
+ if len(t) < min_length:
729
+ return ""
730
+ match = process.extractOne(t, constants.HEADER_VOCABULARY.keys(),
731
+ scorer=Levenshtein.distance, score_cutoff=max_distance)
732
+ return constants.HEADER_VOCABULARY[match[0]] if match else ""
733
+
@@ -642,16 +642,22 @@ def parse_codemeta_json_file(file_path, metadata_result: Result, source):
642
642
  )
643
643
 
644
644
  if "identifier" in data:
645
- metadata_result.add_result(
646
- constants.CAT_IDENTIFIER,
647
- {
648
- "value": data["identifier"],
649
- "type": constants.STRING
650
- },
651
- 1,
652
- constants.TECHNIQUE_CODE_CONFIG_PARSER,
653
- source
654
- )
645
+ if isinstance(data["identifier"], list) :
646
+ identifiers = data["identifier"]
647
+ else:
648
+ identifiers = [data["identifier"]]
649
+
650
+ for identifier in identifiers:
651
+ metadata_result.add_result(
652
+ constants.CAT_IDENTIFIER,
653
+ {
654
+ "value": identifier,
655
+ "type": constants.STRING
656
+ },
657
+ 1,
658
+ constants.TECHNIQUE_CODE_CONFIG_PARSER,
659
+ source
660
+ )
655
661
 
656
662
  if "readme" in data:
657
663
  metadata_result.add_result(
@@ -5,6 +5,7 @@ import requests
5
5
  from pathlib import Path
6
6
  from ..process_results import Result
7
7
  from ..utils import constants
8
+ from .. import configuration
8
9
 
9
10
  def parse_codeowners_structured(dir_path, filename):
10
11
  codeowners = []
@@ -159,11 +160,23 @@ def enrich_user(username, repo_type, server_url=None, gitlab_authorization=None)
159
160
  # response = requests.get(api_url, timeout=5)
160
161
  # Build auth header — same token works for gitlab.com and self-hosted instances
161
162
  gl_headers = {}
162
- if gitlab_authorization:
163
- token = gitlab_authorization
164
- if not token.startswith("Bearer "):
165
- token = "Bearer " + token
166
- gl_headers["Authorization"] = token
163
+ token = gitlab_authorization
164
+ if not token:
165
+ try:
166
+ file_paths = configuration.get_configuration_file()
167
+ if constants.CONF_GITLAB_AUTHORIZATION in file_paths:
168
+ token = file_paths[constants.CONF_GITLAB_AUTHORIZATION]
169
+ except Exception:
170
+ pass
171
+ if token and isinstance(token, str):
172
+ t = token.strip()
173
+ if t.lower().startswith('bearer '):
174
+ t = t[7:].strip()
175
+ elif t.lower().startswith('token '):
176
+ t = t[6:].strip()
177
+ elif t.lower().startswith('private-token '):
178
+ t = t[14:].strip()
179
+ gl_headers['Authorization'] = f'Bearer {t}'
167
180
  response = requests.get(api_url, headers=gl_headers, timeout=5)
168
181
  if response.status_code != 200:
169
182
  logging.warning(f"GitLab API request failed for {username}: {response.status_code}")
@@ -180,7 +193,6 @@ def enrich_user(username, repo_type, server_url=None, gitlab_authorization=None)
180
193
  except Exception as e:
181
194
  logging.error(f"Error enriching GitLab user {username}: {e}")
182
195
  return None
183
-
184
196
  elif repo_type == constants.RepositoryType.CODEBERG:
185
197
  url = f"https://codeberg.org/api/v1/users/{username}"
186
198
  response = requests.get(url, timeout=5)
@@ -211,7 +211,9 @@ def parse_description_file(file_path, metadata_result: Result, source):
211
211
  "value": req,
212
212
  "name": name,
213
213
  "version": version,
214
- "type": constants.SOFTWARE_DEPENDENCY
214
+ "type": constants.SOFTWARE_DEPENDENCY,
215
+ "dependency_type": constants.DEPENDENCY_TYPE_RUNTIME,
216
+ "dependency_resolver": "cran"
215
217
  },
216
218
  1,
217
219
  constants.TECHNIQUE_CODE_CONFIG_PARSER,
@@ -168,7 +168,9 @@ def parse_gemspec_file(file_path, metadata_result: Result, source):
168
168
  constants.CAT_REQUIREMENTS,
169
169
  {
170
170
  "value": dependencies,
171
- "type": constants.SOFTWARE_DEPENDENCY
171
+ "type": constants.SOFTWARE_DEPENDENCY,
172
+ "dependency_type": constants.DEPENDENCY_TYPE_RUNTIME,
173
+ "dependency_resolver": "bundler"
172
174
  },
173
175
  1,
174
176
  constants.TECHNIQUE_CODE_CONFIG_PARSER,
@@ -97,7 +97,9 @@ def parse_requirements_txt(file_path, metadata_result: Result, source):
97
97
  req = {
98
98
  "value": line,
99
99
  "name": name,
100
- "type": constants.SOFTWARE_DEPENDENCY
100
+ "type": constants.SOFTWARE_DEPENDENCY,
101
+ "dependency_type": constants.DEPENDENCY_TYPE_RUNTIME,
102
+ "dependency_resolver": "pip"
101
103
  }
102
104
  if version:
103
105
  req['version'] = version
@@ -0,0 +1,162 @@
1
+ import json
2
+ import logging
3
+ from pathlib import Path
4
+ import re
5
+ from ..process_results import Result
6
+ from ..regular_expressions import detect_license_spdx
7
+ from ..utils import constants
8
+
9
+
10
+ def parse_zenodo_file(file_path, metadata_result: Result, source):
11
+ """
12
+ Parse a .zenodo.json file and extract relevant metadata.
13
+
14
+ Parameters
15
+ ----------
16
+ file_path: path of the zenodo file being analysed
17
+ metadata_result: metadata object where the metadata dictionary is kept
18
+ source: source of the package file (URL)
19
+
20
+ Returns
21
+ -------
22
+ metadata_result
23
+ """
24
+ try:
25
+ if Path(file_path).name.lower() in [".zenodo.json"]:
26
+ with open(file_path, "r", encoding="utf-8") as f:
27
+ data = json.load(f)
28
+
29
+ if not isinstance(data, dict):
30
+ return metadata_result
31
+
32
+ def add(category, value_dict):
33
+ metadata_result.add_result(category, value_dict, 1, constants.TECHNIQUE_CODE_CONFIG_PARSER, source)
34
+
35
+ if isinstance(data.get("title"), str) and data["title"].strip():
36
+ add(constants.CAT_NAME, {constants.PROP_VALUE: data["title"].strip(),constants.PROP_TYPE: constants.STRING})
37
+
38
+ description = data.get("description")
39
+ if isinstance(description, str):
40
+ description = re.sub(constants.REGEXP_CLEAN_HTML_TAGS, '', description).strip()
41
+ if description:
42
+ add(constants.CAT_DESCRIPTION, {constants.PROP_VALUE: description,constants.PROP_TYPE: constants.STRING})
43
+
44
+ if data.get("version"):
45
+ add(constants.CAT_VERSION, {constants.PROP_VALUE: str(data["version"]).strip(), constants.PROP_TYPE: constants.STRING})
46
+
47
+ keywords = data.get("keywords")
48
+ if isinstance(keywords, str):
49
+ keywords = keywords.split(",")
50
+ if isinstance(keywords, list):
51
+ for kw in keywords:
52
+ if isinstance(kw, str) and kw.strip():
53
+ add(constants.CAT_KEYWORDS, {constants.PROP_VALUE: kw.strip(), constants.PROP_TYPE: constants.STRING})
54
+
55
+ license_info = parse_zenodo_license(data.get("license"))
56
+ if license_info:
57
+ license_data = {
58
+ constants.PROP_VALUE: license_info["value"],
59
+ constants.PROP_TYPE: constants.LICENSE,
60
+ }
61
+ if license_info.get("spdx_id"):
62
+ license_data[constants.PROP_NAME] = license_info["name"]
63
+ license_data[constants.PROP_SPDX_ID] = license_info["spdx_id"]
64
+ license_data[constants.PROP_IDENTIFIER] = license_info["identifier"]
65
+ add(constants.CAT_LICENSE, license_data)
66
+
67
+ if data.get("publication_date"):
68
+ add(constants.CAT_DATE_PUBLISHED, {constants.PROP_VALUE: data["publication_date"], constants.PROP_TYPE: constants.STRING})
69
+
70
+ for person in data.get("creators") or []:
71
+ info = parse_zenodo_person(person)
72
+ if info:
73
+ add(constants.CAT_AUTHORS, info)
74
+
75
+ for person in data.get("contributors") or []:
76
+ info = parse_zenodo_person(person)
77
+ if info:
78
+ add(constants.CAT_CONTRIBUTORS, info)
79
+
80
+ except Exception as e:
81
+ logging.error(f"Error parsing zenodo.json from {file_path}: {str(e)}")
82
+
83
+ return metadata_result
84
+
85
+
86
+ def clean_html(text):
87
+ """Remove HTML tags from a string, keeping readable text. The description in zenodo is usually in HTML format."""
88
+ if not isinstance(text, str):
89
+ return ""
90
+ soup = BeautifulSoup(text, "html.parser")
91
+ for br in soup.find_all("br"):
92
+ br.replace_with(" ")
93
+ for tag in soup.find_all(["p", "div", "li", "ul", "ol", "h1", "h2", "h3", "h4", "h5", "h6"]):
94
+ tag.append(" ")
95
+ return " ".join(soup.get_text().split())
96
+
97
+
98
+ def parse_zenodo_license(license_data):
99
+ """
100
+ Parse the license field of a .zenodo.json file.
101
+ Zenodo uses either {"id": "mit"} or a plain string id.
102
+
103
+ Returns
104
+ -------
105
+ dict or None
106
+ Always has "value". If the license is recognised, it also has
107
+ name, spdx_id and identifier (SPDX URL).
108
+ """
109
+ if isinstance(license_data, dict):
110
+ license_id = license_data.get("id") or license_data.get("name")
111
+ elif isinstance(license_data, str):
112
+ license_id = license_data
113
+ else:
114
+ return None
115
+
116
+ if not isinstance(license_id, str) or not license_id.strip():
117
+ return None
118
+ license_id = license_id.strip()
119
+
120
+ license_info = {"value": license_id}
121
+ license_info_spdx = detect_license_spdx(license_id, "JSON")
122
+ if license_info_spdx:
123
+ license_info["name"] = license_info_spdx.get("name")
124
+ license_info["spdx_id"] = license_info_spdx.get("spdx_id")
125
+ license_info["identifier"] = license_info_spdx.get("identifier")
126
+ return license_info
127
+
128
+
129
+ def parse_zenodo_person(person):
130
+ """
131
+ Parse an entry of 'creators' / 'contributors'.
132
+ Zenodo names usually come as "Family, Given".
133
+ """
134
+ if isinstance(person, str):
135
+ person = {"name": person}
136
+ if not isinstance(person, dict):
137
+ return None
138
+
139
+ name = (person.get("name") or "").strip()
140
+ if not name:
141
+ return None
142
+
143
+ info = {constants.PROP_TYPE: constants.AGENT}
144
+ if "," in name:
145
+ family, given = [p.strip() for p in name.split(",", 1)]
146
+ info[constants.PROP_VALUE] = f"{given} {family}".strip()
147
+ if given:
148
+ info[constants.PROP_GIVEN_NAME] = given
149
+ if family:
150
+ info[constants.PROP_LAST_NAME] = family
151
+ else:
152
+ info[constants.PROP_VALUE] = name
153
+ info[constants.PROP_NAME] = info[constants.PROP_VALUE]
154
+
155
+ if person.get("affiliation"):
156
+ info[constants.PROP_AFFILIATION] = person["affiliation"]
157
+ if person.get("orcid"):
158
+ orcid = person["orcid"].strip()
159
+ info[constants.PROP_IDENTIFIER] = orcid if orcid.startswith("http") else f"https://orcid.org/{orcid}"
160
+ return info
161
+
162
+
@@ -27,6 +27,7 @@ from .parser.publiccode_parser import parse_publiccode_file
27
27
  from .parser.codeowners_parser import parse_codeowners_file
28
28
  from .parser.conda_environment_parser import parse_conda_environment_file
29
29
  from .parser.setupcfg_parser import parse_setup_cfg
30
+ from .parser.zenodo_parser import parse_zenodo_file
30
31
  from chardet import detect
31
32
 
32
33
 
@@ -159,8 +160,17 @@ def process_repository_files(repo_dir, metadata_result: Result, repo_type, owner
159
160
  logging.warning("Could not detect encoding. Using utf-8 with replacement.")
160
161
  text = data_file_text.decode("utf-8", errors="replace")
161
162
  text = clean_text(text)
162
-
163
- if repo_type == constants.RepositoryType.GITHUB:
163
+
164
+ if repo_type == constants.RepositoryType.LOCAL:
165
+ readme_url = os.path.join(repo_dir, filename)
166
+ metadata_result.add_result(constants.CAT_README_URL,
167
+ {
168
+ constants.PROP_VALUE: readme_url,
169
+ constants.PROP_TYPE: constants.URL
170
+ },
171
+ 1,
172
+ constants.TECHNIQUE_FILE_EXPLORATION)
173
+ elif repo_type == constants.RepositoryType.GITHUB and owner and repo_name:
164
174
  readme_url = convert_to_raw_user_content_github(filename, owner,
165
175
  repo_name,
166
176
  repo_default_branch)
@@ -311,8 +321,8 @@ def process_repository_files(repo_dir, metadata_result: Result, repo_type, owner
311
321
  metadata_result = parse_conda_environment_file(os.path.join(dir_path, filename), metadata_result, build_file_url)
312
322
  if filename.lower() == "setup.cfg":
313
323
  metadata_result = parse_setup_cfg(os.path.join(dir_path, filename), metadata_result, build_file_url)
314
- # if filename.lower() == ".zenodo":
315
- # metadata_result = parse_zenodo_file(os.path.join(dir_path, filename), metadata_result, build_file_url)
324
+ if filename.lower() == ".zenodo.json":
325
+ metadata_result = parse_zenodo_file(os.path.join(dir_path, filename), metadata_result, build_file_url)
316
326
  parsed_build_files.add(filename.lower())
317
327
 
318
328
  # if repo_type == constants.RepositoryType.GITLAB: